Metamath Proof Explorer


Theorem bitsf1

Description: The bits function is an injection from ZZ to ~P NN0 . It is obviously not a bijection (by Cantor's theorem canth2 ), and in fact its range is the set of finite and cofinite subsets of NN0 . (Contributed by Mario Carneiro, 22-Sep-2016)

Ref Expression
Assertion bitsf1 bits:1-1𝒫0

Proof

Step Hyp Ref Expression
1 bitsf bits:𝒫0
2 simpl xyx
3 2 zcnd xyx
4 3 adantr xyxbitsx=bitsyx
5 simpr xyy
6 5 zcnd xyy
7 6 adantr xyxbitsx=bitsyy
8 4 negcld xyxbitsx=bitsyx
9 7 negcld xyxbitsx=bitsyy
10 1cnd xyxbitsx=bitsy1
11 simprr xyxbitsx=bitsybitsx=bitsy
12 11 difeq2d xyxbitsx=bitsy0bitsx=0bitsy
13 bitscmp x0bitsx=bits-x-1
14 13 ad2antrr xyxbitsx=bitsy0bitsx=bits-x-1
15 bitscmp y0bitsy=bits-y-1
16 15 ad2antlr xyxbitsx=bitsy0bitsy=bits-y-1
17 12 14 16 3eqtr3d xyxbitsx=bitsybits-x-1=bits-y-1
18 nnm1nn0 x-x-10
19 18 ad2antrl xyxbitsx=bitsy-x-10
20 19 fvresd xyxbitsx=bitsybits0-x-1=bits-x-1
21 ominf ¬ωFin
22 nn0ennn 0
23 nnenom ω
24 22 23 entr2i ω0
25 enfii 0Finω0ωFin
26 24 25 mpan2 0FinωFin
27 21 26 mto ¬0Fin
28 difinf ¬0FinbitsxFin¬0bitsxFin
29 27 28 mpan bitsxFin¬0bitsxFin
30 bitsfi -x-10bits-x-1Fin
31 19 30 syl xyxbitsx=bitsybits-x-1Fin
32 14 31 eqeltrd xyxbitsx=bitsy0bitsxFin
33 29 32 nsyl3 xyxbitsx=bitsy¬bitsxFin
34 11 33 eqneltrrd xyxbitsx=bitsy¬bitsyFin
35 bitsfi y0bitsyFin
36 34 35 nsyl xyxbitsx=bitsy¬y0
37 5 znegcld xyy
38 elznn yyyy0
39 38 simprbi yyy0
40 37 39 syl xyyy0
41 6 negnegd xyy=y
42 41 eleq1d xyy0y0
43 42 orbi2d xyyy0yy0
44 40 43 mpbid xyyy0
45 44 adantr xyxbitsx=bitsyyy0
46 45 ord xyxbitsx=bitsy¬yy0
47 36 46 mt3d xyxbitsx=bitsyy
48 nnm1nn0 y-y-10
49 47 48 syl xyxbitsx=bitsy-y-10
50 49 fvresd xyxbitsx=bitsybits0-y-1=bits-y-1
51 17 20 50 3eqtr4d xyxbitsx=bitsybits0-x-1=bits0-y-1
52 bitsf1o bits0:01-1 onto𝒫0Fin
53 f1of1 bits0:01-1 onto𝒫0Finbits0:01-1𝒫0Fin
54 52 53 ax-mp bits0:01-1𝒫0Fin
55 f1fveq bits0:01-1𝒫0Fin-x-10-y-10bits0-x-1=bits0-y-1-x-1=-y-1
56 54 55 mpan -x-10-y-10bits0-x-1=bits0-y-1-x-1=-y-1
57 19 49 56 syl2anc xyxbitsx=bitsybits0-x-1=bits0-y-1-x-1=-y-1
58 51 57 mpbid xyxbitsx=bitsy-x-1=-y-1
59 8 9 10 58 subcan2d xyxbitsx=bitsyx=y
60 4 7 59 neg11d xyxbitsx=bitsyx=y
61 60 expr xyxbitsx=bitsyx=y
62 3 negnegd xyx=x
63 62 eleq1d xyx0x0
64 63 biimpa xyx0x0
65 simprr xyx0bitsx=bitsybitsx=bitsy
66 fvres x0bits0x=bitsx
67 66 ad2antrl xyx0bitsx=bitsybits0x=bitsx
68 15 ad2antlr xyx0bitsx=bitsy0bitsy=bits-y-1
69 bitsfi x0bitsxFin
70 69 ad2antrl xyx0bitsx=bitsybitsxFin
71 65 70 eqeltrrd xyx0bitsx=bitsybitsyFin
72 difinf ¬0FinbitsyFin¬0bitsyFin
73 27 71 72 sylancr xyx0bitsx=bitsy¬0bitsyFin
74 68 73 eqneltrrd xyx0bitsx=bitsy¬bits-y-1Fin
75 bitsfi -y-10bits-y-1Fin
76 74 75 nsyl xyx0bitsx=bitsy¬-y-10
77 76 48 nsyl xyx0bitsx=bitsy¬y
78 44 adantr xyx0bitsx=bitsyyy0
79 78 ord xyx0bitsx=bitsy¬yy0
80 77 79 mpd xyx0bitsx=bitsyy0
81 80 fvresd xyx0bitsx=bitsybits0y=bitsy
82 65 67 81 3eqtr4d xyx0bitsx=bitsybits0x=bits0y
83 simprl xyx0bitsx=bitsyx0
84 f1fveq bits0:01-1𝒫0Finx0y0bits0x=bits0yx=y
85 54 84 mpan x0y0bits0x=bits0yx=y
86 83 80 85 syl2anc xyx0bitsx=bitsybits0x=bits0yx=y
87 82 86 mpbid xyx0bitsx=bitsyx=y
88 87 expr xyx0bitsx=bitsyx=y
89 64 88 syldan xyx0bitsx=bitsyx=y
90 2 znegcld xyx
91 elznn xxxx0
92 91 simprbi xxx0
93 90 92 syl xyxx0
94 61 89 93 mpjaodan xybitsx=bitsyx=y
95 94 rgen2 xybitsx=bitsyx=y
96 dff13 bits:1-1𝒫0bits:𝒫0xybitsx=bitsyx=y
97 1 95 96 mpbir2an bits:1-1𝒫0