Add is Cancelable: a+b=c+b => a=c
To prove: For all numbers, a, b, c
a+b=c+b => a=c
By Mark Hurd
Prove: ALL(a):ALL(b):ALL(c):[a
n & b
n & c
n => [a+b=c+b => a=c]]
(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
Note that this axiom is the b=1 case already.
(And is the esential step in the b=r case too.)
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
To prove: if p, q numbers then for all b, where b is a number, p+b=q+b => p=q
12 p
n & q
n
Premise
13 p
n
Split, 12
14 q
n
Split, 12
Prove: ALL(b):[b
n => [p+b=q+b => p=q]]
Using mathematical induction...
15 [p+1=q+1 => p=q]
& ALL(b):[b
n & [p+b=q+b => p=q] => [p+next(b)=q+next(b) => p=q]]
=> ALL(b):[b
n => [p+b=q+b => p=q]]
Induction
Case: b=1
16 ALL(b):[p
n & b
n & next(p)=next(b) => p=b]
U Spec, 7
17 p
n & q
n & next(p)=next(q) => p=q
U Spec, 16
18 p
n => p+1=next(p)
U Spec, 10
19 q
n => q+1=next(q)
U Spec, 10
20 p+1=next(p)
Detach, 18, 13
21 q+1=next(q)
Detach, 19, 14
22 p+1=q+1
Premise
23 next(p)=q+1
Substitute, 20, 22
24 next(p)=next(q)
Substitute, 21, 23
25 p
n & q
n & next(p)=next(q)
Join, 12, 24
26 p=q
Detach, 17, 25
Case: b=1 (done)
27 p+1=q+1 => p=q
Conclusion, 22
Case: b=r
28 r
n & [p+r=q+r => p=q]
Premise
29 r
n
Split, 28
30 p+r=q+r => p=q
Split, 28
31 ALL(b):[p
n & b
n => p+next(b)=next(p+b)]
U Spec, 11
32 ALL(b):[q
n & b
n => q+next(b)=next(q+b)]
U Spec, 11
33 p
n & r
n => p+next(r)=next(p+r)
U Spec, 31
34 q
n & r
n => q+next(r)=next(q+r)
U Spec, 32
35 p
n & r
n
Join, 13, 29
36 q
n & r
n
Join, 14, 29
37 p+next(r)=next(p+r)
Detach, 33, 35
38 q+next(r)=next(q+r)
Detach, 34, 36
39 p+next(r)=q+next(r)
Premise
40 next(p+r)=q+next(r)
Substitute, 37, 39
41 next(p+r)=next(q+r)
Substitute, 38, 40
42 ALL(b):[p+r
n & b
n & next(p+r)=next(b) => p+r=b]
U Spec, 7
43 p+r
n & q+r
n & next(p+r)=next(q+r) => p+r=q+r
U Spec, 42
44 ALL(b):[p
n & b
n => p+b
n]
U Spec, 9
45 ALL(b):[q
n & b
n => q+b
n]
U Spec, 9
46 p
n & r
n => p+r
n
U Spec, 44
47 q
n & r
n => q+r
n
U Spec, 45
48 p+r
n
Detach, 46, 35
49 q+r
n
Detach, 47, 36
50 p+r
n & q+r
n
Join, 48, 49
51 p+r
n & q+r
n & next(p+r)=next(q+r)
Join, 50, 41
52 p+r=q+r
Detach, 43, 51
53 p=q
Detach, 30, 52
54 p+next(r)=q+next(r) => p=q
Conclusion, 39
Case: b=r (done)
55 r
n & [p+r=q+r => p=q] => [p+next(r)=q+next(r) => p=q]
Conclusion, 28
56 ALL(b):[b
n & [p+b=q+b => p=q] => [p+next(b)=q+next(b) => p=q]]
U Gen, 55
57 [p+1=q+1 => p=q]
& ALL(b):[b
n & [p+b=q+b => p=q] => [p+next(b)=q+next(b) => p=q]]
Join, 27, 56
Induction complete.
58 ALL(b):[b
n => [p+b=q+b => p=q]]
Detach, 15, 57
59 p
n & q
n => ALL(b):[b
n => [p+b=q+b => p=q]]
Conclusion, 12
60 p
n & r
n & q
n
Premise
61 p
n
Split, 60
62 r
n
Split, 60
63 q
n
Split, 60
64 p
n & q
n
Join, 61, 63
65 ALL(b):[b
n => [p+b=q+b => p=q]]
Detach, 59, 64
66 r
n => [p+r=q+r => p=q]
U Spec, 65
67 p+r=q+r => p=q
Detach, 66, 62
Restated:
68 p
n & r
n & q
n => [p+r=q+r => p=q]
Conclusion, 60
Generalising...
69 ALL(c):[p
n & r
n & c
n => [p+r=c+r => p=c]]
U Gen, 68
70 ALL(b):ALL(c):[p
n & b
n & c
n => [p+b=c+b => p=c]]
U Gen, 69
As Required:
71 ALL(a):ALL(b):ALL(c):[a
n & b
n & c
n => [a+b=c+b => a=c]]
U Gen, 70