Metamath Proof Explorer


Theorem ordunisuc2

Description: An ordinal equal to its union contains the successor of each of its members. (Contributed by NM, 1-Feb-2005)

Ref Expression
Assertion ordunisuc2 ( Ord 𝐴 → ( 𝐴 = ∪ 𝐴 ↔ ∀ 𝑥 ∈ 𝐴 suc 𝑥 ∈ 𝐴 ) )

Proof

Step Hyp Ref Expression
1 orduninsuc ⊢ ( Ord 𝐴 → ( 𝐴 = ∪ 𝐴 ↔ ¬ ∃ 𝑥 ∈ On 𝐴 = suc 𝑥 ) )
2 ralnex ⊢ ( ∀ 𝑥 ∈ On ¬ 𝐴 = suc 𝑥 ↔ ¬ ∃ 𝑥 ∈ On 𝐴 = suc 𝑥 )
3 onsuc ⊢ ( 𝑥 ∈ On → suc 𝑥 ∈ On )
4 eloni ⊢ ( suc 𝑥 ∈ On → Ord suc 𝑥 )
5 3 4 syl ⊢ ( 𝑥 ∈ On → Ord suc 𝑥 )
6 ordtri3 ⊢ ( ( Ord 𝐴 ∧ Ord suc 𝑥 ) → ( 𝐴 = suc 𝑥 ↔ ¬ ( 𝐴 ∈ suc 𝑥 ∨ suc 𝑥 ∈ 𝐴 ) ) )
7 5 6 sylan2 ⊢ ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) → ( 𝐴 = suc 𝑥 ↔ ¬ ( 𝐴 ∈ suc 𝑥 ∨ suc 𝑥 ∈ 𝐴 ) ) )
8 7 con2bid ⊢ ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) → ( ( 𝐴 ∈ suc 𝑥 ∨ suc 𝑥 ∈ 𝐴 ) ↔ ¬ 𝐴 = suc 𝑥 ) )
9 onnbtwn ⊢ ( 𝑥 ∈ On → ¬ ( 𝑥 ∈ 𝐴 ∧ 𝐴 ∈ suc 𝑥 ) )
10 imnan ⊢ ( ( 𝑥 ∈ 𝐴 → ¬ 𝐴 ∈ suc 𝑥 ) ↔ ¬ ( 𝑥 ∈ 𝐴 ∧ 𝐴 ∈ suc 𝑥 ) )
11 9 10 sylibr ⊢ ( 𝑥 ∈ On → ( 𝑥 ∈ 𝐴 → ¬ 𝐴 ∈ suc 𝑥 ) )
12 11 con2d ⊢ ( 𝑥 ∈ On → ( 𝐴 ∈ suc 𝑥 → ¬ 𝑥 ∈ 𝐴 ) )
13 pm2.21 ⊢ ( ¬ 𝑥 ∈ 𝐴 → ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) )
14 12 13 syl6 ⊢ ( 𝑥 ∈ On → ( 𝐴 ∈ suc 𝑥 → ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) )
15 14 adantl ⊢ ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) → ( 𝐴 ∈ suc 𝑥 → ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) )
16 ax1w ⊢ ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) → ( suc 𝑥 ∈ 𝐴 → ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) )
17 15 16 jaod ⊢ ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) → ( ( 𝐴 ∈ suc 𝑥 ∨ suc 𝑥 ∈ 𝐴 ) → ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) )
18 eloni ⊢ ( 𝑥 ∈ On → Ord 𝑥 )
19 ordtri2or ⊢ ( ( Ord 𝑥 ∧ Ord 𝐴 ) → ( 𝑥 ∈ 𝐴 ∨ 𝐴 ⊆ 𝑥 ) )
20 18 19 sylan ⊢ ( ( 𝑥 ∈ On ∧ Ord 𝐴 ) → ( 𝑥 ∈ 𝐴 ∨ 𝐴 ⊆ 𝑥 ) )
21 20 ancoms ⊢ ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) → ( 𝑥 ∈ 𝐴 ∨ 𝐴 ⊆ 𝑥 ) )
22 21 orcomd ⊢ ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) → ( 𝐴 ⊆ 𝑥 ∨ 𝑥 ∈ 𝐴 ) )
23 22 adantr ⊢ ( ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) ∧ ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) → ( 𝐴 ⊆ 𝑥 ∨ 𝑥 ∈ 𝐴 ) )
24 ordsssuc2 ⊢ ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) → ( 𝐴 ⊆ 𝑥 ↔ 𝐴 ∈ suc 𝑥 ) )
25 24 biimpd ⊢ ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) → ( 𝐴 ⊆ 𝑥 → 𝐴 ∈ suc 𝑥 ) )
26 25 adantr ⊢ ( ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) ∧ ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) → ( 𝐴 ⊆ 𝑥 → 𝐴 ∈ suc 𝑥 ) )
27 simpr ⊢ ( ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) ∧ ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) → ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) )
28 26 27 orim12d ⊢ ( ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) ∧ ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) → ( ( 𝐴 ⊆ 𝑥 ∨ 𝑥 ∈ 𝐴 ) → ( 𝐴 ∈ suc 𝑥 ∨ suc 𝑥 ∈ 𝐴 ) ) )
29 23 28 mpd ⊢ ( ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) ∧ ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) → ( 𝐴 ∈ suc 𝑥 ∨ suc 𝑥 ∈ 𝐴 ) )
30 29 ex ⊢ ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) → ( ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) → ( 𝐴 ∈ suc 𝑥 ∨ suc 𝑥 ∈ 𝐴 ) ) )
31 17 30 impbid ⊢ ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) → ( ( 𝐴 ∈ suc 𝑥 ∨ suc 𝑥 ∈ 𝐴 ) ↔ ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) )
32 8 31 bitr3d ⊢ ( ( Ord 𝐴 ∧ 𝑥 ∈ On ) → ( ¬ 𝐴 = suc 𝑥 ↔ ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) )
33 32 pm5.74da ⊢ ( Ord 𝐴 → ( ( 𝑥 ∈ On → ¬ 𝐴 = suc 𝑥 ) ↔ ( 𝑥 ∈ On → ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) ) )
34 impexp ⊢ ( ( ( 𝑥 ∈ On ∧ 𝑥 ∈ 𝐴 ) → suc 𝑥 ∈ 𝐴 ) ↔ ( 𝑥 ∈ On → ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) )
35 simpr ⊢ ( ( 𝑥 ∈ On ∧ 𝑥 ∈ 𝐴 ) → 𝑥 ∈ 𝐴 )
36 ordelon ⊢ ( ( Ord 𝐴 ∧ 𝑥 ∈ 𝐴 ) → 𝑥 ∈ On )
37 36 ex ⊢ ( Ord 𝐴 → ( 𝑥 ∈ 𝐴 → 𝑥 ∈ On ) )
38 37 ancrd ⊢ ( Ord 𝐴 → ( 𝑥 ∈ 𝐴 → ( 𝑥 ∈ On ∧ 𝑥 ∈ 𝐴 ) ) )
39 35 38 impbid2 ⊢ ( Ord 𝐴 → ( ( 𝑥 ∈ On ∧ 𝑥 ∈ 𝐴 ) ↔ 𝑥 ∈ 𝐴 ) )
40 39 imbi1d ⊢ ( Ord 𝐴 → ( ( ( 𝑥 ∈ On ∧ 𝑥 ∈ 𝐴 ) → suc 𝑥 ∈ 𝐴 ) ↔ ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) )
41 34 40 bitr3id ⊢ ( Ord 𝐴 → ( ( 𝑥 ∈ On → ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) ↔ ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) )
42 33 41 bitrd ⊢ ( Ord 𝐴 → ( ( 𝑥 ∈ On → ¬ 𝐴 = suc 𝑥 ) ↔ ( 𝑥 ∈ 𝐴 → suc 𝑥 ∈ 𝐴 ) ) )
43 42 ralbidv2 ⊢ ( Ord 𝐴 → ( ∀ 𝑥 ∈ On ¬ 𝐴 = suc 𝑥 ↔ ∀ 𝑥 ∈ 𝐴 suc 𝑥 ∈ 𝐴 ) )
44 2 43 bitr3id ⊢ ( Ord 𝐴 → ( ¬ ∃ 𝑥 ∈ On 𝐴 = suc 𝑥 ↔ ∀ 𝑥 ∈ 𝐴 suc 𝑥 ∈ 𝐴 ) )
45 1 44 bitrd ⊢ ( Ord 𝐴 → ( 𝐴 = ∪ 𝐴 ↔ ∀ 𝑥 ∈ 𝐴 suc 𝑥 ∈ 𝐴 ) )