THEOREM

*******

 

     Addition on the natural numbers is commutative.

 

     ALL(a):ALL(b):[a e n & b e n => a+b=b+a]

 

 

PROOF

*****

 

Peano's Axioms

 

1     Set(n)

      Axiom

 

2     0 e n

      Axiom

 

3     ALL(a):[a e n => s(a) e n]

      Axiom

 

4     ALL(a):ALL(b):[a e n & b e n => [s(a)=s(b) => a=b]]

      Axiom

 

5     ALL(a):[a e n => ~s(a)=0]

      Axiom

 

6     ALL(a):[Set(a) & ALL(b):[b e a => b e n]

    => [0 e a & ALL(b):[b e a => s(b) e a]

    => ALL(b):[b e n => b e a]]]

      Axiom

 

 

Define +

 

7     ALL(a):ALL(b):[a e n & b e n => a+b e n]

      Axiom

 

8     ALL(a):[a e n => a+0=a]

      Axiom

 

9     ALL(a):ALL(b):[a e n & b e n => a+s(b)=s(a+b)]

      Axiom

 

   

    Suppose...

 

      10   x e n

            Premise

 

      11   EXIST(sub):[Set(sub) & ALL(b):[b e sub <=> b e n & x+s(b)=s(x)+b]]

            Subset, 1

 

      12   Set(p) & ALL(b):[b e p <=> b e n & x+s(b)=s(x)+b]

            E Spec, 11

 

    Define: p

 

      13   Set(p)

            Split, 12

 

      14   ALL(b):[b e p <=> b e n & x+s(b)=s(x)+b]

            Split, 12

 

      15   Set(p) & ALL(b):[b e p => b e n]

         => [0 e p & ALL(b):[b e p => s(b) e p]

         => ALL(b):[b e n => b e p]]

            U Spec, 6

 

            16   y e p

                  Premise

 

            17   y e p <=> y e n & x+s(y)=s(x)+y

                  U Spec, 14

 

            18   [y e p => y e n & x+s(y)=s(x)+y]

             & [y e n & x+s(y)=s(x)+y => y e p]

                  Iff-And, 17

 

            19   y e p => y e n & x+s(y)=s(x)+y

                  Split, 18

 

            20   y e n & x+s(y)=s(x)+y => y e p

                  Split, 18

 

            21   y e n & x+s(y)=s(x)+y

                  Detach, 19, 16

 

            22   y e n

                  Split, 21

 

      23   ALL(b):[b e p => b e n]

            4 Conclusion, 16

 

      24   Set(p) & ALL(b):[b e p => b e n]

            Join, 13, 23

 

   

    Sufficient: For ALL(b):[b e n => b e p]

 

      25   0 e p & ALL(b):[b e p => s(b) e p]

         => ALL(b):[b e n => b e p]

            Detach, 15, 24

 

      26   0 e p <=> 0 e n & x+s(0)=s(x)+0

            U Spec, 14

 

      27   [0 e p => 0 e n & x+s(0)=s(x)+0]

         & [0 e n & x+s(0)=s(x)+0 => 0 e p]

            Iff-And, 26

 

      28   0 e p => 0 e n & x+s(0)=s(x)+0

            Split, 27

 

    Sufficient:

 

      29   0 e n & x+s(0)=s(x)+0 => 0 e p

            Split, 27

 

      30   ALL(b):[x e n & b e n => x+s(b)=s(x+b)]

            U Spec, 9

 

      31   x e n & 0 e n => x+s(0)=s(x+0)

            U Spec, 30

 

      32   x e n & 0 e n

            Join, 10, 2

 

      33   x+s(0)=s(x+0)

            Detach, 31, 32

 

      34   x e n => x+0=x

            U Spec, 8

 

      35   x+0=x

            Detach, 34, 10

 

      36   x+s(0)=s(x)

            Substitute, 35, 33

 

      37   x e n => s(x) e n

            U Spec, 3

 

      38   s(x) e n

            Detach, 37, 10

 

      39   s(x) e n => s(x)+0=s(x)

            U Spec, 8, 38

 

      40   s(x)+0=s(x)

            Detach, 39, 38

 

      41   x+s(0)=s(x)+0

            Substitute, 40, 36

 

      42   0 e n & x+s(0)=s(x)+0

            Join, 2, 41

 

    As Required:

 

      43   0 e p

            Detach, 29, 42

 

        

         Suppose...

 

            44   y e p

                  Premise

 

            45   y e p <=> y e n & x+s(y)=s(x)+y

                  U Spec, 14

 

            46   [y e p => y e n & x+s(y)=s(x)+y]

             & [y e n & x+s(y)=s(x)+y => y e p]

                  Iff-And, 45

 

            47   y e p => y e n & x+s(y)=s(x)+y

                  Split, 46

 

            48   y e n & x+s(y)=s(x)+y => y e p

                  Split, 46

 

            49   y e n & x+s(y)=s(x)+y

                  Detach, 47, 44

 

            50   y e n

                  Split, 49

 

            51   x+s(y)=s(x)+y

                  Split, 49

 

            52   y e n => s(y) e n

                  U Spec, 3

 

            53   s(y) e n

                  Detach, 52, 50

 

            54   s(y) e p <=> s(y) e n & x+s(s(y))=s(x)+s(y)

                  U Spec, 14, 53

 

            55   [s(y) e p => s(y) e n & x+s(s(y))=s(x)+s(y)]

             & [s(y) e n & x+s(s(y))=s(x)+s(y) => s(y) e p]

                  Iff-And, 54

 

            56   s(y) e p => s(y) e n & x+s(s(y))=s(x)+s(y)

                  Split, 55

 

        

         Sufficient: For s(y) e p

 

            57   s(y) e n & x+s(s(y))=s(x)+s(y) => s(y) e p

                  Split, 55

 

            58   ALL(b):[x e n & b e n => x+s(b)=s(x+b)]

                  U Spec, 9

 

            59   x e n & s(y) e n => x+s(s(y))=s(x+s(y))

                  U Spec, 58, 53

 

            60   x e n & s(y) e n

                  Join, 10, 53

 

            61   x+s(s(y))=s(x+s(y))

                  Detach, 59, 60

 

            62   ALL(a):ALL(b):[a e n & b e n => a+s(b)=s(a+b)]

                  Copy, 9

 

            63   x+s(s(y))=s(s(x)+y)

                  Substitute, 51, 61

 

            64   ALL(b):[s(x) e n & b e n => s(x)+s(b)=s(s(x)+b)]

                  U Spec, 62, 38

 

            65   s(x) e n & y e n => s(x)+s(y)=s(s(x)+y)

                  U Spec, 64

 

            66   s(x) e n & y e n

                  Join, 38, 50

 

            67   s(x)+s(y)=s(s(x)+y)

                  Detach, 65, 66

 

            68   x+s(s(y))=s(x)+s(y)

                  Substitute, 67, 63

 

            69   s(y) e n & x+s(s(y))=s(x)+s(y)

                  Join, 53, 68

 

            70   s(y) e p

                  Detach, 57, 69

 

      71   ALL(b):[b e p => s(b) e p]

            4 Conclusion, 44

 

      72   0 e p & ALL(b):[b e p => s(b) e p]

            Join, 43, 71

 

    As Required:

 

      73   ALL(b):[b e n => b e p]

            Detach, 25, 72

 

            74   y e n

                  Premise

 

            75   y e n => y e p

                  U Spec, 73

 

            76   y e p

                  Detach, 75, 74

 

            77   y e p <=> y e n & x+s(y)=s(x)+y

                  U Spec, 14

 

            78   [y e p => y e n & x+s(y)=s(x)+y]

             & [y e n & x+s(y)=s(x)+y => y e p]

                  Iff-And, 77

 

            79   y e p => y e n & x+s(y)=s(x)+y

                  Split, 78

 

            80   y e n & x+s(y)=s(x)+y => y e p

                  Split, 78

 

            81   y e n & x+s(y)=s(x)+y

                  Detach, 79, 76

 

            82   y e n

                  Split, 81

 

            83   x+s(y)=s(x)+y

                  Split, 81

 

      84   ALL(b):[b e n => x+s(b)=s(x)+b]

            4 Conclusion, 74

 

As Required:

 

85   ALL(a):[a e n => ALL(b):[b e n => a+s(b)=s(a)+b]]

      4 Conclusion, 10

 

      86   x e n & y e n

            Premise

 

      87   x e n

            Split, 86

 

      88   y e n

            Split, 86

 

      89   x e n => ALL(b):[b e n => x+s(b)=s(x)+b]

            U Spec, 85

 

      90   ALL(b):[b e n => x+s(b)=s(x)+b]

            Detach, 89, 87

 

      91   y e n => x+s(y)=s(x)+y

            U Spec, 90

 

      92   x+s(y)=s(x)+y

            Detach, 91, 88

 

 

LEMMA

*****

As Required:

 

93   ALL(a):ALL(b):[a e n & b e n => a+s(b)=s(a)+b]

      4 Conclusion, 86

 

   

    Suppose...

 

      94   x e n

            Premise

 

      95   EXIST(sub):[Set(sub) & ALL(b):[b e sub <=> b e n & x+b=b+x]]

            Subset, 1

 

      96   Set(p') & ALL(b):[b e p' <=> b e n & x+b=b+x]

            E Spec, 95

 

   

    Define: p'

 

      97   Set(p')

            Split, 96

 

      98   ALL(b):[b e p' <=> b e n & x+b=b+x]

            Split, 96

 

      99   Set(p') & ALL(b):[b e p' => b e n]

         => [0 e p' & ALL(b):[b e p' => s(b) e p']

         => ALL(b):[b e n => b e p']]

            U Spec, 6

 

        

         Suppose...

 

            100  y e p'

                  Premise

 

            101  y e p' <=> y e n & x+y=y+x

                  U Spec, 98

 

            102  [y e p' => y e n & x+y=y+x]

             & [y e n & x+y=y+x => y e p']

                  Iff-And, 101

 

            103  y e p' => y e n & x+y=y+x

                  Split, 102

 

            104  y e n & x+y=y+x => y e p'

                  Split, 102

 

            105  y e n & x+y=y+x

                  Detach, 103, 100

 

            106  y e n

                  Split, 105

 

      107  ALL(b):[b e p' => b e n]

            4 Conclusion, 100

 

      108  Set(p') & ALL(b):[b e p' => b e n]

            Join, 97, 107

 

   

    Sufficient: For ALL(b):[b e n => b e p']

 

      109  0 e p' & ALL(b):[b e p' => s(b) e p']

         => ALL(b):[b e n => b e p']

            Detach, 99, 108

 

      110  0 e p' <=> 0 e n & x+0=0+x

            U Spec, 98

 

      111  [0 e p' => 0 e n & x+0=0+x]

         & [0 e n & x+0=0+x => 0 e p']

            Iff-And, 110

 

      112  0 e p' => 0 e n & x+0=0+x

            Split, 111

 

      113  ALL(a):ALL(b):[a e n & b e n => a+s(b)=s(a)+b]

            Copy, 93

 

      114  0 e n & x+0=0+x => 0 e p'

            Split, 111

 

      115  EXIST(sub):[Set(sub) & ALL(a):[a e sub <=> a e n & a+0=0+a]]

            Subset, 1

 

      116  Set(p2) & ALL(a):[a e p2 <=> a e n & a+0=0+a]

            E Spec, 115

 

   

    Prove: ALL(a):[a e n => a+0=0+a]

     

    Define: p2

 

      117  Set(p2)

            Split, 116

 

      118  ALL(a):[a e p2 <=> a e n & a+0=0+a]

            Split, 116

 

      119  Set(p2) & ALL(b):[b e p2 => b e n]

         => [0 e p2 & ALL(b):[b e p2 => s(b) e p2]

         => ALL(b):[b e n => b e p2]]

            U Spec, 6

 

            120  y e p2

                  Premise

 

            121  y e p2 <=> y e n & y+0=0+y

                  U Spec, 118

 

            122  [y e p2 => y e n & y+0=0+y]

             & [y e n & y+0=0+y => y e p2]

                  Iff-And, 121

 

            123  y e p2 => y e n & y+0=0+y

                  Split, 122

 

            124  y e n & y+0=0+y => y e p2

                  Split, 122

 

            125  y e n & y+0=0+y

                  Detach, 123, 120

 

            126  y e n

                  Split, 125

 

      127  ALL(b):[b e p2 => b e n]

            4 Conclusion, 120

 

      128  Set(p2) & ALL(b):[b e p2 => b e n]

            Join, 117, 127

 

   

    Sufficient: For ALL(b):[b e n => b e p2]

 

      129  0 e p2 & ALL(b):[b e p2 => s(b) e p2]

         => ALL(b):[b e n => b e p2]

            Detach, 119, 128

 

      130  0 e p2 <=> 0 e n & 0+0=0+0

            U Spec, 118

 

      131  [0 e p2 => 0 e n & 0+0=0+0]

         & [0 e n & 0+0=0+0 => 0 e p2]

            Iff-And, 130

 

      132  0 e p2 => 0 e n & 0+0=0+0

            Split, 131

 

      133  0 e n & 0+0=0+0 => 0 e p2

            Split, 131

 

      134  ALL(b):[0 e n & b e n => 0+b e n]

            U Spec, 7

 

      135  0 e n & 0 e n => 0+0 e n

            U Spec, 134

 

      136  0 e n & 0 e n

            Join, 2, 2

 

      137  0+0 e n

            Detach, 135, 136

 

      138  0+0=0+0

            Reflex, 137

 

      139  0 e n & 0+0=0+0

            Join, 2, 138

 

    As Required:

 

      140  0 e p2

            Detach, 133, 139

 

        

         Suppose...

 

            141  y e p2

                  Premise

 

            142  y e p2 <=> y e n & y+0=0+y

                  U Spec, 118

 

            143  [y e p2 => y e n & y+0=0+y]

             & [y e n & y+0=0+y => y e p2]

                  Iff-And, 142

 

            144  y e p2 => y e n & y+0=0+y

                  Split, 143

 

            145  y e n & y+0=0+y => y e p2

                  Split, 143

 

            146  y e n & y+0=0+y

                  Detach, 144, 141

 

            147  y e n

                  Split, 146

 

            148  y+0=0+y

                  Split, 146

 

            149  y e n => s(y) e n

                  U Spec, 3

 

            150  s(y) e n

                  Detach, 149, 147

 

            151  s(y) e p2 <=> s(y) e n & s(y)+0=0+s(y)

                  U Spec, 118, 150

 

            152  [s(y) e p2 => s(y) e n & s(y)+0=0+s(y)]

             & [s(y) e n & s(y)+0=0+s(y) => s(y) e p2]

                  Iff-And, 151

 

            153  s(y) e p2 => s(y) e n & s(y)+0=0+s(y)

                  Split, 152

 

        

         Sufficient: For  s(y) e p2

 

            154  s(y) e n & s(y)+0=0+s(y) => s(y) e p2

                  Split, 152

 

            155  ALL(a):ALL(b):[a e n & b e n => a+s(b)=s(a)+b]

                  Copy, 93

 

            156  ALL(b):[y e n & b e n => y+s(b)=s(y)+b]

                  U Spec, 155

 

            157  y e n & 0 e n => y+s(0)=s(y)+0

                  U Spec, 156

 

            158  y e n & 0 e n

                  Join, 147, 2

 

            159  y+s(0)=s(y)+0

                  Detach, 157, 158

 

            160  ALL(b):[y e n & b e n => y+s(b)=s(y+b)]

                  U Spec, 9

 

            161  y e n & 0 e n => y+s(0)=s(y+0)

                  U Spec, 160

 

            162  y e n & 0 e n

                  Join, 147, 2

 

            163  y+s(0)=s(y+0)

                  Detach, 161, 162

 

            164  ALL(b):[y e n & b e n => y+b e n]

                  U Spec, 7

 

            165  y e n & 0 e n => y+0 e n

                  U Spec, 164

 

            166  y+0 e n

                  Detach, 165, 158

 

            167  y+0 e n => s(y+0) e n

                  U Spec, 3, 166

 

            168  s(y+0) e n

                  Detach, 167, 166

 

            169  s(y+0)=s(y+0)

                  Reflex, 168

 

            170  s(y+0)=s(0+y)

                  Substitute, 148, 169

 

            171  ALL(b):[0 e n & b e n => 0+s(b)=s(0+b)]

                  U Spec, 9

 

            172  0 e n & y e n => 0+s(y)=s(0+y)

                  U Spec, 171

 

            173  0 e n & y e n

                  Join, 2, 147

 

            174  0+s(y)=s(0+y)

                  Detach, 172, 173

 

            175  s(y)+0=y+s(0)

                  Sym, 159

 

            176  s(y)+0=s(y+0)

                  Substitute, 163, 175

 

            177  s(y)+0=s(0+y)

                  Substitute, 170, 176

 

            178  s(y)+0=0+s(y)

                  Substitute, 174, 177

 

            179  s(y) e n & s(y)+0=0+s(y)

                  Join, 150, 178

 

            180  s(y) e p2

                  Detach, 154, 179

 

      181  ALL(b):[b e p2 => s(b) e p2]

            4 Conclusion, 141

 

      182  0 e p2 & ALL(b):[b e p2 => s(b) e p2]

            Join, 140, 181

 

      183  ALL(b):[b e n => b e p2]

            Detach, 129, 182

 

            184  y e n

                  Premise

 

            185  y e n => y e p2

                  U Spec, 183

 

            186  y e p2

                  Detach, 185, 184

 

            187  y e p2 <=> y e n & y+0=0+y

                  U Spec, 118

 

            188  [y e p2 => y e n & y+0=0+y]

             & [y e n & y+0=0+y => y e p2]

                  Iff-And, 187

 

            189  y e p2 => y e n & y+0=0+y

                  Split, 188

 

            190  y e n & y+0=0+y => y e p2

                  Split, 188

 

            191  y e n & y+0=0+y

                  Detach, 189, 186

 

            192  y e n

                  Split, 191

 

            193  y+0=0+y

                  Split, 191

 

      194  ALL(a):[a e n => a+0=0+a]

            4 Conclusion, 184

 

      195  x e n => x+0=0+x

            U Spec, 194

 

      196  x+0=0+x

            Detach, 195, 94

 

      197  0 e n & x+0=0+x

            Join, 2, 196

 

    As Required:

 

      198  0 e p'

            Detach, 114, 197

 

        

         Suppose...

 

            199  y e p'

                  Premise

 

            200  y e p' <=> y e n & x+y=y+x

                  U Spec, 98

 

            201  [y e p' => y e n & x+y=y+x]

             & [y e n & x+y=y+x => y e p']

                  Iff-And, 200

 

            202  y e p' => y e n & x+y=y+x

                  Split, 201

 

            203  y e n & x+y=y+x => y e p'

                  Split, 201

 

            204  y e n & x+y=y+x

                  Detach, 202, 199

 

            205  y e n

                  Split, 204

 

            206  x+y=y+x

                  Split, 204

 

            207  y e n => s(y) e n

                  U Spec, 3

 

            208  s(y) e n

                  Detach, 207, 205

 

            209  s(y) e p' <=> s(y) e n & x+s(y)=s(y)+x

                  U Spec, 98, 208

 

            210  [s(y) e p' => s(y) e n & x+s(y)=s(y)+x]

             & [s(y) e n & x+s(y)=s(y)+x => s(y) e p']

                  Iff-And, 209

 

            211  s(y) e p' => s(y) e n & x+s(y)=s(y)+x

                  Split, 210

 

        

         Sufficient: For s(y) e p'

 

            212  s(y) e n & x+s(y)=s(y)+x => s(y) e p'

                  Split, 210

 

            213  ALL(b):[x e n & b e n => x+s(b)=s(x+b)]

                  U Spec, 9

 

            214  x e n & y e n => x+s(y)=s(x+y)

                  U Spec, 213

 

            215  x e n & y e n

                  Join, 94, 205

 

            216  x+s(y)=s(x+y)

                  Detach, 214, 215

 

            217  x+s(y)=s(y+x)

                  Substitute, 206, 216

 

            218  ALL(b):[y e n & b e n => y+s(b)=s(y+b)]

                  U Spec, 9

 

            219  y e n & x e n => y+s(x)=s(y+x)

                  U Spec, 218

 

            220  y e n & x e n

                  Join, 205, 94

 

            221  y+s(x)=s(y+x)

                  Detach, 219, 220

 

            222  ALL(a):ALL(b):[a e n & b e n => a+s(b)=s(a)+b]

                  Copy, 93

 

            223  ALL(b):[y e n & b e n => y+s(b)=s(y)+b]

                  U Spec, 222

 

            224  y e n & x e n => y+s(x)=s(y)+x

                  U Spec, 223

 

            225  y+s(x)=s(y)+x

                  Detach, 224, 220

 

            226  x+s(y)=y+s(x)

                  Substitute, 221, 217

 

            227  x+s(y)=s(y)+x

                  Substitute, 225, 226

 

            228  s(y) e n & x+s(y)=s(y)+x

                  Join, 208, 227

 

            229  s(y) e p'

                  Detach, 212, 228

 

      230  ALL(b):[b e p' => s(b) e p']

            4 Conclusion, 199

 

      231  0 e p' & ALL(b):[b e p' => s(b) e p']

            Join, 198, 230

 

   

    As Required:

 

      232  ALL(b):[b e n => b e p']

            Detach, 109, 231

 

            233  y e n

                  Premise

 

            234  y e n => y e p'

                  U Spec, 232

 

            235  y e p'

                  Detach, 234, 233

 

            236  y e p' <=> y e n & x+y=y+x

                  U Spec, 98

 

            237  [y e p' => y e n & x+y=y+x]

             & [y e n & x+y=y+x => y e p']

                  Iff-And, 236

 

            238  y e p' => y e n & x+y=y+x

                  Split, 237

 

            239  y e n & x+y=y+x => y e p'

                  Split, 237

 

            240  y e n & x+y=y+x

                  Detach, 238, 235

 

            241  y e n

                  Split, 240

 

            242  x+y=y+x

                  Split, 240

 

      243  ALL(b):[b e n => x+b=b+x]

            4 Conclusion, 233

 

244  ALL(a):[a e n => ALL(b):[b e n => a+b=b+a]]

      4 Conclusion, 94

 

      245  x e n & y e n

            Premise

 

      246  x e n

            Split, 245

 

      247  y e n

            Split, 245

 

      248  x e n => ALL(b):[b e n => x+b=b+x]

            U Spec, 244

 

      249  ALL(b):[b e n => x+b=b+x]

            Detach, 248, 246

 

      250  y e n => x+y=y+x

            U Spec, 249

 

      251  x+y=y+x

            Detach, 250, 247

 

As Required:

 

252  ALL(a):ALL(b):[a e n & b e n => a+b=b+a]

      4 Conclusion, 245