Metamath Proof Explorer


Theorem oacl2g

Description: Closure law for ordinal addition. Here we show that ordinal addition is closed within the empty set or any ordinal power of omega. (Contributed by RP, 5-Jan-2025)

Ref Expression
Assertion oacl2g ( ( ( 𝐴𝐶𝐵𝐶 ) ∧ ( 𝐶 = ∅ ∨ ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ) ) → ( 𝐴 +o 𝐵 ) ∈ 𝐶 )

Proof

Step Hyp Ref Expression
1 eleq2 ( 𝐶 = ∅ → ( 𝐴𝐶𝐴 ∈ ∅ ) )
2 noel ¬ 𝐴 ∈ ∅
3 2 pm2.21i ( 𝐴 ∈ ∅ → ( 𝐴 +o 𝐵 ) ∈ 𝐶 )
4 1 3 syl6bi ( 𝐶 = ∅ → ( 𝐴𝐶 → ( 𝐴 +o 𝐵 ) ∈ 𝐶 ) )
5 4 com12 ( 𝐴𝐶 → ( 𝐶 = ∅ → ( 𝐴 +o 𝐵 ) ∈ 𝐶 ) )
6 5 adantr ( ( 𝐴𝐶𝐵𝐶 ) → ( 𝐶 = ∅ → ( 𝐴 +o 𝐵 ) ∈ 𝐶 ) )
7 simpl ( ( 𝐴𝐶𝐵𝐶 ) → 𝐴𝐶 )
8 simpl ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → 𝐶 = ( ω ↑o 𝐷 ) )
9 simpr ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → 𝐷 ∈ On )
10 omelon ω ∈ On
11 9 10 jctil ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → ( ω ∈ On ∧ 𝐷 ∈ On ) )
12 oecl ( ( ω ∈ On ∧ 𝐷 ∈ On ) → ( ω ↑o 𝐷 ) ∈ On )
13 11 12 syl ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → ( ω ↑o 𝐷 ) ∈ On )
14 8 13 eqeltrd ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → 𝐶 ∈ On )
15 14 adantl ( ( ( 𝐴𝐶𝐵𝐶 ) ∧ ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ) → 𝐶 ∈ On )
16 onelon ( ( 𝐶 ∈ On ∧ 𝐴𝐶 ) → 𝐴 ∈ On )
17 16 expcom ( 𝐴𝐶 → ( 𝐶 ∈ On → 𝐴 ∈ On ) )
18 17 adantr ( ( 𝐴𝐶𝐵𝐶 ) → ( 𝐶 ∈ On → 𝐴 ∈ On ) )
19 18 adantr ( ( ( 𝐴𝐶𝐵𝐶 ) ∧ ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ) → ( 𝐶 ∈ On → 𝐴 ∈ On ) )
20 15 19 jcai ( ( ( 𝐴𝐶𝐵𝐶 ) ∧ ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ) → ( 𝐶 ∈ On ∧ 𝐴 ∈ On ) )
21 simpr ( ( 𝐴𝐶𝐵𝐶 ) → 𝐵𝐶 )
22 21 adantr ( ( ( 𝐴𝐶𝐵𝐶 ) ∧ ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ) → 𝐵𝐶 )
23 oaordi ( ( 𝐶 ∈ On ∧ 𝐴 ∈ On ) → ( 𝐵𝐶 → ( 𝐴 +o 𝐵 ) ∈ ( 𝐴 +o 𝐶 ) ) )
24 20 22 23 sylc ( ( ( 𝐴𝐶𝐵𝐶 ) ∧ ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ) → ( 𝐴 +o 𝐵 ) ∈ ( 𝐴 +o 𝐶 ) )
25 oveq1 ( 𝑥 = 𝐴 → ( 𝑥 +o 𝐶 ) = ( 𝐴 +o 𝐶 ) )
26 25 eliuni ( ( 𝐴𝐶 ∧ ( 𝐴 +o 𝐵 ) ∈ ( 𝐴 +o 𝐶 ) ) → ( 𝐴 +o 𝐵 ) ∈ 𝑥𝐶 ( 𝑥 +o 𝐶 ) )
27 7 24 26 syl2an2r ( ( ( 𝐴𝐶𝐵𝐶 ) ∧ ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ) → ( 𝐴 +o 𝐵 ) ∈ 𝑥𝐶 ( 𝑥 +o 𝐶 ) )
28 simpr ( ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ∧ 𝑥𝐶 ) → 𝑥𝐶 )
29 8 adantr ( ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ∧ 𝑥𝐶 ) → 𝐶 = ( ω ↑o 𝐷 ) )
30 28 29 eleqtrd ( ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ∧ 𝑥𝐶 ) → 𝑥 ∈ ( ω ↑o 𝐷 ) )
31 14 adantr ( ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ∧ 𝑥𝐶 ) → 𝐶 ∈ On )
32 8 eqcomd ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → ( ω ↑o 𝐷 ) = 𝐶 )
33 ssid 𝐶𝐶
34 32 33 eqsstrdi ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → ( ω ↑o 𝐷 ) ⊆ 𝐶 )
35 34 adantr ( ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ∧ 𝑥𝐶 ) → ( ω ↑o 𝐷 ) ⊆ 𝐶 )
36 oaabs2 ( ( ( 𝑥 ∈ ( ω ↑o 𝐷 ) ∧ 𝐶 ∈ On ) ∧ ( ω ↑o 𝐷 ) ⊆ 𝐶 ) → ( 𝑥 +o 𝐶 ) = 𝐶 )
37 30 31 35 36 syl21anc ( ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ∧ 𝑥𝐶 ) → ( 𝑥 +o 𝐶 ) = 𝐶 )
38 37 33 eqsstrdi ( ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ∧ 𝑥𝐶 ) → ( 𝑥 +o 𝐶 ) ⊆ 𝐶 )
39 38 iunssd ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → 𝑥𝐶 ( 𝑥 +o 𝐶 ) ⊆ 𝐶 )
40 peano1 ∅ ∈ ω
41 oen0 ( ( ( ω ∈ On ∧ 𝐷 ∈ On ) ∧ ∅ ∈ ω ) → ∅ ∈ ( ω ↑o 𝐷 ) )
42 11 40 41 sylancl ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → ∅ ∈ ( ω ↑o 𝐷 ) )
43 42 32 eleqtrd ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → ∅ ∈ 𝐶 )
44 simpr ( ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ∧ 𝑥 = ∅ ) → 𝑥 = ∅ )
45 44 oveq1d ( ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ∧ 𝑥 = ∅ ) → ( 𝑥 +o 𝐶 ) = ( ∅ +o 𝐶 ) )
46 oa0r ( 𝐶 ∈ On → ( ∅ +o 𝐶 ) = 𝐶 )
47 14 46 syl ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → ( ∅ +o 𝐶 ) = 𝐶 )
48 47 adantr ( ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ∧ 𝑥 = ∅ ) → ( ∅ +o 𝐶 ) = 𝐶 )
49 45 48 eqtrd ( ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ∧ 𝑥 = ∅ ) → ( 𝑥 +o 𝐶 ) = 𝐶 )
50 49 sseq2d ( ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ∧ 𝑥 = ∅ ) → ( 𝐶 ⊆ ( 𝑥 +o 𝐶 ) ↔ 𝐶𝐶 ) )
51 ssidd ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → 𝐶𝐶 )
52 43 50 51 rspcedvd ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → ∃ 𝑥𝐶 𝐶 ⊆ ( 𝑥 +o 𝐶 ) )
53 ssiun ( ∃ 𝑥𝐶 𝐶 ⊆ ( 𝑥 +o 𝐶 ) → 𝐶 𝑥𝐶 ( 𝑥 +o 𝐶 ) )
54 52 53 syl ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → 𝐶 𝑥𝐶 ( 𝑥 +o 𝐶 ) )
55 39 54 eqssd ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → 𝑥𝐶 ( 𝑥 +o 𝐶 ) = 𝐶 )
56 55 adantl ( ( ( 𝐴𝐶𝐵𝐶 ) ∧ ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ) → 𝑥𝐶 ( 𝑥 +o 𝐶 ) = 𝐶 )
57 27 56 eleqtrd ( ( ( 𝐴𝐶𝐵𝐶 ) ∧ ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ) → ( 𝐴 +o 𝐵 ) ∈ 𝐶 )
58 57 ex ( ( 𝐴𝐶𝐵𝐶 ) → ( ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) → ( 𝐴 +o 𝐵 ) ∈ 𝐶 ) )
59 6 58 jaod ( ( 𝐴𝐶𝐵𝐶 ) → ( ( 𝐶 = ∅ ∨ ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ) → ( 𝐴 +o 𝐵 ) ∈ 𝐶 ) )
60 59 imp ( ( ( 𝐴𝐶𝐵𝐶 ) ∧ ( 𝐶 = ∅ ∨ ( 𝐶 = ( ω ↑o 𝐷 ) ∧ 𝐷 ∈ On ) ) ) → ( 𝐴 +o 𝐵 ) ∈ 𝐶 )