Metamath Proof Explorer


Theorem bitsinv1lem

Description: Lemma for bitsinv1 . (Contributed by Mario Carneiro, 22-Sep-2016)

Ref Expression
Assertion bitsinv1lem ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) = ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + if ( ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) , ( 2 โ†‘ ๐‘€ ) , 0 ) ) )

Proof

Step Hyp Ref Expression
1 oveq2 โŠข ( ( 2 โ†‘ ๐‘€ ) = if ( ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) , ( 2 โ†‘ ๐‘€ ) , 0 ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + ( 2 โ†‘ ๐‘€ ) ) = ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + if ( ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) , ( 2 โ†‘ ๐‘€ ) , 0 ) ) )
2 1 eqeq2d โŠข ( ( 2 โ†‘ ๐‘€ ) = if ( ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) , ( 2 โ†‘ ๐‘€ ) , 0 ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) = ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + ( 2 โ†‘ ๐‘€ ) ) โ†” ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) = ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + if ( ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) , ( 2 โ†‘ ๐‘€ ) , 0 ) ) ) )
3 oveq2 โŠข ( 0 = if ( ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) , ( 2 โ†‘ ๐‘€ ) , 0 ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + 0 ) = ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + if ( ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) , ( 2 โ†‘ ๐‘€ ) , 0 ) ) )
4 3 eqeq2d โŠข ( 0 = if ( ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) , ( 2 โ†‘ ๐‘€ ) , 0 ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) = ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + 0 ) โ†” ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) = ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + if ( ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) , ( 2 โ†‘ ๐‘€ ) , 0 ) ) ) )
5 simpl โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ๐‘ โˆˆ โ„ค )
6 2nn โŠข 2 โˆˆ โ„•
7 6 a1i โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 2 โˆˆ โ„• )
8 simpr โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ๐‘€ โˆˆ โ„•0 )
9 7 8 nnexpcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ๐‘€ ) โˆˆ โ„• )
10 5 9 zmodcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„•0 )
11 10 nn0cnd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„‚ )
12 11 adantr โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„‚ )
13 1nn0 โŠข 1 โˆˆ โ„•0
14 13 a1i โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 1 โˆˆ โ„•0 )
15 8 14 nn0addcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘€ + 1 ) โˆˆ โ„•0 )
16 7 15 nnexpcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ( ๐‘€ + 1 ) ) โˆˆ โ„• )
17 5 16 zmodcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆˆ โ„•0 )
18 17 nn0cnd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆˆ โ„‚ )
19 18 adantr โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆˆ โ„‚ )
20 12 19 pncan3d โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) ) = ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) )
21 18 11 subcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) โˆˆ โ„‚ )
22 21 adantr โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) โˆˆ โ„‚ )
23 6 a1i โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ 2 โˆˆ โ„• )
24 simplr โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ๐‘€ โˆˆ โ„•0 )
25 23 24 nnexpcld โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( 2 โ†‘ ๐‘€ ) โˆˆ โ„• )
26 25 nncnd โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( 2 โ†‘ ๐‘€ ) โˆˆ โ„‚ )
27 2cnd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 2 โˆˆ โ„‚ )
28 2ne0 โŠข 2 โ‰  0
29 28 a1i โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 2 โ‰  0 )
30 8 nn0zd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ๐‘€ โˆˆ โ„ค )
31 27 29 30 expne0d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ๐‘€ ) โ‰  0 )
32 31 adantr โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( 2 โ†‘ ๐‘€ ) โ‰  0 )
33 z0even โŠข 2 โˆฅ 0
34 id โŠข ( ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 0 โ†’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 0 )
35 33 34 breqtrrid โŠข ( ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 0 โ†’ 2 โˆฅ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) )
36 bitsval2 โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) โ†” ยฌ 2 โˆฅ ( โŒŠ โ€˜ ( ๐‘ / ( 2 โ†‘ ๐‘€ ) ) ) ) )
37 5 zred โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ๐‘ โˆˆ โ„ )
38 9 nnrpd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ๐‘€ ) โˆˆ โ„+ )
39 moddiffl โŠข ( ( ๐‘ โˆˆ โ„ โˆง ( 2 โ†‘ ๐‘€ ) โˆˆ โ„+ ) โ†’ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = ( โŒŠ โ€˜ ( ๐‘ / ( 2 โ†‘ ๐‘€ ) ) ) )
40 37 38 39 syl2anc โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = ( โŒŠ โ€˜ ( ๐‘ / ( 2 โ†‘ ๐‘€ ) ) ) )
41 40 breq2d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โˆฅ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โ†” 2 โˆฅ ( โŒŠ โ€˜ ( ๐‘ / ( 2 โ†‘ ๐‘€ ) ) ) ) )
42 2z โŠข 2 โˆˆ โ„ค
43 42 a1i โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 2 โˆˆ โ„ค )
44 moddifz โŠข ( ( ๐‘ โˆˆ โ„ โˆง ( 2 โ†‘ ๐‘€ ) โˆˆ โ„+ ) โ†’ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„ค )
45 37 38 44 syl2anc โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„ค )
46 5 zcnd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ๐‘ โˆˆ โ„‚ )
47 46 11 18 nnncan1d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) โˆ’ ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) ) = ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) )
48 47 oveq1d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) โˆ’ ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) )
49 46 11 subcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) โˆˆ โ„‚ )
50 46 18 subcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) โˆˆ โ„‚ )
51 9 nncnd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ๐‘€ ) โˆˆ โ„‚ )
52 49 50 51 31 divsubdird โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) โˆ’ ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆ’ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) )
53 48 52 eqtr3d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆ’ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) )
54 27 50 mulcomd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 ยท ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) ) = ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) ยท 2 ) )
55 27 51 mulcomd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 ยท ( 2 โ†‘ ๐‘€ ) ) = ( ( 2 โ†‘ ๐‘€ ) ยท 2 ) )
56 27 8 expp1d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ( ๐‘€ + 1 ) ) = ( ( 2 โ†‘ ๐‘€ ) ยท 2 ) )
57 55 56 eqtr4d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 ยท ( 2 โ†‘ ๐‘€ ) ) = ( 2 โ†‘ ( ๐‘€ + 1 ) ) )
58 54 57 oveq12d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( 2 ยท ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) ) / ( 2 ยท ( 2 โ†‘ ๐‘€ ) ) ) = ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) ยท 2 ) / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) )
59 50 51 27 31 29 divcan5d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( 2 ยท ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) ) / ( 2 ยท ( 2 โ†‘ ๐‘€ ) ) ) = ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ๐‘€ ) ) )
60 16 nncnd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ( ๐‘€ + 1 ) ) โˆˆ โ„‚ )
61 30 peano2zd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘€ + 1 ) โˆˆ โ„ค )
62 27 29 61 expne0d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ( ๐‘€ + 1 ) ) โ‰  0 )
63 50 27 60 62 div23d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) ยท 2 ) / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) = ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ยท 2 ) )
64 58 59 63 3eqtr3d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ยท 2 ) )
65 16 nnrpd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ( ๐‘€ + 1 ) ) โˆˆ โ„+ )
66 moddifz โŠข ( ( ๐‘ โˆˆ โ„ โˆง ( 2 โ†‘ ( ๐‘€ + 1 ) ) โˆˆ โ„+ ) โ†’ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆˆ โ„ค )
67 37 65 66 syl2anc โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆˆ โ„ค )
68 67 43 zmulcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ยท 2 ) โˆˆ โ„ค )
69 64 68 eqeltrd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„ค )
70 45 69 zsubcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆ’ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) โˆˆ โ„ค )
71 53 70 eqeltrd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„ค )
72 dvdsmul2 โŠข ( ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆˆ โ„ค โˆง 2 โˆˆ โ„ค ) โ†’ 2 โˆฅ ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ยท 2 ) )
73 67 43 72 syl2anc โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 2 โˆฅ ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ยท 2 ) )
74 46 18 11 nnncan2d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) โˆ’ ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) ) = ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) )
75 74 oveq1d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) โˆ’ ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ๐‘€ ) ) )
76 49 21 51 31 divsubdird โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) โˆ’ ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆ’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) )
77 75 76 64 3eqtr3d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆ’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) = ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) / ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ยท 2 ) )
78 73 77 breqtrrd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 2 โˆฅ ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆ’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) )
79 dvdssub2 โŠข ( ( ( 2 โˆˆ โ„ค โˆง ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„ค โˆง ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„ค ) โˆง 2 โˆฅ ( ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆ’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) ) โ†’ ( 2 โˆฅ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โ†” 2 โˆฅ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) )
80 43 45 71 78 79 syl31anc โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โˆฅ ( ( ๐‘ โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โ†” 2 โˆฅ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) )
81 41 80 bitr3d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โˆฅ ( โŒŠ โ€˜ ( ๐‘ / ( 2 โ†‘ ๐‘€ ) ) ) โ†” 2 โˆฅ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) )
82 81 notbid โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ยฌ 2 โˆฅ ( โŒŠ โ€˜ ( ๐‘ / ( 2 โ†‘ ๐‘€ ) ) ) โ†” ยฌ 2 โˆฅ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) )
83 36 82 bitrd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) โ†” ยฌ 2 โˆฅ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) )
84 83 con2bid โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โˆฅ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โ†” ยฌ ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) )
85 35 84 imbitrid โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 0 โ†’ ยฌ ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) )
86 85 con2d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) โ†’ ยฌ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 0 ) )
87 df-neg โŠข - 1 = ( 0 โˆ’ 1 )
88 51 mulm1d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( - 1 ยท ( 2 โ†‘ ๐‘€ ) ) = - ( 2 โ†‘ ๐‘€ ) )
89 9 nnred โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ๐‘€ ) โˆˆ โ„ )
90 89 renegcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ - ( 2 โ†‘ ๐‘€ ) โˆˆ โ„ )
91 37 38 modcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„ )
92 91 renegcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ - ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„ )
93 37 65 modcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆˆ โ„ )
94 93 91 resubcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) โˆˆ โ„ )
95 modlt โŠข ( ( ๐‘ โˆˆ โ„ โˆง ( 2 โ†‘ ๐‘€ ) โˆˆ โ„+ ) โ†’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) < ( 2 โ†‘ ๐‘€ ) )
96 37 38 95 syl2anc โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) < ( 2 โ†‘ ๐‘€ ) )
97 91 89 ltnegd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) < ( 2 โ†‘ ๐‘€ ) โ†” - ( 2 โ†‘ ๐‘€ ) < - ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) )
98 96 97 mpbid โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ - ( 2 โ†‘ ๐‘€ ) < - ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) )
99 df-neg โŠข - ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) = ( 0 โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) )
100 0red โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 0 โˆˆ โ„ )
101 modge0 โŠข ( ( ๐‘ โˆˆ โ„ โˆง ( 2 โ†‘ ( ๐‘€ + 1 ) ) โˆˆ โ„+ ) โ†’ 0 โ‰ค ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) )
102 37 65 101 syl2anc โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 0 โ‰ค ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) )
103 100 93 91 102 lesub1dd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 0 โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) โ‰ค ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) )
104 99 103 eqbrtrid โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ - ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) โ‰ค ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) )
105 90 92 94 98 104 ltletrd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ - ( 2 โ†‘ ๐‘€ ) < ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) )
106 88 105 eqbrtrd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( - 1 ยท ( 2 โ†‘ ๐‘€ ) ) < ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) )
107 1red โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 1 โˆˆ โ„ )
108 107 renegcld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ - 1 โˆˆ โ„ )
109 108 94 38 ltmuldivd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( - 1 ยท ( 2 โ†‘ ๐‘€ ) ) < ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) โ†” - 1 < ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) )
110 106 109 mpbid โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ - 1 < ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) )
111 87 110 eqbrtrrid โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 0 โˆ’ 1 ) < ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) )
112 0zd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 0 โˆˆ โ„ค )
113 zlem1lt โŠข ( ( 0 โˆˆ โ„ค โˆง ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„ค ) โ†’ ( 0 โ‰ค ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โ†” ( 0 โˆ’ 1 ) < ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) )
114 112 71 113 syl2anc โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 0 โ‰ค ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โ†” ( 0 โˆ’ 1 ) < ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) )
115 111 114 mpbird โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 0 โ‰ค ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) )
116 elnn0z โŠข ( ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„•0 โ†” ( ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„ค โˆง 0 โ‰ค ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) )
117 71 115 116 sylanbrc โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„•0 )
118 nn0uz โŠข โ„•0 = ( โ„คโ‰ฅ โ€˜ 0 )
119 117 118 eleqtrdi โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ ( โ„คโ‰ฅ โ€˜ 0 ) )
120 16 nnred โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ( ๐‘€ + 1 ) ) โˆˆ โ„ )
121 modge0 โŠข ( ( ๐‘ โˆˆ โ„ โˆง ( 2 โ†‘ ๐‘€ ) โˆˆ โ„+ ) โ†’ 0 โ‰ค ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) )
122 37 38 121 syl2anc โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 0 โ‰ค ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) )
123 93 91 subge02d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( 0 โ‰ค ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) โ†” ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) โ‰ค ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) ) )
124 122 123 mpbid โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) โ‰ค ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) )
125 modlt โŠข ( ( ๐‘ โˆˆ โ„ โˆง ( 2 โ†‘ ( ๐‘€ + 1 ) ) โˆˆ โ„+ ) โ†’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) < ( 2 โ†‘ ( ๐‘€ + 1 ) ) )
126 37 65 125 syl2anc โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) < ( 2 โ†‘ ( ๐‘€ + 1 ) ) )
127 94 93 120 124 126 lelttrd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) < ( 2 โ†‘ ( ๐‘€ + 1 ) ) )
128 127 56 breqtrd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) < ( ( 2 โ†‘ ๐‘€ ) ยท 2 ) )
129 7 nnred โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ 2 โˆˆ โ„ )
130 94 129 38 ltdivmuld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) < 2 โ†” ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) < ( ( 2 โ†‘ ๐‘€ ) ยท 2 ) ) )
131 128 130 mpbird โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) < 2 )
132 elfzo2 โŠข ( ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ ( 0 ..^ 2 ) โ†” ( ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ ( โ„คโ‰ฅ โ€˜ 0 ) โˆง 2 โˆˆ โ„ค โˆง ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) < 2 ) )
133 119 43 131 132 syl3anbrc โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ ( 0 ..^ 2 ) )
134 fzo0to2pr โŠข ( 0 ..^ 2 ) = { 0 , 1 }
135 133 134 eleqtrdi โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ { 0 , 1 } )
136 elpri โŠข ( ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โˆˆ { 0 , 1 } โ†’ ( ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 0 โˆจ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 1 ) )
137 135 136 syl โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 0 โˆจ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 1 ) )
138 137 ord โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ยฌ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 0 โ†’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 1 ) )
139 86 138 syld โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) โ†’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 1 ) )
140 139 imp โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 1 )
141 22 26 32 140 diveq1d โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) = ( 2 โ†‘ ๐‘€ ) )
142 141 oveq2d โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) ) = ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + ( 2 โ†‘ ๐‘€ ) ) )
143 20 142 eqtr3d โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) = ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + ( 2 โ†‘ ๐‘€ ) ) )
144 18 adantr โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ยฌ ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆˆ โ„‚ )
145 11 adantr โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ยฌ ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) โˆˆ โ„‚ )
146 21 adantr โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ยฌ ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) โˆˆ โ„‚ )
147 51 adantr โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ยฌ ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( 2 โ†‘ ๐‘€ ) โˆˆ โ„‚ )
148 31 adantr โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ยฌ ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( 2 โ†‘ ๐‘€ ) โ‰  0 )
149 n2dvds1 โŠข ยฌ 2 โˆฅ 1
150 breq2 โŠข ( ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 1 โ†’ ( 2 โˆฅ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) โ†” 2 โˆฅ 1 ) )
151 149 150 mtbiri โŠข ( ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 1 โ†’ ยฌ 2 โˆฅ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) )
152 138 151 syl6 โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ยฌ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 0 โ†’ ยฌ 2 โˆฅ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) ) )
153 152 83 sylibrd โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ยฌ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 0 โ†’ ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) )
154 153 con1d โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ยฌ ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) โ†’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 0 ) )
155 154 imp โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ยฌ ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) / ( 2 โ†‘ ๐‘€ ) ) = 0 )
156 146 147 148 155 diveq0d โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ยฌ ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) โˆ’ ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) ) = 0 )
157 144 145 156 subeq0d โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ยฌ ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) = ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) )
158 145 addridd โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ยฌ ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + 0 ) = ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) )
159 157 158 eqtr4d โŠข ( ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โˆง ยฌ ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) ) โ†’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) = ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + 0 ) )
160 2 4 143 159 ifbothda โŠข ( ( ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„•0 ) โ†’ ( ๐‘ mod ( 2 โ†‘ ( ๐‘€ + 1 ) ) ) = ( ( ๐‘ mod ( 2 โ†‘ ๐‘€ ) ) + if ( ๐‘€ โˆˆ ( bits โ€˜ ๐‘ ) , ( 2 โ†‘ ๐‘€ ) , 0 ) ) )