Step |
Hyp |
Ref |
Expression |
1 |
|
bitsval2 |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( m e. ( bits ` N ) <-> -. 2 || ( |_ ` ( N / ( 2 ^ m ) ) ) ) ) |
2 |
|
2z |
|- 2 e. ZZ |
3 |
2
|
a1i |
|- ( ( N e. ZZ /\ m e. NN0 ) -> 2 e. ZZ ) |
4 |
|
simpl |
|- ( ( N e. ZZ /\ m e. NN0 ) -> N e. ZZ ) |
5 |
4
|
zred |
|- ( ( N e. ZZ /\ m e. NN0 ) -> N e. RR ) |
6 |
|
2nn |
|- 2 e. NN |
7 |
6
|
a1i |
|- ( ( N e. ZZ /\ m e. NN0 ) -> 2 e. NN ) |
8 |
|
simpr |
|- ( ( N e. ZZ /\ m e. NN0 ) -> m e. NN0 ) |
9 |
7 8
|
nnexpcld |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( 2 ^ m ) e. NN ) |
10 |
5 9
|
nndivred |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( N / ( 2 ^ m ) ) e. RR ) |
11 |
10
|
flcld |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( |_ ` ( N / ( 2 ^ m ) ) ) e. ZZ ) |
12 |
|
dvdsnegb |
|- ( ( 2 e. ZZ /\ ( |_ ` ( N / ( 2 ^ m ) ) ) e. ZZ ) -> ( 2 || ( |_ ` ( N / ( 2 ^ m ) ) ) <-> 2 || -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) ) |
13 |
3 11 12
|
syl2anc |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( 2 || ( |_ ` ( N / ( 2 ^ m ) ) ) <-> 2 || -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) ) |
14 |
13
|
notbid |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( -. 2 || ( |_ ` ( N / ( 2 ^ m ) ) ) <-> -. 2 || -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) ) |
15 |
11
|
znegcld |
|- ( ( N e. ZZ /\ m e. NN0 ) -> -u ( |_ ` ( N / ( 2 ^ m ) ) ) e. ZZ ) |
16 |
|
oddm1even |
|- ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) e. ZZ -> ( -. 2 || -u ( |_ ` ( N / ( 2 ^ m ) ) ) <-> 2 || ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) ) ) |
17 |
15 16
|
syl |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( -. 2 || -u ( |_ ` ( N / ( 2 ^ m ) ) ) <-> 2 || ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) ) ) |
18 |
|
flltp1 |
|- ( ( N / ( 2 ^ m ) ) e. RR -> ( N / ( 2 ^ m ) ) < ( ( |_ ` ( N / ( 2 ^ m ) ) ) + 1 ) ) |
19 |
10 18
|
syl |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( N / ( 2 ^ m ) ) < ( ( |_ ` ( N / ( 2 ^ m ) ) ) + 1 ) ) |
20 |
11
|
zred |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( |_ ` ( N / ( 2 ^ m ) ) ) e. RR ) |
21 |
|
1red |
|- ( ( N e. ZZ /\ m e. NN0 ) -> 1 e. RR ) |
22 |
20 21
|
readdcld |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( |_ ` ( N / ( 2 ^ m ) ) ) + 1 ) e. RR ) |
23 |
10 22
|
ltnegd |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( N / ( 2 ^ m ) ) < ( ( |_ ` ( N / ( 2 ^ m ) ) ) + 1 ) <-> -u ( ( |_ ` ( N / ( 2 ^ m ) ) ) + 1 ) < -u ( N / ( 2 ^ m ) ) ) ) |
24 |
19 23
|
mpbid |
|- ( ( N e. ZZ /\ m e. NN0 ) -> -u ( ( |_ ` ( N / ( 2 ^ m ) ) ) + 1 ) < -u ( N / ( 2 ^ m ) ) ) |
25 |
20
|
recnd |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( |_ ` ( N / ( 2 ^ m ) ) ) e. CC ) |
26 |
21
|
recnd |
|- ( ( N e. ZZ /\ m e. NN0 ) -> 1 e. CC ) |
27 |
25 26
|
negdi2d |
|- ( ( N e. ZZ /\ m e. NN0 ) -> -u ( ( |_ ` ( N / ( 2 ^ m ) ) ) + 1 ) = ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) ) |
28 |
5
|
recnd |
|- ( ( N e. ZZ /\ m e. NN0 ) -> N e. CC ) |
29 |
9
|
nncnd |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( 2 ^ m ) e. CC ) |
30 |
9
|
nnne0d |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( 2 ^ m ) =/= 0 ) |
31 |
28 29 30
|
divnegd |
|- ( ( N e. ZZ /\ m e. NN0 ) -> -u ( N / ( 2 ^ m ) ) = ( -u N / ( 2 ^ m ) ) ) |
32 |
24 27 31
|
3brtr3d |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) < ( -u N / ( 2 ^ m ) ) ) |
33 |
|
1zzd |
|- ( ( N e. ZZ /\ m e. NN0 ) -> 1 e. ZZ ) |
34 |
15 33
|
zsubcld |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) e. ZZ ) |
35 |
34
|
zred |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) e. RR ) |
36 |
5
|
renegcld |
|- ( ( N e. ZZ /\ m e. NN0 ) -> -u N e. RR ) |
37 |
9
|
nnrpd |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( 2 ^ m ) e. RR+ ) |
38 |
35 36 37
|
ltmuldivd |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) x. ( 2 ^ m ) ) < -u N <-> ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) < ( -u N / ( 2 ^ m ) ) ) ) |
39 |
32 38
|
mpbird |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) x. ( 2 ^ m ) ) < -u N ) |
40 |
9
|
nnzd |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( 2 ^ m ) e. ZZ ) |
41 |
34 40
|
zmulcld |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) x. ( 2 ^ m ) ) e. ZZ ) |
42 |
4
|
znegcld |
|- ( ( N e. ZZ /\ m e. NN0 ) -> -u N e. ZZ ) |
43 |
|
zltlem1 |
|- ( ( ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) x. ( 2 ^ m ) ) e. ZZ /\ -u N e. ZZ ) -> ( ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) x. ( 2 ^ m ) ) < -u N <-> ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) x. ( 2 ^ m ) ) <_ ( -u N - 1 ) ) ) |
44 |
41 42 43
|
syl2anc |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) x. ( 2 ^ m ) ) < -u N <-> ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) x. ( 2 ^ m ) ) <_ ( -u N - 1 ) ) ) |
45 |
39 44
|
mpbid |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) x. ( 2 ^ m ) ) <_ ( -u N - 1 ) ) |
46 |
36 21
|
resubcld |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( -u N - 1 ) e. RR ) |
47 |
35 46 37
|
lemuldivd |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) x. ( 2 ^ m ) ) <_ ( -u N - 1 ) <-> ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) <_ ( ( -u N - 1 ) / ( 2 ^ m ) ) ) ) |
48 |
45 47
|
mpbid |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) <_ ( ( -u N - 1 ) / ( 2 ^ m ) ) ) |
49 |
|
flle |
|- ( ( N / ( 2 ^ m ) ) e. RR -> ( |_ ` ( N / ( 2 ^ m ) ) ) <_ ( N / ( 2 ^ m ) ) ) |
50 |
10 49
|
syl |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( |_ ` ( N / ( 2 ^ m ) ) ) <_ ( N / ( 2 ^ m ) ) ) |
51 |
20 10
|
lenegd |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( |_ ` ( N / ( 2 ^ m ) ) ) <_ ( N / ( 2 ^ m ) ) <-> -u ( N / ( 2 ^ m ) ) <_ -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) ) |
52 |
50 51
|
mpbid |
|- ( ( N e. ZZ /\ m e. NN0 ) -> -u ( N / ( 2 ^ m ) ) <_ -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) |
53 |
31 52
|
eqbrtrrd |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( -u N / ( 2 ^ m ) ) <_ -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) |
54 |
20
|
renegcld |
|- ( ( N e. ZZ /\ m e. NN0 ) -> -u ( |_ ` ( N / ( 2 ^ m ) ) ) e. RR ) |
55 |
36 54 37
|
ledivmuld |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( -u N / ( 2 ^ m ) ) <_ -u ( |_ ` ( N / ( 2 ^ m ) ) ) <-> -u N <_ ( ( 2 ^ m ) x. -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) ) ) |
56 |
53 55
|
mpbid |
|- ( ( N e. ZZ /\ m e. NN0 ) -> -u N <_ ( ( 2 ^ m ) x. -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) ) |
57 |
40 15
|
zmulcld |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( 2 ^ m ) x. -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) e. ZZ ) |
58 |
|
zlem1lt |
|- ( ( -u N e. ZZ /\ ( ( 2 ^ m ) x. -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) e. ZZ ) -> ( -u N <_ ( ( 2 ^ m ) x. -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) <-> ( -u N - 1 ) < ( ( 2 ^ m ) x. -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) ) ) |
59 |
42 57 58
|
syl2anc |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( -u N <_ ( ( 2 ^ m ) x. -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) <-> ( -u N - 1 ) < ( ( 2 ^ m ) x. -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) ) ) |
60 |
56 59
|
mpbid |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( -u N - 1 ) < ( ( 2 ^ m ) x. -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) ) |
61 |
46 54 37
|
ltdivmuld |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( ( -u N - 1 ) / ( 2 ^ m ) ) < -u ( |_ ` ( N / ( 2 ^ m ) ) ) <-> ( -u N - 1 ) < ( ( 2 ^ m ) x. -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) ) ) |
62 |
60 61
|
mpbird |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( -u N - 1 ) / ( 2 ^ m ) ) < -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) |
63 |
25
|
negcld |
|- ( ( N e. ZZ /\ m e. NN0 ) -> -u ( |_ ` ( N / ( 2 ^ m ) ) ) e. CC ) |
64 |
63 26
|
npcand |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) + 1 ) = -u ( |_ ` ( N / ( 2 ^ m ) ) ) ) |
65 |
62 64
|
breqtrrd |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( -u N - 1 ) / ( 2 ^ m ) ) < ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) + 1 ) ) |
66 |
46 9
|
nndivred |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( -u N - 1 ) / ( 2 ^ m ) ) e. RR ) |
67 |
|
flbi |
|- ( ( ( ( -u N - 1 ) / ( 2 ^ m ) ) e. RR /\ ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) e. ZZ ) -> ( ( |_ ` ( ( -u N - 1 ) / ( 2 ^ m ) ) ) = ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) <-> ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) <_ ( ( -u N - 1 ) / ( 2 ^ m ) ) /\ ( ( -u N - 1 ) / ( 2 ^ m ) ) < ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) + 1 ) ) ) ) |
68 |
66 34 67
|
syl2anc |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( ( |_ ` ( ( -u N - 1 ) / ( 2 ^ m ) ) ) = ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) <-> ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) <_ ( ( -u N - 1 ) / ( 2 ^ m ) ) /\ ( ( -u N - 1 ) / ( 2 ^ m ) ) < ( ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) + 1 ) ) ) ) |
69 |
48 65 68
|
mpbir2and |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( |_ ` ( ( -u N - 1 ) / ( 2 ^ m ) ) ) = ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) ) |
70 |
69
|
breq2d |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( 2 || ( |_ ` ( ( -u N - 1 ) / ( 2 ^ m ) ) ) <-> 2 || ( -u ( |_ ` ( N / ( 2 ^ m ) ) ) - 1 ) ) ) |
71 |
17 70
|
bitr4d |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( -. 2 || -u ( |_ ` ( N / ( 2 ^ m ) ) ) <-> 2 || ( |_ ` ( ( -u N - 1 ) / ( 2 ^ m ) ) ) ) ) |
72 |
1 14 71
|
3bitrd |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( m e. ( bits ` N ) <-> 2 || ( |_ ` ( ( -u N - 1 ) / ( 2 ^ m ) ) ) ) ) |
73 |
72
|
notbid |
|- ( ( N e. ZZ /\ m e. NN0 ) -> ( -. m e. ( bits ` N ) <-> -. 2 || ( |_ ` ( ( -u N - 1 ) / ( 2 ^ m ) ) ) ) ) |
74 |
73
|
pm5.32da |
|- ( N e. ZZ -> ( ( m e. NN0 /\ -. m e. ( bits ` N ) ) <-> ( m e. NN0 /\ -. 2 || ( |_ ` ( ( -u N - 1 ) / ( 2 ^ m ) ) ) ) ) ) |
75 |
|
znegcl |
|- ( N e. ZZ -> -u N e. ZZ ) |
76 |
|
1zzd |
|- ( N e. ZZ -> 1 e. ZZ ) |
77 |
75 76
|
zsubcld |
|- ( N e. ZZ -> ( -u N - 1 ) e. ZZ ) |
78 |
77
|
biantrurd |
|- ( N e. ZZ -> ( ( m e. NN0 /\ -. 2 || ( |_ ` ( ( -u N - 1 ) / ( 2 ^ m ) ) ) ) <-> ( ( -u N - 1 ) e. ZZ /\ ( m e. NN0 /\ -. 2 || ( |_ ` ( ( -u N - 1 ) / ( 2 ^ m ) ) ) ) ) ) ) |
79 |
74 78
|
bitrd |
|- ( N e. ZZ -> ( ( m e. NN0 /\ -. m e. ( bits ` N ) ) <-> ( ( -u N - 1 ) e. ZZ /\ ( m e. NN0 /\ -. 2 || ( |_ ` ( ( -u N - 1 ) / ( 2 ^ m ) ) ) ) ) ) ) |
80 |
|
eldif |
|- ( m e. ( NN0 \ ( bits ` N ) ) <-> ( m e. NN0 /\ -. m e. ( bits ` N ) ) ) |
81 |
|
bitsval |
|- ( m e. ( bits ` ( -u N - 1 ) ) <-> ( ( -u N - 1 ) e. ZZ /\ m e. NN0 /\ -. 2 || ( |_ ` ( ( -u N - 1 ) / ( 2 ^ m ) ) ) ) ) |
82 |
|
3anass |
|- ( ( ( -u N - 1 ) e. ZZ /\ m e. NN0 /\ -. 2 || ( |_ ` ( ( -u N - 1 ) / ( 2 ^ m ) ) ) ) <-> ( ( -u N - 1 ) e. ZZ /\ ( m e. NN0 /\ -. 2 || ( |_ ` ( ( -u N - 1 ) / ( 2 ^ m ) ) ) ) ) ) |
83 |
81 82
|
bitri |
|- ( m e. ( bits ` ( -u N - 1 ) ) <-> ( ( -u N - 1 ) e. ZZ /\ ( m e. NN0 /\ -. 2 || ( |_ ` ( ( -u N - 1 ) / ( 2 ^ m ) ) ) ) ) ) |
84 |
79 80 83
|
3bitr4g |
|- ( N e. ZZ -> ( m e. ( NN0 \ ( bits ` N ) ) <-> m e. ( bits ` ( -u N - 1 ) ) ) ) |
85 |
84
|
eqrdv |
|- ( N e. ZZ -> ( NN0 \ ( bits ` N ) ) = ( bits ` ( -u N - 1 ) ) ) |