The Commutativiy of Addition for Natural Numbers
by Mark Hurd
Prove: ALL(a):ALL(b):[a
n & b
n => b+a=a+b]
(F5 to view highlights only)
Peano's Axioms
1 Set(n)
& 1
n
& ALL(a):[a
n => next(a)
n]
& ALL(a):[a
n => ~next(a)=1]
& ALL(a):ALL(b):[a
n & b
n & next(a)=next(b) => a=b]
& ALL(a):[Set(a) & 1
a & ALL(b):[b
n & b
a => next(b)
a]
=> ALL(b):[b
n => b
a]]
Premise
Define: +
2 ALL(a):ALL(b):[a
n & b
n => a+b
n]
& ALL(a):[a
n => a+1=next(a)]
& ALL(a):ALL(b):[a
n & b
n => a+next(b)=next(a+b)]
Definition
3 Set(n)
Split, 1
4 1
n
Split, 1
5 ALL(a):[a
n => next(a)
n]
Split, 1
6 ALL(a):[a
n => ~next(a)=1]
Split, 1
7 ALL(a):ALL(b):[a
n & b
n & next(a)=next(b) => a=b]
Split, 1
8 ALL(a):[Set(a) & 1
a & ALL(b):[b
n & b
a => next(b)
a]
=> ALL(b):[b
n => b
a]]
Split, 1
9 ALL(a):ALL(b):[a
n & b
n => a+b
n]
Split, 2
10 ALL(a):[a
n => a+1=next(a)]
Split, 2
11 ALL(a):ALL(b):[a
n & b
n => a+next(b)=next(a+b)]
Split, 2
Prove: ALL(a):[a
n => ALL(b):[b
n => b+a=a+b]]
Applying induction shortcut...
12 ALL(b):[b
n => b+1=1+b]
& ALL(a):[a
n & ALL(b):[b
n => b+a=a+b] => ALL(b):[b
n => b+next(a)=next(a)+b]]
=> ALL(a):[a
n => ALL(b):[b
n => b+a=a+b]]
Induction
Prove: ALL(b):[b
n => b+1=1+b]
Applying induction shortcut...
13 1+1=1+1
& ALL(b):[b
n & b+1=1+b => next(b)+1=1+next(b)]
=> ALL(b):[b
n => b+1=1+b]
Induction
14 1+1=1+1
Reflex
Prove: b
n & b+1=1+b => next(b)+1=1+next(b)
Suppose...
15 b
n & b+1=1+b
Premise
16 b
n
Split, 15
17 b+1=1+b
Split, 15
Applying definition of +...
18 b
n => b+1=next(b)
U Spec, 10
19 b+1=next(b)
Detach, 18, 16
20 next(b)=1+b
Substitute, 19, 17
21 ALL(b):[1
n & b
n => 1+next(b)=next(1+b)]
U Spec, 11
22 1
n & b
n => 1+next(b)=next(1+b)
U Spec, 21
23 1
n & b
n => 1+next(b)=next(next(b))
Substitute, 20, 22
24 next(b)
n => next(b)+1=next(next(b))
U Spec, 10
25 1
n & b
n
Join, 4, 16
26 1+next(b)=next(next(b))
Detach, 23, 25
27 next(b)
n => next(b)+1=1+next(b)
Substitute, 26, 24
28 b
n => next(b)
n
U Spec, 5
29 next(b)
n
Detach, 28, 16
30 next(b)+1=1+next(b)
Detach, 27, 29
As Required:
31 b
n & b+1=1+b => next(b)+1=1+next(b)
Conclusion, 15
Generalizing...
32 ALL(b):[b
n & b+1=1+b => next(b)+1=1+next(b)]
U Gen, 31
33 1+1=1+1
& ALL(b):[b
n & b+1=1+b => next(b)+1=1+next(b)]
Join, 14, 32
As Required:
34 ALL(b):[b
n => b+1=1+b]
Detach, 13, 33
35 p
n & ALL(b):[b
n => b+p=p+b]
Premise
36 p
n
Split, 35
37 ALL(b):[b
n => b+p=p+b]
Split, 35
38 1+next(p)=next(p)+1
& ALL(b):[b
n & b+next(p)=next(p)+b => next(b)+next(p)=next(p)+next(b)]
=> ALL(b):[b
n => b+next(p)=next(p)+b]
Induction
39 p
n & p+1=1+p => next(p)+1=1+next(p)
U Spec, 32
40 1
n => 1+p=p+1
U Spec, 37
41 1+p=p+1
Detach, 40, 4
42 p+1=1+p
Sym, 41
43 p
n & p+1=1+p
Join, 36, 42
44 next(p)+1=1+next(p)
Detach, 39, 43
45 1+next(p)=next(p)+1
Sym, 44
Prove: q
n & q+next(p)=next(p)+q
=> next(q)+next(p)=next(p)+next(q)
Suppose...
46 q
n & q+next(p)=next(p)+q
Premise
47 q
n
Split, 46
48 q+next(p)=next(p)+q
Split, 46
Applying the definition of +...
49 ALL(b):[next(p)
n & b
n => next(p)+next(b)=next(next(p)+b)]
U Spec, 11
50 next(p)
n & q
n => next(p)+next(q)=next(next(p)+q)
U Spec, 49
51 ALL(b):[next(q)
n & b
n => next(q)+next(b)=next(next(q)+b)]
U Spec, 11
52 next(q)
n & p
n => next(q)+next(p)=next(next(q)+p)
U Spec, 51
53 p
n => next(p)
n
U Spec, 5
54 q
n => next(q)
n
U Spec, 5
55 next(p)
n
Detach, 53, 36
56 next(q)
n
Detach, 54, 47
57 next(p)
n & q
n
Join, 55, 47
58 next(q)
n & p
n
Join, 56, 36
59 next(p)+next(q)=next(next(p)+q)
Detach, 50, 57
60 next(q)+next(p)=next(next(q)+p)
Detach, 52, 58
61 ALL(b):[q
n & b
n => q+next(b)=next(q+b)]
U Spec, 11
62 q
n & p
n => q+next(p)=next(q+p)
U Spec, 61
63 q
n & p
n
Join, 47, 36
64 q+next(p)=next(q+p)
Detach, 62, 63
65 next(p)+q=next(q+p)
Substitute, 48, 64
66 q
n => q+p=p+q
U Spec, 37
67 q+p=p+q
Detach, 66, 47
68 next(p)+q=next(p+q)
Substitute, 67, 65
69 next(q)
n => next(q)+p=p+next(q)
U Spec, 37
70 next(q)+p=p+next(q)
Detach, 69, 56
71 ALL(b):[p
n & b
n => p+next(b)=next(p+b)]
U Spec, 11
72 p
n & q
n => p+next(q)=next(p+q)
U Spec, 71
73 p
n & q
n
Join, 36, 47
74 p+next(q)=next(p+q)
Detach, 72, 73
75 next(q)+p=next(p+q)
Substitute, 74, 70
76 next(p)+next(q)=next(next(p+q))
Substitute, 68, 59
77 next(q)+next(p)=next(next(p+q))
Substitute, 75, 60
78 next(q)+next(p)=next(p)+next(q)
Substitute, 76, 77
As Required:
79 q
n & q+next(p)=next(p)+q
=> next(q)+next(p)=next(p)+next(q)
Conclusion, 46
Generalizing...
80 ALL(b):[b
n & b+next(p)=next(p)+b
=> next(b)+next(p)=next(p)+next(b)]
U Gen, 79
81 1+next(p)=next(p)+1
& ALL(b):[b
n & b+next(p)=next(p)+b
=> next(b)+next(p)=next(p)+next(b)]
Join, 45, 80
82 ALL(b):[b
n => b+next(p)=next(p)+b]
Detach, 38, 81
As Required:
83 p
n & ALL(b):[b
n => b+p=p+b]
=> ALL(b):[b
n => b+next(p)=next(p)+b]
Conclusion, 35
Generalizing...
84 ALL(a):[a
n & ALL(b):[b
n => b+a=a+b]
=> ALL(b):[b
n => b+next(a)=next(a)+b]]
U Gen, 83
85 ALL(b):[b
n => b+1=1+b]
& ALL(a):[a
n & ALL(b):[b
n => b+a=a+b]
=> ALL(b):[b
n => b+next(a)=next(a)+b]]
Join, 34, 84
86 ALL(a):[a
n => ALL(b):[b
n => b+a=a+b]]
Detach, 12, 85
Prove: p
n & q
n => q+p=p+q
Suppose...
87 p
n & q
n
Premise
88 p
n => ALL(b):[b
n => b+p=p+b]
U Spec, 86
89 p
n
Split, 87
90 q
n
Split, 87
91 ALL(b):[b
n => b+p=p+b]
Detach, 88, 89
92 q
n => q+p=p+q
U Spec, 91
93 q+p=p+q
Detach, 92, 90
As Required:
94 p
n & q
n => q+p=p+q
Conclusion, 87
Generalizing...
95 ALL(b):[p
n & b
n => b+p=p+b]
U Gen, 94
As Required:
96 ALL(a):ALL(b):[a
n & b
n => b+a=a+b]
U Gen, 95