| 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 ) ) ) |