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 29687
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 29685 or iundisj2cnt 29686. (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 6211 . . . . . . 7 ∅:∅–1-1-onto→∅
2 eqidd 2652 . . . . . . . 8 (𝐴 = ∅ → ∅ = ∅)
3 dm0 5371 . . . . . . . . 9 dom ∅ = ∅
43a1i 11 . . . . . . . 8 (𝐴 = ∅ → dom ∅ = ∅)
5 id 22 . . . . . . . 8 (𝐴 = ∅ → 𝐴 = ∅)
62, 4, 5f1oeq123d 6171 . . . . . . 7 (𝐴 = ∅ → (∅:dom ∅–1-1-onto𝐴 ↔ ∅:∅–1-1-onto→∅))
71, 6mpbiri 248 . . . . . 6 (𝐴 = ∅ → ∅:dom ∅–1-1-onto𝐴)
8 fveq2 6229 . . . . . . . . . . . . 13 (𝐴 = ∅ → (#‘𝐴) = (#‘∅))
9 hash0 13196 . . . . . . . . . . . . 13 (#‘∅) = 0
108, 9syl6eq 2701 . . . . . . . . . . . 12 (𝐴 = ∅ → (#‘𝐴) = 0)
1110oveq1d 6705 . . . . . . . . . . 11 (𝐴 = ∅ → ((#‘𝐴) + 1) = (0 + 1))
12 0p1e1 11170 . . . . . . . . . . 11 (0 + 1) = 1
1311, 12syl6eq 2701 . . . . . . . . . 10 (𝐴 = ∅ → ((#‘𝐴) + 1) = 1)
1413oveq2d 6706 . . . . . . . . 9 (𝐴 = ∅ → (1..^((#‘𝐴) + 1)) = (1..^1))
15 fzo0 12531 . . . . . . . . 9 (1..^1) = ∅
1614, 15syl6eq 2701 . . . . . . . 8 (𝐴 = ∅ → (1..^((#‘𝐴) + 1)) = ∅)
174, 16eqtr4d 2688 . . . . . . 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 4823 . . . . . 6 ∅ ∈ V
21 id 22 . . . . . . . 8 (𝑓 = ∅ → 𝑓 = ∅)
22 dmeq 5356 . . . . . . . 8 (𝑓 = ∅ → dom 𝑓 = dom ∅)
23 eqidd 2652 . . . . . . . 8 (𝑓 = ∅ → 𝐴 = 𝐴)
2421, 22, 23f1oeq123d 6171 . . . . . . 7 (𝑓 = ∅ → (𝑓:dom 𝑓1-1-onto𝐴 ↔ ∅:dom ∅–1-1-onto𝐴))
2522eqeq1d 2653 . . . . . . . 8 (𝑓 = ∅ → (dom 𝑓 = ℕ ↔ dom ∅ = ℕ))
2622eqeq1d 2653 . . . . . . . 8 (𝑓 = ∅ → (dom 𝑓 = (1..^((#‘𝐴) + 1)) ↔ dom ∅ = (1..^((#‘𝐴) + 1))))
2725, 26orbi12d 746 . . . . . . 7 (𝑓 = ∅ → ((dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1))) ↔ (dom ∅ = ℕ ∨ dom ∅ = (1..^((#‘𝐴) + 1)))))
2824, 27anbi12d 747 . . . . . 6 (𝑓 = ∅ → ((𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))) ↔ (∅:dom ∅–1-1-onto𝐴 ∧ (dom ∅ = ℕ ∨ dom ∅ = (1..^((#‘𝐴) + 1))))))
2920, 28spcev 3331 . . . . 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 6179 . . . . . . . . . . 11 (𝑓:(1...(#‘𝐴))–1-1-onto𝐴 → dom 𝑓 = (1...(#‘𝐴)))
33 f1oeq2 6166 . . . . . . . . . . 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 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 11519 . . . . . . . . . . 11 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → (#‘𝐴) ∈ ℤ)
40 fzval3 12576 . . . . . . . . . . 11 ((#‘𝐴) ∈ ℤ → (1...(#‘𝐴)) = (1..^((#‘𝐴) + 1)))
4139, 40syl 17 . . . . . . . . . 10 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → (1...(#‘𝐴)) = (1..^((#‘𝐴) + 1)))
4237, 41eqtrd 2685 . . . . . . . . 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 1886 . . . . 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 14485 . . . 4 (𝐴 ∈ Fin → (𝐴 = ∅ ∨ ((#‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(#‘𝐴))–1-1-onto𝐴)))
5049adantl 481 . . 3 ((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) → (𝐴 = ∅ ∨ ((#‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(#‘𝐴))–1-1-onto𝐴)))
5131, 48, 50mpjaodan 844 . 2 ((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
52 isfinite 8587 . . . . . . . . . 10 (𝐴 ∈ Fin ↔ 𝐴 ≺ ω)
5352notbii 309 . . . . . . . . 9 𝐴 ∈ Fin ↔ ¬ 𝐴 ≺ ω)
5453biimpi 206 . . . . . . . 8 𝐴 ∈ Fin → ¬ 𝐴 ≺ ω)
5554anim2i 592 . . . . . . 7 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → (𝐴 ≼ ω ∧ ¬ 𝐴 ≺ ω))
56 bren2 8028 . . . . . . 7 (𝐴 ≈ ω ↔ (𝐴 ≼ ω ∧ ¬ 𝐴 ≺ ω))
5755, 56sylibr 224 . . . . . 6 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → 𝐴 ≈ ω)
58 nnenom 12819 . . . . . . 7 ℕ ≈ ω
5958ensymi 8047 . . . . . 6 ω ≈ ℕ
60 entr 8049 . . . . . 6 ((𝐴 ≈ ω ∧ ω ≈ ℕ) → 𝐴 ≈ ℕ)
6157, 59, 60sylancl 695 . . . . 5 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → 𝐴 ≈ ℕ)
62 bren 8006 . . . . 5 (𝐴 ≈ ℕ ↔ ∃𝑔 𝑔:𝐴1-1-onto→ℕ)
6361, 62sylib 208 . . . 4 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → ∃𝑔 𝑔:𝐴1-1-onto→ℕ)
64 f1oexbi 7158 . . . 4 (∃𝑔 𝑔:𝐴1-1-onto→ℕ ↔ ∃𝑓 𝑓:ℕ–1-1-onto𝐴)
6563, 64sylib 208 . . 3 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → ∃𝑓 𝑓:ℕ–1-1-onto𝐴)
66 f1odm 6179 . . . . . . 7 (𝑓:ℕ–1-1-onto𝐴 → dom 𝑓 = ℕ)
67 f1oeq2 6166 . . . . . . 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 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 1802 . . 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 849 1 (𝐴 ≼ ω → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 196  wo 382  wa 383   = wceq 1523  wex 1744  wcel 2030  c0 3948   class class class wbr 4685  dom cdm 5143  1-1-ontowf1o 5925  cfv 5926  (class class class)co 6690  ωcom 7107  cen 7994  cdom 7995  csdm 7996  Fincfn 7997  0cc0 9974  1c1 9975   + caddc 9977  cn 11058  cz 11415  ...cfz 12364  ..^cfzo 12504  #chash 13157
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1762  ax-4 1777  ax-5 1879  ax-6 1945  ax-7 1981  ax-8 2032  ax-9 2039  ax-10 2059  ax-11 2074  ax-12 2087  ax-13 2282  ax-ext 2631  ax-sep 4814  ax-nul 4822  ax-pow 4873  ax-pr 4936  ax-un 6991  ax-inf2 8576  ax-cnex 10030  ax-resscn 10031  ax-1cn 10032  ax-icn 10033  ax-addcl 10034  ax-addrcl 10035  ax-mulcl 10036  ax-mulrcl 10037  ax-mulcom 10038  ax-addass 10039  ax-mulass 10040  ax-distr 10041  ax-i2m1 10042  ax-1ne0 10043  ax-1rid 10044  ax-rnegex 10045  ax-rrecex 10046  ax-cnre 10047  ax-pre-lttri 10048  ax-pre-lttrn 10049  ax-pre-ltadd 10050  ax-pre-mulgt0 10051
This theorem depends on definitions:  df-bi 197  df-or 384  df-an 385  df-3or 1055  df-3an 1056  df-tru 1526  df-ex 1745  df-nf 1750  df-sb 1938  df-eu 2502  df-mo 2503  df-clab 2638  df-cleq 2644  df-clel 2647  df-nfc 2782  df-ne 2824  df-nel 2927  df-ral 2946  df-rex 2947  df-reu 2948  df-rab 2950  df-v 3233  df-sbc 3469  df-csb 3567  df-dif 3610  df-un 3612  df-in 3614  df-ss 3621  df-pss 3623  df-nul 3949  df-if 4120  df-pw 4193  df-sn 4211  df-pr 4213  df-tp 4215  df-op 4217  df-uni 4469  df-int 4508  df-iun 4554  df-br 4686  df-opab 4746  df-mpt 4763  df-tr 4786  df-id 5053  df-eprel 5058  df-po 5064  df-so 5065  df-fr 5102  df-we 5104  df-xp 5149  df-rel 5150  df-cnv 5151  df-co 5152  df-dm 5153  df-rn 5154  df-res 5155  df-ima 5156  df-pred 5718  df-ord 5764  df-on 5765  df-lim 5766  df-suc 5767  df-iota 5889  df-fun 5928  df-fn 5929  df-f 5930  df-f1 5931  df-fo 5932  df-f1o 5933  df-fv 5934  df-riota 6651  df-ov 6693  df-oprab 6694  df-mpt2 6695  df-om 7108  df-1st 7210  df-2nd 7211  df-wrecs 7452  df-recs 7513  df-rdg 7551  df-1o 7605  df-er 7787  df-en 7998  df-dom 7999  df-sdom 8000  df-fin 8001  df-card 8803  df-pnf 10114  df-mnf 10115  df-xr 10116  df-ltxr 10117  df-le 10118  df-sub 10306  df-neg 10307  df-nn 11059  df-n0 11331  df-z 11416  df-uz 11726  df-fz 12365  df-fzo 12505  df-hash 13158
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator