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 28946
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 28944 or iundisj2cnt 28945. (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 6085 . . . . . . 7 ∅:∅–1-1-onto→∅
2 eqidd 2611 . . . . . . . 8 (𝐴 = ∅ → ∅ = ∅)
3 dm0 5260 . . . . . . . . 9 dom ∅ = ∅
43a1i 11 . . . . . . . 8 (𝐴 = ∅ → dom ∅ = ∅)
5 id 22 . . . . . . . 8 (𝐴 = ∅ → 𝐴 = ∅)
62, 4, 5f1oeq123d 6046 . . . . . . 7 (𝐴 = ∅ → (∅:dom ∅–1-1-onto𝐴 ↔ ∅:∅–1-1-onto→∅))
71, 6mpbiri 247 . . . . . 6 (𝐴 = ∅ → ∅:dom ∅–1-1-onto𝐴)
8 fveq2 6103 . . . . . . . . . . . . 13 (𝐴 = ∅ → (#‘𝐴) = (#‘∅))
9 hash0 13019 . . . . . . . . . . . . 13 (#‘∅) = 0
108, 9syl6eq 2660 . . . . . . . . . . . 12 (𝐴 = ∅ → (#‘𝐴) = 0)
1110oveq1d 6564 . . . . . . . . . . 11 (𝐴 = ∅ → ((#‘𝐴) + 1) = (0 + 1))
12 0p1e1 11009 . . . . . . . . . . 11 (0 + 1) = 1
1311, 12syl6eq 2660 . . . . . . . . . 10 (𝐴 = ∅ → ((#‘𝐴) + 1) = 1)
1413oveq2d 6565 . . . . . . . . 9 (𝐴 = ∅ → (1..^((#‘𝐴) + 1)) = (1..^1))
15 fzo0 12361 . . . . . . . . 9 (1..^1) = ∅
1614, 15syl6eq 2660 . . . . . . . 8 (𝐴 = ∅ → (1..^((#‘𝐴) + 1)) = ∅)
174, 16eqtr4d 2647 . . . . . . 7 (𝐴 = ∅ → dom ∅ = (1..^((#‘𝐴) + 1)))
1817olcd 407 . . . . . 6 (𝐴 = ∅ → (dom ∅ = ℕ ∨ dom ∅ = (1..^((#‘𝐴) + 1))))
197, 18jca 553 . . . . 5 (𝐴 = ∅ → (∅:dom ∅–1-1-onto𝐴 ∧ (dom ∅ = ℕ ∨ dom ∅ = (1..^((#‘𝐴) + 1)))))
20 0ex 4718 . . . . . 6 ∅ ∈ V
21 id 22 . . . . . . . 8 (𝑓 = ∅ → 𝑓 = ∅)
22 dmeq 5246 . . . . . . . 8 (𝑓 = ∅ → dom 𝑓 = dom ∅)
23 eqidd 2611 . . . . . . . 8 (𝑓 = ∅ → 𝐴 = 𝐴)
2421, 22, 23f1oeq123d 6046 . . . . . . 7 (𝑓 = ∅ → (𝑓:dom 𝑓1-1-onto𝐴 ↔ ∅:dom ∅–1-1-onto𝐴))
2522eqeq1d 2612 . . . . . . . 8 (𝑓 = ∅ → (dom 𝑓 = ℕ ↔ dom ∅ = ℕ))
2622eqeq1d 2612 . . . . . . . 8 (𝑓 = ∅ → (dom 𝑓 = (1..^((#‘𝐴) + 1)) ↔ dom ∅ = (1..^((#‘𝐴) + 1))))
2725, 26orbi12d 742 . . . . . . 7 (𝑓 = ∅ → ((dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1))) ↔ (dom ∅ = ℕ ∨ dom ∅ = (1..^((#‘𝐴) + 1)))))
2824, 27anbi12d 743 . . . . . 6 (𝑓 = ∅ → ((𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))) ↔ (∅:dom ∅–1-1-onto𝐴 ∧ (dom ∅ = ℕ ∨ dom ∅ = (1..^((#‘𝐴) + 1))))))
2920, 28spcev 3273 . . . . 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 481 . . 3 (((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) ∧ 𝐴 = ∅) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
32 f1odm 6054 . . . . . . . . . . 11 (𝑓:(1...(#‘𝐴))–1-1-onto𝐴 → dom 𝑓 = (1...(#‘𝐴)))
33 f1oeq2 6041 . . . . . . . . . . 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 256 . . . . . . . . 9 (𝑓:(1...(#‘𝐴))–1-1-onto𝐴𝑓:dom 𝑓1-1-onto𝐴)
3635adantl 481 . . . . . . . 8 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → 𝑓:dom 𝑓1-1-onto𝐴)
3732adantl 481 . . . . . . . . . 10 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → dom 𝑓 = (1...(#‘𝐴)))
38 simpl 472 . . . . . . . . . . . 12 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → (#‘𝐴) ∈ ℕ)
3938nnzd 11357 . . . . . . . . . . 11 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → (#‘𝐴) ∈ ℤ)
40 fzval3 12404 . . . . . . . . . . 11 ((#‘𝐴) ∈ ℤ → (1...(#‘𝐴)) = (1..^((#‘𝐴) + 1)))
4139, 40syl 17 . . . . . . . . . 10 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → (1...(#‘𝐴)) = (1..^((#‘𝐴) + 1)))
4237, 41eqtrd 2644 . . . . . . . . 9 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → dom 𝑓 = (1..^((#‘𝐴) + 1)))
4342olcd 407 . . . . . . . 8 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1))))
4436, 43jca 553 . . . . . . 7 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → (𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
4544ex 449 . . . . . 6 ((#‘𝐴) ∈ ℕ → (𝑓:(1...(#‘𝐴))–1-1-onto𝐴 → (𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1))))))
4645eximdv 1833 . . . . 5 ((#‘𝐴) ∈ ℕ → (∃𝑓 𝑓:(1...(#‘𝐴))–1-1-onto𝐴 → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1))))))
4746imp 444 . . . 4 (((#‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
4847adantl 481 . . 3 (((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) ∧ ((#‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(#‘𝐴))–1-1-onto𝐴)) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
49 fz1f1o 14288 . . . 4 (𝐴 ∈ Fin → (𝐴 = ∅ ∨ ((#‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(#‘𝐴))–1-1-onto𝐴)))
5049adantl 481 . . 3 ((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) → (𝐴 = ∅ ∨ ((#‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(#‘𝐴))–1-1-onto𝐴)))
5131, 48, 50mpjaodan 823 . 2 ((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
52 isfinite 8432 . . . . . . . . . 10 (𝐴 ∈ Fin ↔ 𝐴 ≺ ω)
5352notbii 309 . . . . . . . . 9 𝐴 ∈ Fin ↔ ¬ 𝐴 ≺ ω)
5453biimpi 205 . . . . . . . 8 𝐴 ∈ Fin → ¬ 𝐴 ≺ ω)
5554anim2i 591 . . . . . . 7 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → (𝐴 ≼ ω ∧ ¬ 𝐴 ≺ ω))
56 bren2 7872 . . . . . . 7 (𝐴 ≈ ω ↔ (𝐴 ≼ ω ∧ ¬ 𝐴 ≺ ω))
5755, 56sylibr 223 . . . . . 6 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → 𝐴 ≈ ω)
58 nnenom 12641 . . . . . . 7 ℕ ≈ ω
5958ensymi 7892 . . . . . 6 ω ≈ ℕ
60 entr 7894 . . . . . 6 ((𝐴 ≈ ω ∧ ω ≈ ℕ) → 𝐴 ≈ ℕ)
6157, 59, 60sylancl 693 . . . . 5 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → 𝐴 ≈ ℕ)
62 bren 7850 . . . . 5 (𝐴 ≈ ℕ ↔ ∃𝑔 𝑔:𝐴1-1-onto→ℕ)
6361, 62sylib 207 . . . 4 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → ∃𝑔 𝑔:𝐴1-1-onto→ℕ)
64 f1oexbi 7009 . . . 4 (∃𝑔 𝑔:𝐴1-1-onto→ℕ ↔ ∃𝑓 𝑓:ℕ–1-1-onto𝐴)
6563, 64sylib 207 . . 3 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → ∃𝑓 𝑓:ℕ–1-1-onto𝐴)
66 f1odm 6054 . . . . . . 7 (𝑓:ℕ–1-1-onto𝐴 → dom 𝑓 = ℕ)
67 f1oeq2 6041 . . . . . . 7 (dom 𝑓 = ℕ → (𝑓:dom 𝑓1-1-onto𝐴𝑓:ℕ–1-1-onto𝐴))
6866, 67syl 17 . . . . . 6 (𝑓:ℕ–1-1-onto𝐴 → (𝑓:dom 𝑓1-1-onto𝐴𝑓:ℕ–1-1-onto𝐴))
6968ibir 256 . . . . 5 (𝑓:ℕ–1-1-onto𝐴𝑓:dom 𝑓1-1-onto𝐴)
7066orcd 406 . . . . 5 (𝑓:ℕ–1-1-onto𝐴 → (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1))))
7169, 70jca 553 . . . 4 (𝑓:ℕ–1-1-onto𝐴 → (𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
7271eximi 1752 . . 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 828 1 (𝐴 ≼ ω → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 195  wo 382  wa 383   = wceq 1475  wex 1695  wcel 1977  c0 3874   class class class wbr 4583  dom cdm 5038  1-1-ontowf1o 5803  cfv 5804  (class class class)co 6549  ωcom 6957  cen 7838  cdom 7839  csdm 7840  Fincfn 7841  0cc0 9815  1c1 9816   + caddc 9818  cn 10897  cz 11254  ...cfz 12197  ..^cfzo 12334  #chash 12979
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1713  ax-4 1728  ax-5 1827  ax-6 1875  ax-7 1922  ax-8 1979  ax-9 1986  ax-10 2006  ax-11 2021  ax-12 2034  ax-13 2234  ax-ext 2590  ax-sep 4709  ax-nul 4717  ax-pow 4769  ax-pr 4833  ax-un 6847  ax-inf2 8421  ax-cnex 9871  ax-resscn 9872  ax-1cn 9873  ax-icn 9874  ax-addcl 9875  ax-addrcl 9876  ax-mulcl 9877  ax-mulrcl 9878  ax-mulcom 9879  ax-addass 9880  ax-mulass 9881  ax-distr 9882  ax-i2m1 9883  ax-1ne0 9884  ax-1rid 9885  ax-rnegex 9886  ax-rrecex 9887  ax-cnre 9888  ax-pre-lttri 9889  ax-pre-lttrn 9890  ax-pre-ltadd 9891  ax-pre-mulgt0 9892
This theorem depends on definitions:  df-bi 196  df-or 384  df-an 385  df-3or 1032  df-3an 1033  df-tru 1478  df-ex 1696  df-nf 1701  df-sb 1868  df-eu 2462  df-mo 2463  df-clab 2597  df-cleq 2603  df-clel 2606  df-nfc 2740  df-ne 2782  df-nel 2783  df-ral 2901  df-rex 2902  df-reu 2903  df-rab 2905  df-v 3175  df-sbc 3403  df-csb 3500  df-dif 3543  df-un 3545  df-in 3547  df-ss 3554  df-pss 3556  df-nul 3875  df-if 4037  df-pw 4110  df-sn 4126  df-pr 4128  df-tp 4130  df-op 4132  df-uni 4373  df-int 4411  df-iun 4457  df-br 4584  df-opab 4644  df-mpt 4645  df-tr 4681  df-eprel 4949  df-id 4953  df-po 4959  df-so 4960  df-fr 4997  df-we 4999  df-xp 5044  df-rel 5045  df-cnv 5046  df-co 5047  df-dm 5048  df-rn 5049  df-res 5050  df-ima 5051  df-pred 5597  df-ord 5643  df-on 5644  df-lim 5645  df-suc 5646  df-iota 5768  df-fun 5806  df-fn 5807  df-f 5808  df-f1 5809  df-fo 5810  df-f1o 5811  df-fv 5812  df-riota 6511  df-ov 6552  df-oprab 6553  df-mpt2 6554  df-om 6958  df-1st 7059  df-2nd 7060  df-wrecs 7294  df-recs 7355  df-rdg 7393  df-1o 7447  df-er 7629  df-en 7842  df-dom 7843  df-sdom 7844  df-fin 7845  df-card 8648  df-pnf 9955  df-mnf 9956  df-xr 9957  df-ltxr 9958  df-le 9959  df-sub 10147  df-neg 10148  df-nn 10898  df-n0 11170  df-z 11255  df-uz 11564  df-fz 12198  df-fzo 12335  df-hash 12980
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator