THEOREM
*******
0+0 = 0
This machine-verified formal proof was written with the aid of
the author's DC Proof 2.0 software available at http://www.dcproof.com
AXIOMS / DEFINITIONS USED
*************************
Define: +
*********
1 ALL(a):ALL(b):[a e n & b e n => a+b e n]
Axiom
2 ALL(a):[a e n => a+2=next(next(a))]
Axiom
3 ALL(a):ALL(b):[a e n & b e n => a+next(b)=next(a+b)]
Axiom
Define: next
************
next is a function n (the succesor function)
4 ALL(a):[a e n => next(a) e n]
Axiom
next is injective
5 ALL(a):ALL(b):[a e n & b e n => [next(a)=next(b) => a=b]]
Axiom
Define: 0, 1, 2
***************
6 0 e n
Axiom
7 1 e n
Axiom
8 1=next(0)
Axiom
9 2 e n
Axiom
10 2=next(1)
Axiom
PROOF
*****
First...
Prove: 0+1=1
Apply definition of +
11 0 e n => 0+2=next(next(0))
U Spec, 2
12 0+2=next(next(0))
Detach, 11, 6
13 0+next(1)=next(next(0))
Substitute, 10, 12
Apply definition of +
14 ALL(b):[0 e n & b e n => 0+next(b)=next(0+b)]
U Spec, 3
15 0 e n & 1 e n => 0+next(1)=next(0+1)
U Spec, 14
16 0 e n & 1 e n
Join, 6, 7
17 0+next(1)=next(0+1)
Detach, 15, 16
18 next(0+1)=next(next(0))
Substitute, 17, 13
19 next(0+1)=next(1)
Substitute, 8, 18
20 ALL(b):[0+1 e n & b e n => [next(0+1)=next(b) => 0+1=b]]
U Spec, 5
21 0+1 e n & 1 e n => [next(0+1)=next(1) => 0+1=1]
U Spec, 20
22 ALL(b):[0 e n & b e n => 0+b e n]
U Spec, 1
23 0 e n & 1 e n => 0+1 e n
U Spec, 22
24 0 e n & 1 e n
Join, 6, 7
25 0+1 e n
Detach, 23, 24
26 0+1 e n & 1 e n
Join, 25, 7
27 next(0+1)=next(1) => 0+1=1
Detach, 21, 26
As Required:
28 0+1=1
Detach, 27, 19
Prove: 0+0=0
Apply definition of +
29 ALL(b):[0 e n & b e n => 0+next(b)=next(0+b)]
U Spec, 3
30 0 e n & 0 e n => 0+next(0)=next(0+0)
U Spec, 29
31 0 e n & 0 e n
Join, 6, 6
32 0+next(0)=next(0+0)
Detach, 30, 31
33 0+1=next(0+0)
Substitute, 8, 32
34 1=next(0+0)
Substitute, 28, 33
35 next(0)=next(0+0)
Substitute, 8, 34
Apply definition of next
36 ALL(b):[0 e n & b e n => [next(0)=next(b) => 0=b]]
U Spec, 5
37 0 e n & 0+0 e n => [next(0)=next(0+0) => 0=0+0]
U Spec, 36
Apply definition of +
38 ALL(b):[0 e n & b e n => 0+b e n]
U Spec, 1
39 0 e n & 0 e n => 0+0 e n
U Spec, 38
40 0+0 e n
Detach, 39, 31
41 0 e n & 0+0 e n
Join, 6, 40
42 next(0)=next(0+0) => 0=0+0
Detach, 37, 41
43 0=0+0
Detach, 42, 35
As Required:
44 0+0=0
Sym, 43