Metamath Proof Explorer


Theorem bitsfzo

Description: The bits of a number are all at positions less than M iff the number is nonnegative and less than 2 ^ M . (Contributed by Mario Carneiro, 5-Sep-2016) (Proof shortened by AV, 1-Oct-2020)

Ref Expression
Assertion bitsfzo ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → N ∈ 0 ..^ 2 M ↔ bits ⁡ N ⊆ 0 ..^ M

Proof

Step Hyp Ref Expression
1 bitsval ⊢ m ∈ bits ⁡ N ↔ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m
2 simp32 ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → m ∈ ℕ 0
3 nn0uz ⊢ ℕ 0 = ℤ ≥ 0
4 2 3 eleqtrdi ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → m ∈ ℤ ≥ 0
5 simp1r ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → M ∈ ℕ 0
6 5 nn0zd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → M ∈ ℤ
7 2re ⊢ 2 ∈ ℝ
8 7 a1i ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 2 ∈ ℝ
9 8 2 reexpcld ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 2 m ∈ ℝ
10 simp1l ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → N ∈ ℤ
11 10 zred ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → N ∈ ℝ
12 8 5 reexpcld ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 2 M ∈ ℝ
13 9 recnd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 2 m ∈ ℂ
14 13 mullidd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 1 ⁢ 2 m = 2 m
15 simp33 ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → ¬ 2 ∥ N 2 m
16 2rp ⊢ 2 ∈ ℝ +
17 16 a1i ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 2 ∈ ℝ +
18 2 nn0zd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → m ∈ ℤ
19 17 18 rpexpcld ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 2 m ∈ ℝ +
20 11 19 rerpdivcld ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → N 2 m ∈ ℝ
21 1red ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 1 ∈ ℝ
22 20 21 ltnled ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → N 2 m < 1 ↔ ¬ 1 ≤ N 2 m
23 0p1e1 ⊢ 0 + 1 = 1
24 23 breq2i ⊢ N 2 m < 0 + 1 ↔ N 2 m < 1
25 elfzole1 ⊢ N ∈ 0 ..^ 2 M → 0 ≤ N
26 25 3ad2ant2 ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 0 ≤ N
27 11 19 26 divge0d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 0 ≤ N 2 m
28 0z ⊢ 0 ∈ ℤ
29 flbi ⊢ N 2 m ∈ ℝ ∧ 0 ∈ ℤ → N 2 m = 0 ↔ 0 ≤ N 2 m ∧ N 2 m < 0 + 1
30 20 28 29 sylancl ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → N 2 m = 0 ↔ 0 ≤ N 2 m ∧ N 2 m < 0 + 1
31 z0even ⊢ 2 ∥ 0
32 id ⊢ N 2 m = 0 → N 2 m = 0
33 31 32 breqtrrid ⊢ N 2 m = 0 → 2 ∥ N 2 m
34 30 33 biimtrrdi ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 0 ≤ N 2 m ∧ N 2 m < 0 + 1 → 2 ∥ N 2 m
35 27 34 mpand ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → N 2 m < 0 + 1 → 2 ∥ N 2 m
36 24 35 biimtrrid ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → N 2 m < 1 → 2 ∥ N 2 m
37 22 36 sylbird ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → ¬ 1 ≤ N 2 m → 2 ∥ N 2 m
38 15 37 mt3d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 1 ≤ N 2 m
39 21 11 19 lemuldivd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 1 ⁢ 2 m ≤ N ↔ 1 ≤ N 2 m
40 38 39 mpbird ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 1 ⁢ 2 m ≤ N
41 14 40 eqbrtrrd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 2 m ≤ N
42 elfzolt2 ⊢ N ∈ 0 ..^ 2 M → N < 2 M
43 42 3ad2ant2 ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → N < 2 M
44 9 11 12 41 43 lelttrd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 2 m < 2 M
45 1lt2 ⊢ 1 < 2
46 45 a1i ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → 1 < 2
47 8 18 6 46 ltexp2d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → m < M ↔ 2 m < 2 M
48 44 47 mpbird ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → m < M
49 elfzo2 ⊢ m ∈ 0 ..^ M ↔ m ∈ ℤ ≥ 0 ∧ M ∈ ℤ ∧ m < M
50 4 6 48 49 syl3anbrc ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M ∧ N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → m ∈ 0 ..^ M
51 50 3expia ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M → N ∈ ℤ ∧ m ∈ ℕ 0 ∧ ¬ 2 ∥ N 2 m → m ∈ 0 ..^ M
52 1 51 biimtrid ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M → m ∈ bits ⁡ N → m ∈ 0 ..^ M
53 52 ssrdv ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ N ∈ 0 ..^ 2 M → bits ⁡ N ⊆ 0 ..^ M
54 simpr ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → − N ∈ ℕ
55 54 nnred ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → − N ∈ ℝ
56 simpllr ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → M ∈ ℕ 0
57 56 nn0red ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → M ∈ ℝ
58 max2 ⊢ − N ∈ ℝ ∧ M ∈ ℝ → M ≤ if − N ≤ M M − N
59 55 57 58 syl2anc ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → M ≤ if − N ≤ M M − N
60 simplr ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → bits ⁡ N ⊆ 0 ..^ M
61 n2dvdsm1 ⊢ ¬ 2 ∥ -1
62 simplll ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → N ∈ ℤ
63 62 zred ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → N ∈ ℝ
64 2nn ⊢ 2 ∈ ℕ
65 64 a1i ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → 2 ∈ ℕ
66 54 nnnn0d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → − N ∈ ℕ 0
67 56 66 ifcld ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → if − N ≤ M M − N ∈ ℕ 0
68 65 67 nnexpcld ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → 2 if − N ≤ M M − N ∈ ℕ
69 63 68 nndivred ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → N 2 if − N ≤ M M − N ∈ ℝ
70 1red ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → 1 ∈ ℝ
71 62 zcnd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → N ∈ ℂ
72 68 nncnd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → 2 if − N ≤ M M − N ∈ ℂ
73 2cnd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → 2 ∈ ℂ
74 2ne0 ⊢ 2 ≠ 0
75 74 a1i ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → 2 ≠ 0
76 67 nn0zd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → if − N ≤ M M − N ∈ ℤ
77 73 75 76 expne0d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → 2 if − N ≤ M M − N ≠ 0
78 71 72 77 divnegd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → − N 2 if − N ≤ M M − N = − N 2 if − N ≤ M M − N
79 67 nn0red ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → if − N ≤ M M − N ∈ ℝ
80 68 nnred ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → 2 if − N ≤ M M − N ∈ ℝ
81 max1 ⊢ − N ∈ ℝ ∧ M ∈ ℝ → − N ≤ if − N ≤ M M − N
82 55 57 81 syl2anc ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → − N ≤ if − N ≤ M M − N
83 2z ⊢ 2 ∈ ℤ
84 uzid ⊢ 2 ∈ ℤ → 2 ∈ ℤ ≥ 2
85 83 84 ax-mp ⊢ 2 ∈ ℤ ≥ 2
86 bernneq3 ⊢ 2 ∈ ℤ ≥ 2 ∧ if − N ≤ M M − N ∈ ℕ 0 → if − N ≤ M M − N < 2 if − N ≤ M M − N
87 85 67 86 sylancr ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → if − N ≤ M M − N < 2 if − N ≤ M M − N
88 79 80 87 ltled ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → if − N ≤ M M − N ≤ 2 if − N ≤ M M − N
89 55 79 80 82 88 letrd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → − N ≤ 2 if − N ≤ M M − N
90 72 mulridd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → 2 if − N ≤ M M − N ⋅ 1 = 2 if − N ≤ M M − N
91 89 90 breqtrrd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → − N ≤ 2 if − N ≤ M M − N ⋅ 1
92 68 nnrpd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → 2 if − N ≤ M M − N ∈ ℝ +
93 55 70 92 ledivmuld ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → − N 2 if − N ≤ M M − N ≤ 1 ↔ − N ≤ 2 if − N ≤ M M − N ⋅ 1
94 91 93 mpbird ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → − N 2 if − N ≤ M M − N ≤ 1
95 78 94 eqbrtrd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → − N 2 if − N ≤ M M − N ≤ 1
96 69 70 95 lenegcon1d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → − 1 ≤ N 2 if − N ≤ M M − N
97 54 nngt0d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → 0 < − N
98 68 nngt0d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → 0 < 2 if − N ≤ M M − N
99 55 80 97 98 divgt0d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → 0 < − N 2 if − N ≤ M M − N
100 99 78 breqtrrd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → 0 < − N 2 if − N ≤ M M − N
101 69 lt0neg1d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → N 2 if − N ≤ M M − N < 0 ↔ 0 < − N 2 if − N ≤ M M − N
102 100 101 mpbird ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → N 2 if − N ≤ M M − N < 0
103 ax-1cn ⊢ 1 ∈ ℂ
104 neg1cn ⊢ − 1 ∈ ℂ
105 1pneg1e0 ⊢ 1 + -1 = 0
106 103 104 105 addcomli ⊢ - 1 + 1 = 0
107 102 106 breqtrrdi ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → N 2 if − N ≤ M M − N < - 1 + 1
108 neg1z ⊢ − 1 ∈ ℤ
109 flbi ⊢ N 2 if − N ≤ M M − N ∈ ℝ ∧ − 1 ∈ ℤ → N 2 if − N ≤ M M − N = − 1 ↔ − 1 ≤ N 2 if − N ≤ M M − N ∧ N 2 if − N ≤ M M − N < - 1 + 1
110 69 108 109 sylancl ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → N 2 if − N ≤ M M − N = − 1 ↔ − 1 ≤ N 2 if − N ≤ M M − N ∧ N 2 if − N ≤ M M − N < - 1 + 1
111 96 107 110 mpbir2and ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → N 2 if − N ≤ M M − N = − 1
112 111 breq2d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → 2 ∥ N 2 if − N ≤ M M − N ↔ 2 ∥ -1
113 61 112 mtbiri ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → ¬ 2 ∥ N 2 if − N ≤ M M − N
114 bitsval2 ⊢ N ∈ ℤ ∧ if − N ≤ M M − N ∈ ℕ 0 → if − N ≤ M M − N ∈ bits ⁡ N ↔ ¬ 2 ∥ N 2 if − N ≤ M M − N
115 62 67 114 syl2anc ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → if − N ≤ M M − N ∈ bits ⁡ N ↔ ¬ 2 ∥ N 2 if − N ≤ M M − N
116 113 115 mpbird ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → if − N ≤ M M − N ∈ bits ⁡ N
117 60 116 sseldd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → if − N ≤ M M − N ∈ 0 ..^ M
118 elfzolt2 ⊢ if − N ≤ M M − N ∈ 0 ..^ M → if − N ≤ M M − N < M
119 117 118 syl ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → if − N ≤ M M − N < M
120 79 57 ltnled ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → if − N ≤ M M − N < M ↔ ¬ M ≤ if − N ≤ M M − N
121 119 120 mpbid ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M ∧ − N ∈ ℕ → ¬ M ≤ if − N ≤ M M − N
122 59 121 pm2.65da ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M → ¬ − N ∈ ℕ
123 122 intnand ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M → ¬ N ∈ ℝ ∧ − N ∈ ℕ
124 simpll ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M → N ∈ ℤ
125 elznn0nn ⊢ N ∈ ℤ ↔ N ∈ ℕ 0 ∨ N ∈ ℝ ∧ − N ∈ ℕ
126 124 125 sylib ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M → N ∈ ℕ 0 ∨ N ∈ ℝ ∧ − N ∈ ℕ
127 126 ord ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M → ¬ N ∈ ℕ 0 → N ∈ ℝ ∧ − N ∈ ℕ
128 123 127 mt3d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M → N ∈ ℕ 0
129 simplr ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M → M ∈ ℕ 0
130 simpr ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M → bits ⁡ N ⊆ 0 ..^ M
131 eqid ⊢ inf n ∈ ℕ 0 | N < 2 n ℝ < = inf n ∈ ℕ 0 | N < 2 n ℝ <
132 128 129 130 131 bitsfzolem ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 ∧ bits ⁡ N ⊆ 0 ..^ M → N ∈ 0 ..^ 2 M
133 53 132 impbida ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → N ∈ 0 ..^ 2 M ↔ bits ⁡ N ⊆ 0 ..^ M