Metamath Proof Explorer


Theorem unbenlem

Description: Lemma for unben . (Contributed by NM, 5-May-2005) (Revised by Mario Carneiro, 15-Sep-2013)

Ref Expression
Hypothesis unbenlem.1 𝐺 = ( rec ( ( 𝑥 ∈ V ↦ ( 𝑥 + 1 ) ) , 1 ) ↾ ω )
Assertion unbenlem ( ( 𝐴 ⊆ ℕ ∧ ∀ 𝑚 ∈ ℕ ∃ 𝑛𝐴 𝑚 < 𝑛 ) → 𝐴 ≈ ω )

Proof

Step Hyp Ref Expression
1 unbenlem.1 𝐺 = ( rec ( ( 𝑥 ∈ V ↦ ( 𝑥 + 1 ) ) , 1 ) ↾ ω )
2 nnex ℕ ∈ V
3 2 ssex ( 𝐴 ⊆ ℕ → 𝐴 ∈ V )
4 1z 1 ∈ ℤ
5 4 1 om2uzf1oi 𝐺 : ω –1-1-onto→ ( ℤ ‘ 1 )
6 nnuz ℕ = ( ℤ ‘ 1 )
7 f1oeq3 ( ℕ = ( ℤ ‘ 1 ) → ( 𝐺 : ω –1-1-onto→ ℕ ↔ 𝐺 : ω –1-1-onto→ ( ℤ ‘ 1 ) ) )
8 6 7 ax-mp ( 𝐺 : ω –1-1-onto→ ℕ ↔ 𝐺 : ω –1-1-onto→ ( ℤ ‘ 1 ) )
9 5 8 mpbir 𝐺 : ω –1-1-onto→ ℕ
10 f1ocnv ( 𝐺 : ω –1-1-onto→ ℕ → 𝐺 : ℕ –1-1-onto→ ω )
11 f1of1 ( 𝐺 : ℕ –1-1-onto→ ω → 𝐺 : ℕ –1-1→ ω )
12 9 10 11 mp2b 𝐺 : ℕ –1-1→ ω
13 f1ores ( ( 𝐺 : ℕ –1-1→ ω ∧ 𝐴 ⊆ ℕ ) → ( 𝐺𝐴 ) : 𝐴1-1-onto→ ( 𝐺𝐴 ) )
14 12 13 mpan ( 𝐴 ⊆ ℕ → ( 𝐺𝐴 ) : 𝐴1-1-onto→ ( 𝐺𝐴 ) )
15 f1oeng ( ( 𝐴 ∈ V ∧ ( 𝐺𝐴 ) : 𝐴1-1-onto→ ( 𝐺𝐴 ) ) → 𝐴 ≈ ( 𝐺𝐴 ) )
16 3 14 15 syl2anc ( 𝐴 ⊆ ℕ → 𝐴 ≈ ( 𝐺𝐴 ) )
17 16 adantr ( ( 𝐴 ⊆ ℕ ∧ ∀ 𝑚 ∈ ℕ ∃ 𝑛𝐴 𝑚 < 𝑛 ) → 𝐴 ≈ ( 𝐺𝐴 ) )
18 imassrn ( 𝐺𝐴 ) ⊆ ran 𝐺
19 dfdm4 dom 𝐺 = ran 𝐺
20 f1of ( 𝐺 : ω –1-1-onto→ ℕ → 𝐺 : ω ⟶ ℕ )
21 9 20 ax-mp 𝐺 : ω ⟶ ℕ
22 21 fdmi dom 𝐺 = ω
23 19 22 eqtr3i ran 𝐺 = ω
24 18 23 sseqtri ( 𝐺𝐴 ) ⊆ ω
25 4 1 om2uzuzi ( 𝑦 ∈ ω → ( 𝐺𝑦 ) ∈ ( ℤ ‘ 1 ) )
26 25 6 eleqtrrdi ( 𝑦 ∈ ω → ( 𝐺𝑦 ) ∈ ℕ )
27 breq1 ( 𝑚 = ( 𝐺𝑦 ) → ( 𝑚 < 𝑛 ↔ ( 𝐺𝑦 ) < 𝑛 ) )
28 27 rexbidv ( 𝑚 = ( 𝐺𝑦 ) → ( ∃ 𝑛𝐴 𝑚 < 𝑛 ↔ ∃ 𝑛𝐴 ( 𝐺𝑦 ) < 𝑛 ) )
29 28 rspcv ( ( 𝐺𝑦 ) ∈ ℕ → ( ∀ 𝑚 ∈ ℕ ∃ 𝑛𝐴 𝑚 < 𝑛 → ∃ 𝑛𝐴 ( 𝐺𝑦 ) < 𝑛 ) )
30 26 29 syl ( 𝑦 ∈ ω → ( ∀ 𝑚 ∈ ℕ ∃ 𝑛𝐴 𝑚 < 𝑛 → ∃ 𝑛𝐴 ( 𝐺𝑦 ) < 𝑛 ) )
31 30 adantr ( ( 𝑦 ∈ ω ∧ 𝐴 ⊆ ℕ ) → ( ∀ 𝑚 ∈ ℕ ∃ 𝑛𝐴 𝑚 < 𝑛 → ∃ 𝑛𝐴 ( 𝐺𝑦 ) < 𝑛 ) )
32 f1ocnv ( ( 𝐺𝐴 ) : 𝐴1-1-onto→ ( 𝐺𝐴 ) → ( 𝐺𝐴 ) : ( 𝐺𝐴 ) –1-1-onto𝐴 )
33 14 32 syl ( 𝐴 ⊆ ℕ → ( 𝐺𝐴 ) : ( 𝐺𝐴 ) –1-1-onto𝐴 )
34 f1ofun ( 𝐺 : ω –1-1-onto→ ℕ → Fun 𝐺 )
35 9 34 ax-mp Fun 𝐺
36 funcnvres2 ( Fun 𝐺 ( 𝐺𝐴 ) = ( 𝐺 ↾ ( 𝐺𝐴 ) ) )
37 f1oeq1 ( ( 𝐺𝐴 ) = ( 𝐺 ↾ ( 𝐺𝐴 ) ) → ( ( 𝐺𝐴 ) : ( 𝐺𝐴 ) –1-1-onto𝐴 ↔ ( 𝐺 ↾ ( 𝐺𝐴 ) ) : ( 𝐺𝐴 ) –1-1-onto𝐴 ) )
38 35 36 37 mp2b ( ( 𝐺𝐴 ) : ( 𝐺𝐴 ) –1-1-onto𝐴 ↔ ( 𝐺 ↾ ( 𝐺𝐴 ) ) : ( 𝐺𝐴 ) –1-1-onto𝐴 )
39 33 38 sylib ( 𝐴 ⊆ ℕ → ( 𝐺 ↾ ( 𝐺𝐴 ) ) : ( 𝐺𝐴 ) –1-1-onto𝐴 )
40 f1ofo ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) : ( 𝐺𝐴 ) –1-1-onto𝐴 → ( 𝐺 ↾ ( 𝐺𝐴 ) ) : ( 𝐺𝐴 ) –onto𝐴 )
41 forn ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) : ( 𝐺𝐴 ) –onto𝐴 → ran ( 𝐺 ↾ ( 𝐺𝐴 ) ) = 𝐴 )
42 40 41 syl ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) : ( 𝐺𝐴 ) –1-1-onto𝐴 → ran ( 𝐺 ↾ ( 𝐺𝐴 ) ) = 𝐴 )
43 42 eleq2d ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) : ( 𝐺𝐴 ) –1-1-onto𝐴 → ( 𝑛 ∈ ran ( 𝐺 ↾ ( 𝐺𝐴 ) ) ↔ 𝑛𝐴 ) )
44 f1ofn ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) : ( 𝐺𝐴 ) –1-1-onto𝐴 → ( 𝐺 ↾ ( 𝐺𝐴 ) ) Fn ( 𝐺𝐴 ) )
45 fvelrnb ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) Fn ( 𝐺𝐴 ) → ( 𝑛 ∈ ran ( 𝐺 ↾ ( 𝐺𝐴 ) ) ↔ ∃ 𝑚 ∈ ( 𝐺𝐴 ) ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) ‘ 𝑚 ) = 𝑛 ) )
46 44 45 syl ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) : ( 𝐺𝐴 ) –1-1-onto𝐴 → ( 𝑛 ∈ ran ( 𝐺 ↾ ( 𝐺𝐴 ) ) ↔ ∃ 𝑚 ∈ ( 𝐺𝐴 ) ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) ‘ 𝑚 ) = 𝑛 ) )
47 43 46 bitr3d ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) : ( 𝐺𝐴 ) –1-1-onto𝐴 → ( 𝑛𝐴 ↔ ∃ 𝑚 ∈ ( 𝐺𝐴 ) ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) ‘ 𝑚 ) = 𝑛 ) )
48 39 47 syl ( 𝐴 ⊆ ℕ → ( 𝑛𝐴 ↔ ∃ 𝑚 ∈ ( 𝐺𝐴 ) ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) ‘ 𝑚 ) = 𝑛 ) )
49 48 biimpa ( ( 𝐴 ⊆ ℕ ∧ 𝑛𝐴 ) → ∃ 𝑚 ∈ ( 𝐺𝐴 ) ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) ‘ 𝑚 ) = 𝑛 )
50 fvres ( 𝑚 ∈ ( 𝐺𝐴 ) → ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) ‘ 𝑚 ) = ( 𝐺𝑚 ) )
51 50 eqeq1d ( 𝑚 ∈ ( 𝐺𝐴 ) → ( ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) ‘ 𝑚 ) = 𝑛 ↔ ( 𝐺𝑚 ) = 𝑛 ) )
52 51 biimpa ( ( 𝑚 ∈ ( 𝐺𝐴 ) ∧ ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) ‘ 𝑚 ) = 𝑛 ) → ( 𝐺𝑚 ) = 𝑛 )
53 52 adantll ( ( ( 𝑦 ∈ ω ∧ 𝑚 ∈ ( 𝐺𝐴 ) ) ∧ ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) ‘ 𝑚 ) = 𝑛 ) → ( 𝐺𝑚 ) = 𝑛 )
54 24 sseli ( 𝑚 ∈ ( 𝐺𝐴 ) → 𝑚 ∈ ω )
55 4 1 om2uzlt2i ( ( 𝑦 ∈ ω ∧ 𝑚 ∈ ω ) → ( 𝑦𝑚 ↔ ( 𝐺𝑦 ) < ( 𝐺𝑚 ) ) )
56 54 55 sylan2 ( ( 𝑦 ∈ ω ∧ 𝑚 ∈ ( 𝐺𝐴 ) ) → ( 𝑦𝑚 ↔ ( 𝐺𝑦 ) < ( 𝐺𝑚 ) ) )
57 breq2 ( ( 𝐺𝑚 ) = 𝑛 → ( ( 𝐺𝑦 ) < ( 𝐺𝑚 ) ↔ ( 𝐺𝑦 ) < 𝑛 ) )
58 56 57 sylan9bb ( ( ( 𝑦 ∈ ω ∧ 𝑚 ∈ ( 𝐺𝐴 ) ) ∧ ( 𝐺𝑚 ) = 𝑛 ) → ( 𝑦𝑚 ↔ ( 𝐺𝑦 ) < 𝑛 ) )
59 53 58 syldan ( ( ( 𝑦 ∈ ω ∧ 𝑚 ∈ ( 𝐺𝐴 ) ) ∧ ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) ‘ 𝑚 ) = 𝑛 ) → ( 𝑦𝑚 ↔ ( 𝐺𝑦 ) < 𝑛 ) )
60 59 biimparc ( ( ( 𝐺𝑦 ) < 𝑛 ∧ ( ( 𝑦 ∈ ω ∧ 𝑚 ∈ ( 𝐺𝐴 ) ) ∧ ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) ‘ 𝑚 ) = 𝑛 ) ) → 𝑦𝑚 )
61 60 exp44 ( ( 𝐺𝑦 ) < 𝑛 → ( 𝑦 ∈ ω → ( 𝑚 ∈ ( 𝐺𝐴 ) → ( ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) ‘ 𝑚 ) = 𝑛𝑦𝑚 ) ) ) )
62 61 imp31 ( ( ( ( 𝐺𝑦 ) < 𝑛𝑦 ∈ ω ) ∧ 𝑚 ∈ ( 𝐺𝐴 ) ) → ( ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) ‘ 𝑚 ) = 𝑛𝑦𝑚 ) )
63 62 reximdva ( ( ( 𝐺𝑦 ) < 𝑛𝑦 ∈ ω ) → ( ∃ 𝑚 ∈ ( 𝐺𝐴 ) ( ( 𝐺 ↾ ( 𝐺𝐴 ) ) ‘ 𝑚 ) = 𝑛 → ∃ 𝑚 ∈ ( 𝐺𝐴 ) 𝑦𝑚 ) )
64 49 63 syl5 ( ( ( 𝐺𝑦 ) < 𝑛𝑦 ∈ ω ) → ( ( 𝐴 ⊆ ℕ ∧ 𝑛𝐴 ) → ∃ 𝑚 ∈ ( 𝐺𝐴 ) 𝑦𝑚 ) )
65 64 exp4b ( ( 𝐺𝑦 ) < 𝑛 → ( 𝑦 ∈ ω → ( 𝐴 ⊆ ℕ → ( 𝑛𝐴 → ∃ 𝑚 ∈ ( 𝐺𝐴 ) 𝑦𝑚 ) ) ) )
66 65 com4l ( 𝑦 ∈ ω → ( 𝐴 ⊆ ℕ → ( 𝑛𝐴 → ( ( 𝐺𝑦 ) < 𝑛 → ∃ 𝑚 ∈ ( 𝐺𝐴 ) 𝑦𝑚 ) ) ) )
67 66 imp ( ( 𝑦 ∈ ω ∧ 𝐴 ⊆ ℕ ) → ( 𝑛𝐴 → ( ( 𝐺𝑦 ) < 𝑛 → ∃ 𝑚 ∈ ( 𝐺𝐴 ) 𝑦𝑚 ) ) )
68 67 rexlimdv ( ( 𝑦 ∈ ω ∧ 𝐴 ⊆ ℕ ) → ( ∃ 𝑛𝐴 ( 𝐺𝑦 ) < 𝑛 → ∃ 𝑚 ∈ ( 𝐺𝐴 ) 𝑦𝑚 ) )
69 31 68 syld ( ( 𝑦 ∈ ω ∧ 𝐴 ⊆ ℕ ) → ( ∀ 𝑚 ∈ ℕ ∃ 𝑛𝐴 𝑚 < 𝑛 → ∃ 𝑚 ∈ ( 𝐺𝐴 ) 𝑦𝑚 ) )
70 69 ex ( 𝑦 ∈ ω → ( 𝐴 ⊆ ℕ → ( ∀ 𝑚 ∈ ℕ ∃ 𝑛𝐴 𝑚 < 𝑛 → ∃ 𝑚 ∈ ( 𝐺𝐴 ) 𝑦𝑚 ) ) )
71 70 com3l ( 𝐴 ⊆ ℕ → ( ∀ 𝑚 ∈ ℕ ∃ 𝑛𝐴 𝑚 < 𝑛 → ( 𝑦 ∈ ω → ∃ 𝑚 ∈ ( 𝐺𝐴 ) 𝑦𝑚 ) ) )
72 71 imp ( ( 𝐴 ⊆ ℕ ∧ ∀ 𝑚 ∈ ℕ ∃ 𝑛𝐴 𝑚 < 𝑛 ) → ( 𝑦 ∈ ω → ∃ 𝑚 ∈ ( 𝐺𝐴 ) 𝑦𝑚 ) )
73 72 ralrimiv ( ( 𝐴 ⊆ ℕ ∧ ∀ 𝑚 ∈ ℕ ∃ 𝑛𝐴 𝑚 < 𝑛 ) → ∀ 𝑦 ∈ ω ∃ 𝑚 ∈ ( 𝐺𝐴 ) 𝑦𝑚 )
74 unbnn3 ( ( ( 𝐺𝐴 ) ⊆ ω ∧ ∀ 𝑦 ∈ ω ∃ 𝑚 ∈ ( 𝐺𝐴 ) 𝑦𝑚 ) → ( 𝐺𝐴 ) ≈ ω )
75 24 73 74 sylancr ( ( 𝐴 ⊆ ℕ ∧ ∀ 𝑚 ∈ ℕ ∃ 𝑛𝐴 𝑚 < 𝑛 ) → ( 𝐺𝐴 ) ≈ ω )
76 entr ( ( 𝐴 ≈ ( 𝐺𝐴 ) ∧ ( 𝐺𝐴 ) ≈ ω ) → 𝐴 ≈ ω )
77 17 75 76 syl2anc ( ( 𝐴 ⊆ ℕ ∧ ∀ 𝑚 ∈ ℕ ∃ 𝑛𝐴 𝑚 < 𝑛 ) → 𝐴 ≈ ω )