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 11903 | . . . . . . . . . . . 12 ⊢ 2 ∈ ℕ | |
2 | 1 | a1i 11 | . . . . . . . . . . 11 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∈ ℕ) |
3 | 2 | nncnd 11846 | . . . . . . . . . 10 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∈ ℂ) |
4 | simpr 488 | . . . . . . . . . 10 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑀 ∈ ℕ0) | |
5 | 3, 4 | expp1d 13717 | . . . . . . . . 9 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑(𝑀 + 1)) = ((2↑𝑀) · 2)) |
6 | 2, 4 | nnexpcld 13812 | . . . . . . . . . . 11 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ∈ ℕ) |
7 | 6 | nncnd 11846 | . . . . . . . . . 10 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ∈ ℂ) |
8 | 7, 3 | mulcomd 10854 | . . . . . . . . 9 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((2↑𝑀) · 2) = (2 · (2↑𝑀))) |
9 | 5, 8 | eqtrd 2777 | . . . . . . . 8 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑(𝑀 + 1)) = (2 · (2↑𝑀))) |
10 | 9 | oveq2d 7229 | . . . . . . 7 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 / (2↑(𝑀 + 1))) = (𝑁 / (2 · (2↑𝑀)))) |
11 | simpl 486 | . . . . . . . . 9 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℤ) | |
12 | 11 | zcnd 12283 | . . . . . . . 8 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℂ) |
13 | 2 | nnne0d 11880 | . . . . . . . 8 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ≠ 0) |
14 | 6 | nnne0d 11880 | . . . . . . . 8 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ≠ 0) |
15 | 12, 3, 7, 13, 14 | divdiv1d 11639 | . . . . . . 7 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 / 2) / (2↑𝑀)) = (𝑁 / (2 · (2↑𝑀)))) |
16 | 10, 15 | eqtr4d 2780 | . . . . . 6 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 / (2↑(𝑀 + 1))) = ((𝑁 / 2) / (2↑𝑀))) |
17 | 16 | fveq2d 6721 | . . . . 5 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘(𝑁 / (2↑(𝑀 + 1)))) = (⌊‘((𝑁 / 2) / (2↑𝑀)))) |
18 | 11 | zred 12282 | . . . . . . 7 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℝ) |
19 | 18 | rehalfcld 12077 | . . . . . 6 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 / 2) ∈ ℝ) |
20 | fldiv 13433 | . . . . . 6 ⊢ (((𝑁 / 2) ∈ ℝ ∧ (2↑𝑀) ∈ ℕ) → (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))) = (⌊‘((𝑁 / 2) / (2↑𝑀)))) | |
21 | 19, 6, 20 | syl2anc 587 | . . . . 5 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))) = (⌊‘((𝑁 / 2) / (2↑𝑀)))) |
22 | 17, 21 | eqtr4d 2780 | . . . 4 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘(𝑁 / (2↑(𝑀 + 1)))) = (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀)))) |
23 | 22 | breq2d 5065 | . . 3 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2 ∥ (⌊‘(𝑁 / (2↑(𝑀 + 1)))) ↔ 2 ∥ (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))))) |
24 | 23 | notbid 321 | . 2 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (¬ 2 ∥ (⌊‘(𝑁 / (2↑(𝑀 + 1)))) ↔ ¬ 2 ∥ (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))))) |
25 | peano2nn0 12130 | . . 3 ⊢ (𝑀 ∈ ℕ0 → (𝑀 + 1) ∈ ℕ0) | |
26 | bitsval2 15984 | . . 3 ⊢ ((𝑁 ∈ ℤ ∧ (𝑀 + 1) ∈ ℕ0) → ((𝑀 + 1) ∈ (bits‘𝑁) ↔ ¬ 2 ∥ (⌊‘(𝑁 / (2↑(𝑀 + 1)))))) | |
27 | 25, 26 | sylan2 596 | . 2 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑀 + 1) ∈ (bits‘𝑁) ↔ ¬ 2 ∥ (⌊‘(𝑁 / (2↑(𝑀 + 1)))))) |
28 | 19 | flcld 13373 | . . 3 ⊢ ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘(𝑁 / 2)) ∈ ℤ) |
29 | bitsval2 15984 | . . 3 ⊢ (((⌊‘(𝑁 / 2)) ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑀 ∈ (bits‘(⌊‘(𝑁 / 2))) ↔ ¬ 2 ∥ (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))))) | |
30 | 28, 29 | sylancom 591 | . 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 |
Syntax hints: ¬ wn 3 → wi 4 ↔ wb 209 ∧ wa 399 = wceq 1543 ∈ wcel 2110 class class class wbr 5053 ‘cfv 6380 (class class class)co 7213 ℝcr 10728 1c1 10730 + caddc 10732 · cmul 10734 / cdiv 11489 ℕcn 11830 2c2 11885 ℕ0cn0 12090 ℤcz 12176 ⌊cfl 13365 ↑cexp 13635 ∥ cdvds 15815 bitscbits 15978 |
This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1803 ax-4 1817 ax-5 1918 ax-6 1976 ax-7 2016 ax-8 2112 ax-9 2120 ax-10 2141 ax-11 2158 ax-12 2175 ax-ext 2708 ax-sep 5192 ax-nul 5199 ax-pow 5258 ax-pr 5322 ax-un 7523 ax-cnex 10785 ax-resscn 10786 ax-1cn 10787 ax-icn 10788 ax-addcl 10789 ax-addrcl 10790 ax-mulcl 10791 ax-mulrcl 10792 ax-mulcom 10793 ax-addass 10794 ax-mulass 10795 ax-distr 10796 ax-i2m1 10797 ax-1ne0 10798 ax-1rid 10799 ax-rnegex 10800 ax-rrecex 10801 ax-cnre 10802 ax-pre-lttri 10803 ax-pre-lttrn 10804 ax-pre-ltadd 10805 ax-pre-mulgt0 10806 ax-pre-sup 10807 |
This theorem depends on definitions: df-bi 210 df-an 400 df-or 848 df-3or 1090 df-3an 1091 df-tru 1546 df-fal 1556 df-ex 1788 df-nf 1792 df-sb 2071 df-mo 2539 df-eu 2568 df-clab 2715 df-cleq 2729 df-clel 2816 df-nfc 2886 df-ne 2941 df-nel 3047 df-ral 3066 df-rex 3067 df-reu 3068 df-rmo 3069 df-rab 3070 df-v 3410 df-sbc 3695 df-csb 3812 df-dif 3869 df-un 3871 df-in 3873 df-ss 3883 df-pss 3885 df-nul 4238 df-if 4440 df-pw 4515 df-sn 4542 df-pr 4544 df-tp 4546 df-op 4548 df-uni 4820 df-iun 4906 df-br 5054 df-opab 5116 df-mpt 5136 df-tr 5162 df-id 5455 df-eprel 5460 df-po 5468 df-so 5469 df-fr 5509 df-we 5511 df-xp 5557 df-rel 5558 df-cnv 5559 df-co 5560 df-dm 5561 df-rn 5562 df-res 5563 df-ima 5564 df-pred 6160 df-ord 6216 df-on 6217 df-lim 6218 df-suc 6219 df-iota 6338 df-fun 6382 df-fn 6383 df-f 6384 df-f1 6385 df-fo 6386 df-f1o 6387 df-fv 6388 df-riota 7170 df-ov 7216 df-oprab 7217 df-mpo 7218 df-om 7645 df-2nd 7762 df-wrecs 8047 df-recs 8108 df-rdg 8146 df-er 8391 df-en 8627 df-dom 8628 df-sdom 8629 df-sup 9058 df-inf 9059 df-pnf 10869 df-mnf 10870 df-xr 10871 df-ltxr 10872 df-le 10873 df-sub 11064 df-neg 11065 df-div 11490 df-nn 11831 df-2 11893 df-n0 12091 df-z 12177 df-uz 12439 df-fl 13367 df-seq 13575 df-exp 13636 df-bits 15981 |
This theorem is referenced by: bitsp1e 15991 bitsp1o 15992 |
Copyright terms: Public domain | W3C validator |