Metamath Proof Explorer


Theorem oaass

Description: Ordinal addition is associative. Theorem 25 of Suppes p. 211. (Contributed by NM, 10-Dec-2004)

Ref Expression
Assertion oaass ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ On ) → ( ( 𝐴 +o 𝐵 ) +o 𝐶 ) = ( 𝐴 +o ( 𝐵 +o 𝐶 ) ) )

Proof

Step Hyp Ref Expression
1 oveq2 ( 𝑥 = ∅ → ( ( 𝐴 +o 𝐵 ) +o 𝑥 ) = ( ( 𝐴 +o 𝐵 ) +o ∅ ) )
2 oveq2 ( 𝑥 = ∅ → ( 𝐵 +o 𝑥 ) = ( 𝐵 +o ∅ ) )
3 2 oveq2d ( 𝑥 = ∅ → ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) = ( 𝐴 +o ( 𝐵 +o ∅ ) ) )
4 1 3 eqeq12d ( 𝑥 = ∅ → ( ( ( 𝐴 +o 𝐵 ) +o 𝑥 ) = ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) ↔ ( ( 𝐴 +o 𝐵 ) +o ∅ ) = ( 𝐴 +o ( 𝐵 +o ∅ ) ) ) )
5 oveq2 ( 𝑥 = 𝑦 → ( ( 𝐴 +o 𝐵 ) +o 𝑥 ) = ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) )
6 oveq2 ( 𝑥 = 𝑦 → ( 𝐵 +o 𝑥 ) = ( 𝐵 +o 𝑦 ) )
7 6 oveq2d ( 𝑥 = 𝑦 → ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) = ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
8 5 7 eqeq12d ( 𝑥 = 𝑦 → ( ( ( 𝐴 +o 𝐵 ) +o 𝑥 ) = ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) ↔ ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) = ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) )
9 oveq2 ( 𝑥 = suc 𝑦 → ( ( 𝐴 +o 𝐵 ) +o 𝑥 ) = ( ( 𝐴 +o 𝐵 ) +o suc 𝑦 ) )
10 oveq2 ( 𝑥 = suc 𝑦 → ( 𝐵 +o 𝑥 ) = ( 𝐵 +o suc 𝑦 ) )
11 10 oveq2d ( 𝑥 = suc 𝑦 → ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) = ( 𝐴 +o ( 𝐵 +o suc 𝑦 ) ) )
12 9 11 eqeq12d ( 𝑥 = suc 𝑦 → ( ( ( 𝐴 +o 𝐵 ) +o 𝑥 ) = ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) ↔ ( ( 𝐴 +o 𝐵 ) +o suc 𝑦 ) = ( 𝐴 +o ( 𝐵 +o suc 𝑦 ) ) ) )
13 oveq2 ( 𝑥 = 𝐶 → ( ( 𝐴 +o 𝐵 ) +o 𝑥 ) = ( ( 𝐴 +o 𝐵 ) +o 𝐶 ) )
14 oveq2 ( 𝑥 = 𝐶 → ( 𝐵 +o 𝑥 ) = ( 𝐵 +o 𝐶 ) )
15 14 oveq2d ( 𝑥 = 𝐶 → ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) = ( 𝐴 +o ( 𝐵 +o 𝐶 ) ) )
16 13 15 eqeq12d ( 𝑥 = 𝐶 → ( ( ( 𝐴 +o 𝐵 ) +o 𝑥 ) = ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) ↔ ( ( 𝐴 +o 𝐵 ) +o 𝐶 ) = ( 𝐴 +o ( 𝐵 +o 𝐶 ) ) ) )
17 oacl ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐴 +o 𝐵 ) ∈ On )
18 oa0 ( ( 𝐴 +o 𝐵 ) ∈ On → ( ( 𝐴 +o 𝐵 ) +o ∅ ) = ( 𝐴 +o 𝐵 ) )
19 17 18 syl ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝐴 +o 𝐵 ) +o ∅ ) = ( 𝐴 +o 𝐵 ) )
20 oa0 ( 𝐵 ∈ On → ( 𝐵 +o ∅ ) = 𝐵 )
21 20 oveq2d ( 𝐵 ∈ On → ( 𝐴 +o ( 𝐵 +o ∅ ) ) = ( 𝐴 +o 𝐵 ) )
22 21 adantl ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐴 +o ( 𝐵 +o ∅ ) ) = ( 𝐴 +o 𝐵 ) )
23 19 22 eqtr4d ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝐴 +o 𝐵 ) +o ∅ ) = ( 𝐴 +o ( 𝐵 +o ∅ ) ) )
24 suceq ( ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) = ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) → suc ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) = suc ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
25 oasuc ( ( ( 𝐴 +o 𝐵 ) ∈ On ∧ 𝑦 ∈ On ) → ( ( 𝐴 +o 𝐵 ) +o suc 𝑦 ) = suc ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) )
26 17 25 sylan ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑦 ∈ On ) → ( ( 𝐴 +o 𝐵 ) +o suc 𝑦 ) = suc ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) )
27 oasuc ( ( 𝐵 ∈ On ∧ 𝑦 ∈ On ) → ( 𝐵 +o suc 𝑦 ) = suc ( 𝐵 +o 𝑦 ) )
28 27 oveq2d ( ( 𝐵 ∈ On ∧ 𝑦 ∈ On ) → ( 𝐴 +o ( 𝐵 +o suc 𝑦 ) ) = ( 𝐴 +o suc ( 𝐵 +o 𝑦 ) ) )
29 28 adantl ( ( 𝐴 ∈ On ∧ ( 𝐵 ∈ On ∧ 𝑦 ∈ On ) ) → ( 𝐴 +o ( 𝐵 +o suc 𝑦 ) ) = ( 𝐴 +o suc ( 𝐵 +o 𝑦 ) ) )
30 oacl ( ( 𝐵 ∈ On ∧ 𝑦 ∈ On ) → ( 𝐵 +o 𝑦 ) ∈ On )
31 oasuc ( ( 𝐴 ∈ On ∧ ( 𝐵 +o 𝑦 ) ∈ On ) → ( 𝐴 +o suc ( 𝐵 +o 𝑦 ) ) = suc ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
32 30 31 sylan2 ( ( 𝐴 ∈ On ∧ ( 𝐵 ∈ On ∧ 𝑦 ∈ On ) ) → ( 𝐴 +o suc ( 𝐵 +o 𝑦 ) ) = suc ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
33 29 32 eqtrd ( ( 𝐴 ∈ On ∧ ( 𝐵 ∈ On ∧ 𝑦 ∈ On ) ) → ( 𝐴 +o ( 𝐵 +o suc 𝑦 ) ) = suc ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
34 33 anassrs ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑦 ∈ On ) → ( 𝐴 +o ( 𝐵 +o suc 𝑦 ) ) = suc ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
35 26 34 eqeq12d ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑦 ∈ On ) → ( ( ( 𝐴 +o 𝐵 ) +o suc 𝑦 ) = ( 𝐴 +o ( 𝐵 +o suc 𝑦 ) ) ↔ suc ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) = suc ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) )
36 24 35 syl5ibr ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑦 ∈ On ) → ( ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) = ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) → ( ( 𝐴 +o 𝐵 ) +o suc 𝑦 ) = ( 𝐴 +o ( 𝐵 +o suc 𝑦 ) ) ) )
37 36 expcom ( 𝑦 ∈ On → ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) = ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) → ( ( 𝐴 +o 𝐵 ) +o suc 𝑦 ) = ( 𝐴 +o ( 𝐵 +o suc 𝑦 ) ) ) ) )
38 iuneq2 ( ∀ 𝑦𝑥 ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) = ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) → 𝑦𝑥 ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) = 𝑦𝑥 ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
39 38 adantl ( ( ( Lim 𝑥 ∧ ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ) ∧ ∀ 𝑦𝑥 ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) = ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) → 𝑦𝑥 ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) = 𝑦𝑥 ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
40 vex 𝑥 ∈ V
41 oalim ( ( ( 𝐴 +o 𝐵 ) ∈ On ∧ ( 𝑥 ∈ V ∧ Lim 𝑥 ) ) → ( ( 𝐴 +o 𝐵 ) +o 𝑥 ) = 𝑦𝑥 ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) )
42 40 41 mpanr1 ( ( ( 𝐴 +o 𝐵 ) ∈ On ∧ Lim 𝑥 ) → ( ( 𝐴 +o 𝐵 ) +o 𝑥 ) = 𝑦𝑥 ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) )
43 17 42 sylan ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ Lim 𝑥 ) → ( ( 𝐴 +o 𝐵 ) +o 𝑥 ) = 𝑦𝑥 ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) )
44 43 ancoms ( ( Lim 𝑥 ∧ ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ) → ( ( 𝐴 +o 𝐵 ) +o 𝑥 ) = 𝑦𝑥 ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) )
45 44 adantr ( ( ( Lim 𝑥 ∧ ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ) ∧ ∀ 𝑦𝑥 ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) = ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) → ( ( 𝐴 +o 𝐵 ) +o 𝑥 ) = 𝑦𝑥 ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) )
46 oalimcl ( ( 𝐵 ∈ On ∧ ( 𝑥 ∈ V ∧ Lim 𝑥 ) ) → Lim ( 𝐵 +o 𝑥 ) )
47 40 46 mpanr1 ( ( 𝐵 ∈ On ∧ Lim 𝑥 ) → Lim ( 𝐵 +o 𝑥 ) )
48 47 ancoms ( ( Lim 𝑥𝐵 ∈ On ) → Lim ( 𝐵 +o 𝑥 ) )
49 ovex ( 𝐵 +o 𝑥 ) ∈ V
50 oalim ( ( 𝐴 ∈ On ∧ ( ( 𝐵 +o 𝑥 ) ∈ V ∧ Lim ( 𝐵 +o 𝑥 ) ) ) → ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) = 𝑧 ∈ ( 𝐵 +o 𝑥 ) ( 𝐴 +o 𝑧 ) )
51 49 50 mpanr1 ( ( 𝐴 ∈ On ∧ Lim ( 𝐵 +o 𝑥 ) ) → ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) = 𝑧 ∈ ( 𝐵 +o 𝑥 ) ( 𝐴 +o 𝑧 ) )
52 48 51 sylan2 ( ( 𝐴 ∈ On ∧ ( Lim 𝑥𝐵 ∈ On ) ) → ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) = 𝑧 ∈ ( 𝐵 +o 𝑥 ) ( 𝐴 +o 𝑧 ) )
53 limelon ( ( 𝑥 ∈ V ∧ Lim 𝑥 ) → 𝑥 ∈ On )
54 40 53 mpan ( Lim 𝑥𝑥 ∈ On )
55 oacl ( ( 𝐵 ∈ On ∧ 𝑥 ∈ On ) → ( 𝐵 +o 𝑥 ) ∈ On )
56 55 ancoms ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐵 +o 𝑥 ) ∈ On )
57 onelon ( ( ( 𝐵 +o 𝑥 ) ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) → 𝑧 ∈ On )
58 57 ex ( ( 𝐵 +o 𝑥 ) ∈ On → ( 𝑧 ∈ ( 𝐵 +o 𝑥 ) → 𝑧 ∈ On ) )
59 56 58 syl ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) → ( 𝑧 ∈ ( 𝐵 +o 𝑥 ) → 𝑧 ∈ On ) )
60 59 adantld ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝐴 ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) → 𝑧 ∈ On ) )
61 60 adantl ( ( Lim 𝑥 ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) → ( ( 𝐴 ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) → 𝑧 ∈ On ) )
62 0ellim ( Lim 𝑥 → ∅ ∈ 𝑥 )
63 onelss ( 𝐵 ∈ On → ( 𝑧𝐵𝑧𝐵 ) )
64 20 sseq2d ( 𝐵 ∈ On → ( 𝑧 ⊆ ( 𝐵 +o ∅ ) ↔ 𝑧𝐵 ) )
65 63 64 sylibrd ( 𝐵 ∈ On → ( 𝑧𝐵𝑧 ⊆ ( 𝐵 +o ∅ ) ) )
66 65 imp ( ( 𝐵 ∈ On ∧ 𝑧𝐵 ) → 𝑧 ⊆ ( 𝐵 +o ∅ ) )
67 oveq2 ( 𝑦 = ∅ → ( 𝐵 +o 𝑦 ) = ( 𝐵 +o ∅ ) )
68 67 sseq2d ( 𝑦 = ∅ → ( 𝑧 ⊆ ( 𝐵 +o 𝑦 ) ↔ 𝑧 ⊆ ( 𝐵 +o ∅ ) ) )
69 68 rspcev ( ( ∅ ∈ 𝑥𝑧 ⊆ ( 𝐵 +o ∅ ) ) → ∃ 𝑦𝑥 𝑧 ⊆ ( 𝐵 +o 𝑦 ) )
70 62 66 69 syl2an ( ( Lim 𝑥 ∧ ( 𝐵 ∈ On ∧ 𝑧𝐵 ) ) → ∃ 𝑦𝑥 𝑧 ⊆ ( 𝐵 +o 𝑦 ) )
71 70 expr ( ( Lim 𝑥𝐵 ∈ On ) → ( 𝑧𝐵 → ∃ 𝑦𝑥 𝑧 ⊆ ( 𝐵 +o 𝑦 ) ) )
72 71 adantrl ( ( Lim 𝑥 ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) → ( 𝑧𝐵 → ∃ 𝑦𝑥 𝑧 ⊆ ( 𝐵 +o 𝑦 ) ) )
73 72 adantrr ( ( Lim 𝑥 ∧ ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ∧ ( 𝑧 ∈ ( 𝐵 +o 𝑥 ) ∧ 𝑧 ∈ On ) ) ) → ( 𝑧𝐵 → ∃ 𝑦𝑥 𝑧 ⊆ ( 𝐵 +o 𝑦 ) ) )
74 oawordex ( ( 𝐵 ∈ On ∧ 𝑧 ∈ On ) → ( 𝐵𝑧 ↔ ∃ 𝑦 ∈ On ( 𝐵 +o 𝑦 ) = 𝑧 ) )
75 74 ad2ant2l ( ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ∧ ( 𝑧 ∈ ( 𝐵 +o 𝑥 ) ∧ 𝑧 ∈ On ) ) → ( 𝐵𝑧 ↔ ∃ 𝑦 ∈ On ( 𝐵 +o 𝑦 ) = 𝑧 ) )
76 oaord ( ( 𝑦 ∈ On ∧ 𝑥 ∈ On ∧ 𝐵 ∈ On ) → ( 𝑦𝑥 ↔ ( 𝐵 +o 𝑦 ) ∈ ( 𝐵 +o 𝑥 ) ) )
77 76 3expb ( ( 𝑦 ∈ On ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) → ( 𝑦𝑥 ↔ ( 𝐵 +o 𝑦 ) ∈ ( 𝐵 +o 𝑥 ) ) )
78 eleq1 ( ( 𝐵 +o 𝑦 ) = 𝑧 → ( ( 𝐵 +o 𝑦 ) ∈ ( 𝐵 +o 𝑥 ) ↔ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) )
79 77 78 sylan9bb ( ( ( 𝑦 ∈ On ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) ∧ ( 𝐵 +o 𝑦 ) = 𝑧 ) → ( 𝑦𝑥𝑧 ∈ ( 𝐵 +o 𝑥 ) ) )
80 79 an32s ( ( ( 𝑦 ∈ On ∧ ( 𝐵 +o 𝑦 ) = 𝑧 ) ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) → ( 𝑦𝑥𝑧 ∈ ( 𝐵 +o 𝑥 ) ) )
81 80 biimpar ( ( ( ( 𝑦 ∈ On ∧ ( 𝐵 +o 𝑦 ) = 𝑧 ) ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) → 𝑦𝑥 )
82 eqimss2 ( ( 𝐵 +o 𝑦 ) = 𝑧𝑧 ⊆ ( 𝐵 +o 𝑦 ) )
83 82 ad3antlr ( ( ( ( 𝑦 ∈ On ∧ ( 𝐵 +o 𝑦 ) = 𝑧 ) ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) → 𝑧 ⊆ ( 𝐵 +o 𝑦 ) )
84 81 83 jca ( ( ( ( 𝑦 ∈ On ∧ ( 𝐵 +o 𝑦 ) = 𝑧 ) ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) → ( 𝑦𝑥𝑧 ⊆ ( 𝐵 +o 𝑦 ) ) )
85 84 anasss ( ( ( 𝑦 ∈ On ∧ ( 𝐵 +o 𝑦 ) = 𝑧 ) ∧ ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) ) → ( 𝑦𝑥𝑧 ⊆ ( 𝐵 +o 𝑦 ) ) )
86 85 expcom ( ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) → ( ( 𝑦 ∈ On ∧ ( 𝐵 +o 𝑦 ) = 𝑧 ) → ( 𝑦𝑥𝑧 ⊆ ( 𝐵 +o 𝑦 ) ) ) )
87 86 reximdv2 ( ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) → ( ∃ 𝑦 ∈ On ( 𝐵 +o 𝑦 ) = 𝑧 → ∃ 𝑦𝑥 𝑧 ⊆ ( 𝐵 +o 𝑦 ) ) )
88 87 adantrr ( ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ∧ ( 𝑧 ∈ ( 𝐵 +o 𝑥 ) ∧ 𝑧 ∈ On ) ) → ( ∃ 𝑦 ∈ On ( 𝐵 +o 𝑦 ) = 𝑧 → ∃ 𝑦𝑥 𝑧 ⊆ ( 𝐵 +o 𝑦 ) ) )
89 75 88 sylbid ( ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ∧ ( 𝑧 ∈ ( 𝐵 +o 𝑥 ) ∧ 𝑧 ∈ On ) ) → ( 𝐵𝑧 → ∃ 𝑦𝑥 𝑧 ⊆ ( 𝐵 +o 𝑦 ) ) )
90 89 adantl ( ( Lim 𝑥 ∧ ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ∧ ( 𝑧 ∈ ( 𝐵 +o 𝑥 ) ∧ 𝑧 ∈ On ) ) ) → ( 𝐵𝑧 → ∃ 𝑦𝑥 𝑧 ⊆ ( 𝐵 +o 𝑦 ) ) )
91 eloni ( 𝑧 ∈ On → Ord 𝑧 )
92 eloni ( 𝐵 ∈ On → Ord 𝐵 )
93 ordtri2or ( ( Ord 𝑧 ∧ Ord 𝐵 ) → ( 𝑧𝐵𝐵𝑧 ) )
94 91 92 93 syl2anr ( ( 𝐵 ∈ On ∧ 𝑧 ∈ On ) → ( 𝑧𝐵𝐵𝑧 ) )
95 94 ad2ant2l ( ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ∧ ( 𝑧 ∈ ( 𝐵 +o 𝑥 ) ∧ 𝑧 ∈ On ) ) → ( 𝑧𝐵𝐵𝑧 ) )
96 95 adantl ( ( Lim 𝑥 ∧ ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ∧ ( 𝑧 ∈ ( 𝐵 +o 𝑥 ) ∧ 𝑧 ∈ On ) ) ) → ( 𝑧𝐵𝐵𝑧 ) )
97 73 90 96 mpjaod ( ( Lim 𝑥 ∧ ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ∧ ( 𝑧 ∈ ( 𝐵 +o 𝑥 ) ∧ 𝑧 ∈ On ) ) ) → ∃ 𝑦𝑥 𝑧 ⊆ ( 𝐵 +o 𝑦 ) )
98 97 exp45 ( Lim 𝑥 → ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) → ( 𝑧 ∈ ( 𝐵 +o 𝑥 ) → ( 𝑧 ∈ On → ∃ 𝑦𝑥 𝑧 ⊆ ( 𝐵 +o 𝑦 ) ) ) ) )
99 98 imp ( ( Lim 𝑥 ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) → ( 𝑧 ∈ ( 𝐵 +o 𝑥 ) → ( 𝑧 ∈ On → ∃ 𝑦𝑥 𝑧 ⊆ ( 𝐵 +o 𝑦 ) ) ) )
100 99 adantld ( ( Lim 𝑥 ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) → ( ( 𝐴 ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) → ( 𝑧 ∈ On → ∃ 𝑦𝑥 𝑧 ⊆ ( 𝐵 +o 𝑦 ) ) ) )
101 100 imp32 ( ( ( Lim 𝑥 ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) ∧ ( ( 𝐴 ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) ∧ 𝑧 ∈ On ) ) → ∃ 𝑦𝑥 𝑧 ⊆ ( 𝐵 +o 𝑦 ) )
102 simplrr ( ( ( ( Lim 𝑥 ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) ∧ ( ( 𝐴 ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) ∧ 𝑧 ∈ On ) ) ∧ 𝑦𝑥 ) → 𝑧 ∈ On )
103 onelon ( ( 𝑥 ∈ On ∧ 𝑦𝑥 ) → 𝑦 ∈ On )
104 103 30 sylan2 ( ( 𝐵 ∈ On ∧ ( 𝑥 ∈ On ∧ 𝑦𝑥 ) ) → ( 𝐵 +o 𝑦 ) ∈ On )
105 104 exp32 ( 𝐵 ∈ On → ( 𝑥 ∈ On → ( 𝑦𝑥 → ( 𝐵 +o 𝑦 ) ∈ On ) ) )
106 105 com12 ( 𝑥 ∈ On → ( 𝐵 ∈ On → ( 𝑦𝑥 → ( 𝐵 +o 𝑦 ) ∈ On ) ) )
107 106 imp31 ( ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑦𝑥 ) → ( 𝐵 +o 𝑦 ) ∈ On )
108 107 ad4ant24 ( ( ( ( Lim 𝑥 ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) ∧ ( ( 𝐴 ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) ∧ 𝑧 ∈ On ) ) ∧ 𝑦𝑥 ) → ( 𝐵 +o 𝑦 ) ∈ On )
109 simpll ( ( ( 𝐴 ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) ∧ 𝑧 ∈ On ) → 𝐴 ∈ On )
110 109 ad2antlr ( ( ( ( Lim 𝑥 ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) ∧ ( ( 𝐴 ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) ∧ 𝑧 ∈ On ) ) ∧ 𝑦𝑥 ) → 𝐴 ∈ On )
111 oaword ( ( 𝑧 ∈ On ∧ ( 𝐵 +o 𝑦 ) ∈ On ∧ 𝐴 ∈ On ) → ( 𝑧 ⊆ ( 𝐵 +o 𝑦 ) ↔ ( 𝐴 +o 𝑧 ) ⊆ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) )
112 102 108 110 111 syl3anc ( ( ( ( Lim 𝑥 ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) ∧ ( ( 𝐴 ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) ∧ 𝑧 ∈ On ) ) ∧ 𝑦𝑥 ) → ( 𝑧 ⊆ ( 𝐵 +o 𝑦 ) ↔ ( 𝐴 +o 𝑧 ) ⊆ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) )
113 112 rexbidva ( ( ( Lim 𝑥 ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) ∧ ( ( 𝐴 ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) ∧ 𝑧 ∈ On ) ) → ( ∃ 𝑦𝑥 𝑧 ⊆ ( 𝐵 +o 𝑦 ) ↔ ∃ 𝑦𝑥 ( 𝐴 +o 𝑧 ) ⊆ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) )
114 101 113 mpbid ( ( ( Lim 𝑥 ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) ∧ ( ( 𝐴 ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) ∧ 𝑧 ∈ On ) ) → ∃ 𝑦𝑥 ( 𝐴 +o 𝑧 ) ⊆ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
115 114 exp32 ( ( Lim 𝑥 ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) → ( ( 𝐴 ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) → ( 𝑧 ∈ On → ∃ 𝑦𝑥 ( 𝐴 +o 𝑧 ) ⊆ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) ) )
116 61 115 mpdd ( ( Lim 𝑥 ∧ ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) ) → ( ( 𝐴 ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) → ∃ 𝑦𝑥 ( 𝐴 +o 𝑧 ) ⊆ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) )
117 116 exp32 ( Lim 𝑥 → ( 𝑥 ∈ On → ( 𝐵 ∈ On → ( ( 𝐴 ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) → ∃ 𝑦𝑥 ( 𝐴 +o 𝑧 ) ⊆ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) ) ) )
118 54 117 mpd ( Lim 𝑥 → ( 𝐵 ∈ On → ( ( 𝐴 ∈ On ∧ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ) → ∃ 𝑦𝑥 ( 𝐴 +o 𝑧 ) ⊆ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) ) )
119 118 exp4a ( Lim 𝑥 → ( 𝐵 ∈ On → ( 𝐴 ∈ On → ( 𝑧 ∈ ( 𝐵 +o 𝑥 ) → ∃ 𝑦𝑥 ( 𝐴 +o 𝑧 ) ⊆ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) ) ) )
120 119 imp31 ( ( ( Lim 𝑥𝐵 ∈ On ) ∧ 𝐴 ∈ On ) → ( 𝑧 ∈ ( 𝐵 +o 𝑥 ) → ∃ 𝑦𝑥 ( 𝐴 +o 𝑧 ) ⊆ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) )
121 120 ralrimiv ( ( ( Lim 𝑥𝐵 ∈ On ) ∧ 𝐴 ∈ On ) → ∀ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ∃ 𝑦𝑥 ( 𝐴 +o 𝑧 ) ⊆ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
122 iunss2 ( ∀ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ∃ 𝑦𝑥 ( 𝐴 +o 𝑧 ) ⊆ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) → 𝑧 ∈ ( 𝐵 +o 𝑥 ) ( 𝐴 +o 𝑧 ) ⊆ 𝑦𝑥 ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
123 121 122 syl ( ( ( Lim 𝑥𝐵 ∈ On ) ∧ 𝐴 ∈ On ) → 𝑧 ∈ ( 𝐵 +o 𝑥 ) ( 𝐴 +o 𝑧 ) ⊆ 𝑦𝑥 ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
124 123 ancoms ( ( 𝐴 ∈ On ∧ ( Lim 𝑥𝐵 ∈ On ) ) → 𝑧 ∈ ( 𝐵 +o 𝑥 ) ( 𝐴 +o 𝑧 ) ⊆ 𝑦𝑥 ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
125 oaordi ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) → ( 𝑦𝑥 → ( 𝐵 +o 𝑦 ) ∈ ( 𝐵 +o 𝑥 ) ) )
126 125 anim1d ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝑦𝑥𝑤 ∈ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) → ( ( 𝐵 +o 𝑦 ) ∈ ( 𝐵 +o 𝑥 ) ∧ 𝑤 ∈ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) ) )
127 oveq2 ( 𝑧 = ( 𝐵 +o 𝑦 ) → ( 𝐴 +o 𝑧 ) = ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
128 127 eleq2d ( 𝑧 = ( 𝐵 +o 𝑦 ) → ( 𝑤 ∈ ( 𝐴 +o 𝑧 ) ↔ 𝑤 ∈ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) )
129 128 rspcev ( ( ( 𝐵 +o 𝑦 ) ∈ ( 𝐵 +o 𝑥 ) ∧ 𝑤 ∈ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) → ∃ 𝑧 ∈ ( 𝐵 +o 𝑥 ) 𝑤 ∈ ( 𝐴 +o 𝑧 ) )
130 126 129 syl6 ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝑦𝑥𝑤 ∈ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) → ∃ 𝑧 ∈ ( 𝐵 +o 𝑥 ) 𝑤 ∈ ( 𝐴 +o 𝑧 ) ) )
131 130 expd ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) → ( 𝑦𝑥 → ( 𝑤 ∈ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) → ∃ 𝑧 ∈ ( 𝐵 +o 𝑥 ) 𝑤 ∈ ( 𝐴 +o 𝑧 ) ) ) )
132 131 rexlimdv ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) → ( ∃ 𝑦𝑥 𝑤 ∈ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) → ∃ 𝑧 ∈ ( 𝐵 +o 𝑥 ) 𝑤 ∈ ( 𝐴 +o 𝑧 ) ) )
133 eliun ( 𝑤 𝑦𝑥 ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ↔ ∃ 𝑦𝑥 𝑤 ∈ ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
134 eliun ( 𝑤 𝑧 ∈ ( 𝐵 +o 𝑥 ) ( 𝐴 +o 𝑧 ) ↔ ∃ 𝑧 ∈ ( 𝐵 +o 𝑥 ) 𝑤 ∈ ( 𝐴 +o 𝑧 ) )
135 132 133 134 3imtr4g ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) → ( 𝑤 𝑦𝑥 ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) → 𝑤 𝑧 ∈ ( 𝐵 +o 𝑥 ) ( 𝐴 +o 𝑧 ) ) )
136 135 ssrdv ( ( 𝑥 ∈ On ∧ 𝐵 ∈ On ) → 𝑦𝑥 ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ⊆ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ( 𝐴 +o 𝑧 ) )
137 54 136 sylan ( ( Lim 𝑥𝐵 ∈ On ) → 𝑦𝑥 ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ⊆ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ( 𝐴 +o 𝑧 ) )
138 137 adantl ( ( 𝐴 ∈ On ∧ ( Lim 𝑥𝐵 ∈ On ) ) → 𝑦𝑥 ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ⊆ 𝑧 ∈ ( 𝐵 +o 𝑥 ) ( 𝐴 +o 𝑧 ) )
139 124 138 eqssd ( ( 𝐴 ∈ On ∧ ( Lim 𝑥𝐵 ∈ On ) ) → 𝑧 ∈ ( 𝐵 +o 𝑥 ) ( 𝐴 +o 𝑧 ) = 𝑦𝑥 ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
140 52 139 eqtrd ( ( 𝐴 ∈ On ∧ ( Lim 𝑥𝐵 ∈ On ) ) → ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) = 𝑦𝑥 ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
141 140 an12s ( ( Lim 𝑥 ∧ ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ) → ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) = 𝑦𝑥 ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
142 141 adantr ( ( ( Lim 𝑥 ∧ ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ) ∧ ∀ 𝑦𝑥 ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) = ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) → ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) = 𝑦𝑥 ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) )
143 39 45 142 3eqtr4d ( ( ( Lim 𝑥 ∧ ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ) ∧ ∀ 𝑦𝑥 ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) = ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) ) → ( ( 𝐴 +o 𝐵 ) +o 𝑥 ) = ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) )
144 143 exp31 ( Lim 𝑥 → ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ∀ 𝑦𝑥 ( ( 𝐴 +o 𝐵 ) +o 𝑦 ) = ( 𝐴 +o ( 𝐵 +o 𝑦 ) ) → ( ( 𝐴 +o 𝐵 ) +o 𝑥 ) = ( 𝐴 +o ( 𝐵 +o 𝑥 ) ) ) ) )
145 4 8 12 16 23 37 144 tfinds3 ( 𝐶 ∈ On → ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝐴 +o 𝐵 ) +o 𝐶 ) = ( 𝐴 +o ( 𝐵 +o 𝐶 ) ) ) )
146 145 com12 ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐶 ∈ On → ( ( 𝐴 +o 𝐵 ) +o 𝐶 ) = ( 𝐴 +o ( 𝐵 +o 𝐶 ) ) ) )
147 146 3impia ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ On ) → ( ( 𝐴 +o 𝐵 ) +o 𝐶 ) = ( 𝐴 +o ( 𝐵 +o 𝐶 ) ) )