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

Theorem bitsshft 16459
Description: Shifting a bit sequence to the left (toward the more significant bits) causes the number to be multiplied by a power of two. (Contributed by Mario Carneiro, 22-Sep-2016.)
Assertion
Ref Expression
bitsshft ((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) β†’ {𝑛 ∈ β„•0 ∣ (𝑛 βˆ’ 𝑁) ∈ (bitsβ€˜π΄)} = (bitsβ€˜(𝐴 Β· (2↑𝑁))))
Distinct variable groups:   𝐴,𝑛   𝑛,𝑁

Proof of Theorem bitsshft
StepHypRef Expression
1 simpll 765 . . . . . . . 8 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ 𝑛 ∈ β„•0) β†’ 𝐴 ∈ β„€)
2 2nn 12325 . . . . . . . . . . 11 2 ∈ β„•
32a1i 11 . . . . . . . . . 10 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ 𝑛 ∈ β„•0) β†’ 2 ∈ β„•)
4 simplr 767 . . . . . . . . . 10 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ 𝑛 ∈ β„•0) β†’ 𝑁 ∈ β„•0)
53, 4nnexpcld 14249 . . . . . . . . 9 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ 𝑛 ∈ β„•0) β†’ (2↑𝑁) ∈ β„•)
65nnzd 12625 . . . . . . . 8 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ 𝑛 ∈ β„•0) β†’ (2↑𝑁) ∈ β„€)
7 dvdsmul2 16265 . . . . . . . 8 ((𝐴 ∈ β„€ ∧ (2↑𝑁) ∈ β„€) β†’ (2↑𝑁) βˆ₯ (𝐴 Β· (2↑𝑁)))
81, 6, 7syl2anc 582 . . . . . . 7 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ 𝑛 ∈ β„•0) β†’ (2↑𝑁) βˆ₯ (𝐴 Β· (2↑𝑁)))
91, 6zmulcld 12712 . . . . . . . 8 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ 𝑛 ∈ β„•0) β†’ (𝐴 Β· (2↑𝑁)) ∈ β„€)
10 bitsuz 16458 . . . . . . . 8 (((𝐴 Β· (2↑𝑁)) ∈ β„€ ∧ 𝑁 ∈ β„•0) β†’ ((2↑𝑁) βˆ₯ (𝐴 Β· (2↑𝑁)) ↔ (bitsβ€˜(𝐴 Β· (2↑𝑁))) βŠ† (β„€β‰₯β€˜π‘)))
119, 4, 10syl2anc 582 . . . . . . 7 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ 𝑛 ∈ β„•0) β†’ ((2↑𝑁) βˆ₯ (𝐴 Β· (2↑𝑁)) ↔ (bitsβ€˜(𝐴 Β· (2↑𝑁))) βŠ† (β„€β‰₯β€˜π‘)))
128, 11mpbid 231 . . . . . 6 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ 𝑛 ∈ β„•0) β†’ (bitsβ€˜(𝐴 Β· (2↑𝑁))) βŠ† (β„€β‰₯β€˜π‘))
1312sseld 3981 . . . . 5 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ 𝑛 ∈ β„•0) β†’ (𝑛 ∈ (bitsβ€˜(𝐴 Β· (2↑𝑁))) β†’ 𝑛 ∈ (β„€β‰₯β€˜π‘)))
14 uznn0sub 12901 . . . . 5 (𝑛 ∈ (β„€β‰₯β€˜π‘) β†’ (𝑛 βˆ’ 𝑁) ∈ β„•0)
1513, 14syl6 35 . . . 4 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ 𝑛 ∈ β„•0) β†’ (𝑛 ∈ (bitsβ€˜(𝐴 Β· (2↑𝑁))) β†’ (𝑛 βˆ’ 𝑁) ∈ β„•0))
16 bitsss 16410 . . . . . 6 (bitsβ€˜π΄) βŠ† β„•0
1716a1i 11 . . . . 5 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ 𝑛 ∈ β„•0) β†’ (bitsβ€˜π΄) βŠ† β„•0)
1817sseld 3981 . . . 4 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ 𝑛 ∈ β„•0) β†’ ((𝑛 βˆ’ 𝑁) ∈ (bitsβ€˜π΄) β†’ (𝑛 βˆ’ 𝑁) ∈ β„•0))
19 2cnd 12330 . . . . . . . . . . . 12 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ 2 ∈ β„‚)
202a1i 11 . . . . . . . . . . . . 13 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ 2 ∈ β„•)
2120nnne0d 12302 . . . . . . . . . . . 12 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ 2 β‰  0)
22 simplr 767 . . . . . . . . . . . . 13 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ 𝑁 ∈ β„•0)
2322nn0zd 12624 . . . . . . . . . . . 12 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ 𝑁 ∈ β„€)
24 simprl 769 . . . . . . . . . . . . 13 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ 𝑛 ∈ β„•0)
2524nn0zd 12624 . . . . . . . . . . . 12 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ 𝑛 ∈ β„€)
2619, 21, 23, 25expsubd 14163 . . . . . . . . . . 11 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ (2↑(𝑛 βˆ’ 𝑁)) = ((2↑𝑛) / (2↑𝑁)))
2726oveq2d 7442 . . . . . . . . . 10 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ (𝐴 / (2↑(𝑛 βˆ’ 𝑁))) = (𝐴 / ((2↑𝑛) / (2↑𝑁))))
28 simpl 481 . . . . . . . . . . . . 13 ((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) β†’ 𝐴 ∈ β„€)
2928zcnd 12707 . . . . . . . . . . . 12 ((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) β†’ 𝐴 ∈ β„‚)
3029adantr 479 . . . . . . . . . . 11 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ 𝐴 ∈ β„‚)
3120, 24nnexpcld 14249 . . . . . . . . . . . 12 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ (2↑𝑛) ∈ β„•)
3231nncnd 12268 . . . . . . . . . . 11 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ (2↑𝑛) ∈ β„‚)
3320, 22nnexpcld 14249 . . . . . . . . . . . 12 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ (2↑𝑁) ∈ β„•)
3433nncnd 12268 . . . . . . . . . . 11 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ (2↑𝑁) ∈ β„‚)
3531nnne0d 12302 . . . . . . . . . . 11 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ (2↑𝑛) β‰  0)
3633nnne0d 12302 . . . . . . . . . . 11 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ (2↑𝑁) β‰  0)
3730, 32, 34, 35, 36divdiv2d 12062 . . . . . . . . . 10 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ (𝐴 / ((2↑𝑛) / (2↑𝑁))) = ((𝐴 Β· (2↑𝑁)) / (2↑𝑛)))
3827, 37eqtr2d 2769 . . . . . . . . 9 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ ((𝐴 Β· (2↑𝑁)) / (2↑𝑛)) = (𝐴 / (2↑(𝑛 βˆ’ 𝑁))))
3938fveq2d 6906 . . . . . . . 8 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ (βŒŠβ€˜((𝐴 Β· (2↑𝑁)) / (2↑𝑛))) = (βŒŠβ€˜(𝐴 / (2↑(𝑛 βˆ’ 𝑁)))))
4039breq2d 5164 . . . . . . 7 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ (2 βˆ₯ (βŒŠβ€˜((𝐴 Β· (2↑𝑁)) / (2↑𝑛))) ↔ 2 βˆ₯ (βŒŠβ€˜(𝐴 / (2↑(𝑛 βˆ’ 𝑁))))))
4140notbid 317 . . . . . 6 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ (Β¬ 2 βˆ₯ (βŒŠβ€˜((𝐴 Β· (2↑𝑁)) / (2↑𝑛))) ↔ Β¬ 2 βˆ₯ (βŒŠβ€˜(𝐴 / (2↑(𝑛 βˆ’ 𝑁))))))
429adantrr 715 . . . . . . 7 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ (𝐴 Β· (2↑𝑁)) ∈ β„€)
43 bitsval2 16409 . . . . . . 7 (((𝐴 Β· (2↑𝑁)) ∈ β„€ ∧ 𝑛 ∈ β„•0) β†’ (𝑛 ∈ (bitsβ€˜(𝐴 Β· (2↑𝑁))) ↔ Β¬ 2 βˆ₯ (βŒŠβ€˜((𝐴 Β· (2↑𝑁)) / (2↑𝑛)))))
4442, 24, 43syl2anc 582 . . . . . 6 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ (𝑛 ∈ (bitsβ€˜(𝐴 Β· (2↑𝑁))) ↔ Β¬ 2 βˆ₯ (βŒŠβ€˜((𝐴 Β· (2↑𝑁)) / (2↑𝑛)))))
45 bitsval2 16409 . . . . . . 7 ((𝐴 ∈ β„€ ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0) β†’ ((𝑛 βˆ’ 𝑁) ∈ (bitsβ€˜π΄) ↔ Β¬ 2 βˆ₯ (βŒŠβ€˜(𝐴 / (2↑(𝑛 βˆ’ 𝑁))))))
4645ad2ant2rl 747 . . . . . 6 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ ((𝑛 βˆ’ 𝑁) ∈ (bitsβ€˜π΄) ↔ Β¬ 2 βˆ₯ (βŒŠβ€˜(𝐴 / (2↑(𝑛 βˆ’ 𝑁))))))
4741, 44, 463bitr4d 310 . . . . 5 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ (𝑛 ∈ β„•0 ∧ (𝑛 βˆ’ 𝑁) ∈ β„•0)) β†’ (𝑛 ∈ (bitsβ€˜(𝐴 Β· (2↑𝑁))) ↔ (𝑛 βˆ’ 𝑁) ∈ (bitsβ€˜π΄)))
4847expr 455 . . . 4 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ 𝑛 ∈ β„•0) β†’ ((𝑛 βˆ’ 𝑁) ∈ β„•0 β†’ (𝑛 ∈ (bitsβ€˜(𝐴 Β· (2↑𝑁))) ↔ (𝑛 βˆ’ 𝑁) ∈ (bitsβ€˜π΄))))
4915, 18, 48pm5.21ndd 378 . . 3 (((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) ∧ 𝑛 ∈ β„•0) β†’ (𝑛 ∈ (bitsβ€˜(𝐴 Β· (2↑𝑁))) ↔ (𝑛 βˆ’ 𝑁) ∈ (bitsβ€˜π΄)))
5049rabbi2dva 4220 . 2 ((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) β†’ (β„•0 ∩ (bitsβ€˜(𝐴 Β· (2↑𝑁)))) = {𝑛 ∈ β„•0 ∣ (𝑛 βˆ’ 𝑁) ∈ (bitsβ€˜π΄)})
51 bitsss 16410 . . 3 (bitsβ€˜(𝐴 Β· (2↑𝑁))) βŠ† β„•0
52 sseqin2 4217 . . 3 ((bitsβ€˜(𝐴 Β· (2↑𝑁))) βŠ† β„•0 ↔ (β„•0 ∩ (bitsβ€˜(𝐴 Β· (2↑𝑁)))) = (bitsβ€˜(𝐴 Β· (2↑𝑁))))
5351, 52mpbi 229 . 2 (β„•0 ∩ (bitsβ€˜(𝐴 Β· (2↑𝑁)))) = (bitsβ€˜(𝐴 Β· (2↑𝑁)))
5450, 53eqtr3di 2783 1 ((𝐴 ∈ β„€ ∧ 𝑁 ∈ β„•0) β†’ {𝑛 ∈ β„•0 ∣ (𝑛 βˆ’ 𝑁) ∈ (bitsβ€˜π΄)} = (bitsβ€˜(𝐴 Β· (2↑𝑁))))
Colors of variables: wff setvar class
Syntax hints:  Β¬ wn 3   β†’ wi 4   ↔ wb 205   ∧ wa 394   = wceq 1533   ∈ wcel 2098  {crab 3430   ∩ cin 3948   βŠ† wss 3949   class class class wbr 5152  β€˜cfv 6553  (class class class)co 7426  β„‚cc 11146   Β· cmul 11153   βˆ’ cmin 11484   / cdiv 11911  β„•cn 12252  2c2 12307  β„•0cn0 12512  β„€cz 12598  β„€β‰₯cuz 12862  βŒŠcfl 13797  β†‘cexp 14068   βˆ₯ cdvds 16240  bitscbits 16403
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1789  ax-4 1803  ax-5 1905  ax-6 1963  ax-7 2003  ax-8 2100  ax-9 2108  ax-10 2129  ax-11 2146  ax-12 2166  ax-ext 2699  ax-rep 5289  ax-sep 5303  ax-nul 5310  ax-pow 5369  ax-pr 5433  ax-un 7748  ax-inf2 9674  ax-cnex 11204  ax-resscn 11205  ax-1cn 11206  ax-icn 11207  ax-addcl 11208  ax-addrcl 11209  ax-mulcl 11210  ax-mulrcl 11211  ax-mulcom 11212  ax-addass 11213  ax-mulass 11214  ax-distr 11215  ax-i2m1 11216  ax-1ne0 11217  ax-1rid 11218  ax-rnegex 11219  ax-rrecex 11220  ax-cnre 11221  ax-pre-lttri 11222  ax-pre-lttrn 11223  ax-pre-ltadd 11224  ax-pre-mulgt0 11225  ax-pre-sup 11226
This theorem depends on definitions:  df-bi 206  df-an 395  df-or 846  df-3or 1085  df-3an 1086  df-xor 1505  df-tru 1536  df-fal 1546  df-had 1587  df-cad 1600  df-ex 1774  df-nf 1778  df-sb 2060  df-mo 2529  df-eu 2558  df-clab 2706  df-cleq 2720  df-clel 2806  df-nfc 2881  df-ne 2938  df-nel 3044  df-ral 3059  df-rex 3068  df-rmo 3374  df-reu 3375  df-rab 3431  df-v 3475  df-sbc 3779  df-csb 3895  df-dif 3952  df-un 3954  df-in 3956  df-ss 3966  df-pss 3968  df-nul 4327  df-if 4533  df-pw 4608  df-sn 4633  df-pr 4635  df-op 4639  df-uni 4913  df-int 4954  df-iun 5002  df-disj 5118  df-br 5153  df-opab 5215  df-mpt 5236  df-tr 5270  df-id 5580  df-eprel 5586  df-po 5594  df-so 5595  df-fr 5637  df-se 5638  df-we 5639  df-xp 5688  df-rel 5689  df-cnv 5690  df-co 5691  df-dm 5692  df-rn 5693  df-res 5694  df-ima 5695  df-pred 6310  df-ord 6377  df-on 6378  df-lim 6379  df-suc 6380  df-iota 6505  df-fun 6555  df-fn 6556  df-f 6557  df-f1 6558  df-fo 6559  df-f1o 6560  df-fv 6561  df-isom 6562  df-riota 7382  df-ov 7429  df-oprab 7430  df-mpo 7431  df-om 7879  df-1st 8001  df-2nd 8002  df-frecs 8295  df-wrecs 8326  df-recs 8400  df-rdg 8439  df-1o 8495  df-2o 8496  df-oadd 8499  df-er 8733  df-map 8855  df-pm 8856  df-en 8973  df-dom 8974  df-sdom 8975  df-fin 8976  df-sup 9475  df-inf 9476  df-oi 9543  df-dju 9934  df-card 9972  df-pnf 11290  df-mnf 11291  df-xr 11292  df-ltxr 11293  df-le 11294  df-sub 11486  df-neg 11487  df-div 11912  df-nn 12253  df-2 12315  df-3 12316  df-n0 12513  df-xnn0 12585  df-z 12599  df-uz 12863  df-rp 13017  df-fz 13527  df-fzo 13670  df-fl 13799  df-mod 13877  df-seq 14009  df-exp 14069  df-hash 14332  df-cj 15088  df-re 15089  df-im 15090  df-sqrt 15224  df-abs 15225  df-clim 15474  df-sum 15675  df-dvds 16241  df-bits 16406  df-sad 16435
This theorem is referenced by:  smumullem  16476
  Copyright terms: Public domain W3C validator