Step |
Hyp |
Ref |
Expression |
1 |
|
nn0re |
|- ( N e. NN0 -> N e. RR ) |
2 |
1
|
adantr |
|- ( ( N e. NN0 /\ K e. NN0 ) -> N e. RR ) |
3 |
|
2re |
|- 2 e. RR |
4 |
3
|
a1i |
|- ( N e. NN0 -> 2 e. RR ) |
5 |
|
reexpcl |
|- ( ( 2 e. RR /\ K e. NN0 ) -> ( 2 ^ K ) e. RR ) |
6 |
4 5
|
sylan |
|- ( ( N e. NN0 /\ K e. NN0 ) -> ( 2 ^ K ) e. RR ) |
7 |
|
2cnd |
|- ( ( N e. NN0 /\ K e. NN0 ) -> 2 e. CC ) |
8 |
|
2ne0 |
|- 2 =/= 0 |
9 |
8
|
a1i |
|- ( ( N e. NN0 /\ K e. NN0 ) -> 2 =/= 0 ) |
10 |
|
nn0z |
|- ( K e. NN0 -> K e. ZZ ) |
11 |
10
|
adantl |
|- ( ( N e. NN0 /\ K e. NN0 ) -> K e. ZZ ) |
12 |
7 9 11
|
expne0d |
|- ( ( N e. NN0 /\ K e. NN0 ) -> ( 2 ^ K ) =/= 0 ) |
13 |
2 6 12
|
redivcld |
|- ( ( N e. NN0 /\ K e. NN0 ) -> ( N / ( 2 ^ K ) ) e. RR ) |
14 |
13
|
flcld |
|- ( ( N e. NN0 /\ K e. NN0 ) -> ( |_ ` ( N / ( 2 ^ K ) ) ) e. ZZ ) |
15 |
|
mod2eq1n2dvds |
|- ( ( |_ ` ( N / ( 2 ^ K ) ) ) e. ZZ -> ( ( ( |_ ` ( N / ( 2 ^ K ) ) ) mod 2 ) = 1 <-> -. 2 || ( |_ ` ( N / ( 2 ^ K ) ) ) ) ) |
16 |
14 15
|
syl |
|- ( ( N e. NN0 /\ K e. NN0 ) -> ( ( ( |_ ` ( N / ( 2 ^ K ) ) ) mod 2 ) = 1 <-> -. 2 || ( |_ ` ( N / ( 2 ^ K ) ) ) ) ) |
17 |
|
2nn |
|- 2 e. NN |
18 |
17
|
a1i |
|- ( ( N e. NN0 /\ K e. NN0 ) -> 2 e. NN ) |
19 |
|
simpr |
|- ( ( N e. NN0 /\ K e. NN0 ) -> K e. NN0 ) |
20 |
|
nn0rp0 |
|- ( N e. NN0 -> N e. ( 0 [,) +oo ) ) |
21 |
20
|
adantr |
|- ( ( N e. NN0 /\ K e. NN0 ) -> N e. ( 0 [,) +oo ) ) |
22 |
|
nn0digval |
|- ( ( 2 e. NN /\ K e. NN0 /\ N e. ( 0 [,) +oo ) ) -> ( K ( digit ` 2 ) N ) = ( ( |_ ` ( N / ( 2 ^ K ) ) ) mod 2 ) ) |
23 |
18 19 21 22
|
syl3anc |
|- ( ( N e. NN0 /\ K e. NN0 ) -> ( K ( digit ` 2 ) N ) = ( ( |_ ` ( N / ( 2 ^ K ) ) ) mod 2 ) ) |
24 |
23
|
eqeq1d |
|- ( ( N e. NN0 /\ K e. NN0 ) -> ( ( K ( digit ` 2 ) N ) = 1 <-> ( ( |_ ` ( N / ( 2 ^ K ) ) ) mod 2 ) = 1 ) ) |
25 |
|
nn0z |
|- ( N e. NN0 -> N e. ZZ ) |
26 |
|
bitsval2 |
|- ( ( N e. ZZ /\ K e. NN0 ) -> ( K e. ( bits ` N ) <-> -. 2 || ( |_ ` ( N / ( 2 ^ K ) ) ) ) ) |
27 |
25 26
|
sylan |
|- ( ( N e. NN0 /\ K e. NN0 ) -> ( K e. ( bits ` N ) <-> -. 2 || ( |_ ` ( N / ( 2 ^ K ) ) ) ) ) |
28 |
16 24 27
|
3bitr4d |
|- ( ( N e. NN0 /\ K e. NN0 ) -> ( ( K ( digit ` 2 ) N ) = 1 <-> K e. ( bits ` N ) ) ) |