Metamath Proof Explorer


Theorem fllog2

Description: The floor of the binary logarithm of 2 to the power of an element of a half-open integer interval bounded by powers of 2 is equal to the integer. (Contributed by AV, 31-May-2020)

Ref Expression
Assertion fllog2 I 0 N 2 I ..^ 2 I + 1 log 2 N = I

Proof

Step Hyp Ref Expression
1 nn0z I 0 I
2 1 adantr I 0 N 2 I ..^ 2 I + 1 I
3 2rp 2 +
4 elfzoelz N 2 I ..^ 2 I + 1 N
5 4 zred N 2 I ..^ 2 I + 1 N
6 5 adantl I 0 N 2 I ..^ 2 I + 1 N
7 elfzo2 N 2 I ..^ 2 I + 1 N 2 I 2 I + 1 N < 2 I + 1
8 eluz2 N 2 I 2 I N 2 I N
9 2re 2
10 2pos 0 < 2
11 10 a1i I 0 0 < 2
12 expgt0 2 I 0 < 2 0 < 2 I
13 9 1 11 12 mp3an2i I 0 0 < 2 I
14 13 adantl 2 I N I 0 0 < 2 I
15 0red 2 I N I 0 0
16 zre 2 I 2 I
17 16 adantr 2 I N 2 I
18 17 adantr 2 I N I 0 2 I
19 zre N N
20 19 ad2antlr 2 I N I 0 N
21 ltletr 0 2 I N 0 < 2 I 2 I N 0 < N
22 15 18 20 21 syl3anc 2 I N I 0 0 < 2 I 2 I N 0 < N
23 14 22 mpand 2 I N I 0 2 I N 0 < N
24 23 ex 2 I N I 0 2 I N 0 < N
25 24 com23 2 I N 2 I N I 0 0 < N
26 25 3impia 2 I N 2 I N I 0 0 < N
27 8 26 sylbi N 2 I I 0 0 < N
28 27 3ad2ant1 N 2 I 2 I + 1 N < 2 I + 1 I 0 0 < N
29 7 28 sylbi N 2 I ..^ 2 I + 1 I 0 0 < N
30 29 impcom I 0 N 2 I ..^ 2 I + 1 0 < N
31 6 30 elrpd I 0 N 2 I ..^ 2 I + 1 N +
32 1ne2 1 2
33 32 necomi 2 1
34 33 a1i I 0 N 2 I ..^ 2 I + 1 2 1
35 relogbcl 2 + N + 2 1 log 2 N
36 3 31 34 35 mp3an2i I 0 N 2 I ..^ 2 I + 1 log 2 N
37 36 flcld I 0 N 2 I ..^ 2 I + 1 log 2 N
38 eluzelz N 2 I N
39 zltlem1 N 2 I + 1 N < 2 I + 1 N 2 I + 1 1
40 38 39 sylan N 2 I 2 I + 1 N < 2 I + 1 N 2 I + 1 1
41 2z 2
42 uzid 2 2 2
43 41 42 ax-mp 2 2
44 eluzelre N 2 I N
45 44 adantr N 2 I I 0 N
46 9 a1i I 0 2
47 46 1 11 3jca I 0 2 I 0 < 2
48 47 3ad2ant3 2 I N I 0 2 I 0 < 2
49 48 12 syl 2 I N I 0 0 < 2 I
50 0red 2 I N I 0 0
51 16 3ad2ant1 2 I N I 0 2 I
52 19 3ad2ant2 2 I N I 0 N
53 50 51 52 21 syl3anc 2 I N I 0 0 < 2 I 2 I N 0 < N
54 49 53 mpand 2 I N I 0 2 I N 0 < N
55 54 3exp 2 I N I 0 2 I N 0 < N
56 55 com34 2 I N 2 I N I 0 0 < N
57 56 3imp 2 I N 2 I N I 0 0 < N
58 8 57 sylbi N 2 I I 0 0 < N
59 58 imp N 2 I I 0 0 < N
60 45 59 elrpd N 2 I I 0 N +
61 60 adantlr N 2 I 2 I + 1 I 0 N +
62 9 a1i N 2 I 2 I + 1 I 0 2
63 peano2nn0 I 0 I + 1 0
64 63 adantl N 2 I 2 I + 1 I 0 I + 1 0
65 62 64 reexpcld N 2 I 2 I + 1 I 0 2 I + 1
66 peano2rem 2 I + 1 2 I + 1 1
67 65 66 syl N 2 I 2 I + 1 I 0 2 I + 1 1
68 nn0p1nn I 0 I + 1
69 1lt2 1 < 2
70 69 a1i I 0 1 < 2
71 46 68 70 3jca I 0 2 I + 1 1 < 2
72 71 adantl N 2 I 2 I + 1 I 0 2 I + 1 1 < 2
73 expgt1 2 I + 1 1 < 2 1 < 2 I + 1
74 72 73 syl N 2 I 2 I + 1 I 0 1 < 2 I + 1
75 1red N 2 I 2 I + 1 I 0 1
76 zre 2 I + 1 2 I + 1
77 76 ad2antlr N 2 I 2 I + 1 I 0 2 I + 1
78 75 77 posdifd N 2 I 2 I + 1 I 0 1 < 2 I + 1 0 < 2 I + 1 1
79 74 78 mpbid N 2 I 2 I + 1 I 0 0 < 2 I + 1 1
80 67 79 elrpd N 2 I 2 I + 1 I 0 2 I + 1 1 +
81 logbleb 2 2 N + 2 I + 1 1 + N 2 I + 1 1 log 2 N log 2 2 I + 1 1
82 43 61 80 81 mp3an2i N 2 I 2 I + 1 I 0 N 2 I + 1 1 log 2 N log 2 2 I + 1 1
83 44 adantr N 2 I 2 I + 1 N
84 83 adantr N 2 I 2 I + 1 I 0 N
85 59 adantlr N 2 I 2 I + 1 I 0 0 < N
86 84 85 elrpd N 2 I 2 I + 1 I 0 N +
87 33 a1i N 2 I 2 I + 1 I 0 2 1
88 3 86 87 35 mp3an2i N 2 I 2 I + 1 I 0 log 2 N
89 88 adantr N 2 I 2 I + 1 I 0 log 2 N log 2 2 I + 1 1 log 2 N
90 43 a1i I 0 2 2
91 46 63 reexpcld I 0 2 I + 1
92 91 66 syl I 0 2 I + 1 1
93 9 68 70 73 mp3an2i I 0 1 < 2 I + 1
94 1red I 0 1
95 94 91 posdifd I 0 1 < 2 I + 1 0 < 2 I + 1 1
96 93 95 mpbid I 0 0 < 2 I + 1 1
97 92 96 elrpd I 0 2 I + 1 1 +
98 90 97 jca I 0 2 2 2 I + 1 1 +
99 98 adantl N 2 I 2 I + 1 I 0 2 2 2 I + 1 1 +
100 relogbzcl 2 2 2 I + 1 1 + log 2 2 I + 1 1
101 99 100 syl N 2 I 2 I + 1 I 0 log 2 2 I + 1 1
102 101 adantr N 2 I 2 I + 1 I 0 log 2 N log 2 2 I + 1 1 log 2 2 I + 1 1
103 simpr N 2 I 2 I + 1 I 0 log 2 N log 2 2 I + 1 1 log 2 N log 2 2 I + 1 1
104 flwordi log 2 N log 2 2 I + 1 1 log 2 N log 2 2 I + 1 1 log 2 N log 2 2 I + 1 1
105 89 102 103 104 syl3anc N 2 I 2 I + 1 I 0 log 2 N log 2 2 I + 1 1 log 2 N log 2 2 I + 1 1
106 105 ex N 2 I 2 I + 1 I 0 log 2 N log 2 2 I + 1 1 log 2 N log 2 2 I + 1 1
107 68 adantl N 2 I 2 I + 1 I 0 I + 1
108 logbpw2m1 I + 1 log 2 2 I + 1 1 = I + 1 - 1
109 107 108 syl N 2 I 2 I + 1 I 0 log 2 2 I + 1 1 = I + 1 - 1
110 nn0cn I 0 I
111 pncan1 I I + 1 - 1 = I
112 110 111 syl I 0 I + 1 - 1 = I
113 112 adantl N 2 I 2 I + 1 I 0 I + 1 - 1 = I
114 109 113 eqtrd N 2 I 2 I + 1 I 0 log 2 2 I + 1 1 = I
115 114 breq2d N 2 I 2 I + 1 I 0 log 2 N log 2 2 I + 1 1 log 2 N I
116 106 115 sylibd N 2 I 2 I + 1 I 0 log 2 N log 2 2 I + 1 1 log 2 N I
117 82 116 sylbid N 2 I 2 I + 1 I 0 N 2 I + 1 1 log 2 N I
118 117 ex N 2 I 2 I + 1 I 0 N 2 I + 1 1 log 2 N I
119 118 com23 N 2 I 2 I + 1 N 2 I + 1 1 I 0 log 2 N I
120 40 119 sylbid N 2 I 2 I + 1 N < 2 I + 1 I 0 log 2 N I
121 120 3impia N 2 I 2 I + 1 N < 2 I + 1 I 0 log 2 N I
122 7 121 sylbi N 2 I ..^ 2 I + 1 I 0 log 2 N I
123 122 impcom I 0 N 2 I ..^ 2 I + 1 log 2 N I
124 nn0re I 0 I
125 nn0ge0 I 0 0 I
126 flge0nn0 I 0 I I 0
127 124 125 126 syl2anc I 0 I 0
128 127 nn0red I 0 I
129 128 adantr I 0 N 2 I ..^ 2 I + 1 I
130 124 adantr I 0 N 2 I ..^ 2 I + 1 I
131 flle I I I
132 124 131 syl I 0 I I
133 132 adantr I 0 N 2 I ..^ 2 I + 1 I I
134 3 a1i I 0 2 +
135 134 1 rpexpcld I 0 2 I +
136 33 a1i I 0 2 1
137 relogbcl 2 + 2 I + 2 1 log 2 2 I
138 3 135 136 137 mp3an2i I 0 log 2 2 I
139 138 adantr I 0 N 2 I ..^ 2 I + 1 log 2 2 I
140 nnlogbexp 2 2 I log 2 2 I = I
141 90 1 140 syl2anc I 0 log 2 2 I = I
142 141 eqcomd I 0 I = log 2 2 I
143 124 142 eqled I 0 I log 2 2 I
144 143 adantr I 0 N 2 I ..^ 2 I + 1 I log 2 2 I
145 elfzole1 N 2 I ..^ 2 I + 1 2 I N
146 145 adantl I 0 N 2 I ..^ 2 I + 1 2 I N
147 135 adantr I 0 N 2 I ..^ 2 I + 1 2 I +
148 logbleb 2 2 2 I + N + 2 I N log 2 2 I log 2 N
149 43 147 31 148 mp3an2i I 0 N 2 I ..^ 2 I + 1 2 I N log 2 2 I log 2 N
150 146 149 mpbid I 0 N 2 I ..^ 2 I + 1 log 2 2 I log 2 N
151 130 139 36 144 150 letrd I 0 N 2 I ..^ 2 I + 1 I log 2 N
152 129 130 36 133 151 letrd I 0 N 2 I ..^ 2 I + 1 I log 2 N
153 flflp1 I log 2 N I log 2 N I < log 2 N + 1
154 130 36 153 syl2anc I 0 N 2 I ..^ 2 I + 1 I log 2 N I < log 2 N + 1
155 152 154 mpbid I 0 N 2 I ..^ 2 I + 1 I < log 2 N + 1
156 zgeltp1eq I log 2 N log 2 N I I < log 2 N + 1 I = log 2 N
157 156 imp I log 2 N log 2 N I I < log 2 N + 1 I = log 2 N
158 2 37 123 155 157 syl22anc I 0 N 2 I ..^ 2 I + 1 I = log 2 N
159 158 eqcomd I 0 N 2 I ..^ 2 I + 1 log 2 N = I