| 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 12446 | . . . . . . . . . . . 12 ⊢ 2 ∈ ℕ | |
| 2 | 1 | a1i 11 | . . . . . . . . . . 11 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∈ ℕ) |
| 3 | 2 | nncnd 12381 | . . . . . . . . . 10 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∈ ℂ) |
| 4 | simpr 490 | . . . . . . . . . 10 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑀 ∈ ℕ0) | |
| 5 | 3, 4 | expp1d 14320 | . . . . . . . . 9 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑(𝑀 + 1)) = ((2↑𝑀) · 2)) |
| 6 | 2, 4 | nnexpcld 14419 | . . . . . . . . . . 11 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ∈ ℕ) |
| 7 | 6 | nncnd 12381 | . . . . . . . . . 10 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ∈ ℂ) |
| 8 | 7, 3 | mulcomd 11360 | . . . . . . . . 9 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((2↑𝑀) · 2) = (2 · (2↑𝑀))) |
| 9 | 5, 8 | eqtrd 2798 | . . . . . . . 8 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑(𝑀 + 1)) = (2 · (2↑𝑀))) |
| 10 | 9 | oveq2d 7462 | . . . . . . 7 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 / (2↑(𝑀 + 1))) = (𝑁 / (2 · (2↑𝑀)))) |
| 11 | simpl 488 | . . . . . . . . 9 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℤ) | |
| 12 | 11 | zcnd 12834 | . . . . . . . 8 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℂ) |
| 13 | 2 | nnne0d 12418 | . . . . . . . 8 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ≠ 0) |
| 14 | 6 | nnne0d 12418 | . . . . . . . 8 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ≠ 0) |
| 15 | 12, 3, 7, 13, 14 | divdiv1d 12154 | . . . . . . 7 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 / 2) / (2↑𝑀)) = (𝑁 / (2 · (2↑𝑀)))) |
| 16 | 10, 15 | eqtr4d 2801 | . . . . . 6 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 / (2↑(𝑀 + 1))) = ((𝑁 / 2) / (2↑𝑀))) |
| 17 | 16 | fveq2d 6915 | . . . . 5 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘(𝑁 / (2↑(𝑀 + 1)))) = (⌊‘((𝑁 / 2) / (2↑𝑀)))) |
| 18 | 11 | zred 12833 | . . . . . . 7 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℝ) |
| 19 | 18 | rehalfcld 12623 | . . . . . 6 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 / 2) ∈ ℝ) |
| 20 | fldiv 14030 | . . . . . 6 ⊢ (((𝑁 / 2) ∈ ℝ ∧ (2↑𝑀) ∈ ℕ) → (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))) = (⌊‘((𝑁 / 2) / (2↑𝑀)))) | |
| 21 | 19, 6, 20 | syl2anc 596 | . . . . 5 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))) = (⌊‘((𝑁 / 2) / (2↑𝑀)))) |
| 22 | 17, 21 | eqtr4d 2801 | . . . 4 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘(𝑁 / (2↑(𝑀 + 1)))) = (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀)))) |
| 23 | 22 | breq2d 5118 | . . 3 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2 ∥ (⌊‘(𝑁 / (2↑(𝑀 + 1)))) ↔ 2 ∥ (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))))) |
| 24 | 23 | notbid 321 | . 2 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (¬ 2 ∥ (⌊‘(𝑁 / (2↑(𝑀 + 1)))) ↔ ¬ 2 ∥ (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))))) |
| 25 | peano2nn0 12676 | . . 3 ⊢ (𝑀 ∈ ℕ0 → (𝑀 + 1) ∈ ℕ0) | |
| 26 | bitsval2 16627 | . . 3 ⊢ ((𝑁 ∈ ℤ ∧ (𝑀 + 1) ∈ ℕ0) → ((𝑀 + 1) ∈ (bits‘𝑁) ↔ ¬ 2 ∥ (⌊‘(𝑁 / (2↑(𝑀 + 1)))))) | |
| 27 | 25, 26 | sylan2 605 | . 2 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑀 + 1) ∈ (bits‘𝑁) ↔ ¬ 2 ∥ (⌊‘(𝑁 / (2↑(𝑀 + 1)))))) |
| 28 | 19 | flcld 13968 | . . 3 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘(𝑁 / 2)) ∈ ℤ) |
| 29 | bitsval2 16627 | . . 3 ⊢ (((⌊‘(𝑁 / 2)) ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑀 ∈ (bits‘(⌊‘(𝑁 / 2))) ↔ ¬ 2 ∥ (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))))) | |
| 30 | 28, 29 | sylancom 600 | . 2 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑀 ∈ (bits‘(⌊‘(𝑁 / 2))) ↔ ¬ 2 ∥ (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))))) |
| 31 | 24, 27, 30 | 3bitr4d 314 | 1 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑀 + 1) ∈ (bits‘𝑁) ↔ 𝑀 ∈ (bits‘(⌊‘(𝑁 / 2))))) |
| Colors of variables: wff setvar class |
| This proof depends on syntax axioms: ¬ wn 3 → wi 4 ↔ wb 209 ∧ wa 401 = wceq 1570 ∈ wcel 2147 class class class wbr 5106 ‘cfv 6561 (class class class)co 7446 ℝcr 11229 1c1 11231 + caddc 11233 · cmul 11235 / cdiv 12003 ℕcn 12365 2c2 12427 ℕ0cn0 12636 ℤcz 12723 ⌊cfl 13960 ↑cexp 14234 ∥ cdvds 16454 bitscbits 16621 |
| This proof depends on axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1828 ax-4 1842 ax-5 1945 ax-6 2002 ax-7 2043 ax-8 2149 ax-9 2157 ax-10 2180 ax-11 2197 ax-12 2216 ax-ext 2735 ax-sep 5253 ax-nul 5264 ax-pow 5332 ax-pr 5396 ax-un 7778 ax-cnex 11286 ax-resscn 11287 ax-1cn 11288 ax-icn 11289 ax-addcl 11290 ax-addrcl 11291 ax-mulcl 11292 ax-mulrcl 11293 ax-mulcom 11294 ax-addass 11295 ax-mulass 11296 ax-distr 11297 ax-i2m1 11298 ax-1ne0 11299 ax-1rid 11300 ax-rnegex 11301 ax-rrecex 11302 ax-cnre 11303 ax-pre-lttri 11304 ax-pre-lttrn 11305 ax-pre-ltadd 11306 ax-pre-mulgt0 11307 ax-pre-sup 11308 |
| This proof depends on definitions: df-bi 210 df-an 402 df-or 862 df-3or 1104 df-3an 1105 df-tru 1573 df-fal 1583 df-ex 1813 df-nf 1817 df-sb 2102 df-mo 2567 df-eu 2597 df-clab 2742 df-cleq 2755 df-clel 2839 df-nfc 2913 df-ne 2960 df-nel 3066 df-ral 3081 df-rex 3091 df-rmo 3369 df-reu 3370 df-rab 3417 df-v 3456 df-sbc 3743 df-csb 3852 df-ss 3901 df-pss 4017 df-dif 4050 df-in 4094 df-un 4154 df-nul 4282 df-if 4486 df-pw 4562 df-sn 4589 df-pr 4591 df-op 4839 df-uni 4871 df-iun 4956 df-br 5107 df-opab 5172 df-mpt 5191 df-tr 5217 df-id 5551 df-eprel 5556 df-po 5564 df-so 5565 df-fr 5609 df-we 5611 df-xp 5662 df-rel 5663 df-cnv 5664 df-co 5665 df-dm 5666 df-rn 5667 df-res 5668 df-ima 5669 df-pred 6325 df-ord 6386 df-on 6387 df-lim 6388 df-suc 6389 df-iota 6515 df-fun 6563 df-fn 6564 df-f 6565 df-f1 6566 df-fo 6567 df-f1o 6568 df-fv 6569 df-riota 7403 df-ov 7449 df-oprab 7450 df-mpo 7451 df-om 7905 df-2nd 8029 df-frecs 8330 df-wrecs 8361 df-recs 8410 df-rdg 8449 df-er 8748 df-en 9005 df-dom 9006 df-sdom 9007 df-sup 9464 df-inf 9465 df-pnf 11375 df-mnf 11376 df-xr 11377 df-ltxr 11378 df-le 11379 df-sub 11573 df-neg 11574 df-div 12004 df-nn 12366 df-2 12435 df-n0 12637 df-z 12724 df-uz 12996 df-fl 13962 df-seq 14175 df-exp 14235 df-bits 16624 |
| This theorem is used by: bitsp1e 16634 bitsp1o 16635 |
| Copyright terms: Public domain | W3C validator |