Metamath Proof Explorer


Theorem oaun3

Description: Ordinal addition as a union of classes. (Contributed by RP, 13-Feb-2025)

Ref Expression
Assertion oaun3 ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐴 +o 𝐵 ) = { { 𝑥 ∣ ∃ 𝑎𝐴 𝑥 = 𝑎 } , { 𝑦 ∣ ∃ 𝑏𝐵 𝑦 = ( 𝐴 +o 𝑏 ) } , { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } )

Proof

Step Hyp Ref Expression
1 oacl ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐴 +o 𝐵 ) ∈ On )
2 1 difexd ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ∈ V )
3 uniprg ( ( 𝐴 ∈ On ∧ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ∈ V ) → { 𝐴 , ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) } = ( 𝐴 ∪ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) )
4 2 3 syldan ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → { 𝐴 , ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) } = ( 𝐴 ∪ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) )
5 undif2 ( 𝐴 ∪ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) = ( 𝐴 ∪ ( 𝐴 +o 𝐵 ) )
6 oaword1 ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → 𝐴 ⊆ ( 𝐴 +o 𝐵 ) )
7 ssequn1 ( 𝐴 ⊆ ( 𝐴 +o 𝐵 ) ↔ ( 𝐴 ∪ ( 𝐴 +o 𝐵 ) ) = ( 𝐴 +o 𝐵 ) )
8 6 7 sylib ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐴 ∪ ( 𝐴 +o 𝐵 ) ) = ( 𝐴 +o 𝐵 ) )
9 5 8 eqtrid ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐴 ∪ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) = ( 𝐴 +o 𝐵 ) )
10 4 9 eqtrd ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → { 𝐴 , ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) } = ( 𝐴 +o 𝐵 ) )
11 oaun3lem4 ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } ∈ suc ( 𝐴 +o 𝐵 ) )
12 unisng ( { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } ∈ suc ( 𝐴 +o 𝐵 ) → { { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } = { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } )
13 11 12 syl ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → { { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } = { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } )
14 10 13 uneq12d ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( { 𝐴 , ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) } ∪ { { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } ) = ( ( 𝐴 +o 𝐵 ) ∪ { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } ) )
15 uniun ( { 𝐴 , ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) } ∪ { { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } ) = ( { 𝐴 , ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) } ∪ { { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } )
16 df-tp { 𝐴 , ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) , { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } = ( { 𝐴 , ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) } ∪ { { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } )
17 rp-abid 𝐴 = { 𝑥 ∣ ∃ 𝑎𝐴 𝑥 = 𝑎 }
18 17 a1i ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → 𝐴 = { 𝑥 ∣ ∃ 𝑎𝐴 𝑥 = 𝑎 } )
19 oadif1 ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) = { 𝑦 ∣ ∃ 𝑏𝐵 𝑦 = ( 𝐴 +o 𝑏 ) } )
20 eqidd ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } = { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } )
21 18 19 20 tpeq123d ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → { 𝐴 , ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) , { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } = { { 𝑥 ∣ ∃ 𝑎𝐴 𝑥 = 𝑎 } , { 𝑦 ∣ ∃ 𝑏𝐵 𝑦 = ( 𝐴 +o 𝑏 ) } , { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } )
22 16 21 eqtr3id ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( { 𝐴 , ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) } ∪ { { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } ) = { { 𝑥 ∣ ∃ 𝑎𝐴 𝑥 = 𝑎 } , { 𝑦 ∣ ∃ 𝑏𝐵 𝑦 = ( 𝐴 +o 𝑏 ) } , { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } )
23 22 unieqd ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( { 𝐴 , ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) } ∪ { { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } ) = { { 𝑥 ∣ ∃ 𝑎𝐴 𝑥 = 𝑎 } , { 𝑦 ∣ ∃ 𝑏𝐵 𝑦 = ( 𝐴 +o 𝑏 ) } , { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } )
24 15 23 eqtr3id ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( { 𝐴 , ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) } ∪ { { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } ) = { { 𝑥 ∣ ∃ 𝑎𝐴 𝑥 = 𝑎 } , { 𝑦 ∣ ∃ 𝑏𝐵 𝑦 = ( 𝐴 +o 𝑏 ) } , { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } )
25 oaun3lem2 ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } ⊆ ( 𝐴 +o 𝐵 ) )
26 ssequn2 ( { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } ⊆ ( 𝐴 +o 𝐵 ) ↔ ( ( 𝐴 +o 𝐵 ) ∪ { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } ) = ( 𝐴 +o 𝐵 ) )
27 25 26 sylib ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝐴 +o 𝐵 ) ∪ { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } ) = ( 𝐴 +o 𝐵 ) )
28 14 24 27 3eqtr3rd ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐴 +o 𝐵 ) = { { 𝑥 ∣ ∃ 𝑎𝐴 𝑥 = 𝑎 } , { 𝑦 ∣ ∃ 𝑏𝐵 𝑦 = ( 𝐴 +o 𝑏 ) } , { 𝑧 ∣ ∃ 𝑎𝐴𝑏𝐵 𝑧 = ( 𝑎 +o 𝑏 ) } } )