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 x y x
3 2 zcnd x y x
4 3 adantr x y x bits x = bits y x
5 simpr x y y
6 5 zcnd x y y
7 6 adantr x y x bits x = bits y y
8 4 negcld x y x bits x = bits y x
9 7 negcld x y x bits x = bits y y
10 1cnd x y x bits x = bits y 1
11 simprr x y x bits x = bits y bits x = bits y
12 11 difeq2d x y x bits x = bits y 0 bits x = 0 bits y
13 bitscmp x 0 bits x = bits - x - 1
14 13 ad2antrr x y x bits x = bits y 0 bits x = bits - x - 1
15 bitscmp y 0 bits y = bits - y - 1
16 15 ad2antlr x y x bits x = bits y 0 bits y = bits - y - 1
17 12 14 16 3eqtr3d x y x bits x = bits y bits - x - 1 = bits - y - 1
18 nnm1nn0 x - x - 1 0
19 18 ad2antrl x y x bits x = bits y - x - 1 0
20 19 fvresd x y x bits x = bits y bits 0 - x - 1 = bits - x - 1
21 ominf ¬ ω Fin
22 nn0ennn 0
23 nnenom ω
24 22 23 entr2i ω 0
25 enfii 0 Fin ω 0 ω Fin
26 24 25 mpan2 0 Fin ω Fin
27 21 26 mto ¬ 0 Fin
28 difinf ¬ 0 Fin bits x Fin ¬ 0 bits x Fin
29 27 28 mpan bits x Fin ¬ 0 bits x Fin
30 bitsfi - x - 1 0 bits - x - 1 Fin
31 19 30 syl x y x bits x = bits y bits - x - 1 Fin
32 14 31 eqeltrd x y x bits x = bits y 0 bits x Fin
33 29 32 nsyl3 x y x bits x = bits y ¬ bits x Fin
34 11 33 eqneltrrd x y x bits x = bits y ¬ bits y Fin
35 bitsfi y 0 bits y Fin
36 34 35 nsyl x y x bits x = bits y ¬ y 0
37 5 znegcld x y y
38 elznn y y y y 0
39 38 simprbi y y y 0
40 37 39 syl x y y y 0
41 6 negnegd x y y = y
42 41 eleq1d x y y 0 y 0
43 42 orbi2d x y y y 0 y y 0
44 40 43 mpbid x y y y 0
45 44 adantr x y x bits x = bits y y y 0
46 45 ord x y x bits x = bits y ¬ y y 0
47 36 46 mt3d x y x bits x = bits y y
48 nnm1nn0 y - y - 1 0
49 47 48 syl x y x bits x = bits y - y - 1 0
50 49 fvresd x y x bits x = bits y bits 0 - y - 1 = bits - y - 1
51 17 20 50 3eqtr4d x y x bits x = bits y bits 0 - x - 1 = bits 0 - y - 1
52 bitsf1o bits 0 : 0 1-1 onto 𝒫 0 Fin
53 f1of1 bits 0 : 0 1-1 onto 𝒫 0 Fin bits 0 : 0 1-1 𝒫 0 Fin
54 52 53 ax-mp bits 0 : 0 1-1 𝒫 0 Fin
55 f1fveq bits 0 : 0 1-1 𝒫 0 Fin - x - 1 0 - y - 1 0 bits 0 - x - 1 = bits 0 - y - 1 - x - 1 = - y - 1
56 54 55 mpan - x - 1 0 - y - 1 0 bits 0 - x - 1 = bits 0 - y - 1 - x - 1 = - y - 1
57 19 49 56 syl2anc x y x bits x = bits y bits 0 - x - 1 = bits 0 - y - 1 - x - 1 = - y - 1
58 51 57 mpbid x y x bits x = bits y - x - 1 = - y - 1
59 8 9 10 58 subcan2d x y x bits x = bits y x = y
60 4 7 59 neg11d x y x bits x = bits y x = y
61 60 expr x y x bits x = bits y x = y
62 3 negnegd x y x = x
63 62 eleq1d x y x 0 x 0
64 63 biimpa x y x 0 x 0
65 simprr x y x 0 bits x = bits y bits x = bits y
66 fvres x 0 bits 0 x = bits x
67 66 ad2antrl x y x 0 bits x = bits y bits 0 x = bits x
68 15 ad2antlr x y x 0 bits x = bits y 0 bits y = bits - y - 1
69 bitsfi x 0 bits x Fin
70 69 ad2antrl x y x 0 bits x = bits y bits x Fin
71 65 70 eqeltrrd x y x 0 bits x = bits y bits y Fin
72 difinf ¬ 0 Fin bits y Fin ¬ 0 bits y Fin
73 27 71 72 sylancr x y x 0 bits x = bits y ¬ 0 bits y Fin
74 68 73 eqneltrrd x y x 0 bits x = bits y ¬ bits - y - 1 Fin
75 bitsfi - y - 1 0 bits - y - 1 Fin
76 74 75 nsyl x y x 0 bits x = bits y ¬ - y - 1 0
77 76 48 nsyl x y x 0 bits x = bits y ¬ y
78 44 adantr x y x 0 bits x = bits y y y 0
79 78 ord x y x 0 bits x = bits y ¬ y y 0
80 77 79 mpd x y x 0 bits x = bits y y 0
81 80 fvresd x y x 0 bits x = bits y bits 0 y = bits y
82 65 67 81 3eqtr4d x y x 0 bits x = bits y bits 0 x = bits 0 y
83 simprl x y x 0 bits x = bits y x 0
84 f1fveq bits 0 : 0 1-1 𝒫 0 Fin x 0 y 0 bits 0 x = bits 0 y x = y
85 54 84 mpan x 0 y 0 bits 0 x = bits 0 y x = y
86 83 80 85 syl2anc x y x 0 bits x = bits y bits 0 x = bits 0 y x = y
87 82 86 mpbid x y x 0 bits x = bits y x = y
88 87 expr x y x 0 bits x = bits y x = y
89 64 88 syldan x y x 0 bits x = bits y x = y
90 2 znegcld x y x
91 elznn x x x x 0
92 91 simprbi x x x 0
93 90 92 syl x y x x 0
94 61 89 93 mpjaodan x y bits x = bits y x = y
95 94 rgen2 x y bits x = bits y x = y
96 dff13 bits : 1-1 𝒫 0 bits : 𝒫 0 x y bits x = bits y x = y
97 1 95 96 mpbir2an bits : 1-1 𝒫 0