Metamath Proof Explorer


Theorem eldifsucnn

Description: Condition for membership in the difference of _om and a nonzero finite ordinal. (Contributed by Scott Fenton, 24-Oct-2024)

Ref Expression
Assertion eldifsucnn ( 𝐴 ∈ ω → ( 𝐵 ∈ ( ω ∖ suc 𝐴 ) ↔ ∃ 𝑥 ∈ ( ω ∖ 𝐴 ) 𝐵 = suc 𝑥 ) )

Proof

Step Hyp Ref Expression
1 peano2 ( 𝐴 ∈ ω → suc 𝐴 ∈ ω )
2 nnawordex ( ( suc 𝐴 ∈ ω ∧ 𝐵 ∈ ω ) → ( suc 𝐴𝐵 ↔ ∃ 𝑦 ∈ ω ( suc 𝐴 +o 𝑦 ) = 𝐵 ) )
3 1 2 sylan ( ( 𝐴 ∈ ω ∧ 𝐵 ∈ ω ) → ( suc 𝐴𝐵 ↔ ∃ 𝑦 ∈ ω ( suc 𝐴 +o 𝑦 ) = 𝐵 ) )
4 nnacl ( ( 𝐴 ∈ ω ∧ 𝑦 ∈ ω ) → ( 𝐴 +o 𝑦 ) ∈ ω )
5 nnaword1 ( ( 𝐴 ∈ ω ∧ 𝑦 ∈ ω ) → 𝐴 ⊆ ( 𝐴 +o 𝑦 ) )
6 nnasuc ( ( 𝑦 ∈ ω ∧ 𝐴 ∈ ω ) → ( 𝑦 +o suc 𝐴 ) = suc ( 𝑦 +o 𝐴 ) )
7 6 ancoms ( ( 𝐴 ∈ ω ∧ 𝑦 ∈ ω ) → ( 𝑦 +o suc 𝐴 ) = suc ( 𝑦 +o 𝐴 ) )
8 nnacom ( ( suc 𝐴 ∈ ω ∧ 𝑦 ∈ ω ) → ( suc 𝐴 +o 𝑦 ) = ( 𝑦 +o suc 𝐴 ) )
9 1 8 sylan ( ( 𝐴 ∈ ω ∧ 𝑦 ∈ ω ) → ( suc 𝐴 +o 𝑦 ) = ( 𝑦 +o suc 𝐴 ) )
10 nnacom ( ( 𝐴 ∈ ω ∧ 𝑦 ∈ ω ) → ( 𝐴 +o 𝑦 ) = ( 𝑦 +o 𝐴 ) )
11 suceq ( ( 𝐴 +o 𝑦 ) = ( 𝑦 +o 𝐴 ) → suc ( 𝐴 +o 𝑦 ) = suc ( 𝑦 +o 𝐴 ) )
12 10 11 syl ( ( 𝐴 ∈ ω ∧ 𝑦 ∈ ω ) → suc ( 𝐴 +o 𝑦 ) = suc ( 𝑦 +o 𝐴 ) )
13 7 9 12 3eqtr4d ( ( 𝐴 ∈ ω ∧ 𝑦 ∈ ω ) → ( suc 𝐴 +o 𝑦 ) = suc ( 𝐴 +o 𝑦 ) )
14 sseq2 ( 𝑥 = ( 𝐴 +o 𝑦 ) → ( 𝐴𝑥𝐴 ⊆ ( 𝐴 +o 𝑦 ) ) )
15 suceq ( 𝑥 = ( 𝐴 +o 𝑦 ) → suc 𝑥 = suc ( 𝐴 +o 𝑦 ) )
16 15 eqeq2d ( 𝑥 = ( 𝐴 +o 𝑦 ) → ( ( suc 𝐴 +o 𝑦 ) = suc 𝑥 ↔ ( suc 𝐴 +o 𝑦 ) = suc ( 𝐴 +o 𝑦 ) ) )
17 14 16 anbi12d ( 𝑥 = ( 𝐴 +o 𝑦 ) → ( ( 𝐴𝑥 ∧ ( suc 𝐴 +o 𝑦 ) = suc 𝑥 ) ↔ ( 𝐴 ⊆ ( 𝐴 +o 𝑦 ) ∧ ( suc 𝐴 +o 𝑦 ) = suc ( 𝐴 +o 𝑦 ) ) ) )
18 17 rspcev ( ( ( 𝐴 +o 𝑦 ) ∈ ω ∧ ( 𝐴 ⊆ ( 𝐴 +o 𝑦 ) ∧ ( suc 𝐴 +o 𝑦 ) = suc ( 𝐴 +o 𝑦 ) ) ) → ∃ 𝑥 ∈ ω ( 𝐴𝑥 ∧ ( suc 𝐴 +o 𝑦 ) = suc 𝑥 ) )
19 4 5 13 18 syl12anc ( ( 𝐴 ∈ ω ∧ 𝑦 ∈ ω ) → ∃ 𝑥 ∈ ω ( 𝐴𝑥 ∧ ( suc 𝐴 +o 𝑦 ) = suc 𝑥 ) )
20 eqeq1 ( ( suc 𝐴 +o 𝑦 ) = 𝐵 → ( ( suc 𝐴 +o 𝑦 ) = suc 𝑥𝐵 = suc 𝑥 ) )
21 20 anbi2d ( ( suc 𝐴 +o 𝑦 ) = 𝐵 → ( ( 𝐴𝑥 ∧ ( suc 𝐴 +o 𝑦 ) = suc 𝑥 ) ↔ ( 𝐴𝑥𝐵 = suc 𝑥 ) ) )
22 21 rexbidv ( ( suc 𝐴 +o 𝑦 ) = 𝐵 → ( ∃ 𝑥 ∈ ω ( 𝐴𝑥 ∧ ( suc 𝐴 +o 𝑦 ) = suc 𝑥 ) ↔ ∃ 𝑥 ∈ ω ( 𝐴𝑥𝐵 = suc 𝑥 ) ) )
23 19 22 syl5ibcom ( ( 𝐴 ∈ ω ∧ 𝑦 ∈ ω ) → ( ( suc 𝐴 +o 𝑦 ) = 𝐵 → ∃ 𝑥 ∈ ω ( 𝐴𝑥𝐵 = suc 𝑥 ) ) )
24 23 rexlimdva ( 𝐴 ∈ ω → ( ∃ 𝑦 ∈ ω ( suc 𝐴 +o 𝑦 ) = 𝐵 → ∃ 𝑥 ∈ ω ( 𝐴𝑥𝐵 = suc 𝑥 ) ) )
25 24 adantr ( ( 𝐴 ∈ ω ∧ 𝐵 ∈ ω ) → ( ∃ 𝑦 ∈ ω ( suc 𝐴 +o 𝑦 ) = 𝐵 → ∃ 𝑥 ∈ ω ( 𝐴𝑥𝐵 = suc 𝑥 ) ) )
26 3 25 sylbid ( ( 𝐴 ∈ ω ∧ 𝐵 ∈ ω ) → ( suc 𝐴𝐵 → ∃ 𝑥 ∈ ω ( 𝐴𝑥𝐵 = suc 𝑥 ) ) )
27 26 expimpd ( 𝐴 ∈ ω → ( ( 𝐵 ∈ ω ∧ suc 𝐴𝐵 ) → ∃ 𝑥 ∈ ω ( 𝐴𝑥𝐵 = suc 𝑥 ) ) )
28 peano2 ( 𝑥 ∈ ω → suc 𝑥 ∈ ω )
29 28 ad2antlr ( ( ( 𝐴 ∈ ω ∧ 𝑥 ∈ ω ) ∧ 𝐴𝑥 ) → suc 𝑥 ∈ ω )
30 nnord ( 𝐴 ∈ ω → Ord 𝐴 )
31 nnord ( 𝑥 ∈ ω → Ord 𝑥 )
32 ordsucsssuc ( ( Ord 𝐴 ∧ Ord 𝑥 ) → ( 𝐴𝑥 ↔ suc 𝐴 ⊆ suc 𝑥 ) )
33 30 31 32 syl2an ( ( 𝐴 ∈ ω ∧ 𝑥 ∈ ω ) → ( 𝐴𝑥 ↔ suc 𝐴 ⊆ suc 𝑥 ) )
34 33 biimpa ( ( ( 𝐴 ∈ ω ∧ 𝑥 ∈ ω ) ∧ 𝐴𝑥 ) → suc 𝐴 ⊆ suc 𝑥 )
35 29 34 jca ( ( ( 𝐴 ∈ ω ∧ 𝑥 ∈ ω ) ∧ 𝐴𝑥 ) → ( suc 𝑥 ∈ ω ∧ suc 𝐴 ⊆ suc 𝑥 ) )
36 eleq1 ( 𝐵 = suc 𝑥 → ( 𝐵 ∈ ω ↔ suc 𝑥 ∈ ω ) )
37 sseq2 ( 𝐵 = suc 𝑥 → ( suc 𝐴𝐵 ↔ suc 𝐴 ⊆ suc 𝑥 ) )
38 36 37 anbi12d ( 𝐵 = suc 𝑥 → ( ( 𝐵 ∈ ω ∧ suc 𝐴𝐵 ) ↔ ( suc 𝑥 ∈ ω ∧ suc 𝐴 ⊆ suc 𝑥 ) ) )
39 35 38 syl5ibrcom ( ( ( 𝐴 ∈ ω ∧ 𝑥 ∈ ω ) ∧ 𝐴𝑥 ) → ( 𝐵 = suc 𝑥 → ( 𝐵 ∈ ω ∧ suc 𝐴𝐵 ) ) )
40 39 expimpd ( ( 𝐴 ∈ ω ∧ 𝑥 ∈ ω ) → ( ( 𝐴𝑥𝐵 = suc 𝑥 ) → ( 𝐵 ∈ ω ∧ suc 𝐴𝐵 ) ) )
41 40 rexlimdva ( 𝐴 ∈ ω → ( ∃ 𝑥 ∈ ω ( 𝐴𝑥𝐵 = suc 𝑥 ) → ( 𝐵 ∈ ω ∧ suc 𝐴𝐵 ) ) )
42 27 41 impbid ( 𝐴 ∈ ω → ( ( 𝐵 ∈ ω ∧ suc 𝐴𝐵 ) ↔ ∃ 𝑥 ∈ ω ( 𝐴𝑥𝐵 = suc 𝑥 ) ) )
43 eldif ( 𝐵 ∈ ( ω ∖ suc 𝐴 ) ↔ ( 𝐵 ∈ ω ∧ ¬ 𝐵 ∈ suc 𝐴 ) )
44 nnord ( suc 𝐴 ∈ ω → Ord suc 𝐴 )
45 1 44 syl ( 𝐴 ∈ ω → Ord suc 𝐴 )
46 nnord ( 𝐵 ∈ ω → Ord 𝐵 )
47 ordtri1 ( ( Ord suc 𝐴 ∧ Ord 𝐵 ) → ( suc 𝐴𝐵 ↔ ¬ 𝐵 ∈ suc 𝐴 ) )
48 45 46 47 syl2an ( ( 𝐴 ∈ ω ∧ 𝐵 ∈ ω ) → ( suc 𝐴𝐵 ↔ ¬ 𝐵 ∈ suc 𝐴 ) )
49 48 pm5.32da ( 𝐴 ∈ ω → ( ( 𝐵 ∈ ω ∧ suc 𝐴𝐵 ) ↔ ( 𝐵 ∈ ω ∧ ¬ 𝐵 ∈ suc 𝐴 ) ) )
50 43 49 bitr4id ( 𝐴 ∈ ω → ( 𝐵 ∈ ( ω ∖ suc 𝐴 ) ↔ ( 𝐵 ∈ ω ∧ suc 𝐴𝐵 ) ) )
51 eldif ( 𝑥 ∈ ( ω ∖ 𝐴 ) ↔ ( 𝑥 ∈ ω ∧ ¬ 𝑥𝐴 ) )
52 51 anbi1i ( ( 𝑥 ∈ ( ω ∖ 𝐴 ) ∧ 𝐵 = suc 𝑥 ) ↔ ( ( 𝑥 ∈ ω ∧ ¬ 𝑥𝐴 ) ∧ 𝐵 = suc 𝑥 ) )
53 anass ( ( ( 𝑥 ∈ ω ∧ ¬ 𝑥𝐴 ) ∧ 𝐵 = suc 𝑥 ) ↔ ( 𝑥 ∈ ω ∧ ( ¬ 𝑥𝐴𝐵 = suc 𝑥 ) ) )
54 52 53 bitri ( ( 𝑥 ∈ ( ω ∖ 𝐴 ) ∧ 𝐵 = suc 𝑥 ) ↔ ( 𝑥 ∈ ω ∧ ( ¬ 𝑥𝐴𝐵 = suc 𝑥 ) ) )
55 54 rexbii2 ( ∃ 𝑥 ∈ ( ω ∖ 𝐴 ) 𝐵 = suc 𝑥 ↔ ∃ 𝑥 ∈ ω ( ¬ 𝑥𝐴𝐵 = suc 𝑥 ) )
56 ordtri1 ( ( Ord 𝐴 ∧ Ord 𝑥 ) → ( 𝐴𝑥 ↔ ¬ 𝑥𝐴 ) )
57 30 31 56 syl2an ( ( 𝐴 ∈ ω ∧ 𝑥 ∈ ω ) → ( 𝐴𝑥 ↔ ¬ 𝑥𝐴 ) )
58 57 anbi1d ( ( 𝐴 ∈ ω ∧ 𝑥 ∈ ω ) → ( ( 𝐴𝑥𝐵 = suc 𝑥 ) ↔ ( ¬ 𝑥𝐴𝐵 = suc 𝑥 ) ) )
59 58 rexbidva ( 𝐴 ∈ ω → ( ∃ 𝑥 ∈ ω ( 𝐴𝑥𝐵 = suc 𝑥 ) ↔ ∃ 𝑥 ∈ ω ( ¬ 𝑥𝐴𝐵 = suc 𝑥 ) ) )
60 55 59 bitr4id ( 𝐴 ∈ ω → ( ∃ 𝑥 ∈ ( ω ∖ 𝐴 ) 𝐵 = suc 𝑥 ↔ ∃ 𝑥 ∈ ω ( 𝐴𝑥𝐵 = suc 𝑥 ) ) )
61 42 50 60 3bitr4d ( 𝐴 ∈ ω → ( 𝐵 ∈ ( ω ∖ suc 𝐴 ) ↔ ∃ 𝑥 ∈ ( ω ∖ 𝐴 ) 𝐵 = suc 𝑥 ) )