Users' Mathboxes Mathbox for Thierry Arnoux < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  f1ocnt Structured version   Visualization version   GIF version

Theorem f1ocnt 29400
Description: Given a countable set 𝐴, number its elements by providing a one-to-one mapping either with or an integer range starting from 1. The domain of the function can then be used with iundisjcnt 29398 or iundisj2cnt 29399. (Contributed by Thierry Arnoux, 25-Jul-2020.)
Assertion
Ref Expression
f1ocnt (𝐴 ≼ ω → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
Distinct variable group:   𝐴,𝑓

Proof of Theorem f1ocnt
Dummy variable 𝑔 is distinct from all other variables.
StepHypRef Expression
1 f1o0 6130 . . . . . . 7 ∅:∅–1-1-onto→∅
2 eqidd 2622 . . . . . . . 8 (𝐴 = ∅ → ∅ = ∅)
3 dm0 5299 . . . . . . . . 9 dom ∅ = ∅
43a1i 11 . . . . . . . 8 (𝐴 = ∅ → dom ∅ = ∅)
5 id 22 . . . . . . . 8 (𝐴 = ∅ → 𝐴 = ∅)
62, 4, 5f1oeq123d 6090 . . . . . . 7 (𝐴 = ∅ → (∅:dom ∅–1-1-onto𝐴 ↔ ∅:∅–1-1-onto→∅))
71, 6mpbiri 248 . . . . . 6 (𝐴 = ∅ → ∅:dom ∅–1-1-onto𝐴)
8 fveq2 6148 . . . . . . . . . . . . 13 (𝐴 = ∅ → (#‘𝐴) = (#‘∅))
9 hash0 13098 . . . . . . . . . . . . 13 (#‘∅) = 0
108, 9syl6eq 2671 . . . . . . . . . . . 12 (𝐴 = ∅ → (#‘𝐴) = 0)
1110oveq1d 6619 . . . . . . . . . . 11 (𝐴 = ∅ → ((#‘𝐴) + 1) = (0 + 1))
12 0p1e1 11076 . . . . . . . . . . 11 (0 + 1) = 1
1311, 12syl6eq 2671 . . . . . . . . . 10 (𝐴 = ∅ → ((#‘𝐴) + 1) = 1)
1413oveq2d 6620 . . . . . . . . 9 (𝐴 = ∅ → (1..^((#‘𝐴) + 1)) = (1..^1))
15 fzo0 12433 . . . . . . . . 9 (1..^1) = ∅
1614, 15syl6eq 2671 . . . . . . . 8 (𝐴 = ∅ → (1..^((#‘𝐴) + 1)) = ∅)
174, 16eqtr4d 2658 . . . . . . 7 (𝐴 = ∅ → dom ∅ = (1..^((#‘𝐴) + 1)))
1817olcd 408 . . . . . 6 (𝐴 = ∅ → (dom ∅ = ℕ ∨ dom ∅ = (1..^((#‘𝐴) + 1))))
197, 18jca 554 . . . . 5 (𝐴 = ∅ → (∅:dom ∅–1-1-onto𝐴 ∧ (dom ∅ = ℕ ∨ dom ∅ = (1..^((#‘𝐴) + 1)))))
20 0ex 4750 . . . . . 6 ∅ ∈ V
21 id 22 . . . . . . . 8 (𝑓 = ∅ → 𝑓 = ∅)
22 dmeq 5284 . . . . . . . 8 (𝑓 = ∅ → dom 𝑓 = dom ∅)
23 eqidd 2622 . . . . . . . 8 (𝑓 = ∅ → 𝐴 = 𝐴)
2421, 22, 23f1oeq123d 6090 . . . . . . 7 (𝑓 = ∅ → (𝑓:dom 𝑓1-1-onto𝐴 ↔ ∅:dom ∅–1-1-onto𝐴))
2522eqeq1d 2623 . . . . . . . 8 (𝑓 = ∅ → (dom 𝑓 = ℕ ↔ dom ∅ = ℕ))
2622eqeq1d 2623 . . . . . . . 8 (𝑓 = ∅ → (dom 𝑓 = (1..^((#‘𝐴) + 1)) ↔ dom ∅ = (1..^((#‘𝐴) + 1))))
2725, 26orbi12d 745 . . . . . . 7 (𝑓 = ∅ → ((dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1))) ↔ (dom ∅ = ℕ ∨ dom ∅ = (1..^((#‘𝐴) + 1)))))
2824, 27anbi12d 746 . . . . . 6 (𝑓 = ∅ → ((𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))) ↔ (∅:dom ∅–1-1-onto𝐴 ∧ (dom ∅ = ℕ ∨ dom ∅ = (1..^((#‘𝐴) + 1))))))
2920, 28spcev 3286 . . . . 5 ((∅:dom ∅–1-1-onto𝐴 ∧ (dom ∅ = ℕ ∨ dom ∅ = (1..^((#‘𝐴) + 1)))) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
3019, 29syl 17 . . . 4 (𝐴 = ∅ → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
3130adantl 482 . . 3 (((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) ∧ 𝐴 = ∅) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
32 f1odm 6098 . . . . . . . . . . 11 (𝑓:(1...(#‘𝐴))–1-1-onto𝐴 → dom 𝑓 = (1...(#‘𝐴)))
33 f1oeq2 6085 . . . . . . . . . . 11 (dom 𝑓 = (1...(#‘𝐴)) → (𝑓:dom 𝑓1-1-onto𝐴𝑓:(1...(#‘𝐴))–1-1-onto𝐴))
3432, 33syl 17 . . . . . . . . . 10 (𝑓:(1...(#‘𝐴))–1-1-onto𝐴 → (𝑓:dom 𝑓1-1-onto𝐴𝑓:(1...(#‘𝐴))–1-1-onto𝐴))
3534ibir 257 . . . . . . . . 9 (𝑓:(1...(#‘𝐴))–1-1-onto𝐴𝑓:dom 𝑓1-1-onto𝐴)
3635adantl 482 . . . . . . . 8 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → 𝑓:dom 𝑓1-1-onto𝐴)
3732adantl 482 . . . . . . . . . 10 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → dom 𝑓 = (1...(#‘𝐴)))
38 simpl 473 . . . . . . . . . . . 12 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → (#‘𝐴) ∈ ℕ)
3938nnzd 11425 . . . . . . . . . . 11 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → (#‘𝐴) ∈ ℤ)
40 fzval3 12477 . . . . . . . . . . 11 ((#‘𝐴) ∈ ℤ → (1...(#‘𝐴)) = (1..^((#‘𝐴) + 1)))
4139, 40syl 17 . . . . . . . . . 10 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → (1...(#‘𝐴)) = (1..^((#‘𝐴) + 1)))
4237, 41eqtrd 2655 . . . . . . . . 9 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → dom 𝑓 = (1..^((#‘𝐴) + 1)))
4342olcd 408 . . . . . . . 8 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1))))
4436, 43jca 554 . . . . . . 7 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → (𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
4544ex 450 . . . . . 6 ((#‘𝐴) ∈ ℕ → (𝑓:(1...(#‘𝐴))–1-1-onto𝐴 → (𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1))))))
4645eximdv 1843 . . . . 5 ((#‘𝐴) ∈ ℕ → (∃𝑓 𝑓:(1...(#‘𝐴))–1-1-onto𝐴 → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1))))))
4746imp 445 . . . 4 (((#‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
4847adantl 482 . . 3 (((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) ∧ ((#‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(#‘𝐴))–1-1-onto𝐴)) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
49 fz1f1o 14374 . . . 4 (𝐴 ∈ Fin → (𝐴 = ∅ ∨ ((#‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(#‘𝐴))–1-1-onto𝐴)))
5049adantl 482 . . 3 ((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) → (𝐴 = ∅ ∨ ((#‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(#‘𝐴))–1-1-onto𝐴)))
5131, 48, 50mpjaodan 826 . 2 ((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
52 isfinite 8493 . . . . . . . . . 10 (𝐴 ∈ Fin ↔ 𝐴 ≺ ω)
5352notbii 310 . . . . . . . . 9 𝐴 ∈ Fin ↔ ¬ 𝐴 ≺ ω)
5453biimpi 206 . . . . . . . 8 𝐴 ∈ Fin → ¬ 𝐴 ≺ ω)
5554anim2i 592 . . . . . . 7 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → (𝐴 ≼ ω ∧ ¬ 𝐴 ≺ ω))
56 bren2 7930 . . . . . . 7 (𝐴 ≈ ω ↔ (𝐴 ≼ ω ∧ ¬ 𝐴 ≺ ω))
5755, 56sylibr 224 . . . . . 6 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → 𝐴 ≈ ω)
58 nnenom 12719 . . . . . . 7 ℕ ≈ ω
5958ensymi 7950 . . . . . 6 ω ≈ ℕ
60 entr 7952 . . . . . 6 ((𝐴 ≈ ω ∧ ω ≈ ℕ) → 𝐴 ≈ ℕ)
6157, 59, 60sylancl 693 . . . . 5 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → 𝐴 ≈ ℕ)
62 bren 7908 . . . . 5 (𝐴 ≈ ℕ ↔ ∃𝑔 𝑔:𝐴1-1-onto→ℕ)
6361, 62sylib 208 . . . 4 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → ∃𝑔 𝑔:𝐴1-1-onto→ℕ)
64 f1oexbi 7063 . . . 4 (∃𝑔 𝑔:𝐴1-1-onto→ℕ ↔ ∃𝑓 𝑓:ℕ–1-1-onto𝐴)
6563, 64sylib 208 . . 3 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → ∃𝑓 𝑓:ℕ–1-1-onto𝐴)
66 f1odm 6098 . . . . . . 7 (𝑓:ℕ–1-1-onto𝐴 → dom 𝑓 = ℕ)
67 f1oeq2 6085 . . . . . . 7 (dom 𝑓 = ℕ → (𝑓:dom 𝑓1-1-onto𝐴𝑓:ℕ–1-1-onto𝐴))
6866, 67syl 17 . . . . . 6 (𝑓:ℕ–1-1-onto𝐴 → (𝑓:dom 𝑓1-1-onto𝐴𝑓:ℕ–1-1-onto𝐴))
6968ibir 257 . . . . 5 (𝑓:ℕ–1-1-onto𝐴𝑓:dom 𝑓1-1-onto𝐴)
7066orcd 407 . . . . 5 (𝑓:ℕ–1-1-onto𝐴 → (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1))))
7169, 70jca 554 . . . 4 (𝑓:ℕ–1-1-onto𝐴 → (𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
7271eximi 1759 . . 3 (∃𝑓 𝑓:ℕ–1-1-onto𝐴 → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
7365, 72syl 17 . 2 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
7451, 73pm2.61dan 831 1 (𝐴 ≼ ω → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 196  wo 383  wa 384   = wceq 1480  wex 1701  wcel 1987  c0 3891   class class class wbr 4613  dom cdm 5074  1-1-ontowf1o 5846  cfv 5847  (class class class)co 6604  ωcom 7012  cen 7896  cdom 7897  csdm 7898  Fincfn 7899  0cc0 9880  1c1 9881   + caddc 9883  cn 10964  cz 11321  ...cfz 12268  ..^cfzo 12406  #chash 13057
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1719  ax-4 1734  ax-5 1836  ax-6 1885  ax-7 1932  ax-8 1989  ax-9 1996  ax-10 2016  ax-11 2031  ax-12 2044  ax-13 2245  ax-ext 2601  ax-sep 4741  ax-nul 4749  ax-pow 4803  ax-pr 4867  ax-un 6902  ax-inf2 8482  ax-cnex 9936  ax-resscn 9937  ax-1cn 9938  ax-icn 9939  ax-addcl 9940  ax-addrcl 9941  ax-mulcl 9942  ax-mulrcl 9943  ax-mulcom 9944  ax-addass 9945  ax-mulass 9946  ax-distr 9947  ax-i2m1 9948  ax-1ne0 9949  ax-1rid 9950  ax-rnegex 9951  ax-rrecex 9952  ax-cnre 9953  ax-pre-lttri 9954  ax-pre-lttrn 9955  ax-pre-ltadd 9956  ax-pre-mulgt0 9957
This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3or 1037  df-3an 1038  df-tru 1483  df-ex 1702  df-nf 1707  df-sb 1878  df-eu 2473  df-mo 2474  df-clab 2608  df-cleq 2614  df-clel 2617  df-nfc 2750  df-ne 2791  df-nel 2894  df-ral 2912  df-rex 2913  df-reu 2914  df-rab 2916  df-v 3188  df-sbc 3418  df-csb 3515  df-dif 3558  df-un 3560  df-in 3562  df-ss 3569  df-pss 3571  df-nul 3892  df-if 4059  df-pw 4132  df-sn 4149  df-pr 4151  df-tp 4153  df-op 4155  df-uni 4403  df-int 4441  df-iun 4487  df-br 4614  df-opab 4674  df-mpt 4675  df-tr 4713  df-eprel 4985  df-id 4989  df-po 4995  df-so 4996  df-fr 5033  df-we 5035  df-xp 5080  df-rel 5081  df-cnv 5082  df-co 5083  df-dm 5084  df-rn 5085  df-res 5086  df-ima 5087  df-pred 5639  df-ord 5685  df-on 5686  df-lim 5687  df-suc 5688  df-iota 5810  df-fun 5849  df-fn 5850  df-f 5851  df-f1 5852  df-fo 5853  df-f1o 5854  df-fv 5855  df-riota 6565  df-ov 6607  df-oprab 6608  df-mpt2 6609  df-om 7013  df-1st 7113  df-2nd 7114  df-wrecs 7352  df-recs 7413  df-rdg 7451  df-1o 7505  df-er 7687  df-en 7900  df-dom 7901  df-sdom 7902  df-fin 7903  df-card 8709  df-pnf 10020  df-mnf 10021  df-xr 10022  df-ltxr 10023  df-le 10024  df-sub 10212  df-neg 10213  df-nn 10965  df-n0 11237  df-z 11322  df-uz 11632  df-fz 12269  df-fzo 12407  df-hash 13058
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator