MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  bitsf1ocnv Structured version   Visualization version   GIF version

Theorem bitsf1ocnv 15498
Description: The bits function restricted to nonnegative integers is a bijection from the integers to the finite sets of integers. It is in fact the inverse of the Ackermann bijection ackbijnn 14895. (Contributed by Mario Carneiro, 8-Sep-2016.)
Assertion
Ref Expression
bitsf1ocnv ((bits ↾ ℕ0):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin) ∧ (bits ↾ ℕ0) = (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ↦ Σ𝑛𝑥 (2↑𝑛)))
Distinct variable group:   𝑥,𝑛

Proof of Theorem bitsf1ocnv
Dummy variable 𝑘 is distinct from all other variables.
StepHypRef Expression
1 eqid 2798 . . . . . 6 (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)) = (𝑘 ∈ ℕ0 ↦ (bits‘𝑘))
2 bitsss 15480 . . . . . . . . 9 (bits‘𝑘) ⊆ ℕ0
32a1i 11 . . . . . . . 8 (𝑘 ∈ ℕ0 → (bits‘𝑘) ⊆ ℕ0)
4 bitsfi 15491 . . . . . . . 8 (𝑘 ∈ ℕ0 → (bits‘𝑘) ∈ Fin)
5 elfpw 8509 . . . . . . . 8 ((bits‘𝑘) ∈ (𝒫 ℕ0 ∩ Fin) ↔ ((bits‘𝑘) ⊆ ℕ0 ∧ (bits‘𝑘) ∈ Fin))
63, 4, 5sylanbrc 579 . . . . . . 7 (𝑘 ∈ ℕ0 → (bits‘𝑘) ∈ (𝒫 ℕ0 ∩ Fin))
76adantl 474 . . . . . 6 ((⊤ ∧ 𝑘 ∈ ℕ0) → (bits‘𝑘) ∈ (𝒫 ℕ0 ∩ Fin))
8 elfpw 8509 . . . . . . . . 9 (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ↔ (𝑥 ⊆ ℕ0𝑥 ∈ Fin))
98simprbi 491 . . . . . . . 8 (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) → 𝑥 ∈ Fin)
10 2nn0 11596 . . . . . . . . . 10 2 ∈ ℕ0
1110a1i 11 . . . . . . . . 9 ((𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ∧ 𝑛𝑥) → 2 ∈ ℕ0)
128simplbi 492 . . . . . . . . . 10 (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) → 𝑥 ⊆ ℕ0)
1312sselda 3797 . . . . . . . . 9 ((𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ∧ 𝑛𝑥) → 𝑛 ∈ ℕ0)
1411, 13nn0expcld 13284 . . . . . . . 8 ((𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ∧ 𝑛𝑥) → (2↑𝑛) ∈ ℕ0)
159, 14fsumnn0cl 14805 . . . . . . 7 (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) → Σ𝑛𝑥 (2↑𝑛) ∈ ℕ0)
1615adantl 474 . . . . . 6 ((⊤ ∧ 𝑥 ∈ (𝒫 ℕ0 ∩ Fin)) → Σ𝑛𝑥 (2↑𝑛) ∈ ℕ0)
17 bitsinv2 15497 . . . . . . . . . 10 (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) → (bits‘Σ𝑛𝑥 (2↑𝑛)) = 𝑥)
1817eqcomd 2804 . . . . . . . . 9 (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) → 𝑥 = (bits‘Σ𝑛𝑥 (2↑𝑛)))
1918ad2antll 721 . . . . . . . 8 ((⊤ ∧ (𝑘 ∈ ℕ0𝑥 ∈ (𝒫 ℕ0 ∩ Fin))) → 𝑥 = (bits‘Σ𝑛𝑥 (2↑𝑛)))
20 fveq2 6410 . . . . . . . . 9 (𝑘 = Σ𝑛𝑥 (2↑𝑛) → (bits‘𝑘) = (bits‘Σ𝑛𝑥 (2↑𝑛)))
2120eqeq2d 2808 . . . . . . . 8 (𝑘 = Σ𝑛𝑥 (2↑𝑛) → (𝑥 = (bits‘𝑘) ↔ 𝑥 = (bits‘Σ𝑛𝑥 (2↑𝑛))))
2219, 21syl5ibrcom 239 . . . . . . 7 ((⊤ ∧ (𝑘 ∈ ℕ0𝑥 ∈ (𝒫 ℕ0 ∩ Fin))) → (𝑘 = Σ𝑛𝑥 (2↑𝑛) → 𝑥 = (bits‘𝑘)))
23 bitsinv1 15496 . . . . . . . . . 10 (𝑘 ∈ ℕ0 → Σ𝑛 ∈ (bits‘𝑘)(2↑𝑛) = 𝑘)
2423eqcomd 2804 . . . . . . . . 9 (𝑘 ∈ ℕ0𝑘 = Σ𝑛 ∈ (bits‘𝑘)(2↑𝑛))
2524ad2antrl 720 . . . . . . . 8 ((⊤ ∧ (𝑘 ∈ ℕ0𝑥 ∈ (𝒫 ℕ0 ∩ Fin))) → 𝑘 = Σ𝑛 ∈ (bits‘𝑘)(2↑𝑛))
26 sumeq1 14757 . . . . . . . . 9 (𝑥 = (bits‘𝑘) → Σ𝑛𝑥 (2↑𝑛) = Σ𝑛 ∈ (bits‘𝑘)(2↑𝑛))
2726eqeq2d 2808 . . . . . . . 8 (𝑥 = (bits‘𝑘) → (𝑘 = Σ𝑛𝑥 (2↑𝑛) ↔ 𝑘 = Σ𝑛 ∈ (bits‘𝑘)(2↑𝑛)))
2825, 27syl5ibrcom 239 . . . . . . 7 ((⊤ ∧ (𝑘 ∈ ℕ0𝑥 ∈ (𝒫 ℕ0 ∩ Fin))) → (𝑥 = (bits‘𝑘) → 𝑘 = Σ𝑛𝑥 (2↑𝑛)))
2922, 28impbid 204 . . . . . 6 ((⊤ ∧ (𝑘 ∈ ℕ0𝑥 ∈ (𝒫 ℕ0 ∩ Fin))) → (𝑘 = Σ𝑛𝑥 (2↑𝑛) ↔ 𝑥 = (bits‘𝑘)))
301, 7, 16, 29f1ocnv2d 7119 . . . . 5 (⊤ → ((𝑘 ∈ ℕ0 ↦ (bits‘𝑘)):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin) ∧ (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)) = (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ↦ Σ𝑛𝑥 (2↑𝑛))))
3130simpld 489 . . . 4 (⊤ → (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin))
32 bitsf 15481 . . . . . . . . 9 bits:ℤ⟶𝒫 ℕ0
3332a1i 11 . . . . . . . 8 (⊤ → bits:ℤ⟶𝒫 ℕ0)
3433feqmptd 6473 . . . . . . 7 (⊤ → bits = (𝑘 ∈ ℤ ↦ (bits‘𝑘)))
3534reseq1d 5598 . . . . . 6 (⊤ → (bits ↾ ℕ0) = ((𝑘 ∈ ℤ ↦ (bits‘𝑘)) ↾ ℕ0))
36 nn0ssz 11685 . . . . . . 7 0 ⊆ ℤ
37 resmpt 5660 . . . . . . 7 (ℕ0 ⊆ ℤ → ((𝑘 ∈ ℤ ↦ (bits‘𝑘)) ↾ ℕ0) = (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)))
3836, 37ax-mp 5 . . . . . 6 ((𝑘 ∈ ℤ ↦ (bits‘𝑘)) ↾ ℕ0) = (𝑘 ∈ ℕ0 ↦ (bits‘𝑘))
3935, 38syl6eq 2848 . . . . 5 (⊤ → (bits ↾ ℕ0) = (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)))
40 f1oeq1 6344 . . . . 5 ((bits ↾ ℕ0) = (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)) → ((bits ↾ ℕ0):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin) ↔ (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin)))
4139, 40syl 17 . . . 4 (⊤ → ((bits ↾ ℕ0):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin) ↔ (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin)))
4231, 41mpbird 249 . . 3 (⊤ → (bits ↾ ℕ0):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin))
4339cnveqd 5500 . . . 4 (⊤ → (bits ↾ ℕ0) = (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)))
4430simprd 490 . . . 4 (⊤ → (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)) = (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ↦ Σ𝑛𝑥 (2↑𝑛)))
4543, 44eqtrd 2832 . . 3 (⊤ → (bits ↾ ℕ0) = (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ↦ Σ𝑛𝑥 (2↑𝑛)))
4642, 45jca 508 . 2 (⊤ → ((bits ↾ ℕ0):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin) ∧ (bits ↾ ℕ0) = (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ↦ Σ𝑛𝑥 (2↑𝑛))))
4746mptru 1661 1 ((bits ↾ ℕ0):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin) ∧ (bits ↾ ℕ0) = (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ↦ Σ𝑛𝑥 (2↑𝑛)))
Colors of variables: wff setvar class
Syntax hints:  wb 198  wa 385   = wceq 1653  wtru 1654  wcel 2157  cin 3767  wss 3768  𝒫 cpw 4348  cmpt 4921  ccnv 5310  cres 5313  wf 6096  1-1-ontowf1o 6099  cfv 6100  (class class class)co 6877  Fincfn 8194  2c2 11365  0cn0 11577  cz 11663  cexp 13111  Σcsu 14754  bitscbits 15473
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1891  ax-4 1905  ax-5 2006  ax-6 2072  ax-7 2107  ax-8 2159  ax-9 2166  ax-10 2185  ax-11 2200  ax-12 2213  ax-13 2377  ax-ext 2776  ax-rep 4963  ax-sep 4974  ax-nul 4982  ax-pow 5034  ax-pr 5096  ax-un 7182  ax-inf2 8787  ax-cnex 10279  ax-resscn 10280  ax-1cn 10281  ax-icn 10282  ax-addcl 10283  ax-addrcl 10284  ax-mulcl 10285  ax-mulrcl 10286  ax-mulcom 10287  ax-addass 10288  ax-mulass 10289  ax-distr 10290  ax-i2m1 10291  ax-1ne0 10292  ax-1rid 10293  ax-rnegex 10294  ax-rrecex 10295  ax-cnre 10296  ax-pre-lttri 10297  ax-pre-lttrn 10298  ax-pre-ltadd 10299  ax-pre-mulgt0 10300  ax-pre-sup 10301
This theorem depends on definitions:  df-bi 199  df-an 386  df-or 875  df-3or 1109  df-3an 1110  df-tru 1657  df-fal 1667  df-ex 1876  df-nf 1880  df-sb 2065  df-mo 2591  df-eu 2609  df-clab 2785  df-cleq 2791  df-clel 2794  df-nfc 2929  df-ne 2971  df-nel 3074  df-ral 3093  df-rex 3094  df-reu 3095  df-rmo 3096  df-rab 3097  df-v 3386  df-sbc 3633  df-csb 3728  df-dif 3771  df-un 3773  df-in 3775  df-ss 3782  df-pss 3784  df-nul 4115  df-if 4277  df-pw 4350  df-sn 4368  df-pr 4370  df-tp 4372  df-op 4374  df-uni 4628  df-int 4667  df-iun 4711  df-disj 4811  df-br 4843  df-opab 4905  df-mpt 4922  df-tr 4945  df-id 5219  df-eprel 5224  df-po 5232  df-so 5233  df-fr 5270  df-se 5271  df-we 5272  df-xp 5317  df-rel 5318  df-cnv 5319  df-co 5320  df-dm 5321  df-rn 5322  df-res 5323  df-ima 5324  df-pred 5897  df-ord 5943  df-on 5944  df-lim 5945  df-suc 5946  df-iota 6063  df-fun 6102  df-fn 6103  df-f 6104  df-f1 6105  df-fo 6106  df-f1o 6107  df-fv 6108  df-isom 6109  df-riota 6838  df-ov 6880  df-oprab 6881  df-mpt2 6882  df-om 7299  df-1st 7400  df-2nd 7401  df-wrecs 7644  df-recs 7706  df-rdg 7744  df-1o 7798  df-2o 7799  df-oadd 7802  df-er 7981  df-map 8096  df-pm 8097  df-en 8195  df-dom 8196  df-sdom 8197  df-fin 8198  df-sup 8589  df-inf 8590  df-oi 8656  df-card 9050  df-cda 9277  df-pnf 10364  df-mnf 10365  df-xr 10366  df-ltxr 10367  df-le 10368  df-sub 10557  df-neg 10558  df-div 10976  df-nn 11312  df-2 11373  df-3 11374  df-n0 11578  df-xnn0 11650  df-z 11664  df-uz 11928  df-rp 12072  df-fz 12578  df-fzo 12718  df-fl 12845  df-mod 12921  df-seq 13053  df-exp 13112  df-hash 13368  df-cj 14177  df-re 14178  df-im 14179  df-sqrt 14313  df-abs 14314  df-clim 14557  df-sum 14755  df-dvds 15317  df-bits 15476
This theorem is referenced by:  bitsf1o  15499  bitsinv  15502
  Copyright terms: Public domain W3C validator