Metamath Proof Explorer |
< Previous
Next >
Nearby theorems |
||
Mirrors > Home > MPE Home > Th. List > bitsp1 | Structured version Visualization version GIF version |
Description: The 𝑀 + 1-th bit of 𝑁 is the 𝑀-th bit of ⌊(𝑁 / 2). (Contributed by Mario Carneiro, 5-Sep-2016.) |
Ref | Expression |
---|---|
bitsp1 | ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑀 + 1) ∈ (bits‘𝑁) ↔ 𝑀 ∈ (bits‘(⌊‘(𝑁 / 2))))) |
Step | Hyp | Ref | Expression |
---|---|---|---|
1 | 2nn 12125 | . . . . . . . . . . . 12 ⊢ 2 ∈ ℕ | |
2 | 1 | a1i 11 | . . . . . . . . . . 11 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∈ ℕ) |
3 | 2 | nncnd 12068 | . . . . . . . . . 10 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∈ ℂ) |
4 | simpr 485 | . . . . . . . . . 10 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑀 ∈ ℕ0) | |
5 | 3, 4 | expp1d 13944 | . . . . . . . . 9 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑(𝑀 + 1)) = ((2↑𝑀) · 2)) |
6 | 2, 4 | nnexpcld 14039 | . . . . . . . . . . 11 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ∈ ℕ) |
7 | 6 | nncnd 12068 | . . . . . . . . . 10 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ∈ ℂ) |
8 | 7, 3 | mulcomd 11075 | . . . . . . . . 9 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((2↑𝑀) · 2) = (2 · (2↑𝑀))) |
9 | 5, 8 | eqtrd 2776 | . . . . . . . 8 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑(𝑀 + 1)) = (2 · (2↑𝑀))) |
10 | 9 | oveq2d 7332 | . . . . . . 7 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 / (2↑(𝑀 + 1))) = (𝑁 / (2 · (2↑𝑀)))) |
11 | simpl 483 | . . . . . . . . 9 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℤ) | |
12 | 11 | zcnd 12506 | . . . . . . . 8 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℂ) |
13 | 2 | nnne0d 12102 | . . . . . . . 8 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ≠ 0) |
14 | 6 | nnne0d 12102 | . . . . . . . 8 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ≠ 0) |
15 | 12, 3, 7, 13, 14 | divdiv1d 11861 | . . . . . . 7 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 / 2) / (2↑𝑀)) = (𝑁 / (2 · (2↑𝑀)))) |
16 | 10, 15 | eqtr4d 2779 | . . . . . 6 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 / (2↑(𝑀 + 1))) = ((𝑁 / 2) / (2↑𝑀))) |
17 | 16 | fveq2d 6815 | . . . . 5 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘(𝑁 / (2↑(𝑀 + 1)))) = (⌊‘((𝑁 / 2) / (2↑𝑀)))) |
18 | 11 | zred 12505 | . . . . . . 7 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℝ) |
19 | 18 | rehalfcld 12299 | . . . . . 6 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 / 2) ∈ ℝ) |
20 | fldiv 13659 | . . . . . 6 ⊢ (((𝑁 / 2) ∈ ℝ ∧ (2↑𝑀) ∈ ℕ) → (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))) = (⌊‘((𝑁 / 2) / (2↑𝑀)))) | |
21 | 19, 6, 20 | syl2anc 584 | . . . . 5 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))) = (⌊‘((𝑁 / 2) / (2↑𝑀)))) |
22 | 17, 21 | eqtr4d 2779 | . . . 4 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘(𝑁 / (2↑(𝑀 + 1)))) = (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀)))) |
23 | 22 | breq2d 5098 | . . 3 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2 ∥ (⌊‘(𝑁 / (2↑(𝑀 + 1)))) ↔ 2 ∥ (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))))) |
24 | 23 | notbid 317 | . 2 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (¬ 2 ∥ (⌊‘(𝑁 / (2↑(𝑀 + 1)))) ↔ ¬ 2 ∥ (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))))) |
25 | peano2nn0 12352 | . . 3 ⊢ (𝑀 ∈ ℕ0 → (𝑀 + 1) ∈ ℕ0) | |
26 | bitsval2 16208 | . . 3 ⊢ ((𝑁 ∈ ℤ ∧ (𝑀 + 1) ∈ ℕ0) → ((𝑀 + 1) ∈ (bits‘𝑁) ↔ ¬ 2 ∥ (⌊‘(𝑁 / (2↑(𝑀 + 1)))))) | |
27 | 25, 26 | sylan2 593 | . 2 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑀 + 1) ∈ (bits‘𝑁) ↔ ¬ 2 ∥ (⌊‘(𝑁 / (2↑(𝑀 + 1)))))) |
28 | 19 | flcld 13597 | . . 3 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘(𝑁 / 2)) ∈ ℤ) |
29 | bitsval2 16208 | . . 3 ⊢ (((⌊‘(𝑁 / 2)) ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑀 ∈ (bits‘(⌊‘(𝑁 / 2))) ↔ ¬ 2 ∥ (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))))) | |
30 | 28, 29 | sylancom 588 | . 2 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑀 ∈ (bits‘(⌊‘(𝑁 / 2))) ↔ ¬ 2 ∥ (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))))) |
31 | 24, 27, 30 | 3bitr4d 310 | 1 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑀 + 1) ∈ (bits‘𝑁) ↔ 𝑀 ∈ (bits‘(⌊‘(𝑁 / 2))))) |
Colors of variables: wff setvar class |
Syntax hints: ¬ wn 3 → wi 4 ↔ wb 205 ∧ wa 396 = wceq 1540 ∈ wcel 2105 class class class wbr 5086 ‘cfv 6465 (class class class)co 7316 ℝcr 10949 1c1 10951 + caddc 10953 · cmul 10955 / cdiv 11711 ℕcn 12052 2c2 12107 ℕ0cn0 12312 ℤcz 12398 ⌊cfl 13589 ↑cexp 13861 ∥ cdvds 16039 bitscbits 16202 |
This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1796 ax-4 1810 ax-5 1912 ax-6 1970 ax-7 2010 ax-8 2107 ax-9 2115 ax-10 2136 ax-11 2153 ax-12 2170 ax-ext 2707 ax-sep 5237 ax-nul 5244 ax-pow 5302 ax-pr 5366 ax-un 7629 ax-cnex 11006 ax-resscn 11007 ax-1cn 11008 ax-icn 11009 ax-addcl 11010 ax-addrcl 11011 ax-mulcl 11012 ax-mulrcl 11013 ax-mulcom 11014 ax-addass 11015 ax-mulass 11016 ax-distr 11017 ax-i2m1 11018 ax-1ne0 11019 ax-1rid 11020 ax-rnegex 11021 ax-rrecex 11022 ax-cnre 11023 ax-pre-lttri 11024 ax-pre-lttrn 11025 ax-pre-ltadd 11026 ax-pre-mulgt0 11027 ax-pre-sup 11028 |
This theorem depends on definitions: df-bi 206 df-an 397 df-or 845 df-3or 1087 df-3an 1088 df-tru 1543 df-fal 1553 df-ex 1781 df-nf 1785 df-sb 2067 df-mo 2538 df-eu 2567 df-clab 2714 df-cleq 2728 df-clel 2814 df-nfc 2886 df-ne 2941 df-nel 3047 df-ral 3062 df-rex 3071 df-rmo 3349 df-reu 3350 df-rab 3404 df-v 3442 df-sbc 3726 df-csb 3842 df-dif 3899 df-un 3901 df-in 3903 df-ss 3913 df-pss 3915 df-nul 4267 df-if 4471 df-pw 4546 df-sn 4571 df-pr 4573 df-op 4577 df-uni 4850 df-iun 4938 df-br 5087 df-opab 5149 df-mpt 5170 df-tr 5204 df-id 5506 df-eprel 5512 df-po 5520 df-so 5521 df-fr 5562 df-we 5564 df-xp 5613 df-rel 5614 df-cnv 5615 df-co 5616 df-dm 5617 df-rn 5618 df-res 5619 df-ima 5620 df-pred 6224 df-ord 6291 df-on 6292 df-lim 6293 df-suc 6294 df-iota 6417 df-fun 6467 df-fn 6468 df-f 6469 df-f1 6470 df-fo 6471 df-f1o 6472 df-fv 6473 df-riota 7273 df-ov 7319 df-oprab 7320 df-mpo 7321 df-om 7759 df-2nd 7878 df-frecs 8145 df-wrecs 8176 df-recs 8250 df-rdg 8289 df-er 8547 df-en 8783 df-dom 8784 df-sdom 8785 df-sup 9277 df-inf 9278 df-pnf 11090 df-mnf 11091 df-xr 11092 df-ltxr 11093 df-le 11094 df-sub 11286 df-neg 11287 df-div 11712 df-nn 12053 df-2 12115 df-n0 12313 df-z 12399 df-uz 12662 df-fl 13591 df-seq 13801 df-exp 13862 df-bits 16205 |
This theorem is referenced by: bitsp1e 16215 bitsp1o 16216 |
Copyright terms: Public domain | W3C validator |