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

Theorem bitsmod 12337
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 9213 . . . . . . . . . 10 2 ∈ ℕ
32a1i 9 . . . . . . . . 9 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∈ ℕ)
4 simpr 110 . . . . . . . . 9 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑀 ∈ ℕ0)
53, 4nnexpcld 10857 . . . . . . . 8 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ∈ ℕ)
61, 5zmodcld 10507 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 mod (2↑𝑀)) ∈ ℕ0)
76nn0zd 9508 . . . . . 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 528 . . . . . . . . . . 11 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑥 ∈ ℕ0)
11 bitsval2 12325 . . . . . . . . . . 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 9415 . . . . . . . . . . . . 13 2 ∈ ℤ
1615a1i 9 . . . . . . . . . . . 12 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 2 ∈ ℤ)
172a1i 9 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 2 ∈ ℕ)
1817, 10nnexpcld 10857 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑥) ∈ ℕ)
19 znq 9760 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℤ ∧ (2↑𝑥) ∈ ℕ) → (𝑁 / (2↑𝑥)) ∈ ℚ)
209, 18, 19syl2anc 411 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑁 / (2↑𝑥)) ∈ ℚ)
2120flqcld 10437 . . . . . . . . . . . 12 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (⌊‘(𝑁 / (2↑𝑥))) ∈ ℤ)
227ad2antrr 488 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) ∈ ℤ)
23 znq 9760 . . . . . . . . . . . . . 14 (((𝑁 mod (2↑𝑀)) ∈ ℤ ∧ (2↑𝑥) ∈ ℕ) → ((𝑁 mod (2↑𝑀)) / (2↑𝑥)) ∈ ℚ)
2422, 18, 23syl2anc 411 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((𝑁 mod (2↑𝑀)) / (2↑𝑥)) ∈ ℚ)
2524flqcld 10437 . . . . . . . . . . . 12 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) ∈ ℤ)
2618nnzd 9509 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑥) ∈ ℤ)
2726, 16zmulcld 9516 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((2↑𝑥) · 2) ∈ ℤ)
285ad2antrr 488 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑀) ∈ ℕ)
2928nnzd 9509 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑀) ∈ ℤ)
309, 22zsubcld 9515 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑁 − (𝑁 mod (2↑𝑀))) ∈ ℤ)
31 2cnd 9124 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 2 ∈ ℂ)
3231, 10expp1d 10836 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑(𝑥 + 1)) = ((2↑𝑥) · 2))
33 1nn0 9326 . . . . . . . . . . . . . . . . . . . 20 1 ∈ ℕ0
3433a1i 9 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 1 ∈ ℕ0)
3510, 34nn0addcld 9367 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑥 + 1) ∈ ℕ0)
3635nn0zd 9508 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑥 + 1) ∈ ℤ)
37 simplr 528 . . . . . . . . . . . . . . . . . . . . 21 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) → 𝑀 ∈ ℕ0)
3837adantr 276 . . . . . . . . . . . . . . . . . . . 20 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑀 ∈ ℕ0)
3938nn0zd 9508 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑀 ∈ ℤ)
40 nn0ltp1le 9450 . . . . . . . . . . . . . . . . . . . . 21 ((𝑥 ∈ ℕ0𝑀 ∈ ℕ0) → (𝑥 < 𝑀 ↔ (𝑥 + 1) ≤ 𝑀))
4110, 38, 40syl2anc 411 . . . . . . . . . . . . . . . . . . . 20 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑥 < 𝑀 ↔ (𝑥 + 1) ≤ 𝑀))
4213, 41mpbid 147 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑥 + 1) ≤ 𝑀)
43 eluz2 9669 . . . . . . . . . . . . . . . . . . 19 (𝑀 ∈ (ℤ‘(𝑥 + 1)) ↔ ((𝑥 + 1) ∈ ℤ ∧ 𝑀 ∈ ℤ ∧ (𝑥 + 1) ≤ 𝑀))
4436, 39, 42, 43syl3anbrc 1184 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑀 ∈ (ℤ‘(𝑥 + 1)))
45 dvdsexp 12242 . . . . . . . . . . . . . . . . . 18 ((2 ∈ ℤ ∧ (𝑥 + 1) ∈ ℕ0𝑀 ∈ (ℤ‘(𝑥 + 1))) → (2↑(𝑥 + 1)) ∥ (2↑𝑀))
4616, 35, 44, 45syl3anc 1250 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑(𝑥 + 1)) ∥ (2↑𝑀))
4732, 46eqbrtrrd 4074 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((2↑𝑥) · 2) ∥ (2↑𝑀))
48 zq 9762 . . . . . . . . . . . . . . . . . . 19 (𝑁 ∈ ℤ → 𝑁 ∈ ℚ)
499, 48syl 14 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑁 ∈ ℚ)
50 nnq 9769 . . . . . . . . . . . . . . . . . . 19 ((2↑𝑀) ∈ ℕ → (2↑𝑀) ∈ ℚ)
5128, 50syl 14 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑀) ∈ ℚ)
5228nngt0d 9095 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 0 < (2↑𝑀))
53 modqdifz 10498 . . . . . . . . . . . . . . . . . 18 ((𝑁 ∈ ℚ ∧ (2↑𝑀) ∈ ℚ ∧ 0 < (2↑𝑀)) → ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℤ)
5449, 51, 52, 53syl3anc 1250 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℤ)
5528nnne0d 9096 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑀) ≠ 0)
56 dvdsval2 12171 . . . . . . . . . . . . . . . . . 18 (((2↑𝑀) ∈ ℤ ∧ (2↑𝑀) ≠ 0 ∧ (𝑁 − (𝑁 mod (2↑𝑀))) ∈ ℤ) → ((2↑𝑀) ∥ (𝑁 − (𝑁 mod (2↑𝑀))) ↔ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℤ))
5729, 55, 30, 56syl3anc 1250 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((2↑𝑀) ∥ (𝑁 − (𝑁 mod (2↑𝑀))) ↔ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℤ))
5854, 57mpbird 167 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑀) ∥ (𝑁 − (𝑁 mod (2↑𝑀))))
5927, 29, 30, 47, 58dvdstrd 12211 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((2↑𝑥) · 2) ∥ (𝑁 − (𝑁 mod (2↑𝑀))))
6030zcnd 9511 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑁 − (𝑁 mod (2↑𝑀))) ∈ ℂ)
6118nncnd 9065 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑥) ∈ ℂ)
6218nnap0d 9097 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑥) # 0)
6360, 61, 62divcanap2d 8880 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((2↑𝑥) · ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))) = (𝑁 − (𝑁 mod (2↑𝑀))))
6459, 63breqtrrd 4078 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((2↑𝑥) · 2) ∥ ((2↑𝑥) · ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))))
6510nn0zd 9508 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑥 ∈ ℤ)
6610nn0red 9364 . . . . . . . . . . . . . . . . . . . 20 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑥 ∈ ℝ)
6738nn0red 9364 . . . . . . . . . . . . . . . . . . . 20 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑀 ∈ ℝ)
6866, 67, 13ltled 8206 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑥𝑀)
69 eluz2 9669 . . . . . . . . . . . . . . . . . . 19 (𝑀 ∈ (ℤ𝑥) ↔ (𝑥 ∈ ℤ ∧ 𝑀 ∈ ℤ ∧ 𝑥𝑀))
7065, 39, 68, 69syl3anbrc 1184 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑀 ∈ (ℤ𝑥))
71 dvdsexp 12242 . . . . . . . . . . . . . . . . . 18 ((2 ∈ ℤ ∧ 𝑥 ∈ ℕ0𝑀 ∈ (ℤ𝑥)) → (2↑𝑥) ∥ (2↑𝑀))
7216, 10, 70, 71syl3anc 1250 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑥) ∥ (2↑𝑀))
7326, 29, 30, 72, 58dvdstrd 12211 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑥) ∥ (𝑁 − (𝑁 mod (2↑𝑀))))
7418nnne0d 9096 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2↑𝑥) ≠ 0)
75 dvdsval2 12171 . . . . . . . . . . . . . . . . 17 (((2↑𝑥) ∈ ℤ ∧ (2↑𝑥) ≠ 0 ∧ (𝑁 − (𝑁 mod (2↑𝑀))) ∈ ℤ) → ((2↑𝑥) ∥ (𝑁 − (𝑁 mod (2↑𝑀))) ↔ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)) ∈ ℤ))
7626, 74, 30, 75syl3anc 1250 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((2↑𝑥) ∥ (𝑁 − (𝑁 mod (2↑𝑀))) ↔ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)) ∈ ℤ))
7773, 76mpbid 147 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)) ∈ ℤ)
78 dvdscmulr 12201 . . . . . . . . . . . . . . 15 ((2 ∈ ℤ ∧ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)) ∈ ℤ ∧ ((2↑𝑥) ∈ ℤ ∧ (2↑𝑥) ≠ 0)) → (((2↑𝑥) · 2) ∥ ((2↑𝑥) · ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))) ↔ 2 ∥ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))))
7916, 77, 26, 74, 78syl112anc 1254 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (((2↑𝑥) · 2) ∥ ((2↑𝑥) · ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))) ↔ 2 ∥ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))))
8064, 79mpbid 147 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 2 ∥ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)))
8125zcnd 9511 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) ∈ ℂ)
8277zcnd 9511 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)) ∈ ℂ)
8322zcnd 9511 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) ∈ ℂ)
849zcnd 9511 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 𝑁 ∈ ℂ)
8583, 84pncan3d 8401 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((𝑁 mod (2↑𝑀)) + (𝑁 − (𝑁 mod (2↑𝑀)))) = 𝑁)
8685oveq1d 5971 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (((𝑁 mod (2↑𝑀)) + (𝑁 − (𝑁 mod (2↑𝑀)))) / (2↑𝑥)) = (𝑁 / (2↑𝑥)))
8783, 60, 61, 62divdirapd 8917 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (((𝑁 mod (2↑𝑀)) + (𝑁 − (𝑁 mod (2↑𝑀)))) / (2↑𝑥)) = (((𝑁 mod (2↑𝑀)) / (2↑𝑥)) + ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))))
8886, 87eqtr3d 2241 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (𝑁 / (2↑𝑥)) = (((𝑁 mod (2↑𝑀)) / (2↑𝑥)) + ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))))
8988fveq2d 5592 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (⌊‘(𝑁 / (2↑𝑥))) = (⌊‘(((𝑁 mod (2↑𝑀)) / (2↑𝑥)) + ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)))))
90 flqaddz 10457 . . . . . . . . . . . . . . . 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 2239 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (⌊‘(𝑁 / (2↑𝑥))) = ((⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) + ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥))))
9381, 82, 92mvrladdd 8454 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → ((⌊‘(𝑁 / (2↑𝑥))) − (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))) = ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑥)))
9480, 93breqtrrd 4078 . . . . . . . . . . . 12 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → 2 ∥ ((⌊‘(𝑁 / (2↑𝑥))) − (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))))
95 dvdssub2 12216 . . . . . . . . . . . 12 (((2 ∈ ℤ ∧ (⌊‘(𝑁 / (2↑𝑥))) ∈ ℤ ∧ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) ∈ ℤ) ∧ 2 ∥ ((⌊‘(𝑁 / (2↑𝑥))) − (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))))) → (2 ∥ (⌊‘(𝑁 / (2↑𝑥))) ↔ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))))
9616, 21, 25, 94, 95syl31anc 1253 . . . . . . . . . . 11 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ 𝑥 < 𝑀) → (2 ∥ (⌊‘(𝑁 / (2↑𝑥))) ↔ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))))
9796notbid 669 . . . . . . . . . 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 933 . . . . . . . . . 10 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ¬ (𝑥 ∈ (bits‘𝑁) ∧ 𝑥 < 𝑀))
101 z0even 12292 . . . . . . . . . . . 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 9795 . . . . . . . . . . . . . . . . . . 19 2 ∈ ℝ+
107106a1i 9 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 2 ∈ ℝ+)
10837nn0zd 9508 . . . . . . . . . . . . . . . . . . 19 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) → 𝑀 ∈ ℤ)
109108adantr 276 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑀 ∈ ℤ)
110107, 109rpexpcld 10859 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑀) ∈ ℝ+)
111110rpgt0d 9836 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 0 < (2↑𝑀))
112103, 105, 111modqcld 10490 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) ∈ ℚ)
113 qre 9761 . . . . . . . . . . . . . . 15 ((𝑁 mod (2↑𝑀)) ∈ ℚ → (𝑁 mod (2↑𝑀)) ∈ ℝ)
114112, 113syl 14 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) ∈ ℝ)
115 simplr 528 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑥 ∈ ℕ0)
116115nn0zd 9508 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑥 ∈ ℤ)
117107, 116rpexpcld 10859 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑥) ∈ ℝ+)
1186ad2antrr 488 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) ∈ ℕ0)
119118nn0ge0d 9366 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 0 ≤ (𝑁 mod (2↑𝑀)))
120114, 117, 119divge0d 9874 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 0 ≤ ((𝑁 mod (2↑𝑀)) / (2↑𝑥)))
121110rpred 9833 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑀) ∈ ℝ)
122117rpred 9833 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑥) ∈ ℝ)
123 modqlt 10495 . . . . . . . . . . . . . . . . . 18 ((𝑁 ∈ ℚ ∧ (2↑𝑀) ∈ ℚ ∧ 0 < (2↑𝑀)) → (𝑁 mod (2↑𝑀)) < (2↑𝑀))
124103, 105, 111, 123syl3anc 1250 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) < (2↑𝑀))
125107rpred 9833 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 2 ∈ ℝ)
126 1le2 9260 . . . . . . . . . . . . . . . . . . 19 1 ≤ 2
127126a1i 9 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 1 ≤ 2)
128109zred 9510 . . . . . . . . . . . . . . . . . . . 20 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑀 ∈ ℝ)
129115nn0red 9364 . . . . . . . . . . . . . . . . . . . 20 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑥 ∈ ℝ)
130128, 129, 99nltled 8208 . . . . . . . . . . . . . . . . . . 19 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑀𝑥)
131 eluz2 9669 . . . . . . . . . . . . . . . . . . 19 (𝑥 ∈ (ℤ𝑀) ↔ (𝑀 ∈ ℤ ∧ 𝑥 ∈ ℤ ∧ 𝑀𝑥))
132109, 116, 130, 131syl3anbrc 1184 . . . . . . . . . . . . . . . . . 18 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 𝑥 ∈ (ℤ𝑀))
133125, 127, 132leexp2ad 10864 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑀) ≤ (2↑𝑥))
134114, 121, 122, 124, 133ltletrd 8511 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) < (2↑𝑥))
135117rpcnd 9835 . . . . . . . . . . . . . . . . 17 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑥) ∈ ℂ)
136135mulridd 8104 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ((2↑𝑥) · 1) = (2↑𝑥))
137134, 136breqtrrd 4078 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) < ((2↑𝑥) · 1))
138 1red 8102 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 1 ∈ ℝ)
139114, 138, 117ltdivmuld 9885 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (((𝑁 mod (2↑𝑀)) / (2↑𝑥)) < 1 ↔ (𝑁 mod (2↑𝑀)) < ((2↑𝑥) · 1)))
140137, 139mpbird 167 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ((𝑁 mod (2↑𝑀)) / (2↑𝑥)) < 1)
141 1e0p1 9560 . . . . . . . . . . . . . 14 1 = (0 + 1)
142140, 141breqtrdi 4091 . . . . . . . . . . . . 13 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ((𝑁 mod (2↑𝑀)) / (2↑𝑥)) < (0 + 1))
1437ad2antrr 488 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (𝑁 mod (2↑𝑀)) ∈ ℤ)
1442a1i 9 . . . . . . . . . . . . . . . 16 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 2 ∈ ℕ)
145144, 115nnexpcld 10857 . . . . . . . . . . . . . . 15 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (2↑𝑥) ∈ ℕ)
146143, 145, 23syl2anc 411 . . . . . . . . . . . . . 14 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ((𝑁 mod (2↑𝑀)) / (2↑𝑥)) ∈ ℚ)
147 0z 9398 . . . . . . . . . . . . . 14 0 ∈ ℤ
148 flqbi 10450 . . . . . . . . . . . . . 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 947 . . . . . . . . . . . 12 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))) = 0)
151101, 150breqtrrid 4088 . . . . . . . . . . 11 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))))
152151notnotd 631 . . . . . . . . . 10 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ¬ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))))
153100, 1522falsed 704 . . . . . . . . 9 ((((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) ∧ ¬ 𝑥 < 𝑀) → ((𝑥 ∈ (bits‘𝑁) ∧ 𝑥 < 𝑀) ↔ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))))
154 nn0z 9407 . . . . . . . . . . 11 (𝑥 ∈ ℕ0𝑥 ∈ ℤ)
155 zdclt 9465 . . . . . . . . . . 11 ((𝑥 ∈ ℤ ∧ 𝑀 ∈ ℤ) → DECID 𝑥 < 𝑀)
156154, 108, 155syl2an2 594 . . . . . . . . . 10 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) → DECID 𝑥 < 𝑀)
157 exmiddc 838 . . . . . . . . . 10 (DECID 𝑥 < 𝑀 → (𝑥 < 𝑀 ∨ ¬ 𝑥 < 𝑀))
158156, 157syl 14 . . . . . . . . 9 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑥 ∈ ℕ0) → (𝑥 < 𝑀 ∨ ¬ 𝑥 < 𝑀))
15998, 153, 158mpjaodan 800 . . . . . . . 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 561 . . . . . . 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 985 . . . 4 (((𝑁 mod (2↑𝑀)) ∈ ℤ ∧ 𝑥 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))) ↔ ((𝑁 mod (2↑𝑀)) ∈ ℤ ∧ (𝑥 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥))))))
167 elfzo2 10287 . . . . . . 7 (𝑥 ∈ (0..^𝑀) ↔ (𝑥 ∈ (ℤ‘0) ∧ 𝑀 ∈ ℤ ∧ 𝑥 < 𝑀))
168 elnn0uz 9701 . . . . . . . 8 (𝑥 ∈ ℕ0𝑥 ∈ (ℤ‘0))
1691683anbi1i 1193 . . . . . . 7 ((𝑥 ∈ ℕ0𝑀 ∈ ℤ ∧ 𝑥 < 𝑀) ↔ (𝑥 ∈ (ℤ‘0) ∧ 𝑀 ∈ ℤ ∧ 𝑥 < 𝑀))
170 3anass 985 . . . . . . 7 ((𝑥 ∈ ℕ0𝑀 ∈ ℤ ∧ 𝑥 < 𝑀) ↔ (𝑥 ∈ ℕ0 ∧ (𝑀 ∈ ℤ ∧ 𝑥 < 𝑀)))
171167, 169, 1703bitr2i 208 . . . . . 6 (𝑥 ∈ (0..^𝑀) ↔ (𝑥 ∈ ℕ0 ∧ (𝑀 ∈ ℤ ∧ 𝑥 < 𝑀)))
172171anbi2i 457 . . . . 5 ((𝑥 ∈ (bits‘𝑁) ∧ 𝑥 ∈ (0..^𝑀)) ↔ (𝑥 ∈ (bits‘𝑁) ∧ (𝑥 ∈ ℕ0 ∧ (𝑀 ∈ ℤ ∧ 𝑥 < 𝑀))))
173 an12 561 . . . . 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 12324 . . 3 (𝑥 ∈ (bits‘(𝑁 mod (2↑𝑀))) ↔ ((𝑁 mod (2↑𝑀)) ∈ ℤ ∧ 𝑥 ∈ ℕ0 ∧ ¬ 2 ∥ (⌊‘((𝑁 mod (2↑𝑀)) / (2↑𝑥)))))
177 elin 3360 . . 3 (𝑥 ∈ ((bits‘𝑁) ∩ (0..^𝑀)) ↔ (𝑥 ∈ (bits‘𝑁) ∧ 𝑥 ∈ (0..^𝑀)))
178175, 176, 1773bitr4g 223 . 2 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑥 ∈ (bits‘(𝑁 mod (2↑𝑀))) ↔ 𝑥 ∈ ((bits‘𝑁) ∩ (0..^𝑀))))
179178eqrdv 2204 1 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (bits‘(𝑁 mod (2↑𝑀))) = ((bits‘𝑁) ∩ (0..^𝑀)))
Colors of variables: wff set class
Syntax hints:  ¬ wn 3  wi 4  wa 104  wb 105  wo 710  DECID wdc 836  w3a 981   = wceq 1373  wcel 2177  wne 2377  cin 3169   class class class wbr 4050  cfv 5279  (class class class)co 5956  cr 7939  0cc0 7940  1c1 7941   + caddc 7943   · cmul 7945   < clt 8122  cle 8123  cmin 8258   / cdiv 8760  cn 9051  2c2 9102  0cn0 9310  cz 9387  cuz 9663  cq 9755  +crp 9790  ..^cfzo 10279  cfl 10428   mod cmo 10484  cexp 10700  cdvds 12168  bitscbits 12321
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 615  ax-in2 616  ax-io 711  ax-5 1471  ax-7 1472  ax-gen 1473  ax-ie1 1517  ax-ie2 1518  ax-8 1528  ax-10 1529  ax-11 1530  ax-i12 1531  ax-bndl 1533  ax-4 1534  ax-17 1550  ax-i9 1554  ax-ial 1558  ax-i5r 1559  ax-13 2179  ax-14 2180  ax-ext 2188  ax-coll 4166  ax-sep 4169  ax-nul 4177  ax-pow 4225  ax-pr 4260  ax-un 4487  ax-setind 4592  ax-iinf 4643  ax-cnex 8031  ax-resscn 8032  ax-1cn 8033  ax-1re 8034  ax-icn 8035  ax-addcl 8036  ax-addrcl 8037  ax-mulcl 8038  ax-mulrcl 8039  ax-addcom 8040  ax-mulcom 8041  ax-addass 8042  ax-mulass 8043  ax-distr 8044  ax-i2m1 8045  ax-0lt1 8046  ax-1rid 8047  ax-0id 8048  ax-rnegex 8049  ax-precex 8050  ax-cnre 8051  ax-pre-ltirr 8052  ax-pre-ltwlin 8053  ax-pre-lttrn 8054  ax-pre-apti 8055  ax-pre-ltadd 8056  ax-pre-mulgt0 8057  ax-pre-mulext 8058  ax-arch 8059
This theorem depends on definitions:  df-bi 117  df-dc 837  df-3or 982  df-3an 983  df-tru 1376  df-fal 1379  df-nf 1485  df-sb 1787  df-eu 2058  df-mo 2059  df-clab 2193  df-cleq 2199  df-clel 2202  df-nfc 2338  df-ne 2378  df-nel 2473  df-ral 2490  df-rex 2491  df-reu 2492  df-rmo 2493  df-rab 2494  df-v 2775  df-sbc 3003  df-csb 3098  df-dif 3172  df-un 3174  df-in 3176  df-ss 3183  df-nul 3465  df-if 3576  df-pw 3622  df-sn 3643  df-pr 3644  df-op 3646  df-uni 3856  df-int 3891  df-iun 3934  df-br 4051  df-opab 4113  df-mpt 4114  df-tr 4150  df-id 4347  df-po 4350  df-iso 4351  df-iord 4420  df-on 4422  df-ilim 4423  df-suc 4425  df-iom 4646  df-xp 4688  df-rel 4689  df-cnv 4690  df-co 4691  df-dm 4692  df-rn 4693  df-res 4694  df-ima 4695  df-iota 5240  df-fun 5281  df-fn 5282  df-f 5283  df-f1 5284  df-fo 5285  df-f1o 5286  df-fv 5287  df-riota 5911  df-ov 5959  df-oprab 5960  df-mpo 5961  df-1st 6238  df-2nd 6239  df-recs 6403  df-frec 6489  df-pnf 8124  df-mnf 8125  df-xr 8126  df-ltxr 8127  df-le 8128  df-sub 8260  df-neg 8261  df-reap 8663  df-ap 8670  df-div 8761  df-inn 9052  df-2 9110  df-n0 9311  df-z 9388  df-uz 9664  df-q 9756  df-rp 9791  df-fz 10146  df-fzo 10280  df-fl 10430  df-mod 10485  df-seqfrec 10610  df-exp 10701  df-dvds 12169  df-bits 12322
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator