ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  bitsmod GIF version

Theorem bitsmod 12522
Description: Truncating the bit sequence after some 𝑀 is equivalent to reducing the argument mod 2↑𝑀. (Contributed by Mario Carneiro, 6-Sep-2016.)
Assertion
Ref Expression
bitsmod ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (bits‘(𝑁 mod (2↑𝑀))) = ((bits‘𝑁) ∩ (0..^𝑀)))

Proof of Theorem bitsmod
Dummy variable 𝑥 is distinct from all other variables.
StepHypRef Expression
1 simpl 109 . . . . . . . 8 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℤ)
2 2nn 9305 . . . . . . . . . 10 2 ∈ ℕ
32a1i 9 . . . . . . . . 9 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∈ ℕ)
4 simpr 110 . . . . . . . . 9 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑀 ∈ ℕ0)
53, 4nnexpcld 10958 . . . . . . . 8 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ∈ ℕ)
61, 5zmodcld 10608 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 mod (2↑𝑀)) ∈ ℕ0)
76nn0zd 9600 . . . . . 6 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 mod (2↑𝑀)) ∈ ℤ)
87biantrurd 305 . . . . 5 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑥 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))) ↔ ((𝑁 mod (2↑𝑀)) ∈ ℤ ∧ (𝑥 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))))))
91ad2antrr 488 . . . . . . . . . . 11 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑁 ∈ ℤ)
10 simplr 529 . . . . . . . . . . 11 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑥 ∈ ℕ0)
11 bitsval2 12510 . . . . . . . . . . 11 ((𝑁 ∈ ℤ ∧ 𝑥 ∈ ℕ0) → (𝑥 ∈ (bits‘𝑁) ↔ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑥)))))
129, 10, 11syl2anc 411 . . . . . . . . . 10 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑥 ∈ (bits‘𝑁) ↔ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑥)))))
13 simpr 110 . . . . . . . . . . 11 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑥 < 𝑀)
1413biantrud 304 . . . . . . . . . 10 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑥 ∈ (bits‘𝑁) ↔ (𝑥 ∈ (bits‘𝑁) ∧ 𝑥 < 𝑀)))
15 2z 9507 . . . . . . . . . . . . 13 2 ∈ ℤ
1615a1i 9 . . . . . . . . . . . 12 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 2 ∈ ℤ)
172a1i 9 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 2 ∈ ℕ)
1817, 10nnexpcld 10958 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑥) ∈ ℕ)
19 znq 9858 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℤ ∧ (2↑𝑥) ∈ ℕ) → (𝑁 / (2↑𝑥)) ∈ ℚ)
209, 18, 19syl2anc 411 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑁 / (2↑𝑥)) ∈ ℚ)
2120flqcld 10538 . . . . . . . . . . . 12 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (⌊‘(𝑁 / (2↑𝑥))) ∈ ℤ)
227ad2antrr 488 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) ∈ ℤ)
23 znq 9858 . . . . . . . . . . . . . 14 (((𝑁 mod (2↑𝑀)) ∈ ℤ ∧ (2↑𝑥) ∈ ℕ) → ((𝑁 mod (2↑𝑀)) / (2↑𝑥)) ∈ ℚ)
2422, 18, 23syl2anc 411 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((𝑁 mod (2↑𝑀)) / (2↑𝑥)) ∈ ℚ)
2524flqcld 10538 . . . . . . . . . . . 12 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) ∈ ℤ)
2618nnzd 9601 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑥) ∈ ℤ)
2726, 16zmulcld 9608 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((2↑𝑥) · 2) ∈ ℤ)
285ad2antrr 488 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑀) ∈ ℕ)
2928nnzd 9601 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑀) ∈ ℤ)
309, 22zsubcld 9607 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑁 − (𝑁 mod (2↑𝑀))) ∈ ℤ)
31 2cnd 9216 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 2 ∈ ℂ)
3231, 10expp1d 10937 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑(𝑥 + 1)) = ((2↑𝑥) · 2))
33 1nn0 9418 . . . . . . . . . . . . . . . . . . . 20 1 ∈ ℕ0
3433a1i 9 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 1 ∈ ℕ0)
3510, 34nn0addcld 9459 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑥 + 1) ∈ ℕ0)
3635nn0zd 9600 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑥 + 1) ∈ ℤ)
37 simplr 529 . . . . . . . . . . . . . . . . . . . . 21 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) → 𝑀 ∈ ℕ0)
3837adantr 276 . . . . . . . . . . . . . . . . . . . 20 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑀 ∈ ℕ0)
3938nn0zd 9600 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑀 ∈ ℤ)
40 nn0ltp1le 9542 . . . . . . . . . . . . . . . . . . . . 21 ((𝑥 ∈ ℕ0𝑀 ∈ ℕ0) → (𝑥 < 𝑀 ↔ (𝑥 + 1) ≤ 𝑀))
4110, 38, 40syl2anc 411 . . . . . . . . . . . . . . . . . . . 20 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑥 < 𝑀 ↔ (𝑥 + 1) ≤ 𝑀))
4213, 41mpbid 147 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑥 + 1) ≤ 𝑀)
43 eluz2 9761 . . . . . . . . . . . . . . . . . . 19 (𝑀 ∈ (ℤ‘(𝑥 + 1)) ↔ ((𝑥 + 1) ∈ ℤ ∧ 𝑀 ∈ ℤ ∧ (𝑥 + 1) ≤ 𝑀))
4436, 39, 42, 43syl3anbrc 1207 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑀 ∈ (ℤ‘(𝑥 + 1)))
45 dvdsexp 12427 . . . . . . . . . . . . . . . . . 18 ((2 ∈ ℤ ∧ (𝑥 + 1) ∈ ℕ0𝑀 ∈ (ℤ‘(𝑥 + 1))) → (2↑(𝑥 + 1)) ∥ (2↑𝑀))
4616, 35, 44, 45syl3anc 1273 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑(𝑥 + 1)) ∥ (2↑𝑀))
4732, 46eqbrtrrd 4112 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((2↑𝑥) · 2) ∥ (2↑𝑀))
48 zq 9860 . . . . . . . . . . . . . . . . . . 19 (𝑁 ∈ ℤ → 𝑁 ∈ ℚ)
499, 48syl 14 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑁 ∈ ℚ)
50 nnq 9867 . . . . . . . . . . . . . . . . . . 19 ((2↑𝑀) ∈ ℕ → (2↑𝑀) ∈ ℚ)
5128, 50syl 14 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑀) ∈ ℚ)
5228nngt0d 9187 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 0 < (2↑𝑀))
53 modqdifz 10599 . . . . . . . . . . . . . . . . . 18 ((𝑁 ∈ ℚ ∧ (2↑𝑀) ∈ ℚ ∧ 0 < (2↑𝑀)) → ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℤ)
5449, 51, 52, 53syl3anc 1273 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℤ)
5528nnne0d 9188 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑀) ≠ 0)
56 dvdsval2 12356 . . . . . . . . . . . . . . . . . 18 (((2↑𝑀) ∈ ℤ ∧ (2↑𝑀) ≠ 0 ∧ (𝑁 − (𝑁 mod (2↑𝑀))) ∈ ℤ) → ((2↑𝑀) ∥ (𝑁 − (𝑁 mod (2↑𝑀))) ↔ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℤ))
5729, 55, 30, 56syl3anc 1273 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((2↑𝑀) ∥ (𝑁 − (𝑁 mod (2↑𝑀))) ↔ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℤ))
5854, 57mpbird 167 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑀) ∥ (𝑁 − (𝑁 mod (2↑𝑀))))
5927, 29, 30, 47, 58dvdstrd 12396 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((2↑𝑥) · 2) ∥ (𝑁 − (𝑁 mod (2↑𝑀))))
6030zcnd 9603 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑁 − (𝑁 mod (2↑𝑀))) ∈ ℂ)
6118nncnd 9157 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑥) ∈ ℂ)
6218nnap0d 9189 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑥) # 0)
6360, 61, 62divcanap2d 8972 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((2↑𝑥) · ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))) = (𝑁 − (𝑁 mod (2↑𝑀))))
6459, 63breqtrrd 4116 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((2↑𝑥) · 2) ∥ ((2↑𝑥) · ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))))
6510nn0zd 9600 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑥 ∈ ℤ)
6610nn0red 9456 . . . . . . . . . . . . . . . . . . . 20 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑥 ∈ ℝ)
6738nn0red 9456 . . . . . . . . . . . . . . . . . . . 20 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑀 ∈ ℝ)
6866, 67, 13ltled 8298 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑥𝑀)
69 eluz2 9761 . . . . . . . . . . . . . . . . . . 19 (𝑀 ∈ (ℤ𝑥) ↔ (𝑥 ∈ ℤ ∧ 𝑀 ∈ ℤ ∧ 𝑥𝑀))
7065, 39, 68, 69syl3anbrc 1207 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑀 ∈ (ℤ𝑥))
71 dvdsexp 12427 . . . . . . . . . . . . . . . . . 18 ((2 ∈ ℤ ∧ 𝑥 ∈ ℕ0𝑀 ∈ (ℤ𝑥)) → (2↑𝑥) ∥ (2↑𝑀))
7216, 10, 70, 71syl3anc 1273 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑥) ∥ (2↑𝑀))
7326, 29, 30, 72, 58dvdstrd 12396 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑥) ∥ (𝑁 − (𝑁 mod (2↑𝑀))))
7418nnne0d 9188 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑥) ≠ 0)
75 dvdsval2 12356 . . . . . . . . . . . . . . . . 17 (((2↑𝑥) ∈ ℤ ∧ (2↑𝑥) ≠ 0 ∧ (𝑁 − (𝑁 mod (2↑𝑀))) ∈ ℤ) → ((2↑𝑥) ∥ (𝑁 − (𝑁 mod (2↑𝑀))) ↔ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)) ∈ ℤ))
7626, 74, 30, 75syl3anc 1273 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((2↑𝑥) ∥ (𝑁 − (𝑁 mod (2↑𝑀))) ↔ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)) ∈ ℤ))
7773, 76mpbid 147 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)) ∈ ℤ)
78 dvdscmulr 12386 . . . . . . . . . . . . . . 15 ((2 ∈ ℤ ∧ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)) ∈ ℤ ∧ ((2↑𝑥) ∈ ℤ ∧ (2↑𝑥) ≠ 0)) → (((2↑𝑥) · 2) ∥ ((2↑𝑥) · ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))) ↔ 2 ∥ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))))
7916, 77, 26, 74, 78syl112anc 1277 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (((2↑𝑥) · 2) ∥ ((2↑𝑥) · ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))) ↔ 2 ∥ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))))
8064, 79mpbid 147 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 2 ∥ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)))
8125zcnd 9603 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) ∈ ℂ)
8277zcnd 9603 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)) ∈ ℂ)
8322zcnd 9603 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) ∈ ℂ)
849zcnd 9603 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑁 ∈ ℂ)
8583, 84pncan3d 8493 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((𝑁 mod (2↑𝑀)) + (𝑁 − (𝑁 mod (2↑𝑀)))) = 𝑁)
8685oveq1d 6033 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (((𝑁 mod (2↑𝑀)) + (𝑁 − (𝑁 mod (2↑𝑀)))) / (2↑𝑥)) = (𝑁 / (2↑𝑥)))
8783, 60, 61, 62divdirapd 9009 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (((𝑁 mod (2↑𝑀)) + (𝑁 − (𝑁 mod (2↑𝑀)))) / (2↑𝑥)) = (((𝑁 mod (2↑𝑀)) / (2↑𝑥)) + ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))))
8886, 87eqtr3d 2266 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑁 / (2↑𝑥)) = (((𝑁 mod (2↑𝑀)) / (2↑𝑥)) + ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))))
8988fveq2d 5643 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (⌊‘(𝑁 / (2↑𝑥))) = (⌊‘(((𝑁 mod (2↑𝑀)) / (2↑𝑥)) + ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)))))
90 flqaddz 10558 . . . . . . . . . . . . . . . 16 ((((𝑁 mod (2↑𝑀)) / (2↑𝑥)) ∈ ℚ ∧ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)) ∈ ℤ) → (⌊‘(((𝑁 mod (2↑𝑀)) / (2↑𝑥)) + ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)))) = ((⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) + ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))))
9124, 77, 90syl2anc 411 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (⌊‘(((𝑁 mod (2↑𝑀)) / (2↑𝑥)) + ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)))) = ((⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) + ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))))
9289, 91eqtrd 2264 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (⌊‘(𝑁 / (2↑𝑥))) = ((⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) + ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))))
9381, 82, 92mvrladdd 8546 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((⌊‘(𝑁 / (2↑𝑥))) − (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))) = ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)))
9480, 93breqtrrd 4116 . . . . . . . . . . . 12 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 2 ∥ ((⌊‘(𝑁 / (2↑𝑥))) − (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))))
95 dvdssub2 12401 . . . . . . . . . . . 12 (((2 ∈ ℤ ∧ (⌊‘(𝑁 / (2↑𝑥))) ∈ ℤ ∧ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) ∈ ℤ) ∧ 2 ∥ ((⌊‘(𝑁 / (2↑𝑥))) − (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))))) → (2 ∥ (⌊‘(𝑁 / (2↑𝑥))) ↔ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))))
9616, 21, 25, 94, 95syl31anc 1276 . . . . . . . . . . 11 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2 ∥ (⌊‘(𝑁 / (2↑𝑥))) ↔ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))))
9796notbid 673 . . . . . . . . . 10 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑥))) ↔ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))))
9812, 14, 973bitr3d 218 . . . . . . . . 9 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((𝑥 ∈ (bits‘𝑁) ∧ 𝑥 < 𝑀) ↔ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))))
99 simpr 110 . . . . . . . . . . 11 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ¬ 𝑥 < 𝑀)
10099intnand 938 . . . . . . . . . 10 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ¬ (𝑥 ∈ (bits‘𝑁) ∧ 𝑥 < 𝑀))
101 z0even 12477 . . . . . . . . . . . 12 2 ∥ 0
1021ad2antrr 488 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑁 ∈ ℤ)
103102, 48syl 14 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑁 ∈ ℚ)
1045ad2antrr 488 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑀) ∈ ℕ)
105104, 50syl 14 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑀) ∈ ℚ)
106 2rp 9893 . . . . . . . . . . . . . . . . . . 19 2 ∈ ℝ+
107106a1i 9 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 2 ∈ ℝ+)
10837nn0zd 9600 . . . . . . . . . . . . . . . . . . 19 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) → 𝑀 ∈ ℤ)
109108adantr 276 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑀 ∈ ℤ)
110107, 109rpexpcld 10960 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑀) ∈ ℝ+)
111110rpgt0d 9934 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 0 < (2↑𝑀))
112103, 105, 111modqcld 10591 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) ∈ ℚ)
113 qre 9859 . . . . . . . . . . . . . . 15 ((𝑁 mod (2↑𝑀)) ∈ ℚ → (𝑁 mod (2↑𝑀)) ∈ ℝ)
114112, 113syl 14 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) ∈ ℝ)
115 simplr 529 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑥 ∈ ℕ0)
116115nn0zd 9600 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑥 ∈ ℤ)
117107, 116rpexpcld 10960 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑥) ∈ ℝ+)
1186ad2antrr 488 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) ∈ ℕ0)
119118nn0ge0d 9458 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 0 ≤ (𝑁 mod (2↑𝑀)))
120114, 117, 119divge0d 9972 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 0 ≤ ((𝑁 mod (2↑𝑀)) / (2↑𝑥)))
121110rpred 9931 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑀) ∈ ℝ)
122117rpred 9931 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑥) ∈ ℝ)
123 modqlt 10596 . . . . . . . . . . . . . . . . . 18 ((𝑁 ∈ ℚ ∧ (2↑𝑀) ∈ ℚ ∧ 0 < (2↑𝑀)) → (𝑁 mod (2↑𝑀)) < (2↑𝑀))
124103, 105, 111, 123syl3anc 1273 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) < (2↑𝑀))
125107rpred 9931 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 2 ∈ ℝ)
126 1le2 9352 . . . . . . . . . . . . . . . . . . 19 1 ≤ 2
127126a1i 9 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 1 ≤ 2)
128109zred 9602 . . . . . . . . . . . . . . . . . . . 20 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑀 ∈ ℝ)
129115nn0red 9456 . . . . . . . . . . . . . . . . . . . 20 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑥 ∈ ℝ)
130128, 129, 99nltled 8300 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑀𝑥)
131 eluz2 9761 . . . . . . . . . . . . . . . . . . 19 (𝑥 ∈ (ℤ𝑀) ↔ (𝑀 ∈ ℤ ∧ 𝑥 ∈ ℤ ∧ 𝑀𝑥))
132109, 116, 130, 131syl3anbrc 1207 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑥 ∈ (ℤ𝑀))
133125, 127, 132leexp2ad 10965 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑀) ≤ (2↑𝑥))
134114, 121, 122, 124, 133ltletrd 8603 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) < (2↑𝑥))
135117rpcnd 9933 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑥) ∈ ℂ)
136135mulridd 8196 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ((2↑𝑥) · 1) = (2↑𝑥))
137134, 136breqtrrd 4116 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) < ((2↑𝑥) · 1))
138 1red 8194 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 1 ∈ ℝ)
139114, 138, 117ltdivmuld 9983 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (((𝑁 mod (2↑𝑀)) / (2↑𝑥)) < 1 ↔ (𝑁 mod (2↑𝑀)) < ((2↑𝑥) · 1)))
140137, 139mpbird 167 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ((𝑁 mod (2↑𝑀)) / (2↑𝑥)) < 1)
141 1e0p1 9652 . . . . . . . . . . . . . 14 1 = (0 + 1)
142140, 141breqtrdi 4129 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ((𝑁 mod (2↑𝑀)) / (2↑𝑥)) < (0 + 1))
1437ad2antrr 488 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) ∈ ℤ)
1442a1i 9 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 2 ∈ ℕ)
145144, 115nnexpcld 10958 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑥) ∈ ℕ)
146143, 145, 23syl2anc 411 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ((𝑁 mod (2↑𝑀)) / (2↑𝑥)) ∈ ℚ)
147 0z 9490 . . . . . . . . . . . . . 14 0 ∈ ℤ
148 flqbi 10551 . . . . . . . . . . . . . 14 ((((𝑁 mod (2↑𝑀)) / (2↑𝑥)) ∈ ℚ ∧ 0 ∈ ℤ) → ((⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) = 0 ↔ (0 ≤ ((𝑁 mod (2↑𝑀)) / (2↑𝑥)) ∧ ((𝑁 mod (2↑𝑀)) / (2↑𝑥)) < (0 + 1))))
149146, 147, 148sylancl 413 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ((⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) = 0 ↔ (0 ≤ ((𝑁 mod (2↑𝑀)) / (2↑𝑥)) ∧ ((𝑁 mod (2↑𝑀)) / (2↑𝑥)) < (0 + 1))))
150120, 142, 149mpbir2and 952 . . . . . . . . . . . 12 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) = 0)
151101, 150breqtrrid 4126 . . . . . . . . . . 11 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))))
152151notnotd 635 . . . . . . . . . 10 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ¬ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))))
153100, 1522falsed 709 . . . . . . . . 9 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ((𝑥 ∈ (bits‘𝑁) ∧ 𝑥 < 𝑀) ↔ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))))
154 nn0z 9499 . . . . . . . . . . 11 (𝑥 ∈ ℕ0𝑥 ∈ ℤ)
155 zdclt 9557 . . . . . . . . . . 11 ((𝑥 ∈ ℤ ∧ 𝑀 ∈ ℤ) → DECID 𝑥 < 𝑀)
156154, 108, 155syl2an2 598 . . . . . . . . . 10 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) → DECID 𝑥 < 𝑀)
157 exmiddc 843 . . . . . . . . . 10 (DECID 𝑥 < 𝑀 → (𝑥 < 𝑀 ∨ ¬ 𝑥 < 𝑀))
158156, 157syl 14 . . . . . . . . 9 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) → (𝑥 < 𝑀 ∨ ¬ 𝑥 < 𝑀))
15998, 153, 158mpjaodan 805 . . . . . . . 8 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) → ((𝑥 ∈ (bits‘𝑁) ∧ 𝑥 < 𝑀) ↔ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))))
160108biantrurd 305 . . . . . . . 8 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) → ((𝑥 ∈ (bits‘𝑁) ∧ 𝑥 < 𝑀) ↔ (𝑀 ∈ ℤ ∧ (𝑥 ∈ (bits‘𝑁) ∧ 𝑥 < 𝑀))))
161159, 160bitr3d 190 . . . . . . 7 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) → (¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) ↔ (𝑀 ∈ ℤ ∧ (𝑥 ∈ (bits‘𝑁) ∧ 𝑥 < 𝑀))))
162 an12 563 . . . . . . 7 ((𝑀 ∈ ℤ ∧ (𝑥 ∈ (bits‘𝑁) ∧ 𝑥 < 𝑀)) ↔ (𝑥 ∈ (bits‘𝑁) ∧ (𝑀 ∈ ℤ ∧ 𝑥 < 𝑀)))
163161, 162bitrdi 196 . . . . . 6 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) → (¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) ↔ (𝑥 ∈ (bits‘𝑁) ∧ (𝑀 ∈ ℤ ∧ 𝑥 < 𝑀))))
164163pm5.32da 452 . . . . 5 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑥 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))) ↔ (𝑥 ∈ ℕ0 ∧ (𝑥 ∈ (bits‘𝑁) ∧ (𝑀 ∈ ℤ ∧ 𝑥 < 𝑀)))))
1658, 164bitr3d 190 . . . 4 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 mod (2↑𝑀)) ∈ ℤ ∧ (𝑥 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))))) ↔ (𝑥 ∈ ℕ0 ∧ (𝑥 ∈ (bits‘𝑁) ∧ (𝑀 ∈ ℤ ∧ 𝑥 < 𝑀)))))
166 3anass 1008 . . . 4 (((𝑁 mod (2↑𝑀)) ∈ ℤ ∧ 𝑥 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))) ↔ ((𝑁 mod (2↑𝑀)) ∈ ℤ ∧ (𝑥 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))))))
167 elfzo2 10385 . . . . . . 7 (𝑥 ∈ (0..^𝑀) ↔ (𝑥 ∈ (ℤ‘0) ∧ 𝑀 ∈ ℤ ∧ 𝑥 < 𝑀))
168 elnn0uz 9794 . . . . . . . 8 (𝑥 ∈ ℕ0𝑥 ∈ (ℤ‘0))
1691683anbi1i 1216 . . . . . . 7 ((𝑥 ∈ ℕ0𝑀 ∈ ℤ ∧ 𝑥 < 𝑀) ↔ (𝑥 ∈ (ℤ‘0) ∧ 𝑀 ∈ ℤ ∧ 𝑥 < 𝑀))
170 3anass 1008 . . . . . . 7 ((𝑥 ∈ ℕ0𝑀 ∈ ℤ ∧ 𝑥 < 𝑀) ↔ (𝑥 ∈ ℕ0 ∧ (𝑀 ∈ ℤ ∧ 𝑥 < 𝑀)))
171167, 169, 1703bitr2i 208 . . . . . 6 (𝑥 ∈ (0..^𝑀) ↔ (𝑥 ∈ ℕ0 ∧ (𝑀 ∈ ℤ ∧ 𝑥 < 𝑀)))
172171anbi2i 457 . . . . 5 ((𝑥 ∈ (bits‘𝑁) ∧ 𝑥 ∈ (0..^𝑀)) ↔ (𝑥 ∈ (bits‘𝑁) ∧ (𝑥 ∈ ℕ0 ∧ (𝑀 ∈ ℤ ∧ 𝑥 < 𝑀))))
173 an12 563 . . . . 5 ((𝑥 ∈ (bits‘𝑁) ∧ (𝑥 ∈ ℕ0 ∧ (𝑀 ∈ ℤ ∧ 𝑥 < 𝑀))) ↔ (𝑥 ∈ ℕ0 ∧ (𝑥 ∈ (bits‘𝑁) ∧ (𝑀 ∈ ℤ ∧ 𝑥 < 𝑀))))
174172, 173bitri 184 . . . 4 ((𝑥 ∈ (bits‘𝑁) ∧ 𝑥 ∈ (0..^𝑀)) ↔ (𝑥 ∈ ℕ0 ∧ (𝑥 ∈ (bits‘𝑁) ∧ (𝑀 ∈ ℤ ∧ 𝑥 < 𝑀))))
175165, 166, 1743bitr4g 223 . . 3 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 mod (2↑𝑀)) ∈ ℤ ∧ 𝑥 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))) ↔ (𝑥 ∈ (bits‘𝑁) ∧ 𝑥 ∈ (0..^𝑀))))
176 bitsval 12509 . . 3 (𝑥 ∈ (bits‘(𝑁 mod (2↑𝑀))) ↔ ((𝑁 mod (2↑𝑀)) ∈ ℤ ∧ 𝑥 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))))
177 elin 3390 . . 3 (𝑥 ∈ ((bits‘𝑁) ∩ (0..^𝑀)) ↔ (𝑥 ∈ (bits‘𝑁) ∧ 𝑥 ∈ (0..^𝑀)))
178175, 176, 1773bitr4g 223 . 2 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑥 ∈ (bits‘(𝑁 mod (2↑𝑀))) ↔ 𝑥 ∈ ((bits‘𝑁) ∩ (0..^𝑀))))
179178eqrdv 2229 1 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (bits‘(𝑁 mod (2↑𝑀))) = ((bits‘𝑁) ∩ (0..^𝑀)))
Colors of variables: wff set class
Syntax hints:  ¬ wn 3  wi 4  wa 104  wb 105  wo 715  DECID wdc 841  w3a 1004   = wceq 1397  wcel 2202  wne 2402  cin 3199   class class class wbr 4088  cfv 5326  (class class class)co 6018  cr 8031  0cc0 8032  1c1 8033   + caddc 8035   · cmul 8037   < clt 8214  cle 8215  cmin 8350   / cdiv 8852  cn 9143  2c2 9194  0cn0 9402  cz 9479  cuz 9755  cq 9853  +crp 9888  ..^cfzo 10377  cfl 10529   mod cmo 10585  cexp 10801  cdvds 12353  bitscbits 12506
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 619  ax-in2 620  ax-io 716  ax-5 1495  ax-7 1496  ax-gen 1497  ax-ie1 1541  ax-ie2 1542  ax-8 1552  ax-10 1553  ax-11 1554  ax-i12 1555  ax-bndl 1557  ax-4 1558  ax-17 1574  ax-i9 1578  ax-ial 1582  ax-i5r 1583  ax-13 2204  ax-14 2205  ax-ext 2213  ax-coll 4204  ax-sep 4207  ax-nul 4215  ax-pow 4264  ax-pr 4299  ax-un 4530  ax-setind 4635  ax-iinf 4686  ax-cnex 8123  ax-resscn 8124  ax-1cn 8125  ax-1re 8126  ax-icn 8127  ax-addcl 8128  ax-addrcl 8129  ax-mulcl 8130  ax-mulrcl 8131  ax-addcom 8132  ax-mulcom 8133  ax-addass 8134  ax-mulass 8135  ax-distr 8136  ax-i2m1 8137  ax-0lt1 8138  ax-1rid 8139  ax-0id 8140  ax-rnegex 8141  ax-precex 8142  ax-cnre 8143  ax-pre-ltirr 8144  ax-pre-ltwlin 8145  ax-pre-lttrn 8146  ax-pre-apti 8147  ax-pre-ltadd 8148  ax-pre-mulgt0 8149  ax-pre-mulext 8150  ax-arch 8151
This theorem depends on definitions:  df-bi 117  df-dc 842  df-3or 1005  df-3an 1006  df-tru 1400  df-fal 1403  df-nf 1509  df-sb 1811  df-eu 2082  df-mo 2083  df-clab 2218  df-cleq 2224  df-clel 2227  df-nfc 2363  df-ne 2403  df-nel 2498  df-ral 2515  df-rex 2516  df-reu 2517  df-rmo 2518  df-rab 2519  df-v 2804  df-sbc 3032  df-csb 3128  df-dif 3202  df-un 3204  df-in 3206  df-ss 3213  df-nul 3495  df-if 3606  df-pw 3654  df-sn 3675  df-pr 3676  df-op 3678  df-uni 3894  df-int 3929  df-iun 3972  df-br 4089  df-opab 4151  df-mpt 4152  df-tr 4188  df-id 4390  df-po 4393  df-iso 4394  df-iord 4463  df-on 4465  df-ilim 4466  df-suc 4468  df-iom 4689  df-xp 4731  df-rel 4732  df-cnv 4733  df-co 4734  df-dm 4735  df-rn 4736  df-res 4737  df-ima 4738  df-iota 5286  df-fun 5328  df-fn 5329  df-f 5330  df-f1 5331  df-fo 5332  df-f1o 5333  df-fv 5334  df-riota 5971  df-ov 6021  df-oprab 6022  df-mpo 6023  df-1st 6303  df-2nd 6304  df-recs 6471  df-frec 6557  df-pnf 8216  df-mnf 8217  df-xr 8218  df-ltxr 8219  df-le 8220  df-sub 8352  df-neg 8353  df-reap 8755  df-ap 8762  df-div 8853  df-inn 9144  df-2 9202  df-n0 9403  df-z 9480  df-uz 9756  df-q 9854  df-rp 9889  df-fz 10244  df-fzo 10378  df-fl 10531  df-mod 10586  df-seqfrec 10711  df-exp 10802  df-dvds 12354  df-bits 12507
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator