MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  bitsp1 Structured version   Visualization version   GIF version

Theorem bitsp1 16214
Description: The 𝑀 + 1-th bit of 𝑁 is the 𝑀-th bit of ⌊(𝑁 / 2). (Contributed by Mario Carneiro, 5-Sep-2016.)
Assertion
Ref Expression
bitsp1 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑀 + 1) ∈ (bits‘𝑁) ↔ 𝑀 ∈ (bits‘(⌊‘(𝑁 / 2)))))

Proof of Theorem bitsp1
StepHypRef Expression
1 2nn 12125 . . . . . . . . . . . 12 2 ∈ ℕ
21a1i 11 . . . . . . . . . . 11 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∈ ℕ)
32nncnd 12068 . . . . . . . . . 10 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∈ ℂ)
4 simpr 485 . . . . . . . . . 10 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑀 ∈ ℕ0)
53, 4expp1d 13944 . . . . . . . . 9 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑(𝑀 + 1)) = ((2↑𝑀) · 2))
62, 4nnexpcld 14039 . . . . . . . . . . 11 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ∈ ℕ)
76nncnd 12068 . . . . . . . . . 10 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ∈ ℂ)
87, 3mulcomd 11075 . . . . . . . . 9 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((2↑𝑀) · 2) = (2 · (2↑𝑀)))
95, 8eqtrd 2776 . . . . . . . 8 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑(𝑀 + 1)) = (2 · (2↑𝑀)))
109oveq2d 7332 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 / (2↑(𝑀 + 1))) = (𝑁 / (2 · (2↑𝑀))))
11 simpl 483 . . . . . . . . 9 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℤ)
1211zcnd 12506 . . . . . . . 8 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℂ)
132nnne0d 12102 . . . . . . . 8 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ≠ 0)
146nnne0d 12102 . . . . . . . 8 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ≠ 0)
1512, 3, 7, 13, 14divdiv1d 11861 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 / 2) / (2↑𝑀)) = (𝑁 / (2 · (2↑𝑀))))
1610, 15eqtr4d 2779 . . . . . 6 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 / (2↑(𝑀 + 1))) = ((𝑁 / 2) / (2↑𝑀)))
1716fveq2d 6815 . . . . 5 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘(𝑁 / (2↑(𝑀 + 1)))) = (⌊‘((𝑁 / 2) / (2↑𝑀))))
1811zred 12505 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℝ)
1918rehalfcld 12299 . . . . . 6 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 / 2) ∈ ℝ)
20 fldiv 13659 . . . . . 6 (((𝑁 / 2) ∈ ℝ ∧ (2↑𝑀) ∈ ℕ) → (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))) = (⌊‘((𝑁 / 2) / (2↑𝑀))))
2119, 6, 20syl2anc 584 . . . . 5 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))) = (⌊‘((𝑁 / 2) / (2↑𝑀))))
2217, 21eqtr4d 2779 . . . 4 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘(𝑁 / (2↑(𝑀 + 1)))) = (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀))))
2322breq2d 5098 . . 3 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2 ∥ (⌊‘(𝑁 / (2↑(𝑀 + 1)))) ↔ 2 ∥ (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀)))))
2423notbid 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))))))
2725, 26sylan2 593 . 2 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑀 + 1) ∈ (bits‘𝑁) ↔ ¬ 2 ∥ (⌊‘(𝑁 / (2↑(𝑀 + 1))))))
2819flcld 13597 . . 3 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (⌊‘(𝑁 / 2)) ∈ ℤ)
29 bitsval2 16208 . . 3 (((⌊‘(𝑁 / 2)) ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑀 ∈ (bits‘(⌊‘(𝑁 / 2))) ↔ ¬ 2 ∥ (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀)))))
3028, 29sylancom 588 . 2 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑀 ∈ (bits‘(⌊‘(𝑁 / 2))) ↔ ¬ 2 ∥ (⌊‘((⌊‘(𝑁 / 2)) / (2↑𝑀)))))
3124, 27, 303bitr4d 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