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

Theorem nnacom 3175
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 3006 . . . . 5 |- (x = (/) -> (x +o B) = ((/) +o B))
2 opreq2 3007 . . . . 5 |- (x = (/) -> (B +o x) = (B +o (/)))
31, 2cleq12d 1115 . . . 4 |- (x = (/) -> ((x +o B) = (B +o x) <-> ((/) +o B) = (B +o (/))))
43imbi2d 464 . . 3 |- (x = (/) -> ((B e. om -> (x +o B) = (B +o x)) <-> (B e. om -> ((/) +o B) = (B +o (/)))))
5 opreq1 3006 . . . . 5 |- (x = y -> (x +o B) = (y +o B))
6 opreq2 3007 . . . . 5 |- (x = y -> (B +o x) = (B +o y))
75, 6cleq12d 1115 . . . 4 |- (x = y -> ((x +o B) = (B +o x) <-> (y +o B) = (B +o y)))
87imbi2d 464 . . 3 |- (x = y -> ((B e. om -> (x +o B) = (B +o x)) <-> (B e. om -> (y +o B) = (B +o y))))
9 opreq1 3006 . . . . 5 |- (x = suc y -> (x +o B) = (suc y +o B))
10 opreq2 3007 . . . . 5 |- (x = suc y -> (B +o x) = (B +o suc y))
119, 10cleq12d 1115 . . . 4 |- (x = suc y -> ((x +o B) = (B +o x) <-> (suc y +o B) = (B +o suc y)))
1211imbi2d 464 . . 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 3006 . . . . 5 |- (x = A -> (x +o B) = (A +o B))
14 opreq2 3007 . . . . 5 |- (x = A -> (B +o x) = (B +o A))
1513, 14cleq12d 1115 . . . 4 |- (x = A -> ((x +o B) = (B +o x) <-> (A +o B) = (B +o A)))
1615imbi2d 464 . . 3 |- (x = A -> ((B e. om -> (x +o B) = (B +o x)) <-> (B e. om -> (A +o B) = (B +o A))))
17 nna0r 3170 . . . 4 |- (B e. om -> ((/) +o B) = B)
18 nna0 3166 . . . 4 |- (B e. om -> (B +o (/)) = B)
1917, 18eqtr4d 1131 . . 3 |- (B e. om -> ((/) +o B) = (B +o (/)))
20 opreq2 3007 . . . . . . . . . . . 12 |- (x = (/) -> (suc y +o x) = (suc y +o (/)))
21 opreq2 3007 . . . . . . . . . . . . 13 |- (x = (/) -> (y +o x) = (y +o (/)))
22 suceq 2288 . . . . . . . . . . . . 13 |- ((y +o x) = (y +o (/)) -> suc (y +o x) = suc (y +o (/)))
2321, 22syl 12 . . . . . . . . . . . 12 |- (x = (/) -> suc (y +o x) = suc (y +o (/)))
2420, 23cleq12d 1115 . . . . . . . . . . 11 |- (x = (/) -> ((suc y +o x) = suc (y +o x) <-> (suc y +o (/)) = suc (y +o (/))))
2524imbi2d 464 . . . . . . . . . 10 |- (x = (/) -> ((y e. om -> (suc y +o x) = suc (y +o x)) <-> (y e. om -> (suc y +o (/)) = suc (y +o (/)))))
26 opreq2 3007 . . . . . . . . . . . 12 |- (x = z -> (suc y +o x) = (suc y +o z))
27 opreq2 3007 . . . . . . . . . . . . 13 |- (x = z -> (y +o x) = (y +o z))
28 suceq 2288 . . . . . . . . . . . . 13 |- ((y +o x) = (y +o z) -> suc (y +o x) = suc (y +o z))
2927, 28syl 12 . . . . . . . . . . . 12 |- (x = z -> suc (y +o x) = suc (y +o z))
3026, 29cleq12d 1115 . . . . . . . . . . 11 |- (x = z -> ((suc y +o x) = suc (y +o x) <-> (suc y +o z) = suc (y +o z)))
3130imbi2d 464 . . . . . . . . . 10 |- (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 3007 . . . . . . . . . . . 12 |- (x = suc z -> (suc y +o x) = (suc y +o suc z))
33 opreq2 3007 . . . . . . . . . . . . 13 |- (x = suc z -> (y +o x) = (y +o suc z))
34 suceq 2288 . . . . . . . . . . . . 13 |- ((y +o x) = (y +o suc z) -> suc (y +o x) = suc (y +o suc z))
3533, 34syl 12 . . . . . . . . . . . 12 |- (x = suc z -> suc (y +o x) = suc (y +o suc z))
3632, 35cleq12d 1115 . . . . . . . . . . 11 |- (x = suc z -> ((suc y +o x) = suc (y +o x) <-> (suc y +o suc z) = suc (y +o suc z)))
3736imbi2d 464 . . . . . . . . . 10 |- (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 3007 . . . . . . . . . . . 12 |- (x = B -> (suc y +o x) = (suc y +o B))
39 opreq2 3007 . . . . . . . . . . . . 13 |- (x = B -> (y +o x) = (y +o B))
40 suceq 2288 . . . . . . . . . . . . 13 |- ((y +o x) = (y +o B) -> suc (y +o x) = suc (y +o B))
4139, 40syl 12 . . . . . . . . . . . 12 |- (x = B -> suc (y +o x) = suc (y +o B))
4238, 41cleq12d 1115 . . . . . . . . . . 11 |- (x = B -> ((suc y +o x) = suc (y +o x) <-> (suc y +o B) = suc (y +o B)))
4342imbi2d 464 . . . . . . . . . 10 |- (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 2388 . . . . . . . . . . . 12 |- (y e. om <-> suc y e. om)
45 nna0 3166 . . . . . . . . . . . 12 |- (suc y e. om -> (suc y +o (/)) = suc y)
4644, 45sylbi 174 . . . . . . . . . . 11 |- (y e. om -> (suc y +o (/)) = suc y)
47 nna0 3166 . . . . . . . . . . . 12 |- (y e. om -> (y +o (/)) = y)
48 suceq 2288 . . . . . . . . . . . 12 |- ((y +o (/)) = y -> suc (y +o (/)) = suc y)
4947, 48syl 12 . . . . . . . . . . 11 |- (y e. om -> suc (y +o (/)) = suc y)
5046, 49eqtr4d 1131 . . . . . . . . . 10 |- (y e. om -> (suc y +o (/)) = suc (y +o (/)))
51 oasuc 3131 . . . . . . . . . . . . . . . 16 |- ((suc y e. On /\ z e. On) -> (suc y +o suc z) = suc (suc y +o z))
52 nnont 2379 . . . . . . . . . . . . . . . . 17 |- (y e. om -> y e. On)
53 suceloni 2314 . . . . . . . . . . . . . . . . 17 |- (y e. On -> suc y e. On)
5452, 53syl 12 . . . . . . . . . . . . . . . 16 |- (y e. om -> suc y e. On)
55 nnont 2379 . . . . . . . . . . . . . . . 16 |- (z e. om -> z e. On)
5651, 54, 55syl2an 349 . . . . . . . . . . . . . . 15 |- ((y e. om /\ z e. om) -> (suc y +o suc z) = suc (suc y +o z))
5752, 55anim12i 268 . . . . . . . . . . . . . . . 16 |- ((y e. om /\ z e. om) -> (y e. On /\ z e. On))
58 oasuc 3131 . . . . . . . . . . . . . . . 16 |- ((y e. On /\ z e. On) -> (y +o suc z) = suc (y +o z))
59 suceq 2288 . . . . . . . . . . . . . . . 16 |- ((y +o suc z) = suc (y +o z) -> suc (y +o suc z) = suc suc (y +o z))
6057, 58, 593syl 21 . . . . . . . . . . . . . . 15 |- ((y e. om /\ z e. om) -> suc (y +o suc z) = suc suc (y +o z))
6156, 60cleq12d 1115 . . . . . . . . . . . . . 14 |- ((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 2288 . . . . . . . . . . . . . 14 |- ((suc y +o z) = suc (y +o z) -> suc (suc y +o z) = suc suc (y +o z))
6361, 62syl5bir 184 . . . . . . . . . . . . 13 |- ((y e. om /\ z e. om) -> ((suc y +o z) = suc (y +o z) -> (suc y +o suc z) = suc (y +o suc z)))
6463exp 291 . . . . . . . . . . . 12 |- (y e. om -> (z e. om -> ((suc y +o z) = suc (y +o z) -> (suc y +o suc z) = suc (y +o suc z))))
6564com12 13 . . . . . . . . . . 11 |- (z e. om -> (y e. om -> ((suc y +o z) = suc (y +o z) -> (suc y +o suc z) = suc (y +o suc z))))
6665a2d 15 . . . . . . . . . 10 |- (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))))
6725, 31, 37, 43, 50, 66finds 2397 . . . . . . . . 9 |- (B e. om -> (y e. om -> (suc y +o B) = suc (y +o B)))
6867imp 277 . . . . . . . 8 |- ((B e. om /\ y e. om) -> (suc y +o B) = suc (y +o B))
69 nnasuc 3168 . . . . . . . 8 |- ((B e. om /\ y e. om) -> (B +o suc y) = suc (B +o y))
7068, 69cleq12d 1115 . . . . . . 7 |- ((B e. om /\ y e. om) -> ((suc y +o B) = (B +o suc y) <-> suc (y +o B) = suc (B +o y)))
71 suceq 2288 . . . . . . 7 |- ((y +o B) = (B +o y) -> suc (y +o B) = suc (B +o y))
7270, 71syl5bir 184 . . . . . 6 |- ((B e. om /\ y e. om) -> ((y +o B) = (B +o y) -> (suc y +o B) = (B +o suc y)))
7372exp 291 . . . . 5 |- (B e. om -> (y e. om -> ((y +o B) = (B +o y) -> (suc y +o B