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

Theorem bitsinv1lem 15365
Description: Lemma for bitsinv1 15366. (Contributed by Mario Carneiro, 22-Sep-2016.)
Assertion
Ref Expression
bitsinv1lem ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 mod (2↑(𝑀 + 1))) = ((𝑁 mod (2↑𝑀)) + if(𝑀 ∈ (bits‘𝑁), (2↑𝑀), 0)))

Proof of Theorem bitsinv1lem
StepHypRef Expression
1 oveq2 6821 . . 3 ((2↑𝑀) = if(𝑀 ∈ (bits‘𝑁), (2↑𝑀), 0) → ((𝑁 mod (2↑𝑀)) + (2↑𝑀)) = ((𝑁 mod (2↑𝑀)) + if(𝑀 ∈ (bits‘𝑁), (2↑𝑀), 0)))
21eqeq2d 2770 . 2 ((2↑𝑀) = if(𝑀 ∈ (bits‘𝑁), (2↑𝑀), 0) → ((𝑁 mod (2↑(𝑀 + 1))) = ((𝑁 mod (2↑𝑀)) + (2↑𝑀)) ↔ (𝑁 mod (2↑(𝑀 + 1))) = ((𝑁 mod (2↑𝑀)) + if(𝑀 ∈ (bits‘𝑁), (2↑𝑀), 0))))
3 oveq2 6821 . . 3 (0 = if(𝑀 ∈ (bits‘𝑁), (2↑𝑀), 0) → ((𝑁 mod (2↑𝑀)) + 0) = ((𝑁 mod (2↑𝑀)) + if(𝑀 ∈ (bits‘𝑁), (2↑𝑀), 0)))
43eqeq2d 2770 . 2 (0 = if(𝑀 ∈ (bits‘𝑁), (2↑𝑀), 0) → ((𝑁 mod (2↑(𝑀 + 1))) = ((𝑁 mod (2↑𝑀)) + 0) ↔ (𝑁 mod (2↑(𝑀 + 1))) = ((𝑁 mod (2↑𝑀)) + if(𝑀 ∈ (bits‘𝑁), (2↑𝑀), 0))))
5 simpl 474 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℤ)
6 2nn 11377 . . . . . . . . 9 2 ∈ ℕ
76a1i 11 . . . . . . . 8 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∈ ℕ)
8 simpr 479 . . . . . . . 8 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑀 ∈ ℕ0)
97, 8nnexpcld 13224 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ∈ ℕ)
105, 9zmodcld 12885 . . . . . 6 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 mod (2↑𝑀)) ∈ ℕ0)
1110nn0cnd 11545 . . . . 5 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 mod (2↑𝑀)) ∈ ℂ)
1211adantr 472 . . . 4 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑀 ∈ (bits‘𝑁)) → (𝑁 mod (2↑𝑀)) ∈ ℂ)
13 1nn0 11500 . . . . . . . . . 10 1 ∈ ℕ0
1413a1i 11 . . . . . . . . 9 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 1 ∈ ℕ0)
158, 14nn0addcld 11547 . . . . . . . 8 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑀 + 1) ∈ ℕ0)
167, 15nnexpcld 13224 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑(𝑀 + 1)) ∈ ℕ)
175, 16zmodcld 12885 . . . . . 6 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 mod (2↑(𝑀 + 1))) ∈ ℕ0)
1817nn0cnd 11545 . . . . 5 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 mod (2↑(𝑀 + 1))) ∈ ℂ)
1918adantr 472 . . . 4 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑀 ∈ (bits‘𝑁)) → (𝑁 mod (2↑(𝑀 + 1))) ∈ ℂ)
2012, 19pncan3d 10587 . . 3 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑀 ∈ (bits‘𝑁)) → ((𝑁 mod (2↑𝑀)) + ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀)))) = (𝑁 mod (2↑(𝑀 + 1))))
2118, 11subcld 10584 . . . . . 6 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) ∈ ℂ)
2221adantr 472 . . . . 5 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑀 ∈ (bits‘𝑁)) → ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) ∈ ℂ)
236a1i 11 . . . . . . 7 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑀 ∈ (bits‘𝑁)) → 2 ∈ ℕ)
24 simplr 809 . . . . . . 7 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑀 ∈ (bits‘𝑁)) → 𝑀 ∈ ℕ0)
2523, 24nnexpcld 13224 . . . . . 6 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑀 ∈ (bits‘𝑁)) → (2↑𝑀) ∈ ℕ)
2625nncnd 11228 . . . . 5 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑀 ∈ (bits‘𝑁)) → (2↑𝑀) ∈ ℂ)
27 2cnd 11285 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∈ ℂ)
28 2ne0 11305 . . . . . . . 8 2 ≠ 0
2928a1i 11 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ≠ 0)
308nn0zd 11672 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑀 ∈ ℤ)
3127, 29, 30expne0d 13208 . . . . . 6 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ≠ 0)
3231adantr 472 . . . . 5 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑀 ∈ (bits‘𝑁)) → (2↑𝑀) ≠ 0)
33 2z 11601 . . . . . . . . . . 11 2 ∈ ℤ
34 dvds0 15199 . . . . . . . . . . 11 (2 ∈ ℤ → 2 ∥ 0)
3533, 34ax-mp 5 . . . . . . . . . 10 2 ∥ 0
36 id 22 . . . . . . . . . 10 ((((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 0 → (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 0)
3735, 36syl5breqr 4842 . . . . . . . . 9 ((((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 0 → 2 ∥ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)))
38 bitsval2 15349 . . . . . . . . . . 11 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑀 ∈ (bits‘𝑁) ↔ ¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑀)))))
395zred 11674 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℝ)
409nnrpd 12063 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ∈ ℝ+)
41 moddiffl 12875 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℝ ∧ (2↑𝑀) ∈ ℝ+) → ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = (⌊‘(𝑁 / (2↑𝑀))))
4239, 40, 41syl2anc 696 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = (⌊‘(𝑁 / (2↑𝑀))))
4342breq2d 4816 . . . . . . . . . . . . 13 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2 ∥ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ↔ 2 ∥ (⌊‘(𝑁 / (2↑𝑀)))))
4433a1i 11 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∈ ℤ)
45 moddifz 12876 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℝ ∧ (2↑𝑀) ∈ ℝ+) → ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℤ)
4639, 40, 45syl2anc 696 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℤ)
475zcnd 11675 . . . . . . . . . . . . . . . . . 18 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 𝑁 ∈ ℂ)
4847, 11, 18nnncan1d 10618 . . . . . . . . . . . . . . . . 17 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 − (𝑁 mod (2↑𝑀))) − (𝑁 − (𝑁 mod (2↑(𝑀 + 1))))) = ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))))
4948oveq1d 6828 . . . . . . . . . . . . . . . 16 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 − (𝑁 mod (2↑𝑀))) − (𝑁 − (𝑁 mod (2↑(𝑀 + 1))))) / (2↑𝑀)) = (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)))
5047, 11subcld 10584 . . . . . . . . . . . . . . . . 17 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 − (𝑁 mod (2↑𝑀))) ∈ ℂ)
5147, 18subcld 10584 . . . . . . . . . . . . . . . . 17 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) ∈ ℂ)
529nncnd 11228 . . . . . . . . . . . . . . . . 17 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ∈ ℂ)
5350, 51, 52, 31divsubdird 11032 . . . . . . . . . . . . . . . 16 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 − (𝑁 mod (2↑𝑀))) − (𝑁 − (𝑁 mod (2↑(𝑀 + 1))))) / (2↑𝑀)) = (((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) − ((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑𝑀))))
5449, 53eqtr3d 2796 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = (((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) − ((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑𝑀))))
5527, 51mulcomd 10253 . . . . . . . . . . . . . . . . . . 19 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2 · (𝑁 − (𝑁 mod (2↑(𝑀 + 1))))) = ((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) · 2))
5627, 52mulcomd 10253 . . . . . . . . . . . . . . . . . . . 20 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2 · (2↑𝑀)) = ((2↑𝑀) · 2))
5727, 8expp1d 13203 . . . . . . . . . . . . . . . . . . . 20 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑(𝑀 + 1)) = ((2↑𝑀) · 2))
5856, 57eqtr4d 2797 . . . . . . . . . . . . . . . . . . 19 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2 · (2↑𝑀)) = (2↑(𝑀 + 1)))
5955, 58oveq12d 6831 . . . . . . . . . . . . . . . . . 18 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((2 · (𝑁 − (𝑁 mod (2↑(𝑀 + 1))))) / (2 · (2↑𝑀))) = (((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) · 2) / (2↑(𝑀 + 1))))
6051, 52, 27, 31, 29divcan5d 11019 . . . . . . . . . . . . . . . . . 18 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((2 · (𝑁 − (𝑁 mod (2↑(𝑀 + 1))))) / (2 · (2↑𝑀))) = ((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑𝑀)))
6116nncnd 11228 . . . . . . . . . . . . . . . . . . 19 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑(𝑀 + 1)) ∈ ℂ)
6230peano2zd 11677 . . . . . . . . . . . . . . . . . . . 20 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑀 + 1) ∈ ℤ)
6327, 29, 62expne0d 13208 . . . . . . . . . . . . . . . . . . 19 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑(𝑀 + 1)) ≠ 0)
6451, 27, 61, 63div23d 11030 . . . . . . . . . . . . . . . . . 18 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) · 2) / (2↑(𝑀 + 1))) = (((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑(𝑀 + 1))) · 2))
6559, 60, 643eqtr3d 2802 . . . . . . . . . . . . . . . . 17 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑𝑀)) = (((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑(𝑀 + 1))) · 2))
6616nnrpd 12063 . . . . . . . . . . . . . . . . . . 19 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑(𝑀 + 1)) ∈ ℝ+)
67 moddifz 12876 . . . . . . . . . . . . . . . . . . 19 ((𝑁 ∈ ℝ ∧ (2↑(𝑀 + 1)) ∈ ℝ+) → ((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑(𝑀 + 1))) ∈ ℤ)
6839, 66, 67syl2anc 696 . . . . . . . . . . . . . . . . . 18 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑(𝑀 + 1))) ∈ ℤ)
6968, 44zmulcld 11680 . . . . . . . . . . . . . . . . 17 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑(𝑀 + 1))) · 2) ∈ ℤ)
7065, 69eqeltrd 2839 . . . . . . . . . . . . . . . 16 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑𝑀)) ∈ ℤ)
7146, 70zsubcld 11679 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) − ((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑𝑀))) ∈ ℤ)
7254, 71eqeltrd 2839 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℤ)
73 dvdsmul2 15206 . . . . . . . . . . . . . . . 16 ((((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑(𝑀 + 1))) ∈ ℤ ∧ 2 ∈ ℤ) → 2 ∥ (((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑(𝑀 + 1))) · 2))
7468, 44, 73syl2anc 696 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∥ (((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑(𝑀 + 1))) · 2))
7547, 18, 11nnncan2d 10619 . . . . . . . . . . . . . . . . 17 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 − (𝑁 mod (2↑𝑀))) − ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀)))) = (𝑁 − (𝑁 mod (2↑(𝑀 + 1)))))
7675oveq1d 6828 . . . . . . . . . . . . . . . 16 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 − (𝑁 mod (2↑𝑀))) − ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀)))) / (2↑𝑀)) = ((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑𝑀)))
7750, 21, 52, 31divsubdird 11032 . . . . . . . . . . . . . . . 16 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 − (𝑁 mod (2↑𝑀))) − ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀)))) / (2↑𝑀)) = (((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) − (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀))))
7876, 77, 653eqtr3d 2802 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) − (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀))) = (((𝑁 − (𝑁 mod (2↑(𝑀 + 1)))) / (2↑(𝑀 + 1))) · 2))
7974, 78breqtrrd 4832 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∥ (((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) − (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀))))
80 dvdssub2 15225 . . . . . . . . . . . . . 14 (((2 ∈ ℤ ∧ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℤ ∧ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℤ) ∧ 2 ∥ (((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) − (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)))) → (2 ∥ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ↔ 2 ∥ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀))))
8144, 46, 72, 79, 80syl31anc 1480 . . . . . . . . . . . . 13 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2 ∥ ((𝑁 − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ↔ 2 ∥ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀))))
8243, 81bitr3d 270 . . . . . . . . . . . 12 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2 ∥ (⌊‘(𝑁 / (2↑𝑀))) ↔ 2 ∥ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀))))
8382notbid 307 . . . . . . . . . . 11 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (¬ 2 ∥ (⌊‘(𝑁 / (2↑𝑀))) ↔ ¬ 2 ∥ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀))))
8438, 83bitrd 268 . . . . . . . . . 10 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑀 ∈ (bits‘𝑁) ↔ ¬ 2 ∥ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀))))
8584con2bid 343 . . . . . . . . 9 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2 ∥ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ↔ ¬ 𝑀 ∈ (bits‘𝑁)))
8637, 85syl5ib 234 . . . . . . . 8 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 0 → ¬ 𝑀 ∈ (bits‘𝑁)))
8786con2d 129 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑀 ∈ (bits‘𝑁) → ¬ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 0))
88 df-neg 10461 . . . . . . . . . . . . . . 15 -1 = (0 − 1)
8952mulm1d 10674 . . . . . . . . . . . . . . . . 17 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (-1 · (2↑𝑀)) = -(2↑𝑀))
909nnred 11227 . . . . . . . . . . . . . . . . . . 19 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑𝑀) ∈ ℝ)
9190renegcld 10649 . . . . . . . . . . . . . . . . . 18 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → -(2↑𝑀) ∈ ℝ)
9239, 40modcld 12868 . . . . . . . . . . . . . . . . . . 19 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 mod (2↑𝑀)) ∈ ℝ)
9392renegcld 10649 . . . . . . . . . . . . . . . . . 18 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → -(𝑁 mod (2↑𝑀)) ∈ ℝ)
9439, 66modcld 12868 . . . . . . . . . . . . . . . . . . 19 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 mod (2↑(𝑀 + 1))) ∈ ℝ)
9594, 92resubcld 10650 . . . . . . . . . . . . . . . . . 18 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) ∈ ℝ)
96 modlt 12873 . . . . . . . . . . . . . . . . . . . 20 ((𝑁 ∈ ℝ ∧ (2↑𝑀) ∈ ℝ+) → (𝑁 mod (2↑𝑀)) < (2↑𝑀))
9739, 40, 96syl2anc 696 . . . . . . . . . . . . . . . . . . 19 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 mod (2↑𝑀)) < (2↑𝑀))
9892, 90ltnegd 10797 . . . . . . . . . . . . . . . . . . 19 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 mod (2↑𝑀)) < (2↑𝑀) ↔ -(2↑𝑀) < -(𝑁 mod (2↑𝑀))))
9997, 98mpbid 222 . . . . . . . . . . . . . . . . . 18 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → -(2↑𝑀) < -(𝑁 mod (2↑𝑀)))
100 df-neg 10461 . . . . . . . . . . . . . . . . . . 19 -(𝑁 mod (2↑𝑀)) = (0 − (𝑁 mod (2↑𝑀)))
101 0red 10233 . . . . . . . . . . . . . . . . . . . 20 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 0 ∈ ℝ)
102 modge0 12872 . . . . . . . . . . . . . . . . . . . . 21 ((𝑁 ∈ ℝ ∧ (2↑(𝑀 + 1)) ∈ ℝ+) → 0 ≤ (𝑁 mod (2↑(𝑀 + 1))))
10339, 66, 102syl2anc 696 . . . . . . . . . . . . . . . . . . . 20 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 0 ≤ (𝑁 mod (2↑(𝑀 + 1))))
104101, 94, 92, 103lesub1dd 10835 . . . . . . . . . . . . . . . . . . 19 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (0 − (𝑁 mod (2↑𝑀))) ≤ ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))))
105100, 104syl5eqbr 4839 . . . . . . . . . . . . . . . . . 18 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → -(𝑁 mod (2↑𝑀)) ≤ ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))))
10691, 93, 95, 99, 105ltletrd 10389 . . . . . . . . . . . . . . . . 17 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → -(2↑𝑀) < ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))))
10789, 106eqbrtrd 4826 . . . . . . . . . . . . . . . 16 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (-1 · (2↑𝑀)) < ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))))
108 1red 10247 . . . . . . . . . . . . . . . . . 18 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 1 ∈ ℝ)
109108renegcld 10649 . . . . . . . . . . . . . . . . 17 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → -1 ∈ ℝ)
110109, 95, 40ltmuldivd 12112 . . . . . . . . . . . . . . . 16 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((-1 · (2↑𝑀)) < ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) ↔ -1 < (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀))))
111107, 110mpbid 222 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → -1 < (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)))
11288, 111syl5eqbrr 4840 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (0 − 1) < (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)))
113 0zd 11581 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 0 ∈ ℤ)
114 zlem1lt 11621 . . . . . . . . . . . . . . 15 ((0 ∈ ℤ ∧ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℤ) → (0 ≤ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ↔ (0 − 1) < (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀))))
115113, 72, 114syl2anc 696 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (0 ≤ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ↔ (0 − 1) < (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀))))
116112, 115mpbird 247 . . . . . . . . . . . . 13 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 0 ≤ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)))
117 elnn0z 11582 . . . . . . . . . . . . 13 ((((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℕ0 ↔ ((((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℤ ∧ 0 ≤ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀))))
11872, 116, 117sylanbrc 701 . . . . . . . . . . . 12 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ ℕ0)
119 nn0uz 11915 . . . . . . . . . . . 12 0 = (ℤ‘0)
120118, 119syl6eleq 2849 . . . . . . . . . . 11 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ (ℤ‘0))
12116nnred 11227 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (2↑(𝑀 + 1)) ∈ ℝ)
122 modge0 12872 . . . . . . . . . . . . . . . 16 ((𝑁 ∈ ℝ ∧ (2↑𝑀) ∈ ℝ+) → 0 ≤ (𝑁 mod (2↑𝑀)))
12339, 40, 122syl2anc 696 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 0 ≤ (𝑁 mod (2↑𝑀)))
12494, 92subge02d 10811 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (0 ≤ (𝑁 mod (2↑𝑀)) ↔ ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) ≤ (𝑁 mod (2↑(𝑀 + 1)))))
125123, 124mpbid 222 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) ≤ (𝑁 mod (2↑(𝑀 + 1))))
126 modlt 12873 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℝ ∧ (2↑(𝑀 + 1)) ∈ ℝ+) → (𝑁 mod (2↑(𝑀 + 1))) < (2↑(𝑀 + 1)))
12739, 66, 126syl2anc 696 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 mod (2↑(𝑀 + 1))) < (2↑(𝑀 + 1)))
12895, 94, 121, 125, 127lelttrd 10387 . . . . . . . . . . . . 13 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) < (2↑(𝑀 + 1)))
129128, 57breqtrd 4830 . . . . . . . . . . . 12 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) < ((2↑𝑀) · 2))
1307nnred 11227 . . . . . . . . . . . . 13 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → 2 ∈ ℝ)
13195, 130, 40ltdivmuld 12116 . . . . . . . . . . . 12 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) < 2 ↔ ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) < ((2↑𝑀) · 2)))
132129, 131mpbird 247 . . . . . . . . . . 11 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) < 2)
133 elfzo2 12667 . . . . . . . . . . 11 ((((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ (0..^2) ↔ ((((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ (ℤ‘0) ∧ 2 ∈ ℤ ∧ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) < 2))
134120, 44, 132, 133syl3anbrc 1429 . . . . . . . . . 10 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ (0..^2))
135 fzo0to2pr 12747 . . . . . . . . . 10 (0..^2) = {0, 1}
136134, 135syl6eleq 2849 . . . . . . . . 9 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ {0, 1})
137 elpri 4342 . . . . . . . . 9 ((((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ∈ {0, 1} → ((((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 0 ∨ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 1))
138136, 137syl 17 . . . . . . . 8 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → ((((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 0 ∨ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 1))
139138ord 391 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (¬ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 0 → (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 1))
14087, 139syld 47 . . . . . 6 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑀 ∈ (bits‘𝑁) → (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 1))
141140imp 444 . . . . 5 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑀 ∈ (bits‘𝑁)) → (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 1)
14222, 26, 32, 141diveq1d 11001 . . . 4 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑀 ∈ (bits‘𝑁)) → ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) = (2↑𝑀))
143142oveq2d 6829 . . 3 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑀 ∈ (bits‘𝑁)) → ((𝑁 mod (2↑𝑀)) + ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀)))) = ((𝑁 mod (2↑𝑀)) + (2↑𝑀)))
14420, 143eqtr3d 2796 . 2 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ 𝑀 ∈ (bits‘𝑁)) → (𝑁 mod (2↑(𝑀 + 1))) = ((𝑁 mod (2↑𝑀)) + (2↑𝑀)))
14518adantr 472 . . . 4 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ ¬ 𝑀 ∈ (bits‘𝑁)) → (𝑁 mod (2↑(𝑀 + 1))) ∈ ℂ)
14611adantr 472 . . . 4 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ ¬ 𝑀 ∈ (bits‘𝑁)) → (𝑁 mod (2↑𝑀)) ∈ ℂ)
14721adantr 472 . . . . 5 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ ¬ 𝑀 ∈ (bits‘𝑁)) → ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) ∈ ℂ)
14852adantr 472 . . . . 5 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ ¬ 𝑀 ∈ (bits‘𝑁)) → (2↑𝑀) ∈ ℂ)
14931adantr 472 . . . . 5 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ ¬ 𝑀 ∈ (bits‘𝑁)) → (2↑𝑀) ≠ 0)
150 n2dvds1 15306 . . . . . . . . . 10 ¬ 2 ∥ 1
151 breq2 4808 . . . . . . . . . 10 ((((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 1 → (2 ∥ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) ↔ 2 ∥ 1))
152150, 151mtbiri 316 . . . . . . . . 9 ((((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 1 → ¬ 2 ∥ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)))
153139, 152syl6 35 . . . . . . . 8 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (¬ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 0 → ¬ 2 ∥ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀))))
154153, 84sylibrd 249 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (¬ (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 0 → 𝑀 ∈ (bits‘𝑁)))
155154con1d 139 . . . . . 6 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (¬ 𝑀 ∈ (bits‘𝑁) → (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 0))
156155imp 444 . . . . 5 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ ¬ 𝑀 ∈ (bits‘𝑁)) → (((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) / (2↑𝑀)) = 0)
157147, 148, 149, 156diveq0d 11000 . . . 4 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ ¬ 𝑀 ∈ (bits‘𝑁)) → ((𝑁 mod (2↑(𝑀 + 1))) − (𝑁 mod (2↑𝑀))) = 0)
158145, 146, 157subeq0d 10592 . . 3 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ ¬ 𝑀 ∈ (bits‘𝑁)) → (𝑁 mod (2↑(𝑀 + 1))) = (𝑁 mod (2↑𝑀)))
159146addid1d 10428 . . 3 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ ¬ 𝑀 ∈ (bits‘𝑁)) → ((𝑁 mod (2↑𝑀)) + 0) = (𝑁 mod (2↑𝑀)))
160158, 159eqtr4d 2797 . 2 (((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) ∧ ¬ 𝑀 ∈ (bits‘𝑁)) → (𝑁 mod (2↑(𝑀 + 1))) = ((𝑁 mod (2↑𝑀)) + 0))
1612, 4, 144, 160ifbothda 4267 1 ((𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0) → (𝑁 mod (2↑(𝑀 + 1))) = ((𝑁 mod (2↑𝑀)) + if(𝑀 ∈ (bits‘𝑁), (2↑𝑀), 0)))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 196  wo 382  wa 383   = wceq 1632  wcel 2139  wne 2932  ifcif 4230  {cpr 4323   class class class wbr 4804  cfv 6049  (class class class)co 6813  cc 10126  cr 10127  0cc0 10128  1c1 10129   + caddc 10131   · cmul 10133   < clt 10266  cle 10267  cmin 10458  -cneg 10459   / cdiv 10876  cn 11212  2c2 11262  0cn0 11484  cz 11569  cuz 11879  +crp 12025  ..^cfzo 12659  cfl 12785   mod cmo 12862  cexp 13054  cdvds 15182  bitscbits 15343
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1871  ax-4 1886  ax-5 1988  ax-6 2054  ax-7 2090  ax-8 2141  ax-9 2148  ax-10 2168  ax-11 2183  ax-12 2196  ax-13 2391  ax-ext 2740  ax-sep 4933  ax-nul 4941  ax-pow 4992  ax-pr 5055  ax-un 7114  ax-cnex 10184  ax-resscn 10185  ax-1cn 10186  ax-icn 10187  ax-addcl 10188  ax-addrcl 10189  ax-mulcl 10190  ax-mulrcl 10191  ax-mulcom 10192  ax-addass 10193  ax-mulass 10194  ax-distr 10195  ax-i2m1 10196  ax-1ne0 10197  ax-1rid 10198  ax-rnegex 10199  ax-rrecex 10200  ax-cnre 10201  ax-pre-lttri 10202  ax-pre-lttrn 10203  ax-pre-ltadd 10204  ax-pre-mulgt0 10205  ax-pre-sup 10206
This theorem depends on definitions:  df-bi 197  df-or 384  df-an 385  df-3or 1073  df-3an 1074  df-tru 1635  df-ex 1854  df-nf 1859  df-sb 2047  df-eu 2611  df-mo 2612  df-clab 2747  df-cleq 2753  df-clel 2756  df-nfc 2891  df-ne 2933  df-nel 3036  df-ral 3055  df-rex 3056  df-reu 3057  df-rmo 3058  df-rab 3059  df-v 3342  df-sbc 3577  df-csb 3675  df-dif 3718  df-un 3720  df-in 3722  df-ss 3729  df-pss 3731  df-nul 4059  df-if 4231  df-pw 4304  df-sn 4322  df-pr 4324  df-tp 4326  df-op 4328  df-uni 4589  df-iun 4674  df-br 4805  df-opab 4865  df-mpt 4882  df-tr 4905  df-id 5174  df-eprel 5179  df-po 5187  df-so 5188  df-fr 5225  df-we 5227  df-xp 5272  df-rel 5273  df-cnv 5274  df-co 5275  df-dm 5276  df-rn 5277  df-res 5278  df-ima 5279  df-pred 5841  df-ord 5887  df-on 5888  df-lim 5889  df-suc 5890  df-iota 6012  df-fun 6051  df-fn 6052  df-f 6053  df-f1 6054  df-fo 6055  df-f1o 6056  df-fv 6057  df-riota 6774  df-ov 6816  df-oprab 6817  df-mpt2 6818  df-om 7231  df-1st 7333  df-2nd 7334  df-wrecs 7576  df-recs 7637  df-rdg 7675  df-er 7911  df-en 8122  df-dom 8123  df-sdom 8124  df-sup 8513  df-inf 8514  df-pnf 10268  df-mnf 10269  df-xr 10270  df-ltxr 10271  df-le 10272  df-sub 10460  df-neg 10461  df-div 10877  df-nn 11213  df-2 11271  df-n0 11485  df-z 11570  df-uz 11880  df-rp 12026  df-fz 12520  df-fzo 12660  df-fl 12787  df-mod 12863  df-seq 12996  df-exp 13055  df-dvds 15183  df-bits 15346
This theorem is referenced by:  bitsinv1  15366  smumullem  15416
  Copyright terms: Public domain W3C validator