HomeHome Metamath Proof Explorer < Previous   Next >
Related theorems
Unicode version

Theorem nnacom 4223
Description: Addition of natural numbers is commutative. Theorem 4K(2) of [Enderton] p. 81.
Assertion
Ref Expression
nnacom |- ((A e. om /\ B e. om) -> (A +o B) = (B +o A))

Proof of Theorem nnacom
StepHypRef Expression
1 opreq1 3959 . . . . 5 |- (x = (/) -> (x +o B) = ((/) +o B))
2 opreq2 3960 . . . . 5 |- (x = (/) -> (B +o x) = (B +o (/)))
31, 2eqeq12d 1486 . . . 4 |- (x = (/) -> ((x +o B) = (B +o x) <-> ((/) +o B) = (B +o (/))))
43imbi2d 611 . . 3 |- (x = (/) -> ((B e. om -> (x +o B) = (B +o x)) <-> (B e. om -> ((/) +o B) = (B +o (/)))))
5 opreq1 3959 . . . . 5 |- (x = y -> (x +o B) = (y +o B))
6 opreq2 3960 . . . . 5 |- (x = y -> (B +o x) = (B +o y))
75, 6eqeq12d 1486 . . . 4 |- (x = y -> ((x +o B) = (B +o x) <-> (y +o B) = (B +o y)))
87imbi2d 611 . . 3 |- (x = y -> ((B e. om -> (x +o B) = (B +o x)) <-> (B e. om -> (y +o B) = (B +o y))))
9 opreq1 3959 . . . . 5 |- (x = suc y -> (x +o B) = (suc y +o B))
10 opreq2 3960 . . . . 5 |- (x = suc y -> (B +o x) = (B +o suc y))
119, 10eqeq12d 1486 . . . 4 |- (x = suc y -> ((x +o B) = (B +o x) <-> (suc y +o B) = (B +o suc y)))
1211imbi2d 611 . . 3 |- (x = suc y -> ((B e. om -> (x +o B) = (B +o x)) <-> (B e. om -> (suc y +o B) = (B +o suc y))))
13 opreq1 3959 . . . . 5 |- (x = A -> (x +o B) = (A +o B))
14 opreq2 3960 . . . . 5 |- (x = A -> (B +o x) = (B +o A))
1513, 14eqeq12d 1486 . . . 4 |- (x = A -> ((x +o B) = (B +o x) <-> (A +o B) = (B +o A)))
1615imbi2d 611 . . 3 |- (x = A -> ((B e. om -> (x +o B) = (B +o x)) <-> (B e. om -> (A +o B) = (B +o A))))
17 nna0r 4217 . . . 4 |- (B e. om -> ((/) +o B) = B)
18 nna0 4213 . . . 4 |- (B e. om -> (B +o (/)) = B)
1917, 18eqtr4d 1507 . . 3 |- (B e. om -> ((/) +o B) = (B +o (/)))
20 opreq2 3960 . . . . . . . . . . 11 |- (x = (/) -> (suc y +o x) = (suc y +o (/)))
21 opreq2 3960 . . . . . . . . . . . 12 |- (x = (/) -> (y +o x) = (y +o (/)))
22 suceq 3029 . . . . . . . . . . . 12 |- ((y +o x) = (y +o (/)) -> suc (y +o x) = suc (y +o (/)))
2321, 22syl 10 . . . . . . . . . . 11 |- (x = (/) -> suc (y +o x) = suc (y +o (/)))
2420, 23eqeq12d 1486 . . . . . . . . . 10 |- (x = (/) -> ((suc y +o x) = suc (y +o x) <-> (suc y +o (/)) = suc (y +o (/))))
2524imbi2d 611 . . . . . . . . 9 |- (x = (/) -> ((y e. om -> (suc y +o x) = suc (y +o x)) <-> (y e. om -> (suc y +o (/)) = suc (y +o (/)))))
26 opreq2 3960 . . . . . . . . . . 11 |- (x = z -> (suc y +o x) = (suc y +o z))
27 opreq2 3960 . . . . . . . . . . . 12 |- (x = z -> (y +o x) = (y +o z))
28 suceq 3029 . . . . . . . . . . . 12 |- ((y +o x) = (y +o z) -> suc (y +o x) = suc (y +o z))
2927, 28syl 10 . . . . . . . . . . 11 |- (x = z -> suc (y +o x) = suc (y +o z))
3026, 29eqeq12d 1486 . . . . . . . . . 10 |- (x = z -> ((suc y +o x) = suc (y +o x) <-> (suc y +o z) = suc (y +o z)))
3130imbi2d 611 . . . . . . . . 9 |- (x = z -> ((y e. om -> (suc y +o x) = suc (y +o x)) <-> (y e. om -> (suc y +o z) = suc (y +o z))))
32 opreq2 3960 . . . . . . . . . . 11 |- (x = suc z -> (suc y +o x) = (suc y +o suc z))
33 opreq2 3960 . . . . . . . . . . . 12 |- (x = suc z -> (y +o x) = (y +o suc z))
34 suceq 3029 . . . . . . . . . . . 12 |- ((y +o x) = (y +o suc z) -> suc (y +o x) = suc (y +o suc z))
3533, 34syl 10 . . . . . . . . . . 11 |- (x = suc z -> suc (y +o x) = suc (y +o suc z))
3632, 35eqeq12d 1486 . . . . . . . . . 10 |- (x = suc z -> ((suc y +o x) = suc (y +o x) <-> (suc y +o suc z) = suc (y +o suc z)))
3736imbi2d 611 . . . . . . . . 9 |- (x = suc z -> ((y e. om -> (suc y +o x) = suc (y +o x)) <-> (y e. om -> (suc y +o suc z) = suc (y +o suc z))))
38 opreq2 3960 . . . . . . . . . . 11 |- (x = B -> (suc y +o x) = (suc y +o B))
39 opreq2 3960 . . . . . . . . . . . 12 |- (x = B -> (y +o x) = (y +o B))
40 suceq 3029 . . . . . . . . . . . 12 |- ((y +o x) = (y +o B) -> suc (y +o x) = suc (y +o B))
4139, 40syl 10 . . . . . . . . . . 11 |- (x = B -> suc (y +o x) = suc (y +o B))
4238, 41eqeq12d 1486 . . . . . . . . . 10 |- (x = B -> ((suc y +o x) = suc (y +o x) <-> (suc y +o B) = suc (y +o B)))
4342imbi2d 611 . . . . . . . . 9 |- (x = B -> ((y e. om -> (suc y +o x) = suc (y +o x)) <-> (y e. om -> (suc y +o B) = suc (y +o B))))
44 peano2b 3142 . . . . . . . . . . 11 |- (y e. om <-> suc y e. om)
45 nna0 4213 . . . . . . . . . . 11 |- (suc y e. om -> (suc y +o (/)) = suc y)
4644, 45sylbi 199 . . . . . . . . . 10 |- (y e. om -> (suc y +o (/)) = suc y)
47 nna0 4213 . . . . . . . . . . 11 |- (y e. om -> (y +o (/)) = y)
48 suceq 3029 . . . . . . . . . . 11 |- ((y +o (/)) = y -> suc (y +o (/)) = suc y)
4947, 48syl 10 . . . . . . . . . 10 |- (y e. om -> suc (y +o (/)) = suc y)
5046, 49eqtr4d 1507 . . . . . . . . 9 |- (y e. om -> (suc y +o (/)) = suc (y +o (/)))
51 oasuc 4153 . . . . . . . . . . . . . 14 |- ((suc y e. On /\ z e. On) -> (suc y +o suc z) = suc (suc y +o z))
52 nnont 3133 . . . . . . . . . . . . . . 15 |- (y e. om -> y e. On)
53 suceloni 3057 . . . . . . . . . . . . . . 15 |- (y e. On -> suc y e. On)
5452, 53syl 10 . . . . . . . . . . . . . 14 |- (y e. om -> suc y e. On)
55 nnont 3133 . . . . . . . . . . . . . 14 |- (z e. om -> z e. On)
5651, 54, 55syl2an 454 . . . . . . . . . . . . 13 |- ((y e. om /\ z e. om) -> (suc y +o suc z) = suc (suc y +o z))
5752, 55anim12i 333 . . . . . . . . . . . . . 14 |- ((y e. om /\ z e. om) -> (y e. On /\ z e. On))
58 oasuc 4153 . . . . . . . . . . . . . 14 |- ((y e. On /\ z e. On) -> (y +o suc z) = suc (y +o z))
59 suceq 3029 . . . . . . . . . . . . . 14 |- ((y +o suc z) = suc (y +o z) -> suc (y +o suc z) = suc suc (y +o z))
6057, 58, 593syl 20 . . . . . . . . . . . . 13 |- ((y e. om /\ z e. om) -> suc (y +o suc z) = suc suc (y +o z))
6156, 60eqeq12d 1486 . . . . . . . . . . . 12 |- ((y e. om /\ z e. om) -> ((suc y +o suc z) = suc (y +o suc z) <-> suc (suc y +o z) = suc suc (y +o z)))
62 suceq 3029 . . . . . . . . . . . 12 |- ((suc y +o z) = suc (y +o z) -> suc (suc y +o z) = suc suc (y +o z))
6361, 62syl5bir 210 . . . . . . . . . . 11 |- ((y e. om /\ z e. om) -> ((suc y +o z) = suc (y +o z) -> (suc y +o suc z) = suc (y +o suc z)))
6463expcom 374 . . . . . . . . . 10 |- (z e. om -> (y e. om -> ((suc y +o z) = suc (y +o z) -> (suc y +o suc z) = suc (y +o suc z))))
6564a2d 13 . . . . . . . . 9 |- (z e. om -> ((y e. om -> (suc y +o z) = suc (y +o z)) -> (y e. om -> (suc y +o suc z) = suc (y +o suc z))))
6625, 31, 37, 43, 50, 65finds 3151 . . . . . . . 8 |- (B e. om -> (y e. om -> (suc y +o B) = suc (y +o B)))
6766imp 350 . . . . . . 7 |- ((B e. om /\ y e. om) -> (suc y +o B) = suc (y +o B))
68 nnasuc 4215 . . . . . . 7 |- ((B e. om /\ y e. om) -> (B +o suc y) = suc (B +o y))
6967, 68eqeq12d 1486 . . . . . 6 |- ((B e. om /\ y e. om) -> ((suc y +o B) = (B +o suc y) <-> suc (y +o B) = suc (B +o y)))
70 suceq 3029 . . . . . 6 |- ((y +o B) = (B +o y) -> suc (y +o B) = suc (B +o y))
7169, 70syl5bir 210 . . . . 5 |- ((B e. om /\ y e. om) -> ((y +o B) = (B +o y) -> (suc y +o B) = (B +o suc y)))
7271expcom 374 . . . 4 |-