Metamath Proof Explorer


Theorem oadif1

Description: Express the set difference of an ordinal sum and its left addend as a class of sums. (Contributed by RP, 13-Feb-2025)

Ref Expression
Assertion oadif1 ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) = { 𝑥 ∣ ∃ 𝑏𝐵 𝑥 = ( 𝐴 +o 𝑏 ) } )

Proof

Step Hyp Ref Expression
1 simpl ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → 𝐴 ∈ On )
2 oacl ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐴 +o 𝐵 ) ∈ On )
3 onelon ( ( ( 𝐴 +o 𝐵 ) ∈ On ∧ 𝑦 ∈ ( 𝐴 +o 𝐵 ) ) → 𝑦 ∈ On )
4 2 3 sylan ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑦 ∈ ( 𝐴 +o 𝐵 ) ) → 𝑦 ∈ On )
5 ontri1 ( ( 𝐴 ∈ On ∧ 𝑦 ∈ On ) → ( 𝐴𝑦 ↔ ¬ 𝑦𝐴 ) )
6 1 4 5 syl2an2r ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑦 ∈ ( 𝐴 +o 𝐵 ) ) → ( 𝐴𝑦 ↔ ¬ 𝑦𝐴 ) )
7 6 pm5.32da ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝑦 ∈ ( 𝐴 +o 𝐵 ) ∧ 𝐴𝑦 ) ↔ ( 𝑦 ∈ ( 𝐴 +o 𝐵 ) ∧ ¬ 𝑦𝐴 ) ) )
8 ancom ( ( 𝑦 ∈ ( 𝐴 +o 𝐵 ) ∧ 𝐴𝑦 ) ↔ ( 𝐴𝑦𝑦 ∈ ( 𝐴 +o 𝐵 ) ) )
9 7 8 bitr3di ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝑦 ∈ ( 𝐴 +o 𝐵 ) ∧ ¬ 𝑦𝐴 ) ↔ ( 𝐴𝑦𝑦 ∈ ( 𝐴 +o 𝐵 ) ) ) )
10 oawordex2 ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ ( 𝐴𝑦𝑦 ∈ ( 𝐴 +o 𝐵 ) ) ) → ∃ 𝑏𝐵 ( 𝐴 +o 𝑏 ) = 𝑦 )
11 9 10 sylbida ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ ( 𝑦 ∈ ( 𝐴 +o 𝐵 ) ∧ ¬ 𝑦𝐴 ) ) → ∃ 𝑏𝐵 ( 𝐴 +o 𝑏 ) = 𝑦 )
12 eqcom ( ( 𝐴 +o 𝑏 ) = 𝑦𝑦 = ( 𝐴 +o 𝑏 ) )
13 12 rexbii ( ∃ 𝑏𝐵 ( 𝐴 +o 𝑏 ) = 𝑦 ↔ ∃ 𝑏𝐵 𝑦 = ( 𝐴 +o 𝑏 ) )
14 11 13 sylib ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ ( 𝑦 ∈ ( 𝐴 +o 𝐵 ) ∧ ¬ 𝑦𝐴 ) ) → ∃ 𝑏𝐵 𝑦 = ( 𝐴 +o 𝑏 ) )
15 14 ex ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝑦 ∈ ( 𝐴 +o 𝐵 ) ∧ ¬ 𝑦𝐴 ) → ∃ 𝑏𝐵 𝑦 = ( 𝐴 +o 𝑏 ) ) )
16 simpr ( ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑏𝐵 ) ∧ 𝑦 = ( 𝐴 +o 𝑏 ) ) → 𝑦 = ( 𝐴 +o 𝑏 ) )
17 oaordi ( ( 𝐵 ∈ On ∧ 𝐴 ∈ On ) → ( 𝑏𝐵 → ( 𝐴 +o 𝑏 ) ∈ ( 𝐴 +o 𝐵 ) ) )
18 17 ancoms ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( 𝑏𝐵 → ( 𝐴 +o 𝑏 ) ∈ ( 𝐴 +o 𝐵 ) ) )
19 18 imp ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑏𝐵 ) → ( 𝐴 +o 𝑏 ) ∈ ( 𝐴 +o 𝐵 ) )
20 19 adantr ( ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑏𝐵 ) ∧ 𝑦 = ( 𝐴 +o 𝑏 ) ) → ( 𝐴 +o 𝑏 ) ∈ ( 𝐴 +o 𝐵 ) )
21 16 20 eqeltrd ( ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑏𝐵 ) ∧ 𝑦 = ( 𝐴 +o 𝑏 ) ) → 𝑦 ∈ ( 𝐴 +o 𝐵 ) )
22 simpr ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → 𝐵 ∈ On )
23 onelon ( ( 𝐵 ∈ On ∧ 𝑏𝐵 ) → 𝑏 ∈ On )
24 22 23 sylan ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑏𝐵 ) → 𝑏 ∈ On )
25 oaword1 ( ( 𝐴 ∈ On ∧ 𝑏 ∈ On ) → 𝐴 ⊆ ( 𝐴 +o 𝑏 ) )
26 1 24 25 syl2an2r ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑏𝐵 ) → 𝐴 ⊆ ( 𝐴 +o 𝑏 ) )
27 oacl ( ( 𝐴 ∈ On ∧ 𝑏 ∈ On ) → ( 𝐴 +o 𝑏 ) ∈ On )
28 1 24 27 syl2an2r ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑏𝐵 ) → ( 𝐴 +o 𝑏 ) ∈ On )
29 ontri1 ( ( 𝐴 ∈ On ∧ ( 𝐴 +o 𝑏 ) ∈ On ) → ( 𝐴 ⊆ ( 𝐴 +o 𝑏 ) ↔ ¬ ( 𝐴 +o 𝑏 ) ∈ 𝐴 ) )
30 1 28 29 syl2an2r ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑏𝐵 ) → ( 𝐴 ⊆ ( 𝐴 +o 𝑏 ) ↔ ¬ ( 𝐴 +o 𝑏 ) ∈ 𝐴 ) )
31 26 30 mpbid ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑏𝐵 ) → ¬ ( 𝐴 +o 𝑏 ) ∈ 𝐴 )
32 31 adantr ( ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑏𝐵 ) ∧ 𝑦 = ( 𝐴 +o 𝑏 ) ) → ¬ ( 𝐴 +o 𝑏 ) ∈ 𝐴 )
33 16 32 eqneltrd ( ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑏𝐵 ) ∧ 𝑦 = ( 𝐴 +o 𝑏 ) ) → ¬ 𝑦𝐴 )
34 21 33 jca ( ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝑏𝐵 ) ∧ 𝑦 = ( 𝐴 +o 𝑏 ) ) → ( 𝑦 ∈ ( 𝐴 +o 𝐵 ) ∧ ¬ 𝑦𝐴 ) )
35 34 rexlimdva2 ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ∃ 𝑏𝐵 𝑦 = ( 𝐴 +o 𝑏 ) → ( 𝑦 ∈ ( 𝐴 +o 𝐵 ) ∧ ¬ 𝑦𝐴 ) ) )
36 15 35 impbid ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝑦 ∈ ( 𝐴 +o 𝐵 ) ∧ ¬ 𝑦𝐴 ) ↔ ∃ 𝑏𝐵 𝑦 = ( 𝐴 +o 𝑏 ) ) )
37 eldif ( 𝑦 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ↔ ( 𝑦 ∈ ( 𝐴 +o 𝐵 ) ∧ ¬ 𝑦𝐴 ) )
38 vex 𝑦 ∈ V
39 eqeq1 ( 𝑥 = 𝑦 → ( 𝑥 = ( 𝐴 +o 𝑏 ) ↔ 𝑦 = ( 𝐴 +o 𝑏 ) ) )
40 39 rexbidv ( 𝑥 = 𝑦 → ( ∃ 𝑏𝐵 𝑥 = ( 𝐴 +o 𝑏 ) ↔ ∃ 𝑏𝐵 𝑦 = ( 𝐴 +o 𝑏 ) ) )
41 38 40 elab ( 𝑦 ∈ { 𝑥 ∣ ∃ 𝑏𝐵 𝑥 = ( 𝐴 +o 𝑏 ) } ↔ ∃ 𝑏𝐵 𝑦 = ( 𝐴 +o 𝑏 ) )
42 36 37 41 3bitr4g ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( 𝑦 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ↔ 𝑦 ∈ { 𝑥 ∣ ∃ 𝑏𝐵 𝑥 = ( 𝐴 +o 𝑏 ) } ) )
43 42 eqrdv ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) = { 𝑥 ∣ ∃ 𝑏𝐵 𝑥 = ( 𝐴 +o 𝑏 ) } )