| Step | Hyp | Ref
| Expression |
| 1 | | enumctlemm.f |
. . . . . . 7
⊢ (𝜑 → 𝐹:𝑁–onto→𝐴) |
| 2 | | fof 5480 |
. . . . . . 7
⊢ (𝐹:𝑁–onto→𝐴 → 𝐹:𝑁⟶𝐴) |
| 3 | 1, 2 | syl 14 |
. . . . . 6
⊢ (𝜑 → 𝐹:𝑁⟶𝐴) |
| 4 | 3 | ffvelcdmda 5697 |
. . . . 5
⊢ ((𝜑 ∧ 𝑘 ∈ 𝑁) → (𝐹‘𝑘) ∈ 𝐴) |
| 5 | 4 | adantlr 477 |
. . . 4
⊢ (((𝜑 ∧ 𝑘 ∈ ω) ∧ 𝑘 ∈ 𝑁) → (𝐹‘𝑘) ∈ 𝐴) |
| 6 | | enumctlemm.n0 |
. . . . . 6
⊢ (𝜑 → ∅ ∈ 𝑁) |
| 7 | 3, 6 | ffvelcdmd 5698 |
. . . . 5
⊢ (𝜑 → (𝐹‘∅) ∈ 𝐴) |
| 8 | 7 | ad2antrr 488 |
. . . 4
⊢ (((𝜑 ∧ 𝑘 ∈ ω) ∧ ¬ 𝑘 ∈ 𝑁) → (𝐹‘∅) ∈ 𝐴) |
| 9 | | simpr 110 |
. . . . 5
⊢ ((𝜑 ∧ 𝑘 ∈ ω) → 𝑘 ∈ ω) |
| 10 | | enumctlemm.n |
. . . . . 6
⊢ (𝜑 → 𝑁 ∈ ω) |
| 11 | 10 | adantr 276 |
. . . . 5
⊢ ((𝜑 ∧ 𝑘 ∈ ω) → 𝑁 ∈ ω) |
| 12 | | nndcel 6558 |
. . . . 5
⊢ ((𝑘 ∈ ω ∧ 𝑁 ∈ ω) →
DECID 𝑘
∈ 𝑁) |
| 13 | 9, 11, 12 | syl2anc 411 |
. . . 4
⊢ ((𝜑 ∧ 𝑘 ∈ ω) → DECID
𝑘 ∈ 𝑁) |
| 14 | 5, 8, 13 | ifcldadc 3590 |
. . 3
⊢ ((𝜑 ∧ 𝑘 ∈ ω) → if(𝑘 ∈ 𝑁, (𝐹‘𝑘), (𝐹‘∅)) ∈ 𝐴) |
| 15 | | enumctlemm.g |
. . 3
⊢ 𝐺 = (𝑘 ∈ ω ↦ if(𝑘 ∈ 𝑁, (𝐹‘𝑘), (𝐹‘∅))) |
| 16 | 14, 15 | fmptd 5716 |
. 2
⊢ (𝜑 → 𝐺:ω⟶𝐴) |
| 17 | | foelrn 5799 |
. . . . . 6
⊢ ((𝐹:𝑁–onto→𝐴 ∧ 𝑦 ∈ 𝐴) → ∃𝑥 ∈ 𝑁 𝑦 = (𝐹‘𝑥)) |
| 18 | 1, 17 | sylan 283 |
. . . . 5
⊢ ((𝜑 ∧ 𝑦 ∈ 𝐴) → ∃𝑥 ∈ 𝑁 𝑦 = (𝐹‘𝑥)) |
| 19 | | eleq1w 2257 |
. . . . . . . . . . 11
⊢ (𝑘 = 𝑥 → (𝑘 ∈ 𝑁 ↔ 𝑥 ∈ 𝑁)) |
| 20 | | fveq2 5558 |
. . . . . . . . . . 11
⊢ (𝑘 = 𝑥 → (𝐹‘𝑘) = (𝐹‘𝑥)) |
| 21 | 19, 20 | ifbieq1d 3583 |
. . . . . . . . . 10
⊢ (𝑘 = 𝑥 → if(𝑘 ∈ 𝑁, (𝐹‘𝑘), (𝐹‘∅)) = if(𝑥 ∈ 𝑁, (𝐹‘𝑥), (𝐹‘∅))) |
| 22 | | simpr 110 |
. . . . . . . . . . 11
⊢ ((𝜑 ∧ 𝑥 ∈ 𝑁) → 𝑥 ∈ 𝑁) |
| 23 | 10 | adantr 276 |
. . . . . . . . . . 11
⊢ ((𝜑 ∧ 𝑥 ∈ 𝑁) → 𝑁 ∈ ω) |
| 24 | | elnn 4642 |
. . . . . . . . . . 11
⊢ ((𝑥 ∈ 𝑁 ∧ 𝑁 ∈ ω) → 𝑥 ∈ ω) |
| 25 | 22, 23, 24 | syl2anc 411 |
. . . . . . . . . 10
⊢ ((𝜑 ∧ 𝑥 ∈ 𝑁) → 𝑥 ∈ ω) |
| 26 | 22 | iftrued 3568 |
. . . . . . . . . . 11
⊢ ((𝜑 ∧ 𝑥 ∈ 𝑁) → if(𝑥 ∈ 𝑁, (𝐹‘𝑥), (𝐹‘∅)) = (𝐹‘𝑥)) |
| 27 | 3 | ffvelcdmda 5697 |
. . . . . . . . . . 11
⊢ ((𝜑 ∧ 𝑥 ∈ 𝑁) → (𝐹‘𝑥) ∈ 𝐴) |
| 28 | 26, 27 | eqeltrd 2273 |
. . . . . . . . . 10
⊢ ((𝜑 ∧ 𝑥 ∈ 𝑁) → if(𝑥 ∈ 𝑁, (𝐹‘𝑥), (𝐹‘∅)) ∈ 𝐴) |
| 29 | 15, 21, 25, 28 | fvmptd3 5655 |
. . . . . . . . 9
⊢ ((𝜑 ∧ 𝑥 ∈ 𝑁) → (𝐺‘𝑥) = if(𝑥 ∈ 𝑁, (𝐹‘𝑥), (𝐹‘∅))) |
| 30 | 29, 26 | eqtrd 2229 |
. . . . . . . 8
⊢ ((𝜑 ∧ 𝑥 ∈ 𝑁) → (𝐺‘𝑥) = (𝐹‘𝑥)) |
| 31 | 30 | eqeq2d 2208 |
. . . . . . 7
⊢ ((𝜑 ∧ 𝑥 ∈ 𝑁) → (𝑦 = (𝐺‘𝑥) ↔ 𝑦 = (𝐹‘𝑥))) |
| 32 | 31 | rexbidva 2494 |
. . . . . 6
⊢ (𝜑 → (∃𝑥 ∈ 𝑁 𝑦 = (𝐺‘𝑥) ↔ ∃𝑥 ∈ 𝑁 𝑦 = (𝐹‘𝑥))) |
| 33 | 32 | adantr 276 |
. . . . 5
⊢ ((𝜑 ∧ 𝑦 ∈ 𝐴) → (∃𝑥 ∈ 𝑁 𝑦 = (𝐺‘𝑥) ↔ ∃𝑥 ∈ 𝑁 𝑦 = (𝐹‘𝑥))) |
| 34 | 18, 33 | mpbird 167 |
. . . 4
⊢ ((𝜑 ∧ 𝑦 ∈ 𝐴) → ∃𝑥 ∈ 𝑁 𝑦 = (𝐺‘𝑥)) |
| 35 | | omelon 4645 |
. . . . . . 7
⊢ ω
∈ On |
| 36 | 35 | onelssi 4464 |
. . . . . 6
⊢ (𝑁 ∈ ω → 𝑁 ⊆
ω) |
| 37 | | ssrexv 3248 |
. . . . . 6
⊢ (𝑁 ⊆ ω →
(∃𝑥 ∈ 𝑁 𝑦 = (𝐺‘𝑥) → ∃𝑥 ∈ ω 𝑦 = (𝐺‘𝑥))) |
| 38 | 10, 36, 37 | 3syl 17 |
. . . . 5
⊢ (𝜑 → (∃𝑥 ∈ 𝑁 𝑦 = (𝐺‘𝑥) → ∃𝑥 ∈ ω 𝑦 = (𝐺‘𝑥))) |
| 39 | 38 | adantr 276 |
. . . 4
⊢ ((𝜑 ∧ 𝑦 ∈ 𝐴) → (∃𝑥 ∈ 𝑁 𝑦 = (𝐺‘𝑥) → ∃𝑥 ∈ ω 𝑦 = (𝐺‘𝑥))) |
| 40 | 34, 39 | mpd 13 |
. . 3
⊢ ((𝜑 ∧ 𝑦 ∈ 𝐴) → ∃𝑥 ∈ ω 𝑦 = (𝐺‘𝑥)) |
| 41 | 40 | ralrimiva 2570 |
. 2
⊢ (𝜑 → ∀𝑦 ∈ 𝐴 ∃𝑥 ∈ ω 𝑦 = (𝐺‘𝑥)) |
| 42 | | dffo3 5709 |
. 2
⊢ (𝐺:ω–onto→𝐴 ↔ (𝐺:ω⟶𝐴 ∧ ∀𝑦 ∈ 𝐴 ∃𝑥 ∈ ω 𝑦 = (𝐺‘𝑥))) |
| 43 | 16, 41, 42 | sylanbrc 417 |
1
⊢ (𝜑 → 𝐺:ω–onto→𝐴) |