Metamath Proof Explorer


Theorem isf32lem9

Description: Lemma for isfin3-2 . Construction of the onto function. (Contributed by Stefan O'Rear, 5-Nov-2014) (Revised by Mario Carneiro, 2-Oct-2015)

Ref Expression
Hypotheses isf32lem.a ( 𝜑𝐹 : ω ⟶ 𝒫 𝐺 )
isf32lem.b ( 𝜑 → ∀ 𝑥 ∈ ω ( 𝐹 ‘ suc 𝑥 ) ⊆ ( 𝐹𝑥 ) )
isf32lem.c ( 𝜑 → ¬ ran 𝐹 ∈ ran 𝐹 )
isf32lem.d 𝑆 = { 𝑦 ∈ ω ∣ ( 𝐹 ‘ suc 𝑦 ) ⊊ ( 𝐹𝑦 ) }
isf32lem.e 𝐽 = ( 𝑢 ∈ ω ↦ ( 𝑣𝑆 ( 𝑣𝑆 ) ≈ 𝑢 ) )
isf32lem.f 𝐾 = ( ( 𝑤𝑆 ↦ ( ( 𝐹𝑤 ) ∖ ( 𝐹 ‘ suc 𝑤 ) ) ) ∘ 𝐽 )
isf32lem.g 𝐿 = ( 𝑡𝐺 ↦ ( ℩ 𝑠 ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) ) )
Assertion isf32lem9 ( 𝜑𝐿 : 𝐺onto→ ω )

Proof

Step Hyp Ref Expression
1 isf32lem.a ( 𝜑𝐹 : ω ⟶ 𝒫 𝐺 )
2 isf32lem.b ( 𝜑 → ∀ 𝑥 ∈ ω ( 𝐹 ‘ suc 𝑥 ) ⊆ ( 𝐹𝑥 ) )
3 isf32lem.c ( 𝜑 → ¬ ran 𝐹 ∈ ran 𝐹 )
4 isf32lem.d 𝑆 = { 𝑦 ∈ ω ∣ ( 𝐹 ‘ suc 𝑦 ) ⊊ ( 𝐹𝑦 ) }
5 isf32lem.e 𝐽 = ( 𝑢 ∈ ω ↦ ( 𝑣𝑆 ( 𝑣𝑆 ) ≈ 𝑢 ) )
6 isf32lem.f 𝐾 = ( ( 𝑤𝑆 ↦ ( ( 𝐹𝑤 ) ∖ ( 𝐹 ‘ suc 𝑤 ) ) ) ∘ 𝐽 )
7 isf32lem.g 𝐿 = ( 𝑡𝐺 ↦ ( ℩ 𝑠 ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) ) )
8 ssab2 { 𝑠 ∣ ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) } ⊆ ω
9 iotacl ( ∃! 𝑠 ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) → ( ℩ 𝑠 ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) ) ∈ { 𝑠 ∣ ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) } )
10 8 9 sselid ( ∃! 𝑠 ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) → ( ℩ 𝑠 ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) ) ∈ ω )
11 iotanul ( ¬ ∃! 𝑠 ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) → ( ℩ 𝑠 ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) ) = ∅ )
12 peano1 ∅ ∈ ω
13 11 12 eqeltrdi ( ¬ ∃! 𝑠 ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) → ( ℩ 𝑠 ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) ) ∈ ω )
14 10 13 pm2.61i ( ℩ 𝑠 ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) ) ∈ ω
15 14 a1i ( 𝑡𝐺 → ( ℩ 𝑠 ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) ) ∈ ω )
16 7 15 fmpti 𝐿 : 𝐺 ⟶ ω
17 16 a1i ( 𝜑𝐿 : 𝐺 ⟶ ω )
18 1 2 3 4 5 6 isf32lem6 ( ( 𝜑𝑎 ∈ ω ) → ( 𝐾𝑎 ) ≠ ∅ )
19 n0 ( ( 𝐾𝑎 ) ≠ ∅ ↔ ∃ 𝑏 𝑏 ∈ ( 𝐾𝑎 ) )
20 18 19 sylib ( ( 𝜑𝑎 ∈ ω ) → ∃ 𝑏 𝑏 ∈ ( 𝐾𝑎 ) )
21 1 2 3 4 5 6 isf32lem8 ( ( 𝜑𝑎 ∈ ω ) → ( 𝐾𝑎 ) ⊆ 𝐺 )
22 21 sselda ( ( ( 𝜑𝑎 ∈ ω ) ∧ 𝑏 ∈ ( 𝐾𝑎 ) ) → 𝑏𝐺 )
23 eleq1w ( 𝑡 = 𝑏 → ( 𝑡 ∈ ( 𝐾𝑠 ) ↔ 𝑏 ∈ ( 𝐾𝑠 ) ) )
24 23 anbi2d ( 𝑡 = 𝑏 → ( ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) ↔ ( 𝑠 ∈ ω ∧ 𝑏 ∈ ( 𝐾𝑠 ) ) ) )
25 24 iotabidv ( 𝑡 = 𝑏 → ( ℩ 𝑠 ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) ) = ( ℩ 𝑠 ( 𝑠 ∈ ω ∧ 𝑏 ∈ ( 𝐾𝑠 ) ) ) )
26 iotaex ( ℩ 𝑠 ( 𝑠 ∈ ω ∧ 𝑡 ∈ ( 𝐾𝑠 ) ) ) ∈ V
27 25 7 26 fvmpt3i ( 𝑏𝐺 → ( 𝐿𝑏 ) = ( ℩ 𝑠 ( 𝑠 ∈ ω ∧ 𝑏 ∈ ( 𝐾𝑠 ) ) ) )
28 22 27 syl ( ( ( 𝜑𝑎 ∈ ω ) ∧ 𝑏 ∈ ( 𝐾𝑎 ) ) → ( 𝐿𝑏 ) = ( ℩ 𝑠 ( 𝑠 ∈ ω ∧ 𝑏 ∈ ( 𝐾𝑠 ) ) ) )
29 simp1r ( ( ( 𝜑𝑏 ∈ ( 𝐾𝑎 ) ) ∧ 𝑎 ∈ ω ∧ 𝑠 ∈ ω ) → 𝑏 ∈ ( 𝐾𝑎 ) )
30 simpl1 ( ( ( 𝜑𝑎 ∈ ω ∧ 𝑠 ∈ ω ) ∧ 𝑠𝑎 ) → 𝜑 )
31 simpr ( ( ( 𝜑𝑎 ∈ ω ∧ 𝑠 ∈ ω ) ∧ 𝑠𝑎 ) → 𝑠𝑎 )
32 31 necomd ( ( ( 𝜑𝑎 ∈ ω ∧ 𝑠 ∈ ω ) ∧ 𝑠𝑎 ) → 𝑎𝑠 )
33 simpl2 ( ( ( 𝜑𝑎 ∈ ω ∧ 𝑠 ∈ ω ) ∧ 𝑠𝑎 ) → 𝑎 ∈ ω )
34 simpl3 ( ( ( 𝜑𝑎 ∈ ω ∧ 𝑠 ∈ ω ) ∧ 𝑠𝑎 ) → 𝑠 ∈ ω )
35 1 2 3 4 5 6 isf32lem7 ( ( ( 𝜑𝑎𝑠 ) ∧ ( 𝑎 ∈ ω ∧ 𝑠 ∈ ω ) ) → ( ( 𝐾𝑎 ) ∩ ( 𝐾𝑠 ) ) = ∅ )
36 30 32 33 34 35 syl22anc ( ( ( 𝜑𝑎 ∈ ω ∧ 𝑠 ∈ ω ) ∧ 𝑠𝑎 ) → ( ( 𝐾𝑎 ) ∩ ( 𝐾𝑠 ) ) = ∅ )
37 disj1 ( ( ( 𝐾𝑎 ) ∩ ( 𝐾𝑠 ) ) = ∅ ↔ ∀ 𝑏 ( 𝑏 ∈ ( 𝐾𝑎 ) → ¬ 𝑏 ∈ ( 𝐾𝑠 ) ) )
38 36 37 sylib ( ( ( 𝜑𝑎 ∈ ω ∧ 𝑠 ∈ ω ) ∧ 𝑠𝑎 ) → ∀ 𝑏 ( 𝑏 ∈ ( 𝐾𝑎 ) → ¬ 𝑏 ∈ ( 𝐾𝑠 ) ) )
39 38 ex ( ( 𝜑𝑎 ∈ ω ∧ 𝑠 ∈ ω ) → ( 𝑠𝑎 → ∀ 𝑏 ( 𝑏 ∈ ( 𝐾𝑎 ) → ¬ 𝑏 ∈ ( 𝐾𝑠 ) ) ) )
40 sp ( ∀ 𝑏 ( 𝑏 ∈ ( 𝐾𝑎 ) → ¬ 𝑏 ∈ ( 𝐾𝑠 ) ) → ( 𝑏 ∈ ( 𝐾𝑎 ) → ¬ 𝑏 ∈ ( 𝐾𝑠 ) ) )
41 39 40 syl6 ( ( 𝜑𝑎 ∈ ω ∧ 𝑠 ∈ ω ) → ( 𝑠𝑎 → ( 𝑏 ∈ ( 𝐾𝑎 ) → ¬ 𝑏 ∈ ( 𝐾𝑠 ) ) ) )
42 41 com23 ( ( 𝜑𝑎 ∈ ω ∧ 𝑠 ∈ ω ) → ( 𝑏 ∈ ( 𝐾𝑎 ) → ( 𝑠𝑎 → ¬ 𝑏 ∈ ( 𝐾𝑠 ) ) ) )
43 42 3adant1r ( ( ( 𝜑𝑏 ∈ ( 𝐾𝑎 ) ) ∧ 𝑎 ∈ ω ∧ 𝑠 ∈ ω ) → ( 𝑏 ∈ ( 𝐾𝑎 ) → ( 𝑠𝑎 → ¬ 𝑏 ∈ ( 𝐾𝑠 ) ) ) )
44 29 43 mpd ( ( ( 𝜑𝑏 ∈ ( 𝐾𝑎 ) ) ∧ 𝑎 ∈ ω ∧ 𝑠 ∈ ω ) → ( 𝑠𝑎 → ¬ 𝑏 ∈ ( 𝐾𝑠 ) ) )
45 44 necon4ad ( ( ( 𝜑𝑏 ∈ ( 𝐾𝑎 ) ) ∧ 𝑎 ∈ ω ∧ 𝑠 ∈ ω ) → ( 𝑏 ∈ ( 𝐾𝑠 ) → 𝑠 = 𝑎 ) )
46 45 3expia ( ( ( 𝜑𝑏 ∈ ( 𝐾𝑎 ) ) ∧ 𝑎 ∈ ω ) → ( 𝑠 ∈ ω → ( 𝑏 ∈ ( 𝐾𝑠 ) → 𝑠 = 𝑎 ) ) )
47 46 impd ( ( ( 𝜑𝑏 ∈ ( 𝐾𝑎 ) ) ∧ 𝑎 ∈ ω ) → ( ( 𝑠 ∈ ω ∧ 𝑏 ∈ ( 𝐾𝑠 ) ) → 𝑠 = 𝑎 ) )
48 eleq1w ( 𝑠 = 𝑎 → ( 𝑠 ∈ ω ↔ 𝑎 ∈ ω ) )
49 fveq2 ( 𝑠 = 𝑎 → ( 𝐾𝑠 ) = ( 𝐾𝑎 ) )
50 49 eleq2d ( 𝑠 = 𝑎 → ( 𝑏 ∈ ( 𝐾𝑠 ) ↔ 𝑏 ∈ ( 𝐾𝑎 ) ) )
51 48 50 anbi12d ( 𝑠 = 𝑎 → ( ( 𝑠 ∈ ω ∧ 𝑏 ∈ ( 𝐾𝑠 ) ) ↔ ( 𝑎 ∈ ω ∧ 𝑏 ∈ ( 𝐾𝑎 ) ) ) )
52 51 biimprcd ( ( 𝑎 ∈ ω ∧ 𝑏 ∈ ( 𝐾𝑎 ) ) → ( 𝑠 = 𝑎 → ( 𝑠 ∈ ω ∧ 𝑏 ∈ ( 𝐾𝑠 ) ) ) )
53 52 ancoms ( ( 𝑏 ∈ ( 𝐾𝑎 ) ∧ 𝑎 ∈ ω ) → ( 𝑠 = 𝑎 → ( 𝑠 ∈ ω ∧ 𝑏 ∈ ( 𝐾𝑠 ) ) ) )
54 53 adantll ( ( ( 𝜑𝑏 ∈ ( 𝐾𝑎 ) ) ∧ 𝑎 ∈ ω ) → ( 𝑠 = 𝑎 → ( 𝑠 ∈ ω ∧ 𝑏 ∈ ( 𝐾𝑠 ) ) ) )
55 47 54 impbid ( ( ( 𝜑𝑏 ∈ ( 𝐾𝑎 ) ) ∧ 𝑎 ∈ ω ) → ( ( 𝑠 ∈ ω ∧ 𝑏 ∈ ( 𝐾𝑠 ) ) ↔ 𝑠 = 𝑎 ) )
56 55 iota5 ( ( ( 𝜑𝑏 ∈ ( 𝐾𝑎 ) ) ∧ 𝑎 ∈ ω ) → ( ℩ 𝑠 ( 𝑠 ∈ ω ∧ 𝑏 ∈ ( 𝐾𝑠 ) ) ) = 𝑎 )
57 56 an32s ( ( ( 𝜑𝑎 ∈ ω ) ∧ 𝑏 ∈ ( 𝐾𝑎 ) ) → ( ℩ 𝑠 ( 𝑠 ∈ ω ∧ 𝑏 ∈ ( 𝐾𝑠 ) ) ) = 𝑎 )
58 28 57 eqtr2d ( ( ( 𝜑𝑎 ∈ ω ) ∧ 𝑏 ∈ ( 𝐾𝑎 ) ) → 𝑎 = ( 𝐿𝑏 ) )
59 22 58 jca ( ( ( 𝜑𝑎 ∈ ω ) ∧ 𝑏 ∈ ( 𝐾𝑎 ) ) → ( 𝑏𝐺𝑎 = ( 𝐿𝑏 ) ) )
60 59 ex ( ( 𝜑𝑎 ∈ ω ) → ( 𝑏 ∈ ( 𝐾𝑎 ) → ( 𝑏𝐺𝑎 = ( 𝐿𝑏 ) ) ) )
61 60 eximdv ( ( 𝜑𝑎 ∈ ω ) → ( ∃ 𝑏 𝑏 ∈ ( 𝐾𝑎 ) → ∃ 𝑏 ( 𝑏𝐺𝑎 = ( 𝐿𝑏 ) ) ) )
62 df-rex ( ∃ 𝑏𝐺 𝑎 = ( 𝐿𝑏 ) ↔ ∃ 𝑏 ( 𝑏𝐺𝑎 = ( 𝐿𝑏 ) ) )
63 61 62 syl6ibr ( ( 𝜑𝑎 ∈ ω ) → ( ∃ 𝑏 𝑏 ∈ ( 𝐾𝑎 ) → ∃ 𝑏𝐺 𝑎 = ( 𝐿𝑏 ) ) )
64 20 63 mpd ( ( 𝜑𝑎 ∈ ω ) → ∃ 𝑏𝐺 𝑎 = ( 𝐿𝑏 ) )
65 64 ralrimiva ( 𝜑 → ∀ 𝑎 ∈ ω ∃ 𝑏𝐺 𝑎 = ( 𝐿𝑏 ) )
66 dffo3 ( 𝐿 : 𝐺onto→ ω ↔ ( 𝐿 : 𝐺 ⟶ ω ∧ ∀ 𝑎 ∈ ω ∃ 𝑏𝐺 𝑎 = ( 𝐿𝑏 ) ) )
67 17 65 66 sylanbrc ( 𝜑𝐿 : 𝐺onto→ ω )