Step |
Hyp |
Ref |
Expression |
1 |
|
2nn |
⊢ 2 ∈ ℕ |
2 |
1
|
a1i |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → 2 ∈ ℕ ) |
3 |
2
|
nncnd |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → 2 ∈ ℂ ) |
4 |
|
simpr |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → 𝑀 ∈ ℕ0 ) |
5 |
3 4
|
expp1d |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( 2 ↑ ( 𝑀 + 1 ) ) = ( ( 2 ↑ 𝑀 ) · 2 ) ) |
6 |
2 4
|
nnexpcld |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( 2 ↑ 𝑀 ) ∈ ℕ ) |
7 |
6
|
nncnd |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( 2 ↑ 𝑀 ) ∈ ℂ ) |
8 |
7 3
|
mulcomd |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( ( 2 ↑ 𝑀 ) · 2 ) = ( 2 · ( 2 ↑ 𝑀 ) ) ) |
9 |
5 8
|
eqtrd |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( 2 ↑ ( 𝑀 + 1 ) ) = ( 2 · ( 2 ↑ 𝑀 ) ) ) |
10 |
9
|
oveq2d |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( 𝑁 / ( 2 ↑ ( 𝑀 + 1 ) ) ) = ( 𝑁 / ( 2 · ( 2 ↑ 𝑀 ) ) ) ) |
11 |
|
simpl |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → 𝑁 ∈ ℤ ) |
12 |
11
|
zcnd |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → 𝑁 ∈ ℂ ) |
13 |
2
|
nnne0d |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → 2 ≠ 0 ) |
14 |
6
|
nnne0d |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( 2 ↑ 𝑀 ) ≠ 0 ) |
15 |
12 3 7 13 14
|
divdiv1d |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( ( 𝑁 / 2 ) / ( 2 ↑ 𝑀 ) ) = ( 𝑁 / ( 2 · ( 2 ↑ 𝑀 ) ) ) ) |
16 |
10 15
|
eqtr4d |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( 𝑁 / ( 2 ↑ ( 𝑀 + 1 ) ) ) = ( ( 𝑁 / 2 ) / ( 2 ↑ 𝑀 ) ) ) |
17 |
16
|
fveq2d |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( ⌊ ‘ ( 𝑁 / ( 2 ↑ ( 𝑀 + 1 ) ) ) ) = ( ⌊ ‘ ( ( 𝑁 / 2 ) / ( 2 ↑ 𝑀 ) ) ) ) |
18 |
11
|
zred |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → 𝑁 ∈ ℝ ) |
19 |
18
|
rehalfcld |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( 𝑁 / 2 ) ∈ ℝ ) |
20 |
|
fldiv |
⊢ ( ( ( 𝑁 / 2 ) ∈ ℝ ∧ ( 2 ↑ 𝑀 ) ∈ ℕ ) → ( ⌊ ‘ ( ( ⌊ ‘ ( 𝑁 / 2 ) ) / ( 2 ↑ 𝑀 ) ) ) = ( ⌊ ‘ ( ( 𝑁 / 2 ) / ( 2 ↑ 𝑀 ) ) ) ) |
21 |
19 6 20
|
syl2anc |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( ⌊ ‘ ( ( ⌊ ‘ ( 𝑁 / 2 ) ) / ( 2 ↑ 𝑀 ) ) ) = ( ⌊ ‘ ( ( 𝑁 / 2 ) / ( 2 ↑ 𝑀 ) ) ) ) |
22 |
17 21
|
eqtr4d |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( ⌊ ‘ ( 𝑁 / ( 2 ↑ ( 𝑀 + 1 ) ) ) ) = ( ⌊ ‘ ( ( ⌊ ‘ ( 𝑁 / 2 ) ) / ( 2 ↑ 𝑀 ) ) ) ) |
23 |
22
|
breq2d |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ ( 𝑀 + 1 ) ) ) ) ↔ 2 ∥ ( ⌊ ‘ ( ( ⌊ ‘ ( 𝑁 / 2 ) ) / ( 2 ↑ 𝑀 ) ) ) ) ) |
24 |
23
|
notbid |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( ¬ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ ( 𝑀 + 1 ) ) ) ) ↔ ¬ 2 ∥ ( ⌊ ‘ ( ( ⌊ ‘ ( 𝑁 / 2 ) ) / ( 2 ↑ 𝑀 ) ) ) ) ) |
25 |
|
peano2nn0 |
⊢ ( 𝑀 ∈ ℕ0 → ( 𝑀 + 1 ) ∈ ℕ0 ) |
26 |
|
bitsval2 |
⊢ ( ( 𝑁 ∈ ℤ ∧ ( 𝑀 + 1 ) ∈ ℕ0 ) → ( ( 𝑀 + 1 ) ∈ ( bits ‘ 𝑁 ) ↔ ¬ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ ( 𝑀 + 1 ) ) ) ) ) ) |
27 |
25 26
|
sylan2 |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( ( 𝑀 + 1 ) ∈ ( bits ‘ 𝑁 ) ↔ ¬ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ ( 𝑀 + 1 ) ) ) ) ) ) |
28 |
19
|
flcld |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( ⌊ ‘ ( 𝑁 / 2 ) ) ∈ ℤ ) |
29 |
|
bitsval2 |
⊢ ( ( ( ⌊ ‘ ( 𝑁 / 2 ) ) ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( 𝑀 ∈ ( bits ‘ ( ⌊ ‘ ( 𝑁 / 2 ) ) ) ↔ ¬ 2 ∥ ( ⌊ ‘ ( ( ⌊ ‘ ( 𝑁 / 2 ) ) / ( 2 ↑ 𝑀 ) ) ) ) ) |
30 |
28 29
|
sylancom |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( 𝑀 ∈ ( bits ‘ ( ⌊ ‘ ( 𝑁 / 2 ) ) ) ↔ ¬ 2 ∥ ( ⌊ ‘ ( ( ⌊ ‘ ( 𝑁 / 2 ) ) / ( 2 ↑ 𝑀 ) ) ) ) ) |
31 |
24 27 30
|
3bitr4d |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ) → ( ( 𝑀 + 1 ) ∈ ( bits ‘ 𝑁 ) ↔ 𝑀 ∈ ( bits ‘ ( ⌊ ‘ ( 𝑁 / 2 ) ) ) ) ) |