Metamath Proof Explorer


Theorem oarec

Description: Recursive definition of ordinal addition. Exercise 25 of Enderton p. 240. (Contributed by NM, 26-Dec-2004) (Revised by Mario Carneiro, 30-May-2015)

Ref Expression
Assertion oarec ⊢ A ∈ On ∧ B ∈ On → A + 𝑜 B = A ∪ ran ⁡ x ∈ B ⟼ A + 𝑜 x

Proof

Step Hyp Ref Expression
1 oveq2 ⊢ z = ∅ → A + 𝑜 z = A + 𝑜 ∅
2 mpteq1 ⊢ z = ∅ → x ∈ z ⟼ A + 𝑜 x = x ∈ ∅ ⟼ A + 𝑜 x
3 mpt0 ⊢ x ∈ ∅ ⟼ A + 𝑜 x = ∅
4 2 3 eqtrdi ⊢ z = ∅ → x ∈ z ⟼ A + 𝑜 x = ∅
5 4 rneqd ⊢ z = ∅ → ran ⁡ x ∈ z ⟼ A + 𝑜 x = ran ⁡ ∅
6 rn0 ⊢ ran ⁡ ∅ = ∅
7 5 6 eqtrdi ⊢ z = ∅ → ran ⁡ x ∈ z ⟼ A + 𝑜 x = ∅
8 7 uneq2d ⊢ z = ∅ → A ∪ ran ⁡ x ∈ z ⟼ A + 𝑜 x = A ∪ ∅
9 1 8 eqeq12d ⊢ z = ∅ → A + 𝑜 z = A ∪ ran ⁡ x ∈ z ⟼ A + 𝑜 x ↔ A + 𝑜 ∅ = A ∪ ∅
10 oveq2 ⊢ z = w → A + 𝑜 z = A + 𝑜 w
11 mpteq1 ⊢ z = w → x ∈ z ⟼ A + 𝑜 x = x ∈ w ⟼ A + 𝑜 x
12 11 rneqd ⊢ z = w → ran ⁡ x ∈ z ⟼ A + 𝑜 x = ran ⁡ x ∈ w ⟼ A + 𝑜 x
13 12 uneq2d ⊢ z = w → A ∪ ran ⁡ x ∈ z ⟼ A + 𝑜 x = A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x
14 10 13 eqeq12d ⊢ z = w → A + 𝑜 z = A ∪ ran ⁡ x ∈ z ⟼ A + 𝑜 x ↔ A + 𝑜 w = A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x
15 oveq2 ⊢ z = suc ⁡ w → A + 𝑜 z = A + 𝑜 suc ⁡ w
16 mpteq1 ⊢ z = suc ⁡ w → x ∈ z ⟼ A + 𝑜 x = x ∈ suc ⁡ w ⟼ A + 𝑜 x
17 16 rneqd ⊢ z = suc ⁡ w → ran ⁡ x ∈ z ⟼ A + 𝑜 x = ran ⁡ x ∈ suc ⁡ w ⟼ A + 𝑜 x
18 17 uneq2d ⊢ z = suc ⁡ w → A ∪ ran ⁡ x ∈ z ⟼ A + 𝑜 x = A ∪ ran ⁡ x ∈ suc ⁡ w ⟼ A + 𝑜 x
19 15 18 eqeq12d ⊢ z = suc ⁡ w → A + 𝑜 z = A ∪ ran ⁡ x ∈ z ⟼ A + 𝑜 x ↔ A + 𝑜 suc ⁡ w = A ∪ ran ⁡ x ∈ suc ⁡ w ⟼ A + 𝑜 x
20 oveq2 ⊢ z = B → A + 𝑜 z = A + 𝑜 B
21 mpteq1 ⊢ z = B → x ∈ z ⟼ A + 𝑜 x = x ∈ B ⟼ A + 𝑜 x
22 21 rneqd ⊢ z = B → ran ⁡ x ∈ z ⟼ A + 𝑜 x = ran ⁡ x ∈ B ⟼ A + 𝑜 x
23 22 uneq2d ⊢ z = B → A ∪ ran ⁡ x ∈ z ⟼ A + 𝑜 x = A ∪ ran ⁡ x ∈ B ⟼ A + 𝑜 x
24 20 23 eqeq12d ⊢ z = B → A + 𝑜 z = A ∪ ran ⁡ x ∈ z ⟼ A + 𝑜 x ↔ A + 𝑜 B = A ∪ ran ⁡ x ∈ B ⟼ A + 𝑜 x
25 oa0 ⊢ A ∈ On → A + 𝑜 ∅ = A
26 un0 ⊢ A ∪ ∅ = A
27 25 26 eqtr4di ⊢ A ∈ On → A + 𝑜 ∅ = A ∪ ∅
28 uneq1 ⊢ A + 𝑜 w = A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x → A + 𝑜 w ∪ A + 𝑜 w = A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x ∪ A + 𝑜 w
29 unass ⊢ A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x ∪ A + 𝑜 w = A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x ∪ A + 𝑜 w
30 rexun ⊢ ∃ x ∈ w ∪ w y = A + 𝑜 x ↔ ∃ x ∈ w y = A + 𝑜 x ∨ ∃ x ∈ w y = A + 𝑜 x
31 df-suc ⊢ suc ⁡ w = w ∪ w
32 31 rexeqi ⊢ ∃ x ∈ suc ⁡ w y = A + 𝑜 x ↔ ∃ x ∈ w ∪ w y = A + 𝑜 x
33 eqid ⊢ x ∈ w ⟼ A + 𝑜 x = x ∈ w ⟼ A + 𝑜 x
34 33 elrnmpt ⊢ y ∈ V → y ∈ ran ⁡ x ∈ w ⟼ A + 𝑜 x ↔ ∃ x ∈ w y = A + 𝑜 x
35 34 elv ⊢ y ∈ ran ⁡ x ∈ w ⟼ A + 𝑜 x ↔ ∃ x ∈ w y = A + 𝑜 x
36 velsn ⊢ y ∈ A + 𝑜 w ↔ y = A + 𝑜 w
37 vex ⊢ w ∈ V
38 oveq2 ⊢ x = w → A + 𝑜 x = A + 𝑜 w
39 38 eqeq2d ⊢ x = w → y = A + 𝑜 x ↔ y = A + 𝑜 w
40 37 39 rexsn ⊢ ∃ x ∈ w y = A + 𝑜 x ↔ y = A + 𝑜 w
41 36 40 bitr4i ⊢ y ∈ A + 𝑜 w ↔ ∃ x ∈ w y = A + 𝑜 x
42 35 41 orbi12i ⊢ y ∈ ran ⁡ x ∈ w ⟼ A + 𝑜 x ∨ y ∈ A + 𝑜 w ↔ ∃ x ∈ w y = A + 𝑜 x ∨ ∃ x ∈ w y = A + 𝑜 x
43 30 32 42 3bitr4i ⊢ ∃ x ∈ suc ⁡ w y = A + 𝑜 x ↔ y ∈ ran ⁡ x ∈ w ⟼ A + 𝑜 x ∨ y ∈ A + 𝑜 w
44 eqid ⊢ x ∈ suc ⁡ w ⟼ A + 𝑜 x = x ∈ suc ⁡ w ⟼ A + 𝑜 x
45 ovex ⊢ A + 𝑜 x ∈ V
46 44 45 elrnmpti ⊢ y ∈ ran ⁡ x ∈ suc ⁡ w ⟼ A + 𝑜 x ↔ ∃ x ∈ suc ⁡ w y = A + 𝑜 x
47 elun ⊢ y ∈ ran ⁡ x ∈ w ⟼ A + 𝑜 x ∪ A + 𝑜 w ↔ y ∈ ran ⁡ x ∈ w ⟼ A + 𝑜 x ∨ y ∈ A + 𝑜 w
48 43 46 47 3bitr4i ⊢ y ∈ ran ⁡ x ∈ suc ⁡ w ⟼ A + 𝑜 x ↔ y ∈ ran ⁡ x ∈ w ⟼ A + 𝑜 x ∪ A + 𝑜 w
49 48 eqriv ⊢ ran ⁡ x ∈ suc ⁡ w ⟼ A + 𝑜 x = ran ⁡ x ∈ w ⟼ A + 𝑜 x ∪ A + 𝑜 w
50 49 uneq2i ⊢ A ∪ ran ⁡ x ∈ suc ⁡ w ⟼ A + 𝑜 x = A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x ∪ A + 𝑜 w
51 29 50 eqtr4i ⊢ A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x ∪ A + 𝑜 w = A ∪ ran ⁡ x ∈ suc ⁡ w ⟼ A + 𝑜 x
52 28 51 eqtrdi ⊢ A + 𝑜 w = A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x → A + 𝑜 w ∪ A + 𝑜 w = A ∪ ran ⁡ x ∈ suc ⁡ w ⟼ A + 𝑜 x
53 oasuc ⊢ A ∈ On ∧ w ∈ On → A + 𝑜 suc ⁡ w = suc ⁡ A + 𝑜 w
54 df-suc ⊢ suc ⁡ A + 𝑜 w = A + 𝑜 w ∪ A + 𝑜 w
55 53 54 eqtrdi ⊢ A ∈ On ∧ w ∈ On → A + 𝑜 suc ⁡ w = A + 𝑜 w ∪ A + 𝑜 w
56 55 eqeq1d ⊢ A ∈ On ∧ w ∈ On → A + 𝑜 suc ⁡ w = A ∪ ran ⁡ x ∈ suc ⁡ w ⟼ A + 𝑜 x ↔ A + 𝑜 w ∪ A + 𝑜 w = A ∪ ran ⁡ x ∈ suc ⁡ w ⟼ A + 𝑜 x
57 52 56 imbitrrid ⊢ A ∈ On ∧ w ∈ On → A + 𝑜 w = A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x → A + 𝑜 suc ⁡ w = A ∪ ran ⁡ x ∈ suc ⁡ w ⟼ A + 𝑜 x
58 57 expcom ⊢ w ∈ On → A ∈ On → A + 𝑜 w = A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x → A + 𝑜 suc ⁡ w = A ∪ ran ⁡ x ∈ suc ⁡ w ⟼ A + 𝑜 x
59 vex ⊢ z ∈ V
60 oalim ⊢ A ∈ On ∧ z ∈ V ∧ Lim ⁡ z → A + 𝑜 z = ⋃ w ∈ z A + 𝑜 w
61 59 60 mpanr1 ⊢ A ∈ On ∧ Lim ⁡ z → A + 𝑜 z = ⋃ w ∈ z A + 𝑜 w
62 61 ancoms ⊢ Lim ⁡ z ∧ A ∈ On → A + 𝑜 z = ⋃ w ∈ z A + 𝑜 w
63 62 adantr ⊢ Lim ⁡ z ∧ A ∈ On ∧ ∀ w ∈ z A + 𝑜 w = A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x → A + 𝑜 z = ⋃ w ∈ z A + 𝑜 w
64 iuneq2 ⊢ ∀ w ∈ z A + 𝑜 w = A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x → ⋃ w ∈ z A + 𝑜 w = ⋃ w ∈ z A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x
65 64 adantl ⊢ Lim ⁡ z ∧ A ∈ On ∧ ∀ w ∈ z A + 𝑜 w = A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x → ⋃ w ∈ z A + 𝑜 w = ⋃ w ∈ z A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x
66 iunun ⊢ ⋃ w ∈ z A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x = ⋃ w ∈ z A ∪ ⋃ w ∈ z ran ⁡ x ∈ w ⟼ A + 𝑜 x
67 0ellim ⊢ Lim ⁡ z → ∅ ∈ z
68 ne0i ⊢ ∅ ∈ z → z ≠ ∅
69 iunconst ⊢ z ≠ ∅ → ⋃ w ∈ z A = A
70 67 68 69 3syl ⊢ Lim ⁡ z → ⋃ w ∈ z A = A
71 df-rex ⊢ ∃ x ∈ w y = A + 𝑜 x ↔ ∃ x x ∈ w ∧ y = A + 𝑜 x
72 35 71 bitri ⊢ y ∈ ran ⁡ x ∈ w ⟼ A + 𝑜 x ↔ ∃ x x ∈ w ∧ y = A + 𝑜 x
73 72 rexbii ⊢ ∃ w ∈ z y ∈ ran ⁡ x ∈ w ⟼ A + 𝑜 x ↔ ∃ w ∈ z ∃ x x ∈ w ∧ y = A + 𝑜 x
74 eluni2 ⊢ x ∈ ⋃ z ↔ ∃ w ∈ z x ∈ w
75 74 anbi1i ⊢ x ∈ ⋃ z ∧ y = A + 𝑜 x ↔ ∃ w ∈ z x ∈ w ∧ y = A + 𝑜 x
76 r19.41v ⊢ ∃ w ∈ z x ∈ w ∧ y = A + 𝑜 x ↔ ∃ w ∈ z x ∈ w ∧ y = A + 𝑜 x
77 75 76 bitr4i ⊢ x ∈ ⋃ z ∧ y = A + 𝑜 x ↔ ∃ w ∈ z x ∈ w ∧ y = A + 𝑜 x
78 77 exbii ⊢ ∃ x x ∈ ⋃ z ∧ y = A + 𝑜 x ↔ ∃ x ∃ w ∈ z x ∈ w ∧ y = A + 𝑜 x
79 df-rex ⊢ ∃ x ∈ ⋃ z y = A + 𝑜 x ↔ ∃ x x ∈ ⋃ z ∧ y = A + 𝑜 x
80 rexcom4 ⊢ ∃ w ∈ z ∃ x x ∈ w ∧ y = A + 𝑜 x ↔ ∃ x ∃ w ∈ z x ∈ w ∧ y = A + 𝑜 x
81 78 79 80 3bitr4i ⊢ ∃ x ∈ ⋃ z y = A + 𝑜 x ↔ ∃ w ∈ z ∃ x x ∈ w ∧ y = A + 𝑜 x
82 73 81 bitr4i ⊢ ∃ w ∈ z y ∈ ran ⁡ x ∈ w ⟼ A + 𝑜 x ↔ ∃ x ∈ ⋃ z y = A + 𝑜 x
83 limuni ⊢ Lim ⁡ z → z = ⋃ z
84 83 rexeqdv ⊢ Lim ⁡ z → ∃ x ∈ z y = A + 𝑜 x ↔ ∃ x ∈ ⋃ z y = A + 𝑜 x
85 82 84 bitr4id ⊢ Lim ⁡ z → ∃ w ∈ z y ∈ ran ⁡ x ∈ w ⟼ A + 𝑜 x ↔ ∃ x ∈ z y = A + 𝑜 x
86 eliun ⊢ y ∈ ⋃ w ∈ z ran ⁡ x ∈ w ⟼ A + 𝑜 x ↔ ∃ w ∈ z y ∈ ran ⁡ x ∈ w ⟼ A + 𝑜 x
87 eqid ⊢ x ∈ z ⟼ A + 𝑜 x = x ∈ z ⟼ A + 𝑜 x
88 87 45 elrnmpti ⊢ y ∈ ran ⁡ x ∈ z ⟼ A + 𝑜 x ↔ ∃ x ∈ z y = A + 𝑜 x
89 85 86 88 3bitr4g ⊢ Lim ⁡ z → y ∈ ⋃ w ∈ z ran ⁡ x ∈ w ⟼ A + 𝑜 x ↔ y ∈ ran ⁡ x ∈ z ⟼ A + 𝑜 x
90 89 eqrdv ⊢ Lim ⁡ z → ⋃ w ∈ z ran ⁡ x ∈ w ⟼ A + 𝑜 x = ran ⁡ x ∈ z ⟼ A + 𝑜 x
91 70 90 uneq12d ⊢ Lim ⁡ z → ⋃ w ∈ z A ∪ ⋃ w ∈ z ran ⁡ x ∈ w ⟼ A + 𝑜 x = A ∪ ran ⁡ x ∈ z ⟼ A + 𝑜 x
92 66 91 eqtrid ⊢ Lim ⁡ z → ⋃ w ∈ z A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x = A ∪ ran ⁡ x ∈ z ⟼ A + 𝑜 x
93 92 ad2antrr ⊢ Lim ⁡ z ∧ A ∈ On ∧ ∀ w ∈ z A + 𝑜 w = A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x → ⋃ w ∈ z A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x = A ∪ ran ⁡ x ∈ z ⟼ A + 𝑜 x
94 63 65 93 3eqtrd ⊢ Lim ⁡ z ∧ A ∈ On ∧ ∀ w ∈ z A + 𝑜 w = A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x → A + 𝑜 z = A ∪ ran ⁡ x ∈ z ⟼ A + 𝑜 x
95 94 exp31 ⊢ Lim ⁡ z → A ∈ On → ∀ w ∈ z A + 𝑜 w = A ∪ ran ⁡ x ∈ w ⟼ A + 𝑜 x → A + 𝑜 z = A ∪ ran ⁡ x ∈ z ⟼ A + 𝑜 x
96 9 14 19 24 27 58 95 tfinds3 ⊢ B ∈ On → A ∈ On → A + 𝑜 B = A ∪ ran ⁡ x ∈ B ⟼ A + 𝑜 x
97 96 impcom ⊢ A ∈ On ∧ B ∈ On → A + 𝑜 B = A ∪ ran ⁡ x ∈ B ⟼ A + 𝑜 x