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 32588
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 32584 or iundisj2cnt 32585. (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 6879 . . . . . . 7 ∅:∅–1-1-onto→∅
2 eqidd 2728 . . . . . . . 8 (𝐴 = ∅ → ∅ = ∅)
3 dm0 5925 . . . . . . . . 9 dom ∅ = ∅
43a1i 11 . . . . . . . 8 (𝐴 = ∅ → dom ∅ = ∅)
5 id 22 . . . . . . . 8 (𝐴 = ∅ → 𝐴 = ∅)
62, 4, 5f1oeq123d 6836 . . . . . . 7 (𝐴 = ∅ → (∅:dom ∅–1-1-onto𝐴 ↔ ∅:∅–1-1-onto→∅))
71, 6mpbiri 257 . . . . . 6 (𝐴 = ∅ → ∅:dom ∅–1-1-onto𝐴)
8 fveq2 6900 . . . . . . . . . . . . 13 (𝐴 = ∅ → (♯‘𝐴) = (♯‘∅))
9 hash0 14364 . . . . . . . . . . . . 13 (♯‘∅) = 0
108, 9eqtrdi 2783 . . . . . . . . . . . 12 (𝐴 = ∅ → (♯‘𝐴) = 0)
1110oveq1d 7439 . . . . . . . . . . 11 (𝐴 = ∅ → ((♯‘𝐴) + 1) = (0 + 1))
12 0p1e1 12370 . . . . . . . . . . 11 (0 + 1) = 1
1311, 12eqtrdi 2783 . . . . . . . . . 10 (𝐴 = ∅ → ((♯‘𝐴) + 1) = 1)
1413oveq2d 7440 . . . . . . . . 9 (𝐴 = ∅ → (1..^((♯‘𝐴) + 1)) = (1..^1))
15 fzo0 13694 . . . . . . . . 9 (1..^1) = ∅
1614, 15eqtrdi 2783 . . . . . . . 8 (𝐴 = ∅ → (1..^((♯‘𝐴) + 1)) = ∅)
174, 16eqtr4d 2770 . . . . . . 7 (𝐴 = ∅ → dom ∅ = (1..^((♯‘𝐴) + 1)))
1817olcd 872 . . . . . 6 (𝐴 = ∅ → (dom ∅ = ℕ ∨ dom ∅ = (1..^((♯‘𝐴) + 1))))
197, 18jca 510 . . . . 5 (𝐴 = ∅ → (∅:dom ∅–1-1-onto𝐴 ∧ (dom ∅ = ℕ ∨ dom ∅ = (1..^((♯‘𝐴) + 1)))))
20 0ex 5309 . . . . . 6 ∅ ∈ V
21 id 22 . . . . . . . 8 (𝑓 = ∅ → 𝑓 = ∅)
22 dmeq 5908 . . . . . . . 8 (𝑓 = ∅ → dom 𝑓 = dom ∅)
23 eqidd 2728 . . . . . . . 8 (𝑓 = ∅ → 𝐴 = 𝐴)
2421, 22, 23f1oeq123d 6836 . . . . . . 7 (𝑓 = ∅ → (𝑓:dom 𝑓1-1-onto𝐴 ↔ ∅:dom ∅–1-1-onto𝐴))
2522eqeq1d 2729 . . . . . . . 8 (𝑓 = ∅ → (dom 𝑓 = ℕ ↔ dom ∅ = ℕ))
2622eqeq1d 2729 . . . . . . . 8 (𝑓 = ∅ → (dom 𝑓 = (1..^((♯‘𝐴) + 1)) ↔ dom ∅ = (1..^((♯‘𝐴) + 1))))
2725, 26orbi12d 916 . . . . . . 7 (𝑓 = ∅ → ((dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1))) ↔ (dom ∅ = ℕ ∨ dom ∅ = (1..^((♯‘𝐴) + 1)))))
2824, 27anbi12d 630 . . . . . 6 (𝑓 = ∅ → ((𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))) ↔ (∅:dom ∅–1-1-onto𝐴 ∧ (dom ∅ = ℕ ∨ dom ∅ = (1..^((♯‘𝐴) + 1))))))
2920, 28spcev 3593 . . . . 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 480 . . 3 (((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) ∧ 𝐴 = ∅) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))))
32 f1odm 6846 . . . . . . . . . . 11 (𝑓:(1...(♯‘𝐴))–1-1-onto𝐴 → dom 𝑓 = (1...(♯‘𝐴)))
3332f1oeq2d 6838 . . . . . . . . . 10 (𝑓:(1...(♯‘𝐴))–1-1-onto𝐴 → (𝑓:dom 𝑓1-1-onto𝐴𝑓:(1...(♯‘𝐴))–1-1-onto𝐴))
3433ibir 267 . . . . . . . . 9 (𝑓:(1...(♯‘𝐴))–1-1-onto𝐴𝑓:dom 𝑓1-1-onto𝐴)
3534adantl 480 . . . . . . . 8 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → 𝑓:dom 𝑓1-1-onto𝐴)
3632adantl 480 . . . . . . . . . 10 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → dom 𝑓 = (1...(♯‘𝐴)))
37 simpl 481 . . . . . . . . . . . 12 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → (♯‘𝐴) ∈ ℕ)
3837nnzd 12621 . . . . . . . . . . 11 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → (♯‘𝐴) ∈ ℤ)
39 fzval3 13739 . . . . . . . . . . 11 ((♯‘𝐴) ∈ ℤ → (1...(♯‘𝐴)) = (1..^((♯‘𝐴) + 1)))
4038, 39syl 17 . . . . . . . . . 10 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → (1...(♯‘𝐴)) = (1..^((♯‘𝐴) + 1)))
4136, 40eqtrd 2767 . . . . . . . . 9 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → dom 𝑓 = (1..^((♯‘𝐴) + 1)))
4241olcd 872 . . . . . . . 8 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1))))
4335, 42jca 510 . . . . . . 7 (((♯‘𝐴) ∈ ℕ ∧ 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → (𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))))
4443ex 411 . . . . . 6 ((♯‘𝐴) ∈ ℕ → (𝑓:(1...(♯‘𝐴))–1-1-onto𝐴 → (𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1))))))
4544eximdv 1912 . . . . 5 ((♯‘𝐴) ∈ ℕ → (∃𝑓 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴 → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1))))))
4645imp 405 . . . 4 (((♯‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))))
4746adantl 480 . . 3 (((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) ∧ ((♯‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴)) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))))
48 fz1f1o 15694 . . . 4 (𝐴 ∈ Fin → (𝐴 = ∅ ∨ ((♯‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴)))
4948adantl 480 . . 3 ((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) → (𝐴 = ∅ ∨ ((♯‘𝐴) ∈ ℕ ∧ ∃𝑓 𝑓:(1...(♯‘𝐴))–1-1-onto𝐴)))
5031, 47, 49mpjaodan 956 . 2 ((𝐴 ≼ ω ∧ 𝐴 ∈ Fin) → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))))
51 isfinite 9681 . . . . . . . . . 10 (𝐴 ∈ Fin ↔ 𝐴 ≺ ω)
5251notbii 319 . . . . . . . . 9 𝐴 ∈ Fin ↔ ¬ 𝐴 ≺ ω)
5352biimpi 215 . . . . . . . 8 𝐴 ∈ Fin → ¬ 𝐴 ≺ ω)
5453anim2i 615 . . . . . . 7 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → (𝐴 ≼ ω ∧ ¬ 𝐴 ≺ ω))
55 bren2 9008 . . . . . . 7 (𝐴 ≈ ω ↔ (𝐴 ≼ ω ∧ ¬ 𝐴 ≺ ω))
5654, 55sylibr 233 . . . . . 6 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → 𝐴 ≈ ω)
57 nnenom 13983 . . . . . . 7 ℕ ≈ ω
5857ensymi 9029 . . . . . 6 ω ≈ ℕ
59 entr 9031 . . . . . 6 ((𝐴 ≈ ω ∧ ω ≈ ℕ) → 𝐴 ≈ ℕ)
6056, 58, 59sylancl 584 . . . . 5 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → 𝐴 ≈ ℕ)
61 bren 8978 . . . . 5 (𝐴 ≈ ℕ ↔ ∃𝑔 𝑔:𝐴1-1-onto→ℕ)
6260, 61sylib 217 . . . 4 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → ∃𝑔 𝑔:𝐴1-1-onto→ℕ)
63 f1oexbi 7940 . . . 4 (∃𝑔 𝑔:𝐴1-1-onto→ℕ ↔ ∃𝑓 𝑓:ℕ–1-1-onto𝐴)
6462, 63sylib 217 . . 3 ((𝐴 ≼ ω ∧ ¬ 𝐴 ∈ Fin) → ∃𝑓 𝑓:ℕ–1-1-onto𝐴)
65 f1odm 6846 . . . . . . 7 (𝑓:ℕ–1-1-onto𝐴 → dom 𝑓 = ℕ)
6665f1oeq2d 6838 . . . . . 6 (𝑓:ℕ–1-1-onto𝐴 → (𝑓:dom 𝑓1-1-onto𝐴𝑓:ℕ–1-1-onto𝐴))
6766ibir 267 . . . . 5 (𝑓:ℕ–1-1-onto𝐴𝑓:dom 𝑓1-1-onto𝐴)
6865orcd 871 . . . . 5 (𝑓:ℕ–1-1-onto𝐴 → (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1))))
6967, 68jca 510 . . . 4 (𝑓:ℕ–1-1-onto𝐴 → (𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))))
7069eximi 1829 . . 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 811 1 (𝐴 ≼ ω → ∃𝑓(𝑓:dom 𝑓1-1-onto𝐴 ∧ (dom 𝑓 = ℕ ∨ dom 𝑓 = (1..^((♯‘𝐴) + 1)))))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 394  wo 845   = wceq 1533  wex 1773  wcel 2098  c0 4324   class class class wbr 5150  dom cdm 5680  1-1-ontowf1o 6550  cfv 6551  (class class class)co 7424  ωcom 7874  cen 8965  cdom 8966  csdm 8967  Fincfn 8968  0cc0 11144  1c1 11145   + caddc 11147  cn 12248  cz 12594  ...cfz 13522  ..^cfzo 13665  chash 14327
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1789  ax-4 1803  ax-5 1905  ax-6 1963  ax-7 2003  ax-8 2100  ax-9 2108  ax-10 2129  ax-11 2146  ax-12 2166  ax-ext 2698  ax-sep 5301  ax-nul 5308  ax-pow 5367  ax-pr 5431  ax-un 7744  ax-inf2 9670  ax-cnex 11200  ax-resscn 11201  ax-1cn 11202  ax-icn 11203  ax-addcl 11204  ax-addrcl 11205  ax-mulcl 11206  ax-mulrcl 11207  ax-mulcom 11208  ax-addass 11209  ax-mulass 11210  ax-distr 11211  ax-i2m1 11212  ax-1ne0 11213  ax-1rid 11214  ax-rnegex 11215  ax-rrecex 11216  ax-cnre 11217  ax-pre-lttri 11218  ax-pre-lttrn 11219  ax-pre-ltadd 11220  ax-pre-mulgt0 11221
This theorem depends on definitions:  df-bi 206  df-an 395  df-or 846  df-3or 1085  df-3an 1086  df-tru 1536  df-fal 1546  df-ex 1774  df-nf 1778  df-sb 2060  df-mo 2529  df-eu 2558  df-clab 2705  df-cleq 2719  df-clel 2805  df-nfc 2880  df-ne 2937  df-nel 3043  df-ral 3058  df-rex 3067  df-reu 3373  df-rab 3429  df-v 3473  df-sbc 3777  df-csb 3893  df-dif 3950  df-un 3952  df-in 3954  df-ss 3964  df-pss 3966  df-nul 4325  df-if 4531  df-pw 4606  df-sn 4631  df-pr 4633  df-op 4637  df-uni 4911  df-int 4952  df-iun 5000  df-br 5151  df-opab 5213  df-mpt 5234  df-tr 5268  df-id 5578  df-eprel 5584  df-po 5592  df-so 5593  df-fr 5635  df-we 5637  df-xp 5686  df-rel 5687  df-cnv 5688  df-co 5689  df-dm 5690  df-rn 5691  df-res 5692  df-ima 5693  df-pred 6308  df-ord 6375  df-on 6376  df-lim 6377  df-suc 6378  df-iota 6503  df-fun 6553  df-fn 6554  df-f 6555  df-f1 6556  df-fo 6557  df-f1o 6558  df-fv 6559  df-riota 7380  df-ov 7427  df-oprab 7428  df-mpo 7429  df-om 7875  df-1st 7997  df-2nd 7998  df-frecs 8291  df-wrecs 8322  df-recs 8396  df-rdg 8435  df-1o 8491  df-er 8729  df-en 8969  df-dom 8970  df-sdom 8971  df-fin 8972  df-card 9968  df-pnf 11286  df-mnf 11287  df-xr 11288  df-ltxr 11289  df-le 11290  df-sub 11482  df-neg 11483  df-nn 12249  df-n0 12509  df-z 12595  df-uz 12859  df-fz 13523  df-fzo 13666  df-hash 14328
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator