Metamath Proof Explorer


Theorem elhf2

Description: Alternate form of membership in the hereditarily finite sets. (Contributed by Scott Fenton, 13-Jul-2015)

Ref Expression
Hypothesis elhf2.1 𝐴 ∈ V
Assertion elhf2 ( 𝐴 ∈ Hf ↔ ( rank ‘ 𝐴 ) ∈ ω )

Proof

Step Hyp Ref Expression
1 elhf2.1 𝐴 ∈ V
2 elhf ( 𝐴 ∈ Hf ↔ ∃ 𝑥 ∈ ω 𝐴 ∈ ( 𝑅1𝑥 ) )
3 omon ( ω ∈ On ∨ ω = On )
4 nnon ( 𝑥 ∈ ω → 𝑥 ∈ On )
5 1 rankr1a ( 𝑥 ∈ On → ( 𝐴 ∈ ( 𝑅1𝑥 ) ↔ ( rank ‘ 𝐴 ) ∈ 𝑥 ) )
6 4 5 syl ( 𝑥 ∈ ω → ( 𝐴 ∈ ( 𝑅1𝑥 ) ↔ ( rank ‘ 𝐴 ) ∈ 𝑥 ) )
7 6 adantl ( ( ω ∈ On ∧ 𝑥 ∈ ω ) → ( 𝐴 ∈ ( 𝑅1𝑥 ) ↔ ( rank ‘ 𝐴 ) ∈ 𝑥 ) )
8 elnn ( ( ( rank ‘ 𝐴 ) ∈ 𝑥𝑥 ∈ ω ) → ( rank ‘ 𝐴 ) ∈ ω )
9 8 expcom ( 𝑥 ∈ ω → ( ( rank ‘ 𝐴 ) ∈ 𝑥 → ( rank ‘ 𝐴 ) ∈ ω ) )
10 9 adantl ( ( ω ∈ On ∧ 𝑥 ∈ ω ) → ( ( rank ‘ 𝐴 ) ∈ 𝑥 → ( rank ‘ 𝐴 ) ∈ ω ) )
11 7 10 sylbid ( ( ω ∈ On ∧ 𝑥 ∈ ω ) → ( 𝐴 ∈ ( 𝑅1𝑥 ) → ( rank ‘ 𝐴 ) ∈ ω ) )
12 11 rexlimdva ( ω ∈ On → ( ∃ 𝑥 ∈ ω 𝐴 ∈ ( 𝑅1𝑥 ) → ( rank ‘ 𝐴 ) ∈ ω ) )
13 peano2 ( ( rank ‘ 𝐴 ) ∈ ω → suc ( rank ‘ 𝐴 ) ∈ ω )
14 13 adantr ( ( ( rank ‘ 𝐴 ) ∈ ω ∧ ω ∈ On ) → suc ( rank ‘ 𝐴 ) ∈ ω )
15 r1rankid ( 𝐴 ∈ V → 𝐴 ⊆ ( 𝑅1 ‘ ( rank ‘ 𝐴 ) ) )
16 1 15 mp1i ( ( ( rank ‘ 𝐴 ) ∈ ω ∧ ω ∈ On ) → 𝐴 ⊆ ( 𝑅1 ‘ ( rank ‘ 𝐴 ) ) )
17 1 elpw ( 𝐴 ∈ 𝒫 ( 𝑅1 ‘ ( rank ‘ 𝐴 ) ) ↔ 𝐴 ⊆ ( 𝑅1 ‘ ( rank ‘ 𝐴 ) ) )
18 16 17 sylibr ( ( ( rank ‘ 𝐴 ) ∈ ω ∧ ω ∈ On ) → 𝐴 ∈ 𝒫 ( 𝑅1 ‘ ( rank ‘ 𝐴 ) ) )
19 nnon ( ( rank ‘ 𝐴 ) ∈ ω → ( rank ‘ 𝐴 ) ∈ On )
20 r1suc ( ( rank ‘ 𝐴 ) ∈ On → ( 𝑅1 ‘ suc ( rank ‘ 𝐴 ) ) = 𝒫 ( 𝑅1 ‘ ( rank ‘ 𝐴 ) ) )
21 19 20 syl ( ( rank ‘ 𝐴 ) ∈ ω → ( 𝑅1 ‘ suc ( rank ‘ 𝐴 ) ) = 𝒫 ( 𝑅1 ‘ ( rank ‘ 𝐴 ) ) )
22 21 adantr ( ( ( rank ‘ 𝐴 ) ∈ ω ∧ ω ∈ On ) → ( 𝑅1 ‘ suc ( rank ‘ 𝐴 ) ) = 𝒫 ( 𝑅1 ‘ ( rank ‘ 𝐴 ) ) )
23 18 22 eleqtrrd ( ( ( rank ‘ 𝐴 ) ∈ ω ∧ ω ∈ On ) → 𝐴 ∈ ( 𝑅1 ‘ suc ( rank ‘ 𝐴 ) ) )
24 fveq2 ( 𝑥 = suc ( rank ‘ 𝐴 ) → ( 𝑅1𝑥 ) = ( 𝑅1 ‘ suc ( rank ‘ 𝐴 ) ) )
25 24 eleq2d ( 𝑥 = suc ( rank ‘ 𝐴 ) → ( 𝐴 ∈ ( 𝑅1𝑥 ) ↔ 𝐴 ∈ ( 𝑅1 ‘ suc ( rank ‘ 𝐴 ) ) ) )
26 25 rspcev ( ( suc ( rank ‘ 𝐴 ) ∈ ω ∧ 𝐴 ∈ ( 𝑅1 ‘ suc ( rank ‘ 𝐴 ) ) ) → ∃ 𝑥 ∈ ω 𝐴 ∈ ( 𝑅1𝑥 ) )
27 14 23 26 syl2anc ( ( ( rank ‘ 𝐴 ) ∈ ω ∧ ω ∈ On ) → ∃ 𝑥 ∈ ω 𝐴 ∈ ( 𝑅1𝑥 ) )
28 27 expcom ( ω ∈ On → ( ( rank ‘ 𝐴 ) ∈ ω → ∃ 𝑥 ∈ ω 𝐴 ∈ ( 𝑅1𝑥 ) ) )
29 12 28 impbid ( ω ∈ On → ( ∃ 𝑥 ∈ ω 𝐴 ∈ ( 𝑅1𝑥 ) ↔ ( rank ‘ 𝐴 ) ∈ ω ) )
30 1 tz9.13 𝑥 ∈ On 𝐴 ∈ ( 𝑅1𝑥 )
31 rankon ( rank ‘ 𝐴 ) ∈ On
32 30 31 2th ( ∃ 𝑥 ∈ On 𝐴 ∈ ( 𝑅1𝑥 ) ↔ ( rank ‘ 𝐴 ) ∈ On )
33 rexeq ( ω = On → ( ∃ 𝑥 ∈ ω 𝐴 ∈ ( 𝑅1𝑥 ) ↔ ∃ 𝑥 ∈ On 𝐴 ∈ ( 𝑅1𝑥 ) ) )
34 eleq2 ( ω = On → ( ( rank ‘ 𝐴 ) ∈ ω ↔ ( rank ‘ 𝐴 ) ∈ On ) )
35 33 34 bibi12d ( ω = On → ( ( ∃ 𝑥 ∈ ω 𝐴 ∈ ( 𝑅1𝑥 ) ↔ ( rank ‘ 𝐴 ) ∈ ω ) ↔ ( ∃ 𝑥 ∈ On 𝐴 ∈ ( 𝑅1𝑥 ) ↔ ( rank ‘ 𝐴 ) ∈ On ) ) )
36 32 35 mpbiri ( ω = On → ( ∃ 𝑥 ∈ ω 𝐴 ∈ ( 𝑅1𝑥 ) ↔ ( rank ‘ 𝐴 ) ∈ ω ) )
37 29 36 jaoi ( ( ω ∈ On ∨ ω = On ) → ( ∃ 𝑥 ∈ ω 𝐴 ∈ ( 𝑅1𝑥 ) ↔ ( rank ‘ 𝐴 ) ∈ ω ) )
38 3 37 ax-mp ( ∃ 𝑥 ∈ ω 𝐴 ∈ ( 𝑅1𝑥 ) ↔ ( rank ‘ 𝐴 ) ∈ ω )
39 2 38 bitri ( 𝐴 ∈ Hf ↔ ( rank ‘ 𝐴 ) ∈ ω )