Metamath Proof Explorer


Theorem nnacom

Description: Addition of natural numbers is commutative. Theorem 4K(2) of Enderton p. 81. (Contributed by NM, 6-May-1995) (Revised by Mario Carneiro, 15-Nov-2014)

Ref Expression
Assertion nnacom ⊢ A ∈ ω ∧ B ∈ ω → A + 𝑜 B = B + 𝑜 A

Proof

Step Hyp Ref Expression
1 oveq1 ⊢ x = A → x + 𝑜 B = A + 𝑜 B
2 oveq2 ⊢ x = A → B + 𝑜 x = B + 𝑜 A
3 1 2 eqeq12d ⊢ x = A → x + 𝑜 B = B + 𝑜 x ↔ A + 𝑜 B = B + 𝑜 A
4 3 imbi2d ⊢ x = A → B ∈ ω → x + 𝑜 B = B + 𝑜 x ↔ B ∈ ω → A + 𝑜 B = B + 𝑜 A
5 oveq1 ⊢ x = ∅ → x + 𝑜 B = ∅ + 𝑜 B
6 oveq2 ⊢ x = ∅ → B + 𝑜 x = B + 𝑜 ∅
7 5 6 eqeq12d ⊢ x = ∅ → x + 𝑜 B = B + 𝑜 x ↔ ∅ + 𝑜 B = B + 𝑜 ∅
8 oveq1 ⊢ x = y → x + 𝑜 B = y + 𝑜 B
9 oveq2 ⊢ x = y → B + 𝑜 x = B + 𝑜 y
10 8 9 eqeq12d ⊢ x = y → x + 𝑜 B = B + 𝑜 x ↔ y + 𝑜 B = B + 𝑜 y
11 oveq1 ⊢ x = suc ⁡ y → x + 𝑜 B = suc ⁡ y + 𝑜 B
12 oveq2 ⊢ x = suc ⁡ y → B + 𝑜 x = B + 𝑜 suc ⁡ y
13 11 12 eqeq12d ⊢ x = suc ⁡ y → x + 𝑜 B = B + 𝑜 x ↔ suc ⁡ y + 𝑜 B = B + 𝑜 suc ⁡ y
14 nna0r ⊢ B ∈ ω → ∅ + 𝑜 B = B
15 nna0 ⊢ B ∈ ω → B + 𝑜 ∅ = B
16 14 15 eqtr4d ⊢ B ∈ ω → ∅ + 𝑜 B = B + 𝑜 ∅
17 suceq ⊢ y + 𝑜 B = B + 𝑜 y → suc ⁡ y + 𝑜 B = suc ⁡ B + 𝑜 y
18 oveq2 ⊢ x = B → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 B
19 oveq2 ⊢ x = B → y + 𝑜 x = y + 𝑜 B
20 suceq ⊢ y + 𝑜 x = y + 𝑜 B → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 B
21 19 20 syl ⊢ x = B → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 B
22 18 21 eqeq12d ⊢ x = B → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 x ↔ suc ⁡ y + 𝑜 B = suc ⁡ y + 𝑜 B
23 22 imbi2d ⊢ x = B → y ∈ ω → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 x ↔ y ∈ ω → suc ⁡ y + 𝑜 B = suc ⁡ y + 𝑜 B
24 oveq2 ⊢ x = ∅ → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 ∅
25 oveq2 ⊢ x = ∅ → y + 𝑜 x = y + 𝑜 ∅
26 suceq ⊢ y + 𝑜 x = y + 𝑜 ∅ → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 ∅
27 25 26 syl ⊢ x = ∅ → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 ∅
28 24 27 eqeq12d ⊢ x = ∅ → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 x ↔ suc ⁡ y + 𝑜 ∅ = suc ⁡ y + 𝑜 ∅
29 oveq2 ⊢ x = z → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 z
30 oveq2 ⊢ x = z → y + 𝑜 x = y + 𝑜 z
31 suceq ⊢ y + 𝑜 x = y + 𝑜 z → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 z
32 30 31 syl ⊢ x = z → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 z
33 29 32 eqeq12d ⊢ x = z → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 x ↔ suc ⁡ y + 𝑜 z = suc ⁡ y + 𝑜 z
34 oveq2 ⊢ x = suc ⁡ z → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 suc ⁡ z
35 oveq2 ⊢ x = suc ⁡ z → y + 𝑜 x = y + 𝑜 suc ⁡ z
36 suceq ⊢ y + 𝑜 x = y + 𝑜 suc ⁡ z → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 suc ⁡ z
37 35 36 syl ⊢ x = suc ⁡ z → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 suc ⁡ z
38 34 37 eqeq12d ⊢ x = suc ⁡ z → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 x ↔ suc ⁡ y + 𝑜 suc ⁡ z = suc ⁡ y + 𝑜 suc ⁡ z
39 peano2 ⊢ y ∈ ω → suc ⁡ y ∈ ω
40 nna0 ⊢ suc ⁡ y ∈ ω → suc ⁡ y + 𝑜 ∅ = suc ⁡ y
41 39 40 syl ⊢ y ∈ ω → suc ⁡ y + 𝑜 ∅ = suc ⁡ y
42 nna0 ⊢ y ∈ ω → y + 𝑜 ∅ = y
43 suceq ⊢ y + 𝑜 ∅ = y → suc ⁡ y + 𝑜 ∅ = suc ⁡ y
44 42 43 syl ⊢ y ∈ ω → suc ⁡ y + 𝑜 ∅ = suc ⁡ y
45 41 44 eqtr4d ⊢ y ∈ ω → suc ⁡ y + 𝑜 ∅ = suc ⁡ y + 𝑜 ∅
46 suceq ⊢ suc ⁡ y + 𝑜 z = suc ⁡ y + 𝑜 z → suc ⁡ suc ⁡ y + 𝑜 z = suc ⁡ suc ⁡ y + 𝑜 z
47 nnasuc ⊢ suc ⁡ y ∈ ω ∧ z ∈ ω → suc ⁡ y + 𝑜 suc ⁡ z = suc ⁡ suc ⁡ y + 𝑜 z
48 39 47 sylan ⊢ y ∈ ω ∧ z ∈ ω → suc ⁡ y + 𝑜 suc ⁡ z = suc ⁡ suc ⁡ y + 𝑜 z
49 nnasuc ⊢ y ∈ ω ∧ z ∈ ω → y + 𝑜 suc ⁡ z = suc ⁡ y + 𝑜 z
50 suceq ⊢ y + 𝑜 suc ⁡ z = suc ⁡ y + 𝑜 z → suc ⁡ y + 𝑜 suc ⁡ z = suc ⁡ suc ⁡ y + 𝑜 z
51 49 50 syl ⊢ y ∈ ω ∧ z ∈ ω → suc ⁡ y + 𝑜 suc ⁡ z = suc ⁡ suc ⁡ y + 𝑜 z
52 48 51 eqeq12d ⊢ y ∈ ω ∧ z ∈ ω → suc ⁡ y + 𝑜 suc ⁡ z = suc ⁡ y + 𝑜 suc ⁡ z ↔ suc ⁡ suc ⁡ y + 𝑜 z = suc ⁡ suc ⁡ y + 𝑜 z
53 46 52 imbitrrid ⊢ y ∈ ω ∧ z ∈ ω → suc ⁡ y + 𝑜 z = suc ⁡ y + 𝑜 z → suc ⁡ y + 𝑜 suc ⁡ z = suc ⁡ y + 𝑜 suc ⁡ z
54 53 expcom ⊢ z ∈ ω → y ∈ ω → suc ⁡ y + 𝑜 z = suc ⁡ y + 𝑜 z → suc ⁡ y + 𝑜 suc ⁡ z = suc ⁡ y + 𝑜 suc ⁡ z
55 28 33 38 45 54 finds2 ⊢ x ∈ ω → y ∈ ω → suc ⁡ y + 𝑜 x = suc ⁡ y + 𝑜 x
56 23 55 vtoclga ⊢ B ∈ ω → y ∈ ω → suc ⁡ y + 𝑜 B = suc ⁡ y + 𝑜 B
57 56 imp ⊢ B ∈ ω ∧ y ∈ ω → suc ⁡ y + 𝑜 B = suc ⁡ y + 𝑜 B
58 nnasuc ⊢ B ∈ ω ∧ y ∈ ω → B + 𝑜 suc ⁡ y = suc ⁡ B + 𝑜 y
59 57 58 eqeq12d ⊢ B ∈ ω ∧ y ∈ ω → suc ⁡ y + 𝑜 B = B + 𝑜 suc ⁡ y ↔ suc ⁡ y + 𝑜 B = suc ⁡ B + 𝑜 y
60 17 59 imbitrrid ⊢ B ∈ ω ∧ y ∈ ω → y + 𝑜 B = B + 𝑜 y → suc ⁡ y + 𝑜 B = B + 𝑜 suc ⁡ y
61 60 expcom ⊢ y ∈ ω → B ∈ ω → y + 𝑜 B = B + 𝑜 y → suc ⁡ y + 𝑜 B = B + 𝑜 suc ⁡ y
62 7 10 13 16 61 finds2 ⊢ x ∈ ω → B ∈ ω → x + 𝑜 B = B + 𝑜 x
63 4 62 vtoclga ⊢ A ∈ ω → B ∈ ω → A + 𝑜 B = B + 𝑜 A
64 63 imp ⊢ A ∈ ω ∧ B ∈ ω → A + 𝑜 B = B + 𝑜 A