Users' Mathboxes Mathbox for Richard Penner < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  rp-isfinite6 Structured version   Visualization version   GIF version

Theorem rp-isfinite6 43963
Description: A set is said to be finite if it is either empty or it can be put in one-to-one correspondence with all the natural numbers between 1 and some 𝑛 ∈ ℕ. (Contributed by RP, 10-Mar-2020.)
Assertion
Ref Expression
rp-isfinite6 (𝐴 ∈ Fin ↔ (𝐴 = ∅ ∨ ∃𝑛 ∈ ℕ (1...𝑛) ≈ 𝐴))
Distinct variable group:   𝐴,𝑛

Proof of Theorem rp-isfinite6
StepHypRef Expression
1 exmid 895 . . . 4 (𝐴 = ∅ ∨ ¬ 𝐴 = ∅)
21biantrur 530 . . 3 (𝐴 ∈ Fin ↔ ((𝐴 = ∅ ∨ ¬ 𝐴 = ∅) ∧ 𝐴 ∈ Fin))
3 andir 1011 . . 3 (((𝐴 = ∅ ∨ ¬ 𝐴 = ∅) ∧ 𝐴 ∈ Fin) ↔ ((𝐴 = ∅ ∧ 𝐴 ∈ Fin) ∨ (¬ 𝐴 = ∅ ∧ 𝐴 ∈ Fin)))
42, 3bitri 275 . 2 (𝐴 ∈ Fin ↔ ((𝐴 = ∅ ∧ 𝐴 ∈ Fin) ∨ (¬ 𝐴 = ∅ ∧ 𝐴 ∈ Fin)))
5 simpl 482 . . . 4 ((𝐴 = ∅ ∧ 𝐴 ∈ Fin) → 𝐴 = ∅)
6 0fi 8982 . . . . . 6 ∅ ∈ Fin
7 eleq1a 2832 . . . . . 6 (∅ ∈ Fin → (𝐴 = ∅ → 𝐴 ∈ Fin))
86, 7ax-mp 5 . . . . 5 (𝐴 = ∅ → 𝐴 ∈ Fin)
98ancli 548 . . . 4 (𝐴 = ∅ → (𝐴 = ∅ ∧ 𝐴 ∈ Fin))
105, 9impbii 209 . . 3 ((𝐴 = ∅ ∧ 𝐴 ∈ Fin) ↔ 𝐴 = ∅)
11 rp-isfinite5 43962 . . . . . 6 (𝐴 ∈ Fin ↔ ∃𝑛 ∈ ℕ0 (1...𝑛) ≈ 𝐴)
12 df-rex 3063 . . . . . 6 (∃𝑛 ∈ ℕ0 (1...𝑛) ≈ 𝐴 ↔ ∃𝑛(𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴))
1311, 12bitri 275 . . . . 5 (𝐴 ∈ Fin ↔ ∃𝑛(𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴))
1413anbi2i 624 . . . 4 ((¬ 𝐴 = ∅ ∧ 𝐴 ∈ Fin) ↔ (¬ 𝐴 = ∅ ∧ ∃𝑛(𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)))
15 df-rex 3063 . . . . 5 (∃𝑛 ∈ ℕ (1...𝑛) ≈ 𝐴 ↔ ∃𝑛(𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴))
16 en0 8958 . . . . . . . . . . . . . 14 (𝐴 ≈ ∅ ↔ 𝐴 = ∅)
17 ensymb 8942 . . . . . . . . . . . . . 14 (𝐴 ≈ ∅ ↔ ∅ ≈ 𝐴)
1816, 17bitr3i 277 . . . . . . . . . . . . 13 (𝐴 = ∅ ↔ ∅ ≈ 𝐴)
1918notbii 320 . . . . . . . . . . . 12 𝐴 = ∅ ↔ ¬ ∅ ≈ 𝐴)
20 elnn0 12430 . . . . . . . . . . . . . 14 (𝑛 ∈ ℕ0 ↔ (𝑛 ∈ ℕ ∨ 𝑛 = 0))
2120anbi1i 625 . . . . . . . . . . . . 13 ((𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴) ↔ ((𝑛 ∈ ℕ ∨ 𝑛 = 0) ∧ (1...𝑛) ≈ 𝐴))
22 andir 1011 . . . . . . . . . . . . 13 (((𝑛 ∈ ℕ ∨ 𝑛 = 0) ∧ (1...𝑛) ≈ 𝐴) ↔ ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ∨ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴)))
2321, 22bitri 275 . . . . . . . . . . . 12 ((𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴) ↔ ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ∨ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴)))
2419, 23anbi12i 629 . . . . . . . . . . 11 ((¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) ↔ (¬ ∅ ≈ 𝐴 ∧ ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ∨ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴))))
25 andi 1010 . . . . . . . . . . 11 ((¬ ∅ ≈ 𝐴 ∧ ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ∨ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴))) ↔ ((¬ ∅ ≈ 𝐴 ∧ (𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴)) ∨ (¬ ∅ ≈ 𝐴 ∧ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴))))
2624, 25bitri 275 . . . . . . . . . 10 ((¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) ↔ ((¬ ∅ ≈ 𝐴 ∧ (𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴)) ∨ (¬ ∅ ≈ 𝐴 ∧ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴))))
27 3anass 1095 . . . . . . . . . . 11 ((¬ ∅ ≈ 𝐴𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ↔ (¬ ∅ ≈ 𝐴 ∧ (𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴)))
28 3anass 1095 . . . . . . . . . . 11 ((¬ ∅ ≈ 𝐴𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴) ↔ (¬ ∅ ≈ 𝐴 ∧ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴)))
2927, 28orbi12i 915 . . . . . . . . . 10 (((¬ ∅ ≈ 𝐴𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ∨ (¬ ∅ ≈ 𝐴𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴)) ↔ ((¬ ∅ ≈ 𝐴 ∧ (𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴)) ∨ (¬ ∅ ≈ 𝐴 ∧ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴))))
3026, 29sylbb2 238 . . . . . . . . 9 ((¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) → ((¬ ∅ ≈ 𝐴𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ∨ (¬ ∅ ≈ 𝐴𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴)))
31 simp2 1138 . . . . . . . . . 10 ((¬ ∅ ≈ 𝐴𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) → 𝑛 ∈ ℕ)
32 oveq2 7368 . . . . . . . . . . . 12 (𝑛 = 0 → (1...𝑛) = (1...0))
33 fz10 13490 . . . . . . . . . . . 12 (1...0) = ∅
3432, 33eqtrdi 2788 . . . . . . . . . . 11 (𝑛 = 0 → (1...𝑛) = ∅)
35 simp2 1138 . . . . . . . . . . . . 13 ((¬ ∅ ≈ 𝐴 ∧ (1...𝑛) = ∅ ∧ (1...𝑛) ≈ 𝐴) → (1...𝑛) = ∅)
36 simp3 1139 . . . . . . . . . . . . 13 ((¬ ∅ ≈ 𝐴 ∧ (1...𝑛) = ∅ ∧ (1...𝑛) ≈ 𝐴) → (1...𝑛) ≈ 𝐴)
3735, 36eqbrtrrd 5110 . . . . . . . . . . . 12 ((¬ ∅ ≈ 𝐴 ∧ (1...𝑛) = ∅ ∧ (1...𝑛) ≈ 𝐴) → ∅ ≈ 𝐴)
38 simp1 1137 . . . . . . . . . . . 12 ((¬ ∅ ≈ 𝐴 ∧ (1...𝑛) = ∅ ∧ (1...𝑛) ≈ 𝐴) → ¬ ∅ ≈ 𝐴)
3937, 38pm2.21dd 195 . . . . . . . . . . 11 ((¬ ∅ ≈ 𝐴 ∧ (1...𝑛) = ∅ ∧ (1...𝑛) ≈ 𝐴) → 𝑛 ∈ ℕ)
4034, 39syl3an2 1165 . . . . . . . . . 10 ((¬ ∅ ≈ 𝐴𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴) → 𝑛 ∈ ℕ)
4131, 40jaoi 858 . . . . . . . . 9 (((¬ ∅ ≈ 𝐴𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ∨ (¬ ∅ ≈ 𝐴𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴)) → 𝑛 ∈ ℕ)
4230, 41syl 17 . . . . . . . 8 ((¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) → 𝑛 ∈ ℕ)
43 simprr 773 . . . . . . . 8 ((¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) → (1...𝑛) ≈ 𝐴)
4442, 43jca 511 . . . . . . 7 ((¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) → (𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴))
45 nngt0 12199 . . . . . . . . . . . 12 (𝑛 ∈ ℕ → 0 < 𝑛)
46 hash0 14320 . . . . . . . . . . . . 13 (♯‘∅) = 0
4746a1i 11 . . . . . . . . . . . 12 (𝑛 ∈ ℕ → (♯‘∅) = 0)
48 nnnn0 12435 . . . . . . . . . . . . 13 (𝑛 ∈ ℕ → 𝑛 ∈ ℕ0)
49 hashfz1 14299 . . . . . . . . . . . . 13 (𝑛 ∈ ℕ0 → (♯‘(1...𝑛)) = 𝑛)
5048, 49syl 17 . . . . . . . . . . . 12 (𝑛 ∈ ℕ → (♯‘(1...𝑛)) = 𝑛)
5145, 47, 503brtr4d 5118 . . . . . . . . . . 11 (𝑛 ∈ ℕ → (♯‘∅) < (♯‘(1...𝑛)))
52 fzfi 13925 . . . . . . . . . . . 12 (1...𝑛) ∈ Fin
53 hashsdom 14334 . . . . . . . . . . . 12 ((∅ ∈ Fin ∧ (1...𝑛) ∈ Fin) → ((♯‘∅) < (♯‘(1...𝑛)) ↔ ∅ ≺ (1...𝑛)))
546, 52, 53mp2an 693 . . . . . . . . . . 11 ((♯‘∅) < (♯‘(1...𝑛)) ↔ ∅ ≺ (1...𝑛))
5551, 54sylib 218 . . . . . . . . . 10 (𝑛 ∈ ℕ → ∅ ≺ (1...𝑛))
5655anim1i 616 . . . . . . . . 9 ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) → (∅ ≺ (1...𝑛) ∧ (1...𝑛) ≈ 𝐴))
57 sdomentr 9042 . . . . . . . . . . 11 ((∅ ≺ (1...𝑛) ∧ (1...𝑛) ≈ 𝐴) → ∅ ≺ 𝐴)
58 sdomnen 8921 . . . . . . . . . . 11 (∅ ≺ 𝐴 → ¬ ∅ ≈ 𝐴)
5957, 58syl 17 . . . . . . . . . 10 ((∅ ≺ (1...𝑛) ∧ (1...𝑛) ≈ 𝐴) → ¬ ∅ ≈ 𝐴)
60 en0r 8960 . . . . . . . . . . 11 (∅ ≈ 𝐴𝐴 = ∅)
6160notbii 320 . . . . . . . . . 10 (¬ ∅ ≈ 𝐴 ↔ ¬ 𝐴 = ∅)
6259, 61sylib 218 . . . . . . . . 9 ((∅ ≺ (1...𝑛) ∧ (1...𝑛) ≈ 𝐴) → ¬ 𝐴 = ∅)
6356, 62syl 17 . . . . . . . 8 ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) → ¬ 𝐴 = ∅)
6448anim1i 616 . . . . . . . 8 ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) → (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴))
6563, 64jca 511 . . . . . . 7 ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) → (¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)))
6644, 65impbii 209 . . . . . 6 ((¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) ↔ (𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴))
6766exbii 1850 . . . . 5 (∃𝑛𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) ↔ ∃𝑛(𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴))
68 19.42v 1955 . . . . 5 (∃𝑛𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) ↔ (¬ 𝐴 = ∅ ∧ ∃𝑛(𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)))
6915, 67, 683bitr2ri 300 . . . 4 ((¬ 𝐴 = ∅ ∧ ∃𝑛(𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) ↔ ∃𝑛 ∈ ℕ (1...𝑛) ≈ 𝐴)
7014, 69bitri 275 . . 3 ((¬ 𝐴 = ∅ ∧ 𝐴 ∈ Fin) ↔ ∃𝑛 ∈ ℕ (1...𝑛) ≈ 𝐴)
7110, 70orbi12i 915 . 2 (((𝐴 = ∅ ∧ 𝐴 ∈ Fin) ∨ (¬ 𝐴 = ∅ ∧ 𝐴 ∈ Fin)) ↔ (𝐴 = ∅ ∨ ∃𝑛 ∈ ℕ (1...𝑛) ≈ 𝐴))
724, 71bitri 275 1 (𝐴 ∈ Fin ↔ (𝐴 = ∅ ∨ ∃𝑛 ∈ ℕ (1...𝑛) ≈ 𝐴))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 206  wa 395  wo 848  w3a 1087   = wceq 1542  wex 1781  wcel 2114  wrex 3062  c0 4274   class class class wbr 5086  cfv 6492  (class class class)co 7360  cen 8883  csdm 8885  Fincfn 8886  0cc0 11029  1c1 11030   < clt 11170  cn 12165  0cn0 12428  ...cfz 13452  chash 14283
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 5302  ax-pr 5370  ax-un 7682  ax-cnex 11085  ax-resscn 11086  ax-1cn 11087  ax-icn 11088  ax-addcl 11089  ax-addrcl 11090  ax-mulcl 11091  ax-mulrcl 11092  ax-mulcom 11093  ax-addass 11094  ax-mulass 11095  ax-distr 11096  ax-i2m1 11097  ax-1ne0 11098  ax-1rid 11099  ax-rnegex 11100  ax-rrecex 11101  ax-cnre 11102  ax-pre-lttri 11103  ax-pre-lttrn 11104  ax-pre-ltadd 11105  ax-pre-mulgt0 11106
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 5519  df-eprel 5524  df-po 5532  df-so 5533  df-fr 5577  df-we 5579  df-xp 5630  df-rel 5631  df-cnv 5632  df-co 5633  df-dm 5634  df-rn 5635  df-res 5636  df-ima 5637  df-pred 6259  df-ord 6320  df-on 6321  df-lim 6322  df-suc 6323  df-iota 6448  df-fun 6494  df-fn 6495  df-f 6496  df-f1 6497  df-fo 6498  df-f1o 6499  df-fv 6500  df-riota 7317  df-ov 7363  df-oprab 7364  df-mpo 7365  df-om 7811  df-1st 7935  df-2nd 7936  df-frecs 8224  df-wrecs 8255  df-recs 8304  df-rdg 8342  df-1o 8398  df-oadd 8402  df-er 8636  df-en 8887  df-dom 8888  df-sdom 8889  df-fin 8890  df-card 9854  df-pnf 11172  df-mnf 11173  df-xr 11174  df-ltxr 11175  df-le 11176  df-sub 11370  df-neg 11371  df-nn 12166  df-n0 12429  df-xnn0 12502  df-z 12516  df-uz 12780  df-fz 13453  df-hash 14284
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator