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

Theorem nnacom 3175
Description: Addition of natural numbers is commutative. Theorem 4K(2) of [Enderton] p. 81.
Assertion
Ref Expression
nnacom ((A ∈ ω ∧ B ∈ ω) → (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 ∈ ω → (x +o B) = (B +o x)) ↔ (B ∈ ω → (∅ +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 ∈ ω → (x +o B) = (B +o x)) ↔ (B ∈ ω → (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 ∈ ω → (x +o B) = (B +o x)) ↔ (B ∈ ω → (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 ∈ ω → (x +o B) = (B +o x)) ↔ (B ∈ ω → (A +o B) = (B +o A))))
17 nna0r 3170 . . . 4 (B ∈ ω → (∅ +o B) = B)
18 nna0 3166 . . . 4 (B ∈ ω → (B +o ∅) = B)
1917, 18eqtr4d 1131 . . 3 (B ∈ ω → (∅ +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 ∈ ω → (suc y +o x) = suc (y +o x)) ↔ (y ∈ ω → (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 ∈ ω → (suc y +o x) = suc (y +o x)) ↔ (y ∈ ω → (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 ∈ ω → (suc y +o x) = suc (y +o x)) ↔ (y ∈ ω → (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 ∈ ω → (suc y +o x) = suc (y +o x)) ↔ (y ∈ ω → (suc y +o B) = suc (y +o B))))
44 peano2b 2388 . . . . . . . . . . . 12 (y ∈ ω ↔ suc y ∈ ω)
45 nna0 3166 . . . . . . . . . . . 12 (suc y ∈ ω → (suc y +o ∅) = suc y)
4644, 45sylbi 174 . . . . . . . . . . 11 (y ∈ ω → (suc y +o ∅) = suc y)
47 nna0 3166 . . . . . . . . . . . 12 (y ∈ ω → (y +o ∅) = y)
48 suceq 2288 . . . . . . . . . . . 12 ((y +o ∅) = y → suc (y +o ∅) = suc y)
4947, 48syl 12 . . . . . . . . . . 11 (y ∈ ω → suc (y +o ∅) = suc y)
5046, 49eqtr4d 1131 . . . . . . . . . 10 (y ∈ ω → (suc y +o ∅) = suc (y +o ∅))
51 oasuc 3131 . . . . . . . . . . . . . . . 16 ((suc y ∈ On ∧ z ∈ On) → (suc y +o suc z) = suc (suc y +o z))
52 nnont 2379 . . . . . . . . . . . . . . . . 17 (y ∈ ω → y ∈ On)
53 suceloni 2314 . . . . . . . . . . . . . . . . 17 (y ∈ On → suc y ∈ On)
5452, 53syl 12 . . . . . . . . . . . . . . . 16 (y ∈ ω → suc y ∈ On)
55 nnont 2379 . . . . . . . . . . . . . . . 16 (z ∈ ω → z ∈ On)
5651, 54, 55syl2an 349 . . . . . . . . . . . . . . 15 ((y ∈ ω ∧ z ∈ ω) → (suc y +o suc z) = suc (suc y +o z))
5752, 55anim12i 268 . . . . . . . . . . . . . . . 16 ((y ∈ ω ∧ z ∈ ω) → (y ∈ On ∧ z ∈ On))
58 oasuc 3131 . . . . . . . . . . . . . . . 16 ((y ∈ On ∧ z ∈ 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 ∈ ω ∧ z ∈ ω) → suc (y +o suc z) = suc suc (y +o z))
6156, 60cleq12d 1115 . . . . . . . . . . . . . 14 ((y ∈ ω ∧ z ∈ ω) → ((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 ∈ ω ∧ z ∈ ω) → ((suc y +o z) = suc (y +o z) → (suc y +o suc z) = suc (y +o suc z)))
6463exp 291 . . . . . . . . . . . 12 (y ∈ ω → (z ∈ ω → ((suc y +o z) = suc (y +o z) → (suc y +o suc z) = suc (y +o suc z))))
6564com12 13 . . . . . . . . . . 11 (z ∈ ω → (y ∈ ω → ((suc y +o z) = suc (y +o z) → (suc y +o suc z) = suc (y +o suc z))))
6665a2d 15 . . . . . . . . . 10 (z ∈ ω → ((y ∈ ω → (suc y +o z) = suc (y +o z)) → (y ∈ ω → (suc y +o suc z) = suc (y +o suc z))))
6725, 31, 37, 43, 50, 66finds 2397 . . . . . . . . 9 (B ∈ ω → (y ∈ ω → (suc y +o B) = suc (y +o B)))
6867imp 277 . . . . . . . 8 ((B ∈ ω ∧ y ∈ ω) → (suc y +o B) = suc (y +o B))
69 nnasuc 3168 . . . . . . . 8 ((B ∈ ω ∧ y ∈ ω) → (B +o suc y) = suc (B +o y))
7068, 69cleq12d 1115 . . . . . . 7 ((B ∈ ω ∧ y ∈ ω) → ((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 ∈ ω ∧ y ∈ ω) → ((y +o B) = (B +o y) → (suc y +o B) = (B +o suc y)))
7372exp 291 . . . . 5 (B ∈ ω → (y ∈ ω → ((y +o B) = (B +o y) → (suc y +o B) = (B +o suc y))))
7473com12 13 . . . 4 (y ∈ ω → (B ∈ ω → ((y +o B) = (B +o y) → (suc y +o B) = (B +o suc y))))
7574a2d 15 . . 3 (y ∈ ω → ((B ∈ ω → (y +o B) = (B +o y)) → (B ∈ ω → (suc y +o B) = (B +o suc y))))
764, 8, 12, 16, 19, 75finds 2397 . 2 (A ∈ ω → (B ∈ ω → (A +o B) = (B +o A)))
7776imp 277 1 ((A ∈ ω ∧ B ∈ ω) → (A +o B) = (B +o A))
Colors of variables: wff set class
Syntax hints:   → wi 2   ∧ wa 196   = weq 797   = wceq 1091   ∈ wcel 1092  ∅c0 1707  Oncon0 2199  suc csuc 2201  ωcom 2372  (class class class)co 3001   +o coa 3101
This theorem is referenced by:  nnaordr 3178  nnmsucr 3182  nnaword2 3187  addcompi 3816
This theorem was proved from axioms:  ax-1 3  ax-2 4  ax-3 5  ax-mp 6  ax-4 673  ax-5 674  ax-6 675  ax-7 676  ax-gen 677  ax-8 798  ax-9 799  ax-10 800  ax-11 801  ax-12 802  ax-13 804  ax-14 805  ax-16 922  ax-17 925  ax-ext 1074  ax-rep 1075  ax-un 1076  ax-pow 1077
This theorem depends on definitions:  df-bi 128  df-or 197  df-an 198  df-3or 582  df-3an 583  df-ex 679  df-sb 853  df-eu 1009  df-mo 1010  df-clab 1093  df-cleq 1097  df-clel 1099  df-ral 1205  df-rex 1206  df-rab 1208  df-v 1349  df-sbc 1441  df-dif 1489  df-un 1490  df-in 1491  df-ss 1492  df-nul 1708  df-if 1777  df-pw 1799  df-sn 1811  df-pr 1812  df-tp 1814  df-op 1815  df-uni 1920  df-iun 1996  df-tr 2042  df-br 2063  df-opab 2098  df-eprel 2122  df-id 2125  df-po 2128  df-so 2138  df-fr 2169  df-we 2186  df-ord 2202  df-on 2203  df-lim 2204  df-suc 2205  df-om 2373  df-xp 2424  df-rel 2425  df-cnv 2426  df-co 2427  df-dm 2428  df-rn 2429  df-res 2430  df-ima 2431  df-fun 2432  df-fn 2433  df-fv 2438  df-rdg 2970  df-opr 3003  df-oprab 3004  df-oadd 3106
metamath.org