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 29559
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 29557 or iundisj2cnt 29558. (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 6173 . . . . . . 7 ∅:∅–1-1-onto→∅
2 eqidd 2623 . . . . . . . 8 (𝐴 = ∅ → ∅ = ∅)
3 dm0 5339 . . . . . . . . 9 dom ∅ = ∅
43a1i 11 . . . . . . . 8 (𝐴 = ∅ → dom ∅ = ∅)
5 id 22 . . . . . . . 8 (𝐴 = ∅ → 𝐴 = ∅)
62, 4, 5f1oeq123d 6133 . . . . . . 7 (𝐴 = ∅ → (∅:dom ∅–1-1-onto𝐴 ↔ ∅:∅–1-1-onto→∅))
71, 6mpbiri 248 . . . . . 6 (𝐴 = ∅ → ∅:dom ∅–1-1-onto𝐴)
8 fveq2 6191 . . . . . . . . . . . . 13 (𝐴 = ∅ → (#‘𝐴) = (#‘∅))
9 hash0 13158 . . . . . . . . . . . . 13 (#‘∅) = 0
108, 9syl6eq 2672 . . . . . . . . . . . 12 (𝐴 = ∅ → (#‘𝐴) = 0)
1110oveq1d 6665 . . . . . . . . . . 11 (𝐴 = ∅ → ((#‘𝐴) + 1) = (0 + 1))
12 0p1e1 11132 . . . . . . . . . . 11 (0 + 1) = 1
1311, 12syl6eq 2672 . . . . . . . . . 10 (𝐴 = ∅ → ((#‘𝐴) + 1) = 1)
1413oveq2d 6666 . . . . . . . . 9 (𝐴 = ∅ → (1..^((#‘𝐴) + 1)) = (1..^1))
15 fzo0 12492 . . . . . . . . 9 (1..^1) = ∅
1614, 15syl6eq 2672 . . . . . . . 8 (𝐴 = ∅ → (1..^((#‘𝐴) + 1)) = ∅)
174, 16eqtr4d 2659 . . . . . . 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 4790 . . . . . 6 ∅ ∈ V
21 id 22 . . . . . . . 8 (𝑓 = ∅ → 𝑓 = ∅)
22 dmeq 5324 . . . . . . . 8 (𝑓 = ∅ → dom 𝑓 = dom ∅)
23 eqidd 2623 . . . . . . . 8 (𝑓 = ∅ → 𝐴 = 𝐴)
2421, 22, 23f1oeq123d 6133 . . . . . . 7 (𝑓 = ∅ → (𝑓:dom 𝑓1-1-onto𝐴 ↔ ∅:dom ∅–1-1-onto𝐴))
2522eqeq1d 2624 . . . . . . . 8 (𝑓 = ∅ → (dom 𝑓 = ℕ ↔ dom ∅ = ℕ))
2622eqeq1d 2624 . . . . . . . 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 3300 . . . . 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 6141 . . . . . . . . . . 11 (𝑓:(1...(#‘𝐴))–1-1-onto𝐴 → dom 𝑓 = (1...(#‘𝐴)))
33 f1oeq2 6128 . . . . . . . . . . 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 11481 . . . . . . . . . . 11 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → (#‘𝐴) ∈ ℤ)
40 fzval3 12536 . . . . . . . . . . 11 ((#‘𝐴) ∈ ℤ → (1...(#‘𝐴)) = (1..^((#‘𝐴) + 1)))
4139, 40syl 17 . . . . . . . . . 10 (((#‘𝐴) ∈ ℕ ∧ 𝑓:(1...(#‘𝐴))–1-1-onto𝐴) → (1...(#‘𝐴)) = (1..^((#‘𝐴) + 1)))
4237, 41eqtrd 2656 . . . . . . . . 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 1846 . . . . 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 14441 . . . 4 (𝐴 ∈ Fin → (𝐴 = ∅ ∨ ((#‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(#‘𝐴))–1-1-onto𝐴)))
5049adantl 482 . . 3 ((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) → (𝐴 = ∅ ∨ ((#‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(#‘𝐴))–1-1-onto𝐴)))
5131, 48, 50mpjaodan 827 . 2 ((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((#‘𝐴) + 1)))))
52 isfinite 8549 . . . . . . . . . 10 (𝐴 ∈ Fin ↔ 𝐴 ≺ ω)
5352notbii 310 . . . . . . . . 9 𝐴 ∈ Fin ↔ ¬ 𝐴 ≺ ω)
5453biimpi 206 . . . . . . . 8 𝐴 ∈ Fin → ¬ 𝐴 ≺ ω)
5554anim2i 593 . . . . . . 7 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → (𝐴 ≼ ω ∧ ¬ 𝐴 ≺ ω))
56 bren2 7986 . . . . . . 7 (𝐴 ≈ ω ↔ (𝐴 ≼ ω ∧ ¬ 𝐴 ≺ ω))
5755, 56sylibr 224 . . . . . 6 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → 𝐴 ≈ ω)
58 nnenom 12779 . . . . . . 7 ℕ ≈ ω
5958ensymi 8006 . . . . . 6 ω ≈ ℕ
60 entr 8008 . . . . . 6 ((𝐴 ≈ ω ∧ ω ≈ ℕ) → 𝐴 ≈ ℕ)
6157, 59, 60sylancl 694 . . . . 5 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → 𝐴 ≈ ℕ)
62 bren 7964 . . . . 5 (𝐴 ≈ ℕ ↔ ∃𝑔 𝑔:𝐴1-1-onto→ℕ)
6361, 62sylib 208 . . . 4 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → ∃𝑔 𝑔:𝐴1-1-onto→ℕ)
64 f1oexbi 7116 . . . 4 (∃𝑔 𝑔:𝐴1-1-onto→ℕ ↔ ∃𝑓 𝑓:ℕ–1-1-onto𝐴)
6563, 64sylib 208 . . 3 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → ∃𝑓 𝑓:ℕ–1-1-onto𝐴)
66 f1odm 6141 . . . . . . 7 (𝑓:ℕ–1-1-onto𝐴 → dom 𝑓 = ℕ)
67 f1oeq2 6128 . . . . . . 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 1762 . . 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 832 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 1483  wex 1704  wcel 1990  c0 3915   class class class wbr 4653  dom cdm 5114  1-1-ontowf1o 5887  cfv 5888  (class class class)co 6650  ωcom 7065  cen 7952  cdom 7953  csdm 7954  Fincfn 7955  0cc0 9936  1c1 9937   + caddc 9939  cn 11020  cz 11377  ...cfz 12326  ..^cfzo 12465  #chash 13117
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1722  ax-4 1737  ax-5 1839  ax-6 1888  ax-7 1935  ax-8 1992  ax-9 1999  ax-10 2019  ax-11 2034  ax-12 2047  ax-13 2246  ax-ext 2602  ax-sep 4781  ax-nul 4789  ax-pow 4843  ax-pr 4906  ax-un 6949  ax-inf2 8538  ax-cnex 9992  ax-resscn 9993  ax-1cn 9994  ax-icn 9995  ax-addcl 9996  ax-addrcl 9997  ax-mulcl 9998  ax-mulrcl 9999  ax-mulcom 10000  ax-addass 10001  ax-mulass 10002  ax-distr 10003  ax-i2m1 10004  ax-1ne0 10005  ax-1rid 10006  ax-rnegex 10007  ax-rrecex 10008  ax-cnre 10009  ax-pre-lttri 10010  ax-pre-lttrn 10011  ax-pre-ltadd 10012  ax-pre-mulgt0 10013
This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3or 1038  df-3an 1039  df-tru 1486  df-ex 1705  df-nf 1710  df-sb 1881  df-eu 2474  df-mo 2475  df-clab 2609  df-cleq 2615  df-clel 2618  df-nfc 2753  df-ne 2795  df-nel 2898  df-ral 2917  df-rex 2918  df-reu 2919  df-rab 2921  df-v 3202  df-sbc 3436  df-csb 3534  df-dif 3577  df-un 3579  df-in 3581  df-ss 3588  df-pss 3590  df-nul 3916  df-if 4087  df-pw 4160  df-sn 4178  df-pr 4180  df-tp 4182  df-op 4184  df-uni 4437  df-int 4476  df-iun 4522  df-br 4654  df-opab 4713  df-mpt 4730  df-tr 4753  df-id 5024  df-eprel 5029  df-po 5035  df-so 5036  df-fr 5073  df-we 5075  df-xp 5120  df-rel 5121  df-cnv 5122  df-co 5123  df-dm 5124  df-rn 5125  df-res 5126  df-ima 5127  df-pred 5680  df-ord 5726  df-on 5727  df-lim 5728  df-suc 5729  df-iota 5851  df-fun 5890  df-fn 5891  df-f 5892  df-f1 5893  df-fo 5894  df-f1o 5895  df-fv 5896  df-riota 6611  df-ov 6653  df-oprab 6654  df-mpt2 6655  df-om 7066  df-1st 7168  df-2nd 7169  df-wrecs 7407  df-recs 7468  df-rdg 7506  df-1o 7560  df-er 7742  df-en 7956  df-dom 7957  df-sdom 7958  df-fin 7959  df-card 8765  df-pnf 10076  df-mnf 10077  df-xr 10078  df-ltxr 10079  df-le 10080  df-sub 10268  df-neg 10269  df-nn 11021  df-n0 11293  df-z 11378  df-uz 11688  df-fz 12327  df-fzo 12466  df-hash 13118
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator