Metamath Proof Explorer


Theorem bitsp1

Description: The M + 1 -th bit of N is the M -th bit of |_ ( N / 2 ) . (Contributed by Mario Carneiro, 5-Sep-2016)

Ref Expression
Assertion bitsp1 ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘€ + 1 ) โˆˆ ( bits โ€˜ ๐‘ ) โ†” ๐‘€ โˆˆ ( bits โ€˜ ( โŒŠ โ€˜ ( ๐‘ / 2 ) ) ) ) )

Proof

Step Hyp Ref Expression
1 2nn โŠข 2 โˆˆ โ„•
2 1 a1i โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 2 โˆˆ โ„• )
3 2 nncnd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 2 โˆˆ โ„‚ )
4 simpr โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ๐‘€ โˆˆ โ„•0 )
5 3 4 expp1d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ( ๐‘€ + 1 ) ) = ( ( 2 โ†‘ ๐‘€ ) ยท 2 ) )
6 2 4 nnexpcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ๐‘€ ) โˆˆ โ„• )
7 6 nncnd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ๐‘€ ) โˆˆ โ„‚ )
8 7 3 mulcomd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( 2 โ†‘ ๐‘€ ) ยท 2 ) = ( 2 ยท ( 2 โ†‘ ๐‘€ ) ) )
9 5 8 eqtrd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ( ๐‘€ + 1 ) ) = ( 2 ยท ( 2 โ†‘ ๐‘€ ) ) )
10 9 oveq2d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘ / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) = ( ๐‘ / ( 2 ยท ( 2 โ†‘ ๐‘€ ) ) ) )
11 simpl โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ๐‘ โˆˆ โ„ค )
12 11 zcnd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ๐‘ โˆˆ โ„‚ )
13 2 nnne0d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 2 โ‰  0 )
14 6 nnne0d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ๐‘€ ) โ‰  0 )
15 12 3 7 13 14 divdiv1d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘ / 2 ) / ( 2 โ†‘ ๐‘€ ) ) = ( ๐‘ / ( 2 ยท ( 2 โ†‘ ๐‘€ ) ) ) )
16 10 15 eqtr4d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘ / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) = ( ( ๐‘ / 2 ) / ( 2 โ†‘ ๐‘€ ) ) )
17 16 fveq2d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( โŒŠ โ€˜ ( ๐‘ / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) = ( โŒŠ โ€˜ ( ( ๐‘ / 2 ) / ( 2 โ†‘ ๐‘€ ) ) ) )
18 11 zred โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ๐‘ โˆˆ โ„ )
19 18 rehalfcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘ / 2 ) โˆˆ โ„ )
20 fldiv โŠข ( ( ( ๐‘ / 2 ) โˆˆ โ„ โˆง ( 2 โ†‘ ๐‘€ ) โˆˆ โ„• ) โ†’ ( โŒŠ โ€˜ ( ( โŒŠ โ€˜ ( ๐‘ / 2 ) ) / ( 2 โ†‘ ๐‘€ ) ) ) = ( โŒŠ โ€˜ ( ( ๐‘ / 2 ) / ( 2 โ†‘ ๐‘€ ) ) ) )
21 19 6 20 syl2anc โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( โŒŠ โ€˜ ( ( โŒŠ โ€˜ ( ๐‘ / 2 ) ) / ( 2 โ†‘ ๐‘€ ) ) ) = ( โŒŠ โ€˜ ( ( ๐‘ / 2 ) / ( 2 โ†‘ ๐‘€ ) ) ) )
22 17 21 eqtr4d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( โŒŠ โ€˜ ( ๐‘ / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) = ( โŒŠ โ€˜ ( ( โŒŠ โ€˜ ( ๐‘ / 2 ) ) / ( 2 โ†‘ ๐‘€ ) ) ) )
23 22 breq2d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โˆฅ ( โŒŠ โ€˜ ( ๐‘ / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) โ†” 2 โˆฅ ( โŒŠ โ€˜ ( ( โŒŠ โ€˜ ( ๐‘ / 2 ) ) / ( 2 โ†‘ ๐‘€ ) ) ) ) )
24 23 notbid โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ยฌ 2 โˆฅ ( โŒŠ โ€˜ ( ๐‘ / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) โ†” ยฌ 2 โˆฅ ( โŒŠ โ€˜ ( ( โŒŠ โ€˜ ( ๐‘ / 2 ) ) / ( 2 โ†‘ ๐‘€ ) ) ) ) )
25 peano2nn0 โŠข ( ๐‘€ โˆˆ โ„•0 โ†’ ( ๐‘€ + 1 ) โˆˆ โ„•0 )
26 bitsval2 โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ( ๐‘€ + 1 ) โˆˆ โ„•0 ) โ†’ ( ( ๐‘€ + 1 ) โˆˆ ( bits โ€˜ ๐‘ ) โ†” ยฌ 2 โˆฅ ( โŒŠ โ€˜ ( ๐‘ / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) ) )
27 25 26 sylan2 โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘€ + 1 ) โˆˆ ( bits โ€˜ ๐‘ ) โ†” ยฌ 2 โˆฅ ( โŒŠ โ€˜ ( ๐‘ / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) ) )
28 19 flcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( โŒŠ โ€˜ ( ๐‘ / 2 ) ) โˆˆ โ„ค )
29 bitsval2 โŠข ( ( ( โŒŠ โ€˜ ( ๐‘ / 2 ) ) โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘€ โˆˆ ( bits โ€˜ ( โŒŠ โ€˜ ( ๐‘ / 2 ) ) ) โ†” ยฌ 2 โˆฅ ( โŒŠ โ€˜ ( ( โŒŠ โ€˜ ( ๐‘ / 2 ) ) / ( 2 โ†‘ ๐‘€ ) ) ) ) )
30 28 29 sylancom โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘€ โˆˆ ( bits โ€˜ ( โŒŠ โ€˜ ( ๐‘ / 2 ) ) ) โ†” ยฌ 2 โˆฅ ( โŒŠ โ€˜ ( ( โŒŠ โ€˜ ( ๐‘ / 2 ) ) / ( 2 โ†‘ ๐‘€ ) ) ) ) )
31 24 27 30 3bitr4d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘€ + 1 ) โˆˆ ( bits โ€˜ ๐‘ ) โ†” ๐‘€ โˆˆ ( bits โ€˜ ( โŒŠ โ€˜ ( ๐‘ / 2 ) ) ) ) )