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 44135
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 907 . . . 4 (𝐴 = ∅ ∨ ¬ 𝐴 = ∅)
21biantrur 539 . . 3 (𝐴 ∈ Fin ↔ ((𝐴 = ∅ ∨ ¬ 𝐴 = ∅) ∧ 𝐴 ∈ Fin))
3 andir 1024 . . 3 (((𝐴 = ∅ ∨ ¬ 𝐴 = ∅) ∧ 𝐴 ∈ Fin) ↔ ((𝐴 = ∅ ∧ 𝐴 ∈ Fin) ∨ (¬ 𝐴 = ∅ ∧ 𝐴 ∈ Fin)))
42, 3bitri 278 . 2 (𝐴 ∈ Fin ↔ ((𝐴 = ∅ ∧ 𝐴 ∈ Fin) ∨ (¬ 𝐴 = ∅ ∧ 𝐴 ∈ Fin)))
5 simpl 487 . . . 4 ((𝐴 = ∅ ∧ 𝐴 ∈ Fin) → 𝐴 = ∅)
6 0fi 9038 . . . . . 6 ∅ ∈ Fin
7 eleq1a 2864 . . . . . 6 (∅ ∈ Fin → (𝐴 = ∅ → 𝐴 ∈ Fin))
86, 7ax-mp 5 . . . . 5 (𝐴 = ∅ → 𝐴 ∈ Fin)
98ancli 557 . . . 4 (𝐴 = ∅ → (𝐴 = ∅ ∧ 𝐴 ∈ Fin))
105, 9impbii 212 . . 3 ((𝐴 = ∅ ∧ 𝐴 ∈ Fin) ↔ 𝐴 = ∅)
11 rp-isfinite5 44134 . . . . . 6 (𝐴 ∈ Fin ↔ ∃𝑛 ∈ ℕ0 (1...𝑛) ≈ 𝐴)
12 df-rex 3096 . . . . . 6 (∃𝑛 ∈ ℕ0 (1...𝑛) ≈ 𝐴 ↔ ∃𝑛(𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴))
1311, 12bitri 278 . . . . 5 (𝐴 ∈ Fin ↔ ∃𝑛(𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴))
1413anbi2i 634 . . . 4 ((¬ 𝐴 = ∅ ∧ 𝐴 ∈ Fin) ↔ (¬ 𝐴 = ∅ ∧ ∃𝑛(𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)))
15 df-rex 3096 . . . . 5 (∃𝑛 ∈ ℕ (1...𝑛) ≈ 𝐴 ↔ ∃𝑛(𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴))
16 en0 9014 . . . . . . . . . . . . . 14 (𝐴 ≈ ∅ ↔ 𝐴 = ∅)
17 ensymb 8998 . . . . . . . . . . . . . 14 (𝐴 ≈ ∅ ↔ ∅ ≈ 𝐴)
1816, 17bitr3i 280 . . . . . . . . . . . . 13 (𝐴 = ∅ ↔ ∅ ≈ 𝐴)
1918notbii 323 . . . . . . . . . . . 12 𝐴 = ∅ ↔ ¬ ∅ ≈ 𝐴)
20 elnn0 12505 . . . . . . . . . . . . . 14 (𝑛 ∈ ℕ0 ↔ (𝑛 ∈ ℕ ∨ 𝑛 = 0))
2120anbi1i 635 . . . . . . . . . . . . 13 ((𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴) ↔ ((𝑛 ∈ ℕ ∨ 𝑛 = 0) ∧ (1...𝑛) ≈ 𝐴))
22 andir 1024 . . . . . . . . . . . . 13 (((𝑛 ∈ ℕ ∨ 𝑛 = 0) ∧ (1...𝑛) ≈ 𝐴) ↔ ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ∨ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴)))
2321, 22bitri 278 . . . . . . . . . . . 12 ((𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴) ↔ ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ∨ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴)))
2419, 23anbi12i 639 . . . . . . . . . . 11 ((¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) ↔ (¬ ∅ ≈ 𝐴 ∧ ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ∨ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴))))
25 andi 1023 . . . . . . . . . . 11 ((¬ ∅ ≈ 𝐴 ∧ ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ∨ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴))) ↔ ((¬ ∅ ≈ 𝐴 ∧ (𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴)) ∨ (¬ ∅ ≈ 𝐴 ∧ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴))))
2624, 25bitri 278 . . . . . . . . . 10 ((¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) ↔ ((¬ ∅ ≈ 𝐴 ∧ (𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴)) ∨ (¬ ∅ ≈ 𝐴 ∧ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴))))
27 3anass 1109 . . . . . . . . . . 11 ((¬ ∅ ≈ 𝐴𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ↔ (¬ ∅ ≈ 𝐴 ∧ (𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴)))
28 3anass 1109 . . . . . . . . . . 11 ((¬ ∅ ≈ 𝐴𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴) ↔ (¬ ∅ ≈ 𝐴 ∧ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴)))
2927, 28orbi12i 927 . . . . . . . . . 10 (((¬ ∅ ≈ 𝐴𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ∨ (¬ ∅ ≈ 𝐴𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴)) ↔ ((¬ ∅ ≈ 𝐴 ∧ (𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴)) ∨ (¬ ∅ ≈ 𝐴 ∧ (𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴))))
3026, 29sylbb2 241 . . . . . . . . 9 ((¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) → ((¬ ∅ ≈ 𝐴𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ∨ (¬ ∅ ≈ 𝐴𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴)))
31 simp2 1153 . . . . . . . . . 10 ((¬ ∅ ≈ 𝐴𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) → 𝑛 ∈ ℕ)
32 oveq2 7419 . . . . . . . . . . . 12 (𝑛 = 0 → (1...𝑛) = (1...0))
33 fz10 13572 . . . . . . . . . . . 12 (1...0) = ∅
3432, 33eqtrdi 2820 . . . . . . . . . . 11 (𝑛 = 0 → (1...𝑛) = ∅)
35 simp2 1153 . . . . . . . . . . . . 13 ((¬ ∅ ≈ 𝐴 ∧ (1...𝑛) = ∅ ∧ (1...𝑛) ≈ 𝐴) → (1...𝑛) = ∅)
36 simp3 1154 . . . . . . . . . . . . 13 ((¬ ∅ ≈ 𝐴 ∧ (1...𝑛) = ∅ ∧ (1...𝑛) ≈ 𝐴) → (1...𝑛) ≈ 𝐴)
3735, 36eqbrtrrd 5139 . . . . . . . . . . . 12 ((¬ ∅ ≈ 𝐴 ∧ (1...𝑛) = ∅ ∧ (1...𝑛) ≈ 𝐴) → ∅ ≈ 𝐴)
38 simp1 1152 . . . . . . . . . . . 12 ((¬ ∅ ≈ 𝐴 ∧ (1...𝑛) = ∅ ∧ (1...𝑛) ≈ 𝐴) → ¬ ∅ ≈ 𝐴)
3937, 38pm2.21dd 198 . . . . . . . . . . 11 ((¬ ∅ ≈ 𝐴 ∧ (1...𝑛) = ∅ ∧ (1...𝑛) ≈ 𝐴) → 𝑛 ∈ ℕ)
4034, 39syl3an2 1180 . . . . . . . . . 10 ((¬ ∅ ≈ 𝐴𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴) → 𝑛 ∈ ℕ)
4131, 40jaoi 870 . . . . . . . . 9 (((¬ ∅ ≈ 𝐴𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) ∨ (¬ ∅ ≈ 𝐴𝑛 = 0 ∧ (1...𝑛) ≈ 𝐴)) → 𝑛 ∈ ℕ)
4230, 41syl 18 . . . . . . . 8 ((¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) → 𝑛 ∈ ℕ)
43 simprr 784 . . . . . . . 8 ((¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) → (1...𝑛) ≈ 𝐴)
4442, 43jca 520 . . . . . . 7 ((¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) → (𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴))
45 nngt0 12266 . . . . . . . . . . . 12 (𝑛 ∈ ℕ → 0 < 𝑛)
46 hash0 14402 . . . . . . . . . . . . 13 (♯‘∅) = 0
4746a1i 11 . . . . . . . . . . . 12 (𝑛 ∈ ℕ → (♯‘∅) = 0)
48 nnnn0 12510 . . . . . . . . . . . . 13 (𝑛 ∈ ℕ → 𝑛 ∈ ℕ0)
49 hashfz1 14381 . . . . . . . . . . . . 13 (𝑛 ∈ ℕ0 → (♯‘(1...𝑛)) = 𝑛)
5048, 49syl 18 . . . . . . . . . . . 12 (𝑛 ∈ ℕ → (♯‘(1...𝑛)) = 𝑛)
5145, 47, 503brtr4d 5147 . . . . . . . . . . 11 (𝑛 ∈ ℕ → (♯‘∅) < (♯‘(1...𝑛)))
52 fzfi 14007 . . . . . . . . . . . 12 (1...𝑛) ∈ Fin
53 hashsdom 14416 . . . . . . . . . . . 12 ((∅ ∈ Fin ∧ (1...𝑛) ∈ Fin) → ((♯‘∅) < (♯‘(1...𝑛)) ↔ ∅ ≺ (1...𝑛)))
546, 52, 53mp2an 704 . . . . . . . . . . 11 ((♯‘∅) < (♯‘(1...𝑛)) ↔ ∅ ≺ (1...𝑛))
5551, 54sylib 221 . . . . . . . . . 10 (𝑛 ∈ ℕ → ∅ ≺ (1...𝑛))
5655anim1i 626 . . . . . . . . 9 ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) → (∅ ≺ (1...𝑛) ∧ (1...𝑛) ≈ 𝐴))
57 sdomentr 9098 . . . . . . . . . . 11 ((∅ ≺ (1...𝑛) ∧ (1...𝑛) ≈ 𝐴) → ∅ ≺ 𝐴)
58 sdomnen 8977 . . . . . . . . . . 11 (∅ ≺ 𝐴 → ¬ ∅ ≈ 𝐴)
5957, 58syl 18 . . . . . . . . . 10 ((∅ ≺ (1...𝑛) ∧ (1...𝑛) ≈ 𝐴) → ¬ ∅ ≈ 𝐴)
60 en0r 9016 . . . . . . . . . . 11 (∅ ≈ 𝐴𝐴 = ∅)
6160notbii 323 . . . . . . . . . 10 (¬ ∅ ≈ 𝐴 ↔ ¬ 𝐴 = ∅)
6259, 61sylib 221 . . . . . . . . 9 ((∅ ≺ (1...𝑛) ∧ (1...𝑛) ≈ 𝐴) → ¬ 𝐴 = ∅)
6356, 62syl 18 . . . . . . . 8 ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) → ¬ 𝐴 = ∅)
6448anim1i 626 . . . . . . . 8 ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) → (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴))
6563, 64jca 520 . . . . . . 7 ((𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴) → (¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)))
6644, 65impbii 212 . . . . . 6 ((¬ 𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) ↔ (𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴))
6766exbii 1875 . . . . 5 (∃𝑛𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) ↔ ∃𝑛(𝑛 ∈ ℕ ∧ (1...𝑛) ≈ 𝐴))
68 19.42v 1980 . . . . 5 (∃𝑛𝐴 = ∅ ∧ (𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) ↔ (¬ 𝐴 = ∅ ∧ ∃𝑛(𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)))
6915, 67, 683bitr2ri 303 . . . 4 ((¬ 𝐴 = ∅ ∧ ∃𝑛(𝑛 ∈ ℕ0 ∧ (1...𝑛) ≈ 𝐴)) ↔ ∃𝑛 ∈ ℕ (1...𝑛) ≈ 𝐴)
7014, 69bitri 278 . . 3 ((¬ 𝐴 = ∅ ∧ 𝐴 ∈ Fin) ↔ ∃𝑛 ∈ ℕ (1...𝑛) ≈ 𝐴)
7110, 70orbi12i 927 . 2 (((𝐴 = ∅ ∧ 𝐴 ∈ Fin) ∨ (¬ 𝐴 = ∅ ∧ 𝐴 ∈ Fin)) ↔ (𝐴 = ∅ ∨ ∃𝑛 ∈ ℕ (1...𝑛) ≈ 𝐴))
724, 71bitri 278 1 (𝐴 ∈ Fin ↔ (𝐴 = ∅ ∨ ∃𝑛 ∈ ℕ (1...𝑛) ≈ 𝐴))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 209  wa 400  wo 860  w3a 1101   = wceq 1567  wex 1806  wcel 2149  wrex 3095  c0 4294   class class class wbr 5113  cfv 6537  (class class class)co 7411  cen 8939  csdm 8941  Fincfn 8942  0cc0 11099  1c1 11100   < clt 11242  cn 12232  0cn0 12503  ...cfz 13534  chash 14365
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1822  ax-4 1836  ax-5 1937  ax-6 1994  ax-7 2035  ax-8 2151  ax-9 2159  ax-10 2182  ax-11 2198  ax-12 2219  ax-ext 2741  ax-sep 5261  ax-nul 5271  ax-pow 5337  ax-pr 5405  ax-un 7733  ax-cnex 11155  ax-resscn 11156  ax-1cn 11157  ax-icn 11158  ax-addcl 11159  ax-addrcl 11160  ax-mulcl 11161  ax-mulrcl 11162  ax-mulcom 11163  ax-addass 11164  ax-mulass 11165  ax-distr 11166  ax-i2m1 11167  ax-1ne0 11168  ax-1rid 11169  ax-rnegex 11170  ax-rrecex 11171  ax-cnre 11172  ax-pre-lttri 11173  ax-pre-lttrn 11174  ax-pre-ltadd 11175  ax-pre-mulgt0 11176
This theorem depends on definitions:  df-bi 210  df-an 401  df-or 861  df-3or 1102  df-3an 1103  df-tru 1570  df-fal 1580  df-ex 1807  df-nf 1811  df-sb 2098  df-mo 2573  df-eu 2603  df-clab 2748  df-cleq 2761  df-clel 2844  df-nfc 2918  df-ne 2965  df-nel 3071  df-ral 3086  df-rex 3096  df-reu 3377  df-rab 3424  df-v 3465  df-sbc 3754  df-csb 3862  df-dif 3916  df-un 3918  df-in 3920  df-ss 3930  df-pss 3933  df-nul 4295  df-if 4493  df-pw 4569  df-sn 4595  df-pr 4597  df-op 4601  df-uni 4877  df-int 4917  df-iun 4962  df-br 5114  df-opab 5178  df-mpt 5197  df-tr 5223  df-id 5557  df-eprel 5562  df-po 5570  df-so 5571  df-fr 5615  df-we 5617  df-xp 5668  df-rel 5669  df-cnv 5670  df-co 5671  df-dm 5672  df-rn 5673  df-res 5674  df-ima 5675  df-pred 6303  df-ord 6364  df-on 6365  df-lim 6366  df-suc 6367  df-iota 6493  df-fun 6539  df-fn 6540  df-f 6541  df-f1 6542  df-fo 6543  df-f1o 6544  df-fv 6545  df-riota 7368  df-ov 7414  df-oprab 7415  df-mpo 7416  df-om 7862  df-1st 7985  df-2nd 7986  df-frecs 8277  df-wrecs 8308  df-recs 8357  df-rdg 8396  df-1o 8452  df-oadd 8456  df-er 8693  df-en 8943  df-dom 8944  df-sdom 8945  df-fin 8946  df-card 9924  df-pnf 11244  df-mnf 11245  df-xr 11246  df-ltxr 11247  df-le 11248  df-sub 11442  df-neg 11443  df-nn 12233  df-n0 12504  df-xnn0 12577  df-z 12591  df-uz 12862  df-fz 13535  df-hash 14366
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator