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

Theorem bitsfzo 15776
 Description: The bits of a number are all less than 𝑀 iff the number is nonnegative and less than 2↑𝑀. (Contributed by Mario Carneiro, 5-Sep-2016.) (Proof shortened by AV, 1-Oct-2020.)
Assertion
Ref Expression
bitsfzo ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 ∈ (0..^(2↑𝑀)) ↔ (bits‘𝑁) ⊆ (0..^𝑀)))

Proof of Theorem bitsfzo
Dummy variables 𝑚 𝑛 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 bitsval 15765 . . . 4 (𝑚 ∈ (bits‘𝑁) ↔ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚)))))
2 simp32 1207 . . . . . . 7 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑚 ∈ ℕ0)
3 nn0uz 12270 . . . . . . 7 0 = (ℤ‘0)
42, 3eleqtrdi 2900 . . . . . 6 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑚 ∈ (ℤ‘0))
5 simp1r 1195 . . . . . . 7 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑀 ∈ ℕ0)
65nn0zd 12075 . . . . . 6 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑀 ∈ ℤ)
7 2re 11701 . . . . . . . . . 10 2 ∈ ℝ
87a1i 11 . . . . . . . . 9 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 2 ∈ ℝ)
98, 2reexpcld 13525 . . . . . . . 8 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (2↑𝑚) ∈ ℝ)
10 simp1l 1194 . . . . . . . . 9 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑁 ∈ ℤ)
1110zred 12077 . . . . . . . 8 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑁 ∈ ℝ)
128, 5reexpcld 13525 . . . . . . . 8 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (2↑𝑀) ∈ ℝ)
139recnd 10660 . . . . . . . . . 10 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (2↑𝑚) ∈ ℂ)
1413mulid2d 10650 . . . . . . . . 9 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (1 · (2↑𝑚)) = (2↑𝑚))
15 simp33 1208 . . . . . . . . . . 11 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))
16 2rp 12384 . . . . . . . . . . . . . . . 16 2 ∈ ℝ+
1716a1i 11 . . . . . . . . . . . . . . 15 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 2 ∈ ℝ+)
182nn0zd 12075 . . . . . . . . . . . . . . 15 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑚 ∈ ℤ)
1917, 18rpexpcld 13606 . . . . . . . . . . . . . 14 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (2↑𝑚) ∈ ℝ+)
2011, 19rerpdivcld 12452 . . . . . . . . . . . . 13 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (𝑁 / (2↑𝑚)) ∈ ℝ)
21 1red 10633 . . . . . . . . . . . . 13 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 1 ∈ ℝ)
2220, 21ltnled 10778 . . . . . . . . . . . 12 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → ((𝑁 / (2↑𝑚)) < 1 ↔ ¬ 1 ≤ (𝑁 / (2↑𝑚))))
23 0p1e1 11749 . . . . . . . . . . . . . 14 (0 + 1) = 1
2423breq2i 5038 . . . . . . . . . . . . 13 ((𝑁 / (2↑𝑚)) < (0 + 1) ↔ (𝑁 / (2↑𝑚)) < 1)
25 elfzole1 13043 . . . . . . . . . . . . . . . 16 (𝑁 ∈ (0..^(2↑𝑀)) → 0 ≤ 𝑁)
26253ad2ant2 1131 . . . . . . . . . . . . . . 15 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 0 ≤ 𝑁)
2711, 19, 26divge0d 12461 . . . . . . . . . . . . . 14 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 0 ≤ (𝑁 / (2↑𝑚)))
28 0z 11982 . . . . . . . . . . . . . . . 16 0 ∈ ℤ
29 flbi 13183 . . . . . . . . . . . . . . . 16 (((𝑁 / (2↑𝑚)) ∈ ℝ ∧ 0 ∈ ℤ) → ((⌊‘(𝑁 / (2↑𝑚))) = 0 ↔ (0 ≤ (𝑁 / (2↑𝑚)) ∧ (𝑁 / (2↑𝑚)) < (0 + 1))))
3020, 28, 29sylancl 589 . . . . . . . . . . . . . . 15 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → ((⌊‘(𝑁 / (2↑𝑚))) = 0 ↔ (0 ≤ (𝑁 / (2↑𝑚)) ∧ (𝑁 / (2↑𝑚)) < (0 + 1))))
31 z0even 15710 . . . . . . . . . . . . . . . 16 2 ∥ 0
32 id 22 . . . . . . . . . . . . . . . 16 ((⌊‘(𝑁 / (2↑𝑚))) = 0 → (⌊‘(𝑁 / (2↑𝑚))) = 0)
3331, 32breqtrrid 5068 . . . . . . . . . . . . . . 15 ((⌊‘(𝑁 / (2↑𝑚))) = 0 → 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))
3430, 33syl6bir 257 . . . . . . . . . . . . . 14 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → ((0 ≤ (𝑁 / (2↑𝑚)) ∧ (𝑁 / (2↑𝑚)) < (0 + 1)) → 2 ∥ (⌊‘(𝑁 / (2↑𝑚)))))
3527, 34mpand 694 . . . . . . . . . . . . 13 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → ((𝑁 / (2↑𝑚)) < (0 + 1) → 2 ∥ (⌊‘(𝑁 / (2↑𝑚)))))
3624, 35syl5bir 246 . . . . . . . . . . . 12 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → ((𝑁 / (2↑𝑚)) < 1 → 2 ∥ (⌊‘(𝑁 / (2↑𝑚)))))
3722, 36sylbird 263 . . . . . . . . . . 11 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (¬ 1 ≤ (𝑁 / (2↑𝑚)) → 2 ∥ (⌊‘(𝑁 / (2↑𝑚)))))
3815, 37mt3d 150 . . . . . . . . . 10 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 1 ≤ (𝑁 / (2↑𝑚)))
3921, 11, 19lemuldivd 12470 . . . . . . . . . 10 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → ((1 · (2↑𝑚)) ≤ 𝑁 ↔ 1 ≤ (𝑁 / (2↑𝑚))))
4038, 39mpbird 260 . . . . . . . . 9 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (1 · (2↑𝑚)) ≤ 𝑁)
4114, 40eqbrtrrd 5054 . . . . . . . 8 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (2↑𝑚) ≤ 𝑁)
42 elfzolt2 13044 . . . . . . . . 9 (𝑁 ∈ (0..^(2↑𝑀)) → 𝑁 < (2↑𝑀))
43423ad2ant2 1131 . . . . . . . 8 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑁 < (2↑𝑀))
449, 11, 12, 41, 43lelttrd 10789 . . . . . . 7 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (2↑𝑚) < (2↑𝑀))
45 1lt2 11798 . . . . . . . . 9 1 < 2
4645a1i 11 . . . . . . . 8 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 1 < 2)
478, 18, 6, 46ltexp2d 13612 . . . . . . 7 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (𝑚 < 𝑀 ↔ (2↑𝑚) < (2↑𝑀)))
4844, 47mpbird 260 . . . . . 6 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑚 < 𝑀)
49 elfzo2 13038 . . . . . 6 (𝑚 ∈ (0..^𝑀) ↔ (𝑚 ∈ (ℤ‘0) ∧ 𝑀 ∈ ℤ ∧ 𝑚 < 𝑀))
504, 6, 48, 49syl3anbrc 1340 . . . . 5 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑚 ∈ (0..^𝑀))
51503expia 1118 . . . 4 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀))) → ((𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚)))) → 𝑚 ∈ (0..^𝑀)))
521, 51syl5bi 245 . . 3 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀))) → (𝑚 ∈ (bits‘𝑁) → 𝑚 ∈ (0..^𝑀)))
5352ssrdv 3921 . 2 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀))) → (bits‘𝑁) ⊆ (0..^𝑀))
54 simpr 488 . . . . . . . 8 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -𝑁 ∈ ℕ)
5554nnred 11642 . . . . . . 7 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -𝑁 ∈ ℝ)
56 simpllr 775 . . . . . . . 8 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 𝑀 ∈ ℕ0)
5756nn0red 11946 . . . . . . 7 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 𝑀 ∈ ℝ)
58 max2 12570 . . . . . . 7 ((-𝑁 ∈ ℝ ∧ 𝑀 ∈ ℝ) → 𝑀 ≤ if(-𝑁𝑀, 𝑀, -𝑁))
5955, 57, 58syl2anc 587 . . . . . 6 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 𝑀 ≤ if(-𝑁𝑀, 𝑀, -𝑁))
60 simplr 768 . . . . . . . . 9 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (bits‘𝑁) ⊆ (0..^𝑀))
61 n2dvdsm1 15712 . . . . . . . . . . 11 ¬ 2 ∥ -1
62 simplll 774 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 𝑁 ∈ ℤ)
6362zred 12077 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 𝑁 ∈ ℝ)
64 2nn 11700 . . . . . . . . . . . . . . . . 17 2 ∈ ℕ
6564a1i 11 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 2 ∈ ℕ)
6654nnnn0d 11945 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -𝑁 ∈ ℕ0)
6756, 66ifcld 4470 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) ∈ ℕ0)
6865, 67nnexpcld 13604 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (2↑if(-𝑁𝑀, 𝑀, -𝑁)) ∈ ℕ)
6963, 68nndivred 11681 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) ∈ ℝ)
70 1red 10633 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 1 ∈ ℝ)
7162zcnd 12078 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 𝑁 ∈ ℂ)
7268nncnd 11643 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (2↑if(-𝑁𝑀, 𝑀, -𝑁)) ∈ ℂ)
73 2cnd 11705 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 2 ∈ ℂ)
74 2ne0 11731 . . . . . . . . . . . . . . . . . 18 2 ≠ 0
7574a1i 11 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 2 ≠ 0)
7667nn0zd 12075 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) ∈ ℤ)
7773, 75, 76expne0d 13514 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (2↑if(-𝑁𝑀, 𝑀, -𝑁)) ≠ 0)
7871, 72, 77divnegd 11420 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) = (-𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))))
7967nn0red 11946 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) ∈ ℝ)
8068nnred 11642 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (2↑if(-𝑁𝑀, 𝑀, -𝑁)) ∈ ℝ)
81 max1 12568 . . . . . . . . . . . . . . . . . . 19 ((-𝑁 ∈ ℝ ∧ 𝑀 ∈ ℝ) → -𝑁 ≤ if(-𝑁𝑀, 𝑀, -𝑁))
8255, 57, 81syl2anc 587 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -𝑁 ≤ if(-𝑁𝑀, 𝑀, -𝑁))
83 2z 12004 . . . . . . . . . . . . . . . . . . . . 21 2 ∈ ℤ
84 uzid 12248 . . . . . . . . . . . . . . . . . . . . 21 (2 ∈ ℤ → 2 ∈ (ℤ‘2))
8583, 84ax-mp 5 . . . . . . . . . . . . . . . . . . . 20 2 ∈ (ℤ‘2)
86 bernneq3 13590 . . . . . . . . . . . . . . . . . . . 20 ((2 ∈ (ℤ‘2) ∧ if(-𝑁𝑀, 𝑀, -𝑁) ∈ ℕ0) → if(-𝑁𝑀, 𝑀, -𝑁) < (2↑if(-𝑁𝑀, 𝑀, -𝑁)))
8785, 67, 86sylancr 590 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) < (2↑if(-𝑁𝑀, 𝑀, -𝑁)))
8879, 80, 87ltled 10779 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) ≤ (2↑if(-𝑁𝑀, 𝑀, -𝑁)))
8955, 79, 80, 82, 88letrd 10788 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -𝑁 ≤ (2↑if(-𝑁𝑀, 𝑀, -𝑁)))
9072mulid1d 10649 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → ((2↑if(-𝑁𝑀, 𝑀, -𝑁)) · 1) = (2↑if(-𝑁𝑀, 𝑀, -𝑁)))
9189, 90breqtrrd 5058 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -𝑁 ≤ ((2↑if(-𝑁𝑀, 𝑀, -𝑁)) · 1))
9268nnrpd 12419 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (2↑if(-𝑁𝑀, 𝑀, -𝑁)) ∈ ℝ+)
9355, 70, 92ledivmuld 12474 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → ((-𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) ≤ 1 ↔ -𝑁 ≤ ((2↑if(-𝑁𝑀, 𝑀, -𝑁)) · 1)))
9491, 93mpbird 260 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (-𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) ≤ 1)
9578, 94eqbrtrd 5052 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) ≤ 1)
9669, 70, 95lenegcon1d 11213 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -1 ≤ (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))))
9754nngt0d 11676 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 0 < -𝑁)
9868nngt0d 11676 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 0 < (2↑if(-𝑁𝑀, 𝑀, -𝑁)))
9955, 80, 97, 98divgt0d 11566 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 0 < (-𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))))
10099, 78breqtrrd 5058 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 0 < -(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))))
10169lt0neg1d 11200 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → ((𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) < 0 ↔ 0 < -(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁)))))
102100, 101mpbird 260 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) < 0)
103 ax-1cn 10586 . . . . . . . . . . . . . . 15 1 ∈ ℂ
104 neg1cn 11741 . . . . . . . . . . . . . . 15 -1 ∈ ℂ
105 1pneg1e0 11746 . . . . . . . . . . . . . . 15 (1 + -1) = 0
106103, 104, 105addcomli 10823 . . . . . . . . . . . . . 14 (-1 + 1) = 0
107102, 106breqtrrdi 5072 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) < (-1 + 1))
108 neg1z 12008 . . . . . . . . . . . . . 14 -1 ∈ ℤ
109 flbi 13183 . . . . . . . . . . . . . 14 (((𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) ∈ ℝ ∧ -1 ∈ ℤ) → ((⌊‘(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁)))) = -1 ↔ (-1 ≤ (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) ∧ (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) < (-1 + 1))))
11069, 108, 109sylancl 589 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → ((⌊‘(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁)))) = -1 ↔ (-1 ≤ (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) ∧ (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) < (-1 + 1))))
11196, 107, 110mpbir2and 712 . . . . . . . . . . . 12 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (⌊‘(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁)))) = -1)
112111breq2d 5042 . . . . . . . . . . 11 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (2 ∥ (⌊‘(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁)))) ↔ 2 ∥ -1))
11361, 112mtbiri 330 . . . . . . . . . 10 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → ¬ 2 ∥ (⌊‘(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁)))))
114 bitsval2 15766 . . . . . . . . . . 11 ((𝑁 ∈ ℤ ∧ if(-𝑁𝑀, 𝑀, -𝑁) ∈ ℕ0) → (if(-𝑁𝑀, 𝑀, -𝑁) ∈ (bits‘𝑁) ↔ ¬ 2 ∥ (⌊‘(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))))))
11562, 67, 114syl2anc 587 . . . . . . . . . 10 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (if(-𝑁𝑀, 𝑀, -𝑁) ∈ (bits‘𝑁) ↔ ¬ 2 ∥ (⌊‘(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))))))
116113, 115mpbird 260 . . . . . . . . 9 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) ∈ (bits‘𝑁))
11760, 116sseldd 3916 . . . . . . . 8 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) ∈ (0..^𝑀))
118 elfzolt2 13044 . . . . . . . 8 (if(-𝑁𝑀, 𝑀, -𝑁) ∈ (0..^𝑀) → if(-𝑁𝑀, 𝑀, -𝑁) < 𝑀)
119117, 118syl 17 . . . . . . 7 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) < 𝑀)
12079, 57ltnled 10778 . . . . . . 7 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (if(-𝑁𝑀, 𝑀, -𝑁) < 𝑀 ↔ ¬ 𝑀 ≤ if(-𝑁𝑀, 𝑀, -𝑁)))
121119, 120mpbid 235 . . . . . 6 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → ¬ 𝑀 ≤ if(-𝑁𝑀, 𝑀, -𝑁))
12259, 121pm2.65da 816 . . . . 5 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → ¬ -𝑁 ∈ ℕ)
123122intnand 492 . . . 4 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → ¬ (𝑁 ∈ ℝ ∧ -𝑁 ∈ ℕ))
124 simpll 766 . . . . . 6 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → 𝑁 ∈ ℤ)
125 elznn0nn 11985 . . . . . 6 (𝑁 ∈ ℤ ↔ (𝑁 ∈ ℕ0 ∨ (𝑁 ∈ ℝ ∧ -𝑁 ∈ ℕ)))
126124, 125sylib 221 . . . . 5 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → (𝑁 ∈ ℕ0 ∨ (𝑁 ∈ ℝ ∧ -𝑁 ∈ ℕ)))
127126ord 861 . . . 4 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → (¬ 𝑁 ∈ ℕ0 → (𝑁 ∈ ℝ ∧ -𝑁 ∈ ℕ)))
128123, 127mt3d 150 . . 3 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → 𝑁 ∈ ℕ0)
129 simplr 768 . . 3 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → 𝑀 ∈ ℕ0)
130 simpr 488 . . 3 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → (bits‘𝑁) ⊆ (0..^𝑀))
131 eqid 2798 . . 3 inf({𝑛 ∈ ℕ0𝑁 < (2↑𝑛)}, ℝ, < ) = inf({𝑛 ∈ ℕ0𝑁 < (2↑𝑛)}, ℝ, < )
132128, 129, 130, 131bitsfzolem 15775 . 2 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → 𝑁 ∈ (0..^(2↑𝑀)))
13353, 132impbida 800 1 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 ∈ (0..^(2↑𝑀)) ↔ (bits‘𝑁) ⊆ (0..^𝑀)))