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

Theorem bitsf1ocnv 15160
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 14554. (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 2621 . . . . . 6 (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)) = (𝑘 ∈ ℕ0 ↦ (bits‘𝑘))
2 bitsss 15142 . . . . . . . . 9 (bits‘𝑘) ⊆ ℕ0
32a1i 11 . . . . . . . 8 (𝑘 ∈ ℕ0 → (bits‘𝑘) ⊆ ℕ0)
4 bitsfi 15153 . . . . . . . 8 (𝑘 ∈ ℕ0 → (bits‘𝑘) ∈ Fin)
5 elfpw 8265 . . . . . . . 8 ((bits‘𝑘) ∈ (𝒫 ℕ0 ∩ Fin) ↔ ((bits‘𝑘) ⊆ ℕ0 ∧ (bits‘𝑘) ∈ Fin))
63, 4, 5sylanbrc 698 . . . . . . 7 (𝑘 ∈ ℕ0 → (bits‘𝑘) ∈ (𝒫 ℕ0 ∩ Fin))
76adantl 482 . . . . . 6 ((⊤ ∧ 𝑘 ∈ ℕ0) → (bits‘𝑘) ∈ (𝒫 ℕ0 ∩ Fin))
8 elfpw 8265 . . . . . . . . 9 (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ↔ (𝑥 ⊆ ℕ0𝑥 ∈ Fin))
98simprbi 480 . . . . . . . 8 (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) → 𝑥 ∈ Fin)
10 2nn0 11306 . . . . . . . . . 10 2 ∈ ℕ0
1110a1i 11 . . . . . . . . 9 ((𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ∧ 𝑛𝑥) → 2 ∈ ℕ0)
128simplbi 476 . . . . . . . . . 10 (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) → 𝑥 ⊆ ℕ0)
1312sselda 3601 . . . . . . . . 9 ((𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ∧ 𝑛𝑥) → 𝑛 ∈ ℕ0)
1411, 13nn0expcld 13026 . . . . . . . 8 ((𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ∧ 𝑛𝑥) → (2↑𝑛) ∈ ℕ0)
159, 14fsumnn0cl 14461 . . . . . . 7 (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) → Σ𝑛𝑥 (2↑𝑛) ∈ ℕ0)
1615adantl 482 . . . . . 6 ((⊤ ∧ 𝑥 ∈ (𝒫 ℕ0 ∩ Fin)) → Σ𝑛𝑥 (2↑𝑛) ∈ ℕ0)
17 bitsinv2 15159 . . . . . . . . . 10 (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) → (bits‘Σ𝑛𝑥 (2↑𝑛)) = 𝑥)
1817eqcomd 2627 . . . . . . . . 9 (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) → 𝑥 = (bits‘Σ𝑛𝑥 (2↑𝑛)))
1918ad2antll 765 . . . . . . . 8 ((⊤ ∧ (𝑘 ∈ ℕ0𝑥 ∈ (𝒫 ℕ0 ∩ Fin))) → 𝑥 = (bits‘Σ𝑛𝑥 (2↑𝑛)))
20 fveq2 6189 . . . . . . . . 9 (𝑘 = Σ𝑛𝑥 (2↑𝑛) → (bits‘𝑘) = (bits‘Σ𝑛𝑥 (2↑𝑛)))
2120eqeq2d 2631 . . . . . . . 8 (𝑘 = Σ𝑛𝑥 (2↑𝑛) → (𝑥 = (bits‘𝑘) ↔ 𝑥 = (bits‘Σ𝑛𝑥 (2↑𝑛))))
2219, 21syl5ibrcom 237 . . . . . . 7 ((⊤ ∧ (𝑘 ∈ ℕ0𝑥 ∈ (𝒫 ℕ0 ∩ Fin))) → (𝑘 = Σ𝑛𝑥 (2↑𝑛) → 𝑥 = (bits‘𝑘)))
23 bitsinv1 15158 . . . . . . . . . 10 (𝑘 ∈ ℕ0 → Σ𝑛 ∈ (bits‘𝑘)(2↑𝑛) = 𝑘)
2423eqcomd 2627 . . . . . . . . 9 (𝑘 ∈ ℕ0𝑘 = Σ𝑛 ∈ (bits‘𝑘)(2↑𝑛))
2524ad2antrl 764 . . . . . . . 8 ((⊤ ∧ (𝑘 ∈ ℕ0𝑥 ∈ (𝒫 ℕ0 ∩ Fin))) → 𝑘 = Σ𝑛 ∈ (bits‘𝑘)(2↑𝑛))
26 sumeq1 14413 . . . . . . . . 9 (𝑥 = (bits‘𝑘) → Σ𝑛𝑥 (2↑𝑛) = Σ𝑛 ∈ (bits‘𝑘)(2↑𝑛))
2726eqeq2d 2631 . . . . . . . 8 (𝑥 = (bits‘𝑘) → (𝑘 = Σ𝑛𝑥 (2↑𝑛) ↔ 𝑘 = Σ𝑛 ∈ (bits‘𝑘)(2↑𝑛)))
2825, 27syl5ibrcom 237 . . . . . . 7 ((⊤ ∧ (𝑘 ∈ ℕ0𝑥 ∈ (𝒫 ℕ0 ∩ Fin))) → (𝑥 = (bits‘𝑘) → 𝑘 = Σ𝑛𝑥 (2↑𝑛)))
2922, 28impbid 202 . . . . . 6 ((⊤ ∧ (𝑘 ∈ ℕ0𝑥 ∈ (𝒫 ℕ0 ∩ Fin))) → (𝑘 = Σ𝑛𝑥 (2↑𝑛) ↔ 𝑥 = (bits‘𝑘)))
301, 7, 16, 29f1ocnv2d 6883 . . . . 5 (⊤ → ((𝑘 ∈ ℕ0 ↦ (bits‘𝑘)):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin) ∧ (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)) = (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ↦ Σ𝑛𝑥 (2↑𝑛))))
3130simpld 475 . . . 4 (⊤ → (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin))
32 bitsf 15143 . . . . . . . . 9 bits:ℤ⟶𝒫 ℕ0
3332a1i 11 . . . . . . . 8 (⊤ → bits:ℤ⟶𝒫 ℕ0)
3433feqmptd 6247 . . . . . . 7 (⊤ → bits = (𝑘 ∈ ℤ ↦ (bits‘𝑘)))
3534reseq1d 5393 . . . . . 6 (⊤ → (bits ↾ ℕ0) = ((𝑘 ∈ ℤ ↦ (bits‘𝑘)) ↾ ℕ0))
36 nn0ssz 11395 . . . . . . 7 0 ⊆ ℤ
37 resmpt 5447 . . . . . . 7 (ℕ0 ⊆ ℤ → ((𝑘 ∈ ℤ ↦ (bits‘𝑘)) ↾ ℕ0) = (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)))
3836, 37ax-mp 5 . . . . . 6 ((𝑘 ∈ ℤ ↦ (bits‘𝑘)) ↾ ℕ0) = (𝑘 ∈ ℕ0 ↦ (bits‘𝑘))
3935, 38syl6eq 2671 . . . . 5 (⊤ → (bits ↾ ℕ0) = (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)))
40 f1oeq1 6125 . . . . 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 247 . . 3 (⊤ → (bits ↾ ℕ0):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin))
4339cnveqd 5296 . . . 4 (⊤ → (bits ↾ ℕ0) = (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)))
4430simprd 479 . . . 4 (⊤ → (𝑘 ∈ ℕ0 ↦ (bits‘𝑘)) = (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ↦ Σ𝑛𝑥 (2↑𝑛)))
4543, 44eqtrd 2655 . . 3 (⊤ → (bits ↾ ℕ0) = (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ↦ Σ𝑛𝑥 (2↑𝑛)))
4642, 45jca 554 . 2 (⊤ → ((bits ↾ ℕ0):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin) ∧ (bits ↾ ℕ0) = (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ↦ Σ𝑛𝑥 (2↑𝑛))))
4746trud 1492 1 ((bits ↾ ℕ0):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin) ∧ (bits ↾ ℕ0) = (𝑥 ∈ (𝒫 ℕ0 ∩ Fin) ↦ Σ𝑛𝑥 (2↑𝑛)))
Colors of variables: wff setvar class
Syntax hints:  wb 196  wa 384   = wceq 1482  wtru 1483  wcel 1989  cin 3571  wss 3572  𝒫 cpw 4156  cmpt 4727  ccnv 5111  cres 5114  wf 5882  1-1-ontowf1o 5885  cfv 5886  (class class class)co 6647  Fincfn 7952  2c2 11067  0cn0 11289  cz 11374  cexp 12855  Σcsu 14410  bitscbits 15135
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1721  ax-4 1736  ax-5 1838  ax-6 1887  ax-7 1934  ax-8 1991  ax-9 1998  ax-10 2018  ax-11 2033  ax-12 2046  ax-13 2245  ax-ext 2601  ax-rep 4769  ax-sep 4779  ax-nul 4787  ax-pow 4841  ax-pr 4904  ax-un 6946  ax-inf2 8535  ax-cnex 9989  ax-resscn 9990  ax-1cn 9991  ax-icn 9992  ax-addcl 9993  ax-addrcl 9994  ax-mulcl 9995  ax-mulrcl 9996  ax-mulcom 9997  ax-addass 9998  ax-mulass 9999  ax-distr 10000  ax-i2m1 10001  ax-1ne0 10002  ax-1rid 10003  ax-rnegex 10004  ax-rrecex 10005  ax-cnre 10006  ax-pre-lttri 10007  ax-pre-lttrn 10008  ax-pre-ltadd 10009  ax-pre-mulgt0 10010  ax-pre-sup 10011
This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3or 1038  df-3an 1039  df-tru 1485  df-fal 1488  df-ex 1704  df-nf 1709  df-sb 1880  df-eu 2473  df-mo 2474  df-clab 2608  df-cleq 2614  df-clel 2617  df-nfc 2752  df-ne 2794  df-nel 2897  df-ral 2916  df-rex 2917  df-reu 2918  df-rmo 2919  df-rab 2920  df-v 3200  df-sbc 3434  df-csb 3532  df-dif 3575  df-un 3577  df-in 3579  df-ss 3586  df-pss 3588  df-nul 3914  df-if 4085  df-pw 4158  df-sn 4176  df-pr 4178  df-tp 4180  df-op 4182  df-uni 4435  df-int 4474  df-iun 4520  df-disj 4619  df-br 4652  df-opab 4711  df-mpt 4728  df-tr 4751  df-id 5022  df-eprel 5027  df-po 5033  df-so 5034  df-fr 5071  df-se 5072  df-we 5073  df-xp 5118  df-rel 5119  df-cnv 5120  df-co 5121  df-dm 5122  df-rn 5123  df-res 5124  df-ima 5125  df-pred 5678  df-ord 5724  df-on 5725  df-lim 5726  df-suc 5727  df-iota 5849  df-fun 5888  df-fn 5889  df-f 5890  df-f1 5891  df-fo 5892  df-f1o 5893  df-fv 5894  df-isom 5895  df-riota 6608  df-ov 6650  df-oprab 6651  df-mpt2 6652  df-om 7063  df-1st 7165  df-2nd 7166  df-wrecs 7404  df-recs 7465  df-rdg 7503  df-1o 7557  df-2o 7558  df-oadd 7561  df-er 7739  df-map 7856  df-pm 7857  df-en 7953  df-dom 7954  df-sdom 7955  df-fin 7956  df-sup 8345  df-inf 8346  df-oi 8412  df-card 8762  df-cda 8987  df-pnf 10073  df-mnf 10074  df-xr 10075  df-ltxr 10076  df-le 10077  df-sub 10265  df-neg 10266  df-div 10682  df-nn 11018  df-2 11076  df-3 11077  df-n0 11290  df-xnn0 11361  df-z 11375  df-uz 11685  df-rp 11830  df-fz 12324  df-fzo 12462  df-fl 12588  df-mod 12664  df-seq 12797  df-exp 12856  df-hash 13113  df-cj 13833  df-re 13834  df-im 13835  df-sqrt 13969  df-abs 13970  df-clim 14213  df-sum 14411  df-dvds 14978  df-bits 15138
This theorem is referenced by:  bitsf1o  15161  bitsinv  15164
  Copyright terms: Public domain W3C validator