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 32893
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 32891 or iundisj2cnt 32892. (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 6809 . . . . . . 7 ∅:∅–1-1-onto→∅
2 eqidd 2738 . . . . . . . 8 (𝐴 = ∅ → ∅ = ∅)
3 dm0 5867 . . . . . . . . 9 dom ∅ = ∅
43a1i 11 . . . . . . . 8 (𝐴 = ∅ → dom ∅ = ∅)
5 id 22 . . . . . . . 8 (𝐴 = ∅ → 𝐴 = ∅)
62, 4, 5f1oeq123d 6766 . . . . . . 7 (𝐴 = ∅ → (∅:dom ∅–1-1-onto𝐴 ↔ ∅:∅–1-1-onto→∅))
71, 6mpbiri 258 . . . . . 6 (𝐴 = ∅ → ∅:dom ∅–1-1-onto𝐴)
8 fveq2 6832 . . . . . . . . . . . . 13 (𝐴 = ∅ → (♯‘𝐴) = (♯‘∅))
9 hash0 14318 . . . . . . . . . . . . 13 (♯‘∅) = 0
108, 9eqtrdi 2788 . . . . . . . . . . . 12 (𝐴 = ∅ → (♯‘𝐴) = 0)
1110oveq1d 7373 . . . . . . . . . . 11 (𝐴 = ∅ → ((♯‘𝐴) + 1) = (0 + 1))
12 0p1e1 12287 . . . . . . . . . . 11 (0 + 1) = 1
1311, 12eqtrdi 2788 . . . . . . . . . 10 (𝐴 = ∅ → ((♯‘𝐴) + 1) = 1)
1413oveq2d 7374 . . . . . . . . 9 (𝐴 = ∅ → (1..^((♯‘𝐴) + 1)) = (1..^1))
15 fzo0 13627 . . . . . . . . 9 (1..^1) = ∅
1614, 15eqtrdi 2788 . . . . . . . 8 (𝐴 = ∅ → (1..^((♯‘𝐴) + 1)) = ∅)
174, 16eqtr4d 2775 . . . . . . 7 (𝐴 = ∅ → dom ∅ = (1..^((♯‘𝐴) + 1)))
1817olcd 875 . . . . . 6 (𝐴 = ∅ → (dom ∅ = ℕ ∨ dom ∅ = (1..^((♯‘𝐴) + 1))))
197, 18jca 511 . . . . 5 (𝐴 = ∅ → (∅:dom ∅–1-1-onto𝐴 ∧ (dom ∅ = ℕ ∨ dom ∅ = (1..^((♯‘𝐴) + 1)))))
20 0ex 5242 . . . . . 6 ∅ ∈ V
21 id 22 . . . . . . . 8 (𝑓 = ∅ → 𝑓 = ∅)
22 dmeq 5850 . . . . . . . 8 (𝑓 = ∅ → dom 𝑓 = dom ∅)
23 eqidd 2738 . . . . . . . 8 (𝑓 = ∅ → 𝐴 = 𝐴)
2421, 22, 23f1oeq123d 6766 . . . . . . 7 (𝑓 = ∅ → (𝑓:dom 𝑓1-1-onto𝐴 ↔ ∅:dom ∅–1-1-onto𝐴))
2522eqeq1d 2739 . . . . . . . 8 (𝑓 = ∅ → (dom 𝑓 = ℕ ↔ dom ∅ = ℕ))
2622eqeq1d 2739 . . . . . . . 8 (𝑓 = ∅ → (dom 𝑓 = (1..^((♯‘𝐴) + 1)) ↔ dom ∅ = (1..^((♯‘𝐴) + 1))))
2725, 26orbi12d 919 . . . . . . 7 (𝑓 = ∅ → ((dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1))) ↔ (dom ∅ = ℕ ∨ dom ∅ = (1..^((♯‘𝐴) + 1)))))
2824, 27anbi12d 633 . . . . . 6 (𝑓 = ∅ → ((𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))) ↔ (∅:dom ∅–1-1-onto𝐴 ∧ (dom ∅ = ℕ ∨ dom ∅ = (1..^((♯‘𝐴) + 1))))))
2920, 28spcev 3549 . . . . 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 6776 . . . . . . . . . . 11 (𝑓:(1...(♯‘𝐴))–1-1-onto𝐴 → dom 𝑓 = (1...(♯‘𝐴)))
3332f1oeq2d 6768 . . . . . . . . . 10 (𝑓:(1...(♯‘𝐴))–1-1-onto𝐴 → (𝑓:dom 𝑓1-1-onto𝐴𝑓:(1...(♯‘𝐴))–1-1-onto𝐴))
3433ibir 268 . . . . . . . . 9 (𝑓:(1...(♯‘𝐴))–1-1-onto𝐴𝑓:dom 𝑓1-1-onto𝐴)
3534adantl 481 . . . . . . . 8 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → 𝑓:dom 𝑓1-1-onto𝐴)
3632adantl 481 . . . . . . . . . 10 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → dom 𝑓 = (1...(♯‘𝐴)))
37 simpl 482 . . . . . . . . . . . 12 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → (♯‘𝐴) ∈ ℕ)
3837nnzd 12539 . . . . . . . . . . 11 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → (♯‘𝐴) ∈ ℤ)
39 fzval3 13678 . . . . . . . . . . 11 ((♯‘𝐴) ∈ ℤ → (1...(♯‘𝐴)) = (1..^((♯‘𝐴) + 1)))
4038, 39syl 17 . . . . . . . . . 10 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → (1...(♯‘𝐴)) = (1..^((♯‘𝐴) + 1)))
4136, 40eqtrd 2772 . . . . . . . . 9 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → dom 𝑓 = (1..^((♯‘𝐴) + 1)))
4241olcd 875 . . . . . . . 8 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1))))
4335, 42jca 511 . . . . . . 7 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → (𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))))
4443ex 412 . . . . . 6 ((♯‘𝐴) ∈ ℕ → (𝑓:(1...(♯‘𝐴))–1-1-onto𝐴 → (𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1))))))
4544eximdv 1919 . . . . 5 ((♯‘𝐴) ∈ ℕ → (∃𝑓 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴 → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1))))))
4645imp 406 . . . 4 (((♯‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))))
4746adantl 481 . . 3 (((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) ∧ ((♯‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴)) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))))
48 fz1f1o 15661 . . . 4 (𝐴 ∈ Fin → (𝐴 = ∅ ∨ ((♯‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴)))
4948adantl 481 . . 3 ((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) → (𝐴 = ∅ ∨ ((♯‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴)))
5031, 47, 49mpjaodan 961 . 2 ((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))))
51 isfinite 9562 . . . . . . . . . 10 (𝐴 ∈ Fin ↔ 𝐴 ≺ ω)
5251notbii 320 . . . . . . . . 9 𝐴 ∈ Fin ↔ ¬ 𝐴 ≺ ω)
5352biimpi 216 . . . . . . . 8 𝐴 ∈ Fin → ¬ 𝐴 ≺ ω)
5453anim2i 618 . . . . . . 7 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → (𝐴 ≼ ω ∧ ¬ 𝐴 ≺ ω))
55 bren2 8921 . . . . . . 7 (𝐴 ≈ ω ↔ (𝐴 ≼ ω ∧ ¬ 𝐴 ≺ ω))
5654, 55sylibr 234 . . . . . 6 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → 𝐴 ≈ ω)
57 nnenom 13931 . . . . . . 7 ℕ ≈ ω
5857ensymi 8942 . . . . . 6 ω ≈ ℕ
59 entr 8944 . . . . . 6 ((𝐴 ≈ ω ∧ ω ≈ ℕ) → 𝐴 ≈ ℕ)
6056, 58, 59sylancl 587 . . . . 5 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → 𝐴 ≈ ℕ)
61 bren 8894 . . . . 5 (𝐴 ≈ ℕ ↔ ∃𝑔 𝑔:𝐴1-1-onto→ℕ)
6260, 61sylib 218 . . . 4 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → ∃𝑔 𝑔:𝐴1-1-onto→ℕ)
63 f1oexbi 7870 . . . 4 (∃𝑔 𝑔:𝐴1-1-onto→ℕ ↔ ∃𝑓 𝑓:ℕ–1-1-onto𝐴)
6462, 63sylib 218 . . 3 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → ∃𝑓 𝑓:ℕ–1-1-onto𝐴)
65 f1odm 6776 . . . . . . 7 (𝑓:ℕ–1-1-onto𝐴 → dom 𝑓 = ℕ)
6665f1oeq2d 6768 . . . . . 6 (𝑓:ℕ–1-1-onto𝐴 → (𝑓:dom 𝑓1-1-onto𝐴𝑓:ℕ–1-1-onto𝐴))
6766ibir 268 . . . . 5 (𝑓:ℕ–1-1-onto𝐴𝑓:dom 𝑓1-1-onto𝐴)
6865orcd 874 . . . . 5 (𝑓:ℕ–1-1-onto𝐴 → (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1))))
6967, 68jca 511 . . . 4 (𝑓:ℕ–1-1-onto𝐴 → (𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))))
7069eximi 1837 . . 3 (∃𝑓 𝑓:ℕ–1-1-onto𝐴 → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))))
7164, 70syl 17 . 2 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))))
7250, 71pm2.61dan 813 1 (𝐴 ≼ ω → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 395  wo 848   = wceq 1542  wex 1781  wcel 2114  c0 4274   class class class wbr 5086  dom cdm 5622  1-1-ontowf1o 6489  cfv 6490  (class class class)co 7358  ωcom 7808  cen 8881  cdom 8882  csdm 8883  Fincfn 8884  0cc0 11027  1c1 11028   + caddc 11030  cn 12163  cz 12513  ...cfz 13450  ..^cfzo 13597  chash 14281
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1797  ax-4 1811  ax-5 1912  ax-6 1969  ax-7 2010  ax-8 2116  ax-9 2124  ax-10 2147  ax-11 2163  ax-12 2185  ax-ext 2709  ax-sep 5231  ax-nul 5241  ax-pow 5300  ax-pr 5368  ax-un 7680  ax-inf2 9551  ax-cnex 11083  ax-resscn 11084  ax-1cn 11085  ax-icn 11086  ax-addcl 11087  ax-addrcl 11088  ax-mulcl 11089  ax-mulrcl 11090  ax-mulcom 11091  ax-addass 11092  ax-mulass 11093  ax-distr 11094  ax-i2m1 11095  ax-1ne0 11096  ax-1rid 11097  ax-rnegex 11098  ax-rrecex 11099  ax-cnre 11100  ax-pre-lttri 11101  ax-pre-lttrn 11102  ax-pre-ltadd 11103  ax-pre-mulgt0 11104
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 849  df-3or 1088  df-3an 1089  df-tru 1545  df-fal 1555  df-ex 1782  df-nf 1786  df-sb 2069  df-mo 2540  df-eu 2570  df-clab 2716  df-cleq 2729  df-clel 2812  df-nfc 2886  df-ne 2934  df-nel 3038  df-ral 3053  df-rex 3063  df-reu 3344  df-rab 3391  df-v 3432  df-sbc 3730  df-csb 3839  df-dif 3893  df-un 3895  df-in 3897  df-ss 3907  df-pss 3910  df-nul 4275  df-if 4468  df-pw 4544  df-sn 4569  df-pr 4571  df-op 4575  df-uni 4852  df-int 4891  df-iun 4936  df-br 5087  df-opab 5149  df-mpt 5168  df-tr 5194  df-id 5517  df-eprel 5522  df-po 5530  df-so 5531  df-fr 5575  df-we 5577  df-xp 5628  df-rel 5629  df-cnv 5630  df-co 5631  df-dm 5632  df-rn 5633  df-res 5634  df-ima 5635  df-pred 6257  df-ord 6318  df-on 6319  df-lim 6320  df-suc 6321  df-iota 6446  df-fun 6492  df-fn 6493  df-f 6494  df-f1 6495  df-fo 6496  df-f1o 6497  df-fv 6498  df-riota 7315  df-ov 7361  df-oprab 7362  df-mpo 7363  df-om 7809  df-1st 7933  df-2nd 7934  df-frecs 8222  df-wrecs 8253  df-recs 8302  df-rdg 8340  df-1o 8396  df-er 8634  df-en 8885  df-dom 8886  df-sdom 8887  df-fin 8888  df-card 9852  df-pnf 11170  df-mnf 11171  df-xr 11172  df-ltxr 11173  df-le 11174  df-sub 11368  df-neg 11369  df-nn 12164  df-n0 12427  df-z 12514  df-uz 12778  df-fz 13451  df-fzo 13598  df-hash 14282
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator