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

Theorem bitsfzo 14995
 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 14984 . . . 4 (𝑚 ∈ (bits‘𝑁) ↔ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚)))))
2 simp32 1091 . . . . . . 7 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑚 ∈ ℕ0)
3 nn0uz 11598 . . . . . . 7 0 = (ℤ‘0)
42, 3syl6eleq 2698 . . . . . 6 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑚 ∈ (ℤ‘0))
5 simp1r 1079 . . . . . . 7 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑀 ∈ ℕ0)
65nn0zd 11356 . . . . . 6 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑀 ∈ ℤ)
7 2re 10967 . . . . . . . . . 10 2 ∈ ℝ
87a1i 11 . . . . . . . . 9 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 2 ∈ ℝ)
98, 2reexpcld 12887 . . . . . . . 8 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (2↑𝑚) ∈ ℝ)
10 simp1l 1078 . . . . . . . . 9 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑁 ∈ ℤ)
1110zred 11358 . . . . . . . 8 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑁 ∈ ℝ)
128, 5reexpcld 12887 . . . . . . . 8 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (2↑𝑀) ∈ ℝ)
139recnd 9947 . . . . . . . . . 10 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (2↑𝑚) ∈ ℂ)
1413mulid2d 9937 . . . . . . . . 9 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (1 · (2↑𝑚)) = (2↑𝑚))
15 simp33 1092 . . . . . . . . . . 11 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))
16 2rp 11713 . . . . . . . . . . . . . . . 16 2 ∈ ℝ+
1716a1i 11 . . . . . . . . . . . . . . 15 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 2 ∈ ℝ+)
182nn0zd 11356 . . . . . . . . . . . . . . 15 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑚 ∈ ℤ)
1917, 18rpexpcld 12894 . . . . . . . . . . . . . 14 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (2↑𝑚) ∈ ℝ+)
2011, 19rerpdivcld 11779 . . . . . . . . . . . . 13 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (𝑁 / (2↑𝑚)) ∈ ℝ)
21 1red 9934 . . . . . . . . . . . . 13 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 1 ∈ ℝ)
2220, 21ltnled 10063 . . . . . . . . . . . 12 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → ((𝑁 / (2↑𝑚)) < 1 ↔ ¬ 1 ≤ (𝑁 / (2↑𝑚))))
23 0p1e1 11009 . . . . . . . . . . . . . 14 (0 + 1) = 1
2423breq2i 4591 . . . . . . . . . . . . 13 ((𝑁 / (2↑𝑚)) < (0 + 1) ↔ (𝑁 / (2↑𝑚)) < 1)
25 elfzole1 12347 . . . . . . . . . . . . . . . 16 (𝑁 ∈ (0..^(2↑𝑀)) → 0 ≤ 𝑁)
26253ad2ant2 1076 . . . . . . . . . . . . . . 15 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 0 ≤ 𝑁)
2711, 19, 26divge0d 11788 . . . . . . . . . . . . . 14 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 0 ≤ (𝑁 / (2↑𝑚)))
28 0z 11265 . . . . . . . . . . . . . . . 16 0 ∈ ℤ
29 flbi 12479 . . . . . . . . . . . . . . . 16 (((𝑁 / (2↑𝑚)) ∈ ℝ ∧ 0 ∈ ℤ) → ((⌊‘(𝑁 / (2↑𝑚))) = 0 ↔ (0 ≤ (𝑁 / (2↑𝑚)) ∧ (𝑁 / (2↑𝑚)) < (0 + 1))))
3020, 28, 29sylancl 693 . . . . . . . . . . . . . . 15 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → ((⌊‘(𝑁 / (2↑𝑚))) = 0 ↔ (0 ≤ (𝑁 / (2↑𝑚)) ∧ (𝑁 / (2↑𝑚)) < (0 + 1))))
31 2z 11286 . . . . . . . . . . . . . . . . 17 2 ∈ ℤ
32 dvds0 14835 . . . . . . . . . . . . . . . . 17 (2 ∈ ℤ → 2 ∥ 0)
3331, 32ax-mp 5 . . . . . . . . . . . . . . . 16 2 ∥ 0
34 id 22 . . . . . . . . . . . . . . . 16 ((⌊‘(𝑁 / (2↑𝑚))) = 0 → (⌊‘(𝑁 / (2↑𝑚))) = 0)
3533, 34syl5breqr 4621 . . . . . . . . . . . . . . 15 ((⌊‘(𝑁 / (2↑𝑚))) = 0 → 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))
3630, 35syl6bir 243 . . . . . . . . . . . . . 14 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → ((0 ≤ (𝑁 / (2↑𝑚)) ∧ (𝑁 / (2↑𝑚)) < (0 + 1)) → 2 ∥ (⌊‘(𝑁 / (2↑𝑚)))))
3727, 36mpand 707 . . . . . . . . . . . . 13 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → ((𝑁 / (2↑𝑚)) < (0 + 1) → 2 ∥ (⌊‘(𝑁 / (2↑𝑚)))))
3824, 37syl5bir 232 . . . . . . . . . . . 12 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → ((𝑁 / (2↑𝑚)) < 1 → 2 ∥ (⌊‘(𝑁 / (2↑𝑚)))))
3922, 38sylbird 249 . . . . . . . . . . 11 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (¬ 1 ≤ (𝑁 / (2↑𝑚)) → 2 ∥ (⌊‘(𝑁 / (2↑𝑚)))))
4015, 39mt3d 139 . . . . . . . . . 10 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 1 ≤ (𝑁 / (2↑𝑚)))
4121, 11, 19lemuldivd 11797 . . . . . . . . . 10 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → ((1 · (2↑𝑚)) ≤ 𝑁 ↔ 1 ≤ (𝑁 / (2↑𝑚))))
4240, 41mpbird 246 . . . . . . . . 9 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (1 · (2↑𝑚)) ≤ 𝑁)
4314, 42eqbrtrrd 4607 . . . . . . . 8 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (2↑𝑚) ≤ 𝑁)
44 elfzolt2 12348 . . . . . . . . 9 (𝑁 ∈ (0..^(2↑𝑀)) → 𝑁 < (2↑𝑀))
45443ad2ant2 1076 . . . . . . . 8 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑁 < (2↑𝑀))
469, 11, 12, 43, 45lelttrd 10074 . . . . . . 7 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (2↑𝑚) < (2↑𝑀))
47 1lt2 11071 . . . . . . . . 9 1 < 2
4847a1i 11 . . . . . . . 8 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 1 < 2)
498, 18, 6, 48ltexp2d 12900 . . . . . . 7 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → (𝑚 < 𝑀 ↔ (2↑𝑚) < (2↑𝑀)))
5046, 49mpbird 246 . . . . . 6 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑚 < 𝑀)
51 elfzo2 12342 . . . . . 6 (𝑚 ∈ (0..^𝑀) ↔ (𝑚 ∈ (ℤ‘0) ∧ 𝑀 ∈ ℤ ∧ 𝑚 < 𝑀))
524, 6, 50, 51syl3anbrc 1239 . . . . 5 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀)) ∧ (𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚))))) → 𝑚 ∈ (0..^𝑀))
53523expia 1259 . . . 4 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀))) → ((𝑁 ∈ ℤ ∧ 𝑚 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑚)))) → 𝑚 ∈ (0..^𝑀)))
541, 53syl5bi 231 . . 3 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀))) → (𝑚 ∈ (bits‘𝑁) → 𝑚 ∈ (0..^𝑀)))
5554ssrdv 3574 . 2 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑁 ∈ (0..^(2↑𝑀))) → (bits‘𝑁) ⊆ (0..^𝑀))
56 simpr 476 . . . . . . . 8 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -𝑁 ∈ ℕ)
5756nnred 10912 . . . . . . 7 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -𝑁 ∈ ℝ)
58 simpllr 795 . . . . . . . 8 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 𝑀 ∈ ℕ0)
5958nn0red 11229 . . . . . . 7 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 𝑀 ∈ ℝ)
60 max2 11892 . . . . . . 7 ((-𝑁 ∈ ℝ ∧ 𝑀 ∈ ℝ) → 𝑀 ≤ if(-𝑁𝑀, 𝑀, -𝑁))
6157, 59, 60syl2anc 691 . . . . . 6 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 𝑀 ≤ if(-𝑁𝑀, 𝑀, -𝑁))
62 simplr 788 . . . . . . . . 9 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (bits‘𝑁) ⊆ (0..^𝑀))
63 n2dvds1 14942 . . . . . . . . . . . 12 ¬ 2 ∥ 1
64 1z 11284 . . . . . . . . . . . . 13 1 ∈ ℤ
65 dvdsnegb 14837 . . . . . . . . . . . . 13 ((2 ∈ ℤ ∧ 1 ∈ ℤ) → (2 ∥ 1 ↔ 2 ∥ -1))
6631, 64, 65mp2an 704 . . . . . . . . . . . 12 (2 ∥ 1 ↔ 2 ∥ -1)
6763, 66mtbi 311 . . . . . . . . . . 11 ¬ 2 ∥ -1
68 simplll 794 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 𝑁 ∈ ℤ)
6968zred 11358 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 𝑁 ∈ ℝ)
70 2nn 11062 . . . . . . . . . . . . . . . . 17 2 ∈ ℕ
7170a1i 11 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 2 ∈ ℕ)
7256nnnn0d 11228 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -𝑁 ∈ ℕ0)
7358, 72ifcld 4081 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) ∈ ℕ0)
7471, 73nnexpcld 12892 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (2↑if(-𝑁𝑀, 𝑀, -𝑁)) ∈ ℕ)
7569, 74nndivred 10946 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) ∈ ℝ)
76 1red 9934 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 1 ∈ ℝ)
7768zcnd 11359 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 𝑁 ∈ ℂ)
7874nncnd 10913 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (2↑if(-𝑁𝑀, 𝑀, -𝑁)) ∈ ℂ)
79 2cnd 10970 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 2 ∈ ℂ)
80 2ne0 10990 . . . . . . . . . . . . . . . . . 18 2 ≠ 0
8180a1i 11 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 2 ≠ 0)
8273nn0zd 11356 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) ∈ ℤ)
8379, 81, 82expne0d 12876 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (2↑if(-𝑁𝑀, 𝑀, -𝑁)) ≠ 0)
8477, 78, 83divnegd 10693 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) = (-𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))))
8573nn0red 11229 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) ∈ ℝ)
8674nnred 10912 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (2↑if(-𝑁𝑀, 𝑀, -𝑁)) ∈ ℝ)
87 max1 11890 . . . . . . . . . . . . . . . . . . 19 ((-𝑁 ∈ ℝ ∧ 𝑀 ∈ ℝ) → -𝑁 ≤ if(-𝑁𝑀, 𝑀, -𝑁))
8857, 59, 87syl2anc 691 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -𝑁 ≤ if(-𝑁𝑀, 𝑀, -𝑁))
89 uzid 11578 . . . . . . . . . . . . . . . . . . . . 21 (2 ∈ ℤ → 2 ∈ (ℤ‘2))
9031, 89ax-mp 5 . . . . . . . . . . . . . . . . . . . 20 2 ∈ (ℤ‘2)
91 bernneq3 12854 . . . . . . . . . . . . . . . . . . . 20 ((2 ∈ (ℤ‘2) ∧ if(-𝑁𝑀, 𝑀, -𝑁) ∈ ℕ0) → if(-𝑁𝑀, 𝑀, -𝑁) < (2↑if(-𝑁𝑀, 𝑀, -𝑁)))
9290, 73, 91sylancr 694 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) < (2↑if(-𝑁𝑀, 𝑀, -𝑁)))
9385, 86, 92ltled 10064 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) ≤ (2↑if(-𝑁𝑀, 𝑀, -𝑁)))
9457, 85, 86, 88, 93letrd 10073 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -𝑁 ≤ (2↑if(-𝑁𝑀, 𝑀, -𝑁)))
9578mulid1d 9936 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → ((2↑if(-𝑁𝑀, 𝑀, -𝑁)) · 1) = (2↑if(-𝑁𝑀, 𝑀, -𝑁)))
9694, 95breqtrrd 4611 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -𝑁 ≤ ((2↑if(-𝑁𝑀, 𝑀, -𝑁)) · 1))
9774nnrpd 11746 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (2↑if(-𝑁𝑀, 𝑀, -𝑁)) ∈ ℝ+)
9857, 76, 97ledivmuld 11801 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → ((-𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) ≤ 1 ↔ -𝑁 ≤ ((2↑if(-𝑁𝑀, 𝑀, -𝑁)) · 1)))
9996, 98mpbird 246 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (-𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) ≤ 1)
10084, 99eqbrtrd 4605 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) ≤ 1)
10175, 76, 100lenegcon1d 10488 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → -1 ≤ (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))))
10256nngt0d 10941 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 0 < -𝑁)
10374nngt0d 10941 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 0 < (2↑if(-𝑁𝑀, 𝑀, -𝑁)))
10457, 86, 102, 103divgt0d 10838 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 0 < (-𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))))
105104, 84breqtrrd 4611 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → 0 < -(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))))
10675lt0neg1d 10476 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → ((𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) < 0 ↔ 0 < -(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁)))))
107105, 106mpbird 246 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) < 0)
108 ax-1cn 9873 . . . . . . . . . . . . . . 15 1 ∈ ℂ
109 neg1cn 11001 . . . . . . . . . . . . . . 15 -1 ∈ ℂ
110 1pneg1e0 11006 . . . . . . . . . . . . . . 15 (1 + -1) = 0
111108, 109, 110addcomli 10107 . . . . . . . . . . . . . 14 (-1 + 1) = 0
112107, 111syl6breqr 4625 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) < (-1 + 1))
113 neg1z 11290 . . . . . . . . . . . . . 14 -1 ∈ ℤ
114 flbi 12479 . . . . . . . . . . . . . 14 (((𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) ∈ ℝ ∧ -1 ∈ ℤ) → ((⌊‘(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁)))) = -1 ↔ (-1 ≤ (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) ∧ (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) < (-1 + 1))))
11575, 113, 114sylancl 693 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → ((⌊‘(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁)))) = -1 ↔ (-1 ≤ (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) ∧ (𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))) < (-1 + 1))))
116101, 112, 115mpbir2and 959 . . . . . . . . . . . 12 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (⌊‘(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁)))) = -1)
117116breq2d 4595 . . . . . . . . . . 11 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (2 ∥ (⌊‘(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁)))) ↔ 2 ∥ -1))
11867, 117mtbiri 316 . . . . . . . . . 10 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → ¬ 2 ∥ (⌊‘(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁)))))
119 bitsval2 14985 . . . . . . . . . . 11 ((𝑁 ∈ ℤ ∧ if(-𝑁𝑀, 𝑀, -𝑁) ∈ ℕ0) → (if(-𝑁𝑀, 𝑀, -𝑁) ∈ (bits‘𝑁) ↔ ¬ 2 ∥ (⌊‘(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))))))
12068, 73, 119syl2anc 691 . . . . . . . . . 10 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (if(-𝑁𝑀, 𝑀, -𝑁) ∈ (bits‘𝑁) ↔ ¬ 2 ∥ (⌊‘(𝑁 / (2↑if(-𝑁𝑀, 𝑀, -𝑁))))))
121118, 120mpbird 246 . . . . . . . . 9 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) ∈ (bits‘𝑁))
12262, 121sseldd 3569 . . . . . . . 8 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) ∈ (0..^𝑀))
123 elfzolt2 12348 . . . . . . . 8 (if(-𝑁𝑀, 𝑀, -𝑁) ∈ (0..^𝑀) → if(-𝑁𝑀, 𝑀, -𝑁) < 𝑀)
124122, 123syl 17 . . . . . . 7 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → if(-𝑁𝑀, 𝑀, -𝑁) < 𝑀)
12585, 59ltnled 10063 . . . . . . 7 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → (if(-𝑁𝑀, 𝑀, -𝑁) < 𝑀 ↔ ¬ 𝑀 ≤ if(-𝑁𝑀, 𝑀, -𝑁)))
126124, 125mpbid 221 . . . . . 6 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) ∧ -𝑁 ∈ ℕ) → ¬ 𝑀 ≤ if(-𝑁𝑀, 𝑀, -𝑁))
12761, 126pm2.65da 598 . . . . 5 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → ¬ -𝑁 ∈ ℕ)
128127intnand 953 . . . 4 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → ¬ (𝑁 ∈ ℝ ∧ -𝑁 ∈ ℕ))
129 simpll 786 . . . . . 6 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → 𝑁 ∈ ℤ)
130 elznn0nn 11268 . . . . . 6 (𝑁 ∈ ℤ ↔ (𝑁 ∈ ℕ0 ∨ (𝑁 ∈ ℝ ∧ -𝑁 ∈ ℕ)))
131129, 130sylib 207 . . . . 5 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → (𝑁 ∈ ℕ0 ∨ (𝑁 ∈ ℝ ∧ -𝑁 ∈ ℕ)))
132131ord 391 . . . 4 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → (¬ 𝑁 ∈ ℕ0 → (𝑁 ∈ ℝ ∧ -𝑁 ∈ ℕ)))
133128, 132mt3d 139 . . 3 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → 𝑁 ∈ ℕ0)
134 simplr 788 . . 3 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → 𝑀 ∈ ℕ0)
135 simpr 476 . . 3 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → (bits‘𝑁) ⊆ (0..^𝑀))
136 eqid 2610 . . 3 inf({𝑛 ∈ ℕ0𝑁 < (2↑𝑛)}, ℝ, < ) = inf({𝑛 ∈ ℕ0𝑁 < (2↑𝑛)}, ℝ, < )
137133, 134, 135, 136bitsfzolem 14994 . 2 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ (bits‘𝑁) ⊆ (0..^𝑀)) → 𝑁 ∈ (0..^(2↑𝑀)))
13855, 137impbida 873 1 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 ∈ (0..^(2↑𝑀)) ↔ (bits‘𝑁) ⊆ (0..^𝑀)))