| Step | Hyp | Ref
| Expression |
| 1 | | oveq2 5931 |
. . . . . . . . . . 11
⊢ (𝑥 = 0 → (0..^𝑥) = (0..^0)) |
| 2 | | fzo0 10246 |
. . . . . . . . . . 11
⊢ (0..^0) =
∅ |
| 3 | 1, 2 | eqtrdi 2245 |
. . . . . . . . . 10
⊢ (𝑥 = 0 → (0..^𝑥) = ∅) |
| 4 | 3 | ineq2d 3365 |
. . . . . . . . 9
⊢ (𝑥 = 0 → ((bits‘𝑁) ∩ (0..^𝑥)) = ((bits‘𝑁) ∩ ∅)) |
| 5 | | in0 3486 |
. . . . . . . . 9
⊢
((bits‘𝑁)
∩ ∅) = ∅ |
| 6 | 4, 5 | eqtrdi 2245 |
. . . . . . . 8
⊢ (𝑥 = 0 → ((bits‘𝑁) ∩ (0..^𝑥)) = ∅) |
| 7 | 6 | sumeq1d 11533 |
. . . . . . 7
⊢ (𝑥 = 0 → Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑥))(2↑𝑛) = Σ𝑛 ∈ ∅ (2↑𝑛)) |
| 8 | | sum0 11555 |
. . . . . . 7
⊢
Σ𝑛 ∈
∅ (2↑𝑛) =
0 |
| 9 | 7, 8 | eqtrdi 2245 |
. . . . . 6
⊢ (𝑥 = 0 → Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑥))(2↑𝑛) = 0) |
| 10 | | oveq2 5931 |
. . . . . . . 8
⊢ (𝑥 = 0 → (2↑𝑥) = (2↑0)) |
| 11 | | 2cn 9063 |
. . . . . . . . 9
⊢ 2 ∈
ℂ |
| 12 | | exp0 10637 |
. . . . . . . . 9
⊢ (2 ∈
ℂ → (2↑0) = 1) |
| 13 | 11, 12 | ax-mp 5 |
. . . . . . . 8
⊢
(2↑0) = 1 |
| 14 | 10, 13 | eqtrdi 2245 |
. . . . . . 7
⊢ (𝑥 = 0 → (2↑𝑥) = 1) |
| 15 | 14 | oveq2d 5939 |
. . . . . 6
⊢ (𝑥 = 0 → (𝑁 mod (2↑𝑥)) = (𝑁 mod 1)) |
| 16 | 9, 15 | eqeq12d 2211 |
. . . . 5
⊢ (𝑥 = 0 → (Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑥))(2↑𝑛) = (𝑁 mod (2↑𝑥)) ↔ 0 = (𝑁 mod 1))) |
| 17 | 16 | imbi2d 230 |
. . . 4
⊢ (𝑥 = 0 → ((𝑁 ∈ ℕ0 →
Σ𝑛 ∈
((bits‘𝑁) ∩
(0..^𝑥))(2↑𝑛) = (𝑁 mod (2↑𝑥))) ↔ (𝑁 ∈ ℕ0 → 0 =
(𝑁 mod
1)))) |
| 18 | | oveq2 5931 |
. . . . . . . 8
⊢ (𝑥 = 𝑘 → (0..^𝑥) = (0..^𝑘)) |
| 19 | 18 | ineq2d 3365 |
. . . . . . 7
⊢ (𝑥 = 𝑘 → ((bits‘𝑁) ∩ (0..^𝑥)) = ((bits‘𝑁) ∩ (0..^𝑘))) |
| 20 | 19 | sumeq1d 11533 |
. . . . . 6
⊢ (𝑥 = 𝑘 → Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑥))(2↑𝑛) = Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑘))(2↑𝑛)) |
| 21 | | oveq2 5931 |
. . . . . . 7
⊢ (𝑥 = 𝑘 → (2↑𝑥) = (2↑𝑘)) |
| 22 | 21 | oveq2d 5939 |
. . . . . 6
⊢ (𝑥 = 𝑘 → (𝑁 mod (2↑𝑥)) = (𝑁 mod (2↑𝑘))) |
| 23 | 20, 22 | eqeq12d 2211 |
. . . . 5
⊢ (𝑥 = 𝑘 → (Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑥))(2↑𝑛) = (𝑁 mod (2↑𝑥)) ↔ Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑘))(2↑𝑛) = (𝑁 mod (2↑𝑘)))) |
| 24 | 23 | imbi2d 230 |
. . . 4
⊢ (𝑥 = 𝑘 → ((𝑁 ∈ ℕ0 →
Σ𝑛 ∈
((bits‘𝑁) ∩
(0..^𝑥))(2↑𝑛) = (𝑁 mod (2↑𝑥))) ↔ (𝑁 ∈ ℕ0 →
Σ𝑛 ∈
((bits‘𝑁) ∩
(0..^𝑘))(2↑𝑛) = (𝑁 mod (2↑𝑘))))) |
| 25 | | oveq2 5931 |
. . . . . . . 8
⊢ (𝑥 = (𝑘 + 1) → (0..^𝑥) = (0..^(𝑘 + 1))) |
| 26 | 25 | ineq2d 3365 |
. . . . . . 7
⊢ (𝑥 = (𝑘 + 1) → ((bits‘𝑁) ∩ (0..^𝑥)) = ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))) |
| 27 | 26 | sumeq1d 11533 |
. . . . . 6
⊢ (𝑥 = (𝑘 + 1) → Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑥))(2↑𝑛) = Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))(2↑𝑛)) |
| 28 | | oveq2 5931 |
. . . . . . 7
⊢ (𝑥 = (𝑘 + 1) → (2↑𝑥) = (2↑(𝑘 + 1))) |
| 29 | 28 | oveq2d 5939 |
. . . . . 6
⊢ (𝑥 = (𝑘 + 1) → (𝑁 mod (2↑𝑥)) = (𝑁 mod (2↑(𝑘 + 1)))) |
| 30 | 27, 29 | eqeq12d 2211 |
. . . . 5
⊢ (𝑥 = (𝑘 + 1) → (Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑥))(2↑𝑛) = (𝑁 mod (2↑𝑥)) ↔ Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))(2↑𝑛) = (𝑁 mod (2↑(𝑘 + 1))))) |
| 31 | 30 | imbi2d 230 |
. . . 4
⊢ (𝑥 = (𝑘 + 1) → ((𝑁 ∈ ℕ0 →
Σ𝑛 ∈
((bits‘𝑁) ∩
(0..^𝑥))(2↑𝑛) = (𝑁 mod (2↑𝑥))) ↔ (𝑁 ∈ ℕ0 →
Σ𝑛 ∈
((bits‘𝑁) ∩
(0..^(𝑘 + 1)))(2↑𝑛) = (𝑁 mod (2↑(𝑘 + 1)))))) |
| 32 | | oveq2 5931 |
. . . . . . . 8
⊢ (𝑥 = 𝑁 → (0..^𝑥) = (0..^𝑁)) |
| 33 | 32 | ineq2d 3365 |
. . . . . . 7
⊢ (𝑥 = 𝑁 → ((bits‘𝑁) ∩ (0..^𝑥)) = ((bits‘𝑁) ∩ (0..^𝑁))) |
| 34 | 33 | sumeq1d 11533 |
. . . . . 6
⊢ (𝑥 = 𝑁 → Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑥))(2↑𝑛) = Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑁))(2↑𝑛)) |
| 35 | | oveq2 5931 |
. . . . . . 7
⊢ (𝑥 = 𝑁 → (2↑𝑥) = (2↑𝑁)) |
| 36 | 35 | oveq2d 5939 |
. . . . . 6
⊢ (𝑥 = 𝑁 → (𝑁 mod (2↑𝑥)) = (𝑁 mod (2↑𝑁))) |
| 37 | 34, 36 | eqeq12d 2211 |
. . . . 5
⊢ (𝑥 = 𝑁 → (Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑥))(2↑𝑛) = (𝑁 mod (2↑𝑥)) ↔ Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑁))(2↑𝑛) = (𝑁 mod (2↑𝑁)))) |
| 38 | 37 | imbi2d 230 |
. . . 4
⊢ (𝑥 = 𝑁 → ((𝑁 ∈ ℕ0 →
Σ𝑛 ∈
((bits‘𝑁) ∩
(0..^𝑥))(2↑𝑛) = (𝑁 mod (2↑𝑥))) ↔ (𝑁 ∈ ℕ0 →
Σ𝑛 ∈
((bits‘𝑁) ∩
(0..^𝑁))(2↑𝑛) = (𝑁 mod (2↑𝑁))))) |
| 39 | | nn0z 9348 |
. . . . . 6
⊢ (𝑁 ∈ ℕ0
→ 𝑁 ∈
ℤ) |
| 40 | | zmod10 10434 |
. . . . . 6
⊢ (𝑁 ∈ ℤ → (𝑁 mod 1) = 0) |
| 41 | 39, 40 | syl 14 |
. . . . 5
⊢ (𝑁 ∈ ℕ0
→ (𝑁 mod 1) =
0) |
| 42 | 41 | eqcomd 2202 |
. . . 4
⊢ (𝑁 ∈ ℕ0
→ 0 = (𝑁 mod
1)) |
| 43 | | oveq1 5930 |
. . . . . . 7
⊢
(Σ𝑛 ∈
((bits‘𝑁) ∩
(0..^𝑘))(2↑𝑛) = (𝑁 mod (2↑𝑘)) → (Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑘))(2↑𝑛) + Σ𝑛 ∈ ((bits‘𝑁) ∩ {𝑘})(2↑𝑛)) = ((𝑁 mod (2↑𝑘)) + Σ𝑛 ∈ ((bits‘𝑁) ∩ {𝑘})(2↑𝑛))) |
| 44 | | fzonel 10238 |
. . . . . . . . . . . . 13
⊢ ¬
𝑘 ∈ (0..^𝑘) |
| 45 | 44 | a1i 9 |
. . . . . . . . . . . 12
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → ¬ 𝑘 ∈ (0..^𝑘)) |
| 46 | | disjsn 3685 |
. . . . . . . . . . . 12
⊢
(((0..^𝑘) ∩
{𝑘}) = ∅ ↔ ¬
𝑘 ∈ (0..^𝑘)) |
| 47 | 45, 46 | sylibr 134 |
. . . . . . . . . . 11
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → ((0..^𝑘) ∩ {𝑘}) = ∅) |
| 48 | 47 | ineq2d 3365 |
. . . . . . . . . 10
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → ((bits‘𝑁) ∩ ((0..^𝑘) ∩ {𝑘})) = ((bits‘𝑁) ∩ ∅)) |
| 49 | | inindi 3381 |
. . . . . . . . . 10
⊢
((bits‘𝑁)
∩ ((0..^𝑘) ∩ {𝑘})) = (((bits‘𝑁) ∩ (0..^𝑘)) ∩ ((bits‘𝑁) ∩ {𝑘})) |
| 50 | 48, 49, 5 | 3eqtr3g 2252 |
. . . . . . . . 9
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → (((bits‘𝑁) ∩ (0..^𝑘)) ∩ ((bits‘𝑁) ∩ {𝑘})) = ∅) |
| 51 | | simpr 110 |
. . . . . . . . . . . . 13
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → 𝑘 ∈ ℕ0) |
| 52 | | nn0uz 9638 |
. . . . . . . . . . . . 13
⊢
ℕ0 = (ℤ≥‘0) |
| 53 | 51, 52 | eleqtrdi 2289 |
. . . . . . . . . . . 12
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → 𝑘 ∈
(ℤ≥‘0)) |
| 54 | | fzosplitsn 10311 |
. . . . . . . . . . . 12
⊢ (𝑘 ∈
(ℤ≥‘0) → (0..^(𝑘 + 1)) = ((0..^𝑘) ∪ {𝑘})) |
| 55 | 53, 54 | syl 14 |
. . . . . . . . . . 11
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → (0..^(𝑘 + 1)) = ((0..^𝑘) ∪ {𝑘})) |
| 56 | 55 | ineq2d 3365 |
. . . . . . . . . 10
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → ((bits‘𝑁) ∩ (0..^(𝑘 + 1))) = ((bits‘𝑁) ∩ ((0..^𝑘) ∪ {𝑘}))) |
| 57 | | indi 3411 |
. . . . . . . . . 10
⊢
((bits‘𝑁)
∩ ((0..^𝑘) ∪ {𝑘})) = (((bits‘𝑁) ∩ (0..^𝑘)) ∪ ((bits‘𝑁) ∩ {𝑘})) |
| 58 | 56, 57 | eqtrdi 2245 |
. . . . . . . . 9
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → ((bits‘𝑁) ∩ (0..^(𝑘 + 1))) = (((bits‘𝑁) ∩ (0..^𝑘)) ∪ ((bits‘𝑁) ∩ {𝑘}))) |
| 59 | | 0z 9339 |
. . . . . . . . . . 11
⊢ 0 ∈
ℤ |
| 60 | | nn0z 9348 |
. . . . . . . . . . . . 13
⊢ (𝑘 ∈ ℕ0
→ 𝑘 ∈
ℤ) |
| 61 | 60 | peano2zd 9453 |
. . . . . . . . . . . 12
⊢ (𝑘 ∈ ℕ0
→ (𝑘 + 1) ∈
ℤ) |
| 62 | 61 | adantl 277 |
. . . . . . . . . . 11
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → (𝑘 + 1) ∈ ℤ) |
| 63 | | fzofig 10526 |
. . . . . . . . . . 11
⊢ ((0
∈ ℤ ∧ (𝑘 +
1) ∈ ℤ) → (0..^(𝑘 + 1)) ∈ Fin) |
| 64 | 59, 62, 63 | sylancr 414 |
. . . . . . . . . 10
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → (0..^(𝑘 + 1)) ∈ Fin) |
| 65 | | inss2 3385 |
. . . . . . . . . . 11
⊢
((bits‘𝑁)
∩ (0..^(𝑘 + 1)))
⊆ (0..^(𝑘 +
1)) |
| 66 | 65 | a1i 9 |
. . . . . . . . . 10
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → ((bits‘𝑁) ∩ (0..^(𝑘 + 1))) ⊆ (0..^(𝑘 + 1))) |
| 67 | 39 | ad2antrr 488 |
. . . . . . . . . . . . . 14
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑗 ∈ (0..^(𝑘 + 1))) → 𝑁 ∈ ℤ) |
| 68 | | elfzonn0 10264 |
. . . . . . . . . . . . . . 15
⊢ (𝑗 ∈ (0..^(𝑘 + 1)) → 𝑗 ∈ ℕ0) |
| 69 | 68 | adantl 277 |
. . . . . . . . . . . . . 14
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑗 ∈ (0..^(𝑘 + 1))) → 𝑗 ∈ ℕ0) |
| 70 | | bitsdc 12114 |
. . . . . . . . . . . . . 14
⊢ ((𝑁 ∈ ℤ ∧ 𝑗 ∈ ℕ0)
→ DECID 𝑗 ∈ (bits‘𝑁)) |
| 71 | 67, 69, 70 | syl2anc 411 |
. . . . . . . . . . . . 13
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑗 ∈ (0..^(𝑘 + 1))) → DECID 𝑗 ∈ (bits‘𝑁)) |
| 72 | 69 | nn0zd 9448 |
. . . . . . . . . . . . . 14
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑗 ∈ (0..^(𝑘 + 1))) → 𝑗 ∈ ℤ) |
| 73 | | 0zd 9340 |
. . . . . . . . . . . . . 14
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑗 ∈ (0..^(𝑘 + 1))) → 0 ∈
ℤ) |
| 74 | 62 | adantr 276 |
. . . . . . . . . . . . . 14
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑗 ∈ (0..^(𝑘 + 1))) → (𝑘 + 1) ∈ ℤ) |
| 75 | | fzodcel 10230 |
. . . . . . . . . . . . . 14
⊢ ((𝑗 ∈ ℤ ∧ 0 ∈
ℤ ∧ (𝑘 + 1)
∈ ℤ) → DECID 𝑗 ∈ (0..^(𝑘 + 1))) |
| 76 | 72, 73, 74, 75 | syl3anc 1249 |
. . . . . . . . . . . . 13
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑗 ∈ (0..^(𝑘 + 1))) → DECID 𝑗 ∈ (0..^(𝑘 + 1))) |
| 77 | 71, 76 | dcand 934 |
. . . . . . . . . . . 12
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑗 ∈ (0..^(𝑘 + 1))) → DECID (𝑗 ∈ (bits‘𝑁) ∧ 𝑗 ∈ (0..^(𝑘 + 1)))) |
| 78 | | elin 3347 |
. . . . . . . . . . . . 13
⊢ (𝑗 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1))) ↔ (𝑗 ∈ (bits‘𝑁) ∧ 𝑗 ∈ (0..^(𝑘 + 1)))) |
| 79 | 78 | dcbii 841 |
. . . . . . . . . . . 12
⊢
(DECID 𝑗 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1))) ↔ DECID (𝑗 ∈ (bits‘𝑁) ∧ 𝑗 ∈ (0..^(𝑘 + 1)))) |
| 80 | 77, 79 | sylibr 134 |
. . . . . . . . . . 11
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑗 ∈ (0..^(𝑘 + 1))) → DECID 𝑗 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))) |
| 81 | 80 | ralrimiva 2570 |
. . . . . . . . . 10
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → ∀𝑗 ∈ (0..^(𝑘 + 1))DECID 𝑗 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))) |
| 82 | | ssfidc 6999 |
. . . . . . . . . 10
⊢
(((0..^(𝑘 + 1))
∈ Fin ∧ ((bits‘𝑁) ∩ (0..^(𝑘 + 1))) ⊆ (0..^(𝑘 + 1)) ∧ ∀𝑗 ∈ (0..^(𝑘 + 1))DECID 𝑗 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))) → ((bits‘𝑁) ∩ (0..^(𝑘 + 1))) ∈ Fin) |
| 83 | 64, 66, 81, 82 | syl3anc 1249 |
. . . . . . . . 9
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → ((bits‘𝑁) ∩ (0..^(𝑘 + 1))) ∈ Fin) |
| 84 | | 2nn 9154 |
. . . . . . . . . . . 12
⊢ 2 ∈
ℕ |
| 85 | 84 | a1i 9 |
. . . . . . . . . . 11
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑛 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))) → 2 ∈
ℕ) |
| 86 | | simpr 110 |
. . . . . . . . . . . . . 14
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑛 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))) → 𝑛 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))) |
| 87 | 86 | elin2d 3354 |
. . . . . . . . . . . . 13
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑛 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))) → 𝑛 ∈ (0..^(𝑘 + 1))) |
| 88 | | elfzouz 10228 |
. . . . . . . . . . . . 13
⊢ (𝑛 ∈ (0..^(𝑘 + 1)) → 𝑛 ∈
(ℤ≥‘0)) |
| 89 | 87, 88 | syl 14 |
. . . . . . . . . . . 12
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑛 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))) → 𝑛 ∈
(ℤ≥‘0)) |
| 90 | 89, 52 | eleqtrrdi 2290 |
. . . . . . . . . . 11
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑛 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))) → 𝑛 ∈ ℕ0) |
| 91 | 85, 90 | nnexpcld 10789 |
. . . . . . . . . 10
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑛 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))) → (2↑𝑛) ∈ ℕ) |
| 92 | 91 | nncnd 9006 |
. . . . . . . . 9
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑛 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))) → (2↑𝑛) ∈ ℂ) |
| 93 | 50, 58, 83, 92 | fsumsplit 11574 |
. . . . . . . 8
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))(2↑𝑛) = (Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑘))(2↑𝑛) + Σ𝑛 ∈ ((bits‘𝑁) ∩ {𝑘})(2↑𝑛))) |
| 94 | | bitsinv1lem 12128 |
. . . . . . . . . 10
⊢ ((𝑁 ∈ ℤ ∧ 𝑘 ∈ ℕ0)
→ (𝑁 mod
(2↑(𝑘 + 1))) = ((𝑁 mod (2↑𝑘)) + if(𝑘 ∈ (bits‘𝑁), (2↑𝑘), 0))) |
| 95 | 39, 94 | sylan 283 |
. . . . . . . . 9
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → (𝑁 mod (2↑(𝑘 + 1))) = ((𝑁 mod (2↑𝑘)) + if(𝑘 ∈ (bits‘𝑁), (2↑𝑘), 0))) |
| 96 | | eqeq2 2206 |
. . . . . . . . . . 11
⊢
((2↑𝑘) =
if(𝑘 ∈
(bits‘𝑁),
(2↑𝑘), 0) →
(Σ𝑛 ∈
((bits‘𝑁) ∩
{𝑘})(2↑𝑛) = (2↑𝑘) ↔ Σ𝑛 ∈ ((bits‘𝑁) ∩ {𝑘})(2↑𝑛) = if(𝑘 ∈ (bits‘𝑁), (2↑𝑘), 0))) |
| 97 | | eqeq2 2206 |
. . . . . . . . . . 11
⊢ (0 =
if(𝑘 ∈
(bits‘𝑁),
(2↑𝑘), 0) →
(Σ𝑛 ∈
((bits‘𝑁) ∩
{𝑘})(2↑𝑛) = 0 ↔ Σ𝑛 ∈ ((bits‘𝑁) ∩ {𝑘})(2↑𝑛) = if(𝑘 ∈ (bits‘𝑁), (2↑𝑘), 0))) |
| 98 | | simpr 110 |
. . . . . . . . . . . . . . 15
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑘 ∈ (bits‘𝑁)) → 𝑘 ∈ (bits‘𝑁)) |
| 99 | 98 | snssd 3768 |
. . . . . . . . . . . . . 14
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑘 ∈ (bits‘𝑁)) → {𝑘} ⊆ (bits‘𝑁)) |
| 100 | | sseqin2 3383 |
. . . . . . . . . . . . . 14
⊢ ({𝑘} ⊆ (bits‘𝑁) ↔ ((bits‘𝑁) ∩ {𝑘}) = {𝑘}) |
| 101 | 99, 100 | sylib 122 |
. . . . . . . . . . . . 13
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑘 ∈ (bits‘𝑁)) → ((bits‘𝑁) ∩ {𝑘}) = {𝑘}) |
| 102 | 101 | sumeq1d 11533 |
. . . . . . . . . . . 12
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑘 ∈ (bits‘𝑁)) → Σ𝑛 ∈ ((bits‘𝑁) ∩ {𝑘})(2↑𝑛) = Σ𝑛 ∈ {𝑘} (2↑𝑛)) |
| 103 | | simplr 528 |
. . . . . . . . . . . . 13
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑘 ∈ (bits‘𝑁)) → 𝑘 ∈ ℕ0) |
| 104 | 84 | a1i 9 |
. . . . . . . . . . . . . . 15
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑘 ∈ (bits‘𝑁)) → 2 ∈ ℕ) |
| 105 | 104, 103 | nnexpcld 10789 |
. . . . . . . . . . . . . 14
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑘 ∈ (bits‘𝑁)) → (2↑𝑘) ∈ ℕ) |
| 106 | 105 | nncnd 9006 |
. . . . . . . . . . . . 13
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑘 ∈ (bits‘𝑁)) → (2↑𝑘) ∈ ℂ) |
| 107 | | oveq2 5931 |
. . . . . . . . . . . . . 14
⊢ (𝑛 = 𝑘 → (2↑𝑛) = (2↑𝑘)) |
| 108 | 107 | sumsn 11578 |
. . . . . . . . . . . . 13
⊢ ((𝑘 ∈ ℕ0
∧ (2↑𝑘) ∈
ℂ) → Σ𝑛
∈ {𝑘} (2↑𝑛) = (2↑𝑘)) |
| 109 | 103, 106,
108 | syl2anc 411 |
. . . . . . . . . . . 12
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑘 ∈ (bits‘𝑁)) → Σ𝑛 ∈ {𝑘} (2↑𝑛) = (2↑𝑘)) |
| 110 | 102, 109 | eqtrd 2229 |
. . . . . . . . . . 11
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ 𝑘 ∈ (bits‘𝑁)) → Σ𝑛 ∈ ((bits‘𝑁) ∩ {𝑘})(2↑𝑛) = (2↑𝑘)) |
| 111 | | simpr 110 |
. . . . . . . . . . . . . 14
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ ¬ 𝑘 ∈ (bits‘𝑁)) → ¬ 𝑘 ∈ (bits‘𝑁)) |
| 112 | | disjsn 3685 |
. . . . . . . . . . . . . 14
⊢
(((bits‘𝑁)
∩ {𝑘}) = ∅ ↔
¬ 𝑘 ∈
(bits‘𝑁)) |
| 113 | 111, 112 | sylibr 134 |
. . . . . . . . . . . . 13
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ ¬ 𝑘 ∈ (bits‘𝑁)) → ((bits‘𝑁) ∩ {𝑘}) = ∅) |
| 114 | 113 | sumeq1d 11533 |
. . . . . . . . . . . 12
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ ¬ 𝑘 ∈ (bits‘𝑁)) → Σ𝑛 ∈ ((bits‘𝑁) ∩ {𝑘})(2↑𝑛) = Σ𝑛 ∈ ∅ (2↑𝑛)) |
| 115 | 114, 8 | eqtrdi 2245 |
. . . . . . . . . . 11
⊢ (((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) ∧ ¬ 𝑘 ∈ (bits‘𝑁)) → Σ𝑛 ∈ ((bits‘𝑁) ∩ {𝑘})(2↑𝑛) = 0) |
| 116 | | bitsdc 12114 |
. . . . . . . . . . . 12
⊢ ((𝑁 ∈ ℤ ∧ 𝑘 ∈ ℕ0)
→ DECID 𝑘 ∈ (bits‘𝑁)) |
| 117 | 39, 116 | sylan 283 |
. . . . . . . . . . 11
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → DECID 𝑘 ∈ (bits‘𝑁)) |
| 118 | 96, 97, 110, 115, 117 | ifbothdadc 3594 |
. . . . . . . . . 10
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → Σ𝑛 ∈ ((bits‘𝑁) ∩ {𝑘})(2↑𝑛) = if(𝑘 ∈ (bits‘𝑁), (2↑𝑘), 0)) |
| 119 | 118 | oveq2d 5939 |
. . . . . . . . 9
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → ((𝑁 mod (2↑𝑘)) + Σ𝑛 ∈ ((bits‘𝑁) ∩ {𝑘})(2↑𝑛)) = ((𝑁 mod (2↑𝑘)) + if(𝑘 ∈ (bits‘𝑁), (2↑𝑘), 0))) |
| 120 | 95, 119 | eqtr4d 2232 |
. . . . . . . 8
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → (𝑁 mod (2↑(𝑘 + 1))) = ((𝑁 mod (2↑𝑘)) + Σ𝑛 ∈ ((bits‘𝑁) ∩ {𝑘})(2↑𝑛))) |
| 121 | 93, 120 | eqeq12d 2211 |
. . . . . . 7
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → (Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))(2↑𝑛) = (𝑁 mod (2↑(𝑘 + 1))) ↔ (Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑘))(2↑𝑛) + Σ𝑛 ∈ ((bits‘𝑁) ∩ {𝑘})(2↑𝑛)) = ((𝑁 mod (2↑𝑘)) + Σ𝑛 ∈ ((bits‘𝑁) ∩ {𝑘})(2↑𝑛)))) |
| 122 | 43, 121 | imbitrrid 156 |
. . . . . 6
⊢ ((𝑁 ∈ ℕ0
∧ 𝑘 ∈
ℕ0) → (Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑘))(2↑𝑛) = (𝑁 mod (2↑𝑘)) → Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))(2↑𝑛) = (𝑁 mod (2↑(𝑘 + 1))))) |
| 123 | 122 | expcom 116 |
. . . . 5
⊢ (𝑘 ∈ ℕ0
→ (𝑁 ∈
ℕ0 → (Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑘))(2↑𝑛) = (𝑁 mod (2↑𝑘)) → Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^(𝑘 + 1)))(2↑𝑛) = (𝑁 mod (2↑(𝑘 + 1)))))) |
| 124 | 123 | a2d 26 |
. . . 4
⊢ (𝑘 ∈ ℕ0
→ ((𝑁 ∈
ℕ0 → Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑘))(2↑𝑛) = (𝑁 mod (2↑𝑘))) → (𝑁 ∈ ℕ0 →
Σ𝑛 ∈
((bits‘𝑁) ∩
(0..^(𝑘 + 1)))(2↑𝑛) = (𝑁 mod (2↑(𝑘 + 1)))))) |
| 125 | 17, 24, 31, 38, 42, 124 | nn0ind 9442 |
. . 3
⊢ (𝑁 ∈ ℕ0
→ (𝑁 ∈
ℕ0 → Σ𝑛 ∈ ((bits‘𝑁) ∩ (0..^𝑁))(2↑𝑛) = (𝑁 mod (2↑𝑁)))) |
| 126 | 125 | pm2.43i 49 |
. 2
⊢ (𝑁 ∈ ℕ0
→ Σ𝑛 ∈
((bits‘𝑁) ∩
(0..^𝑁))(2↑𝑛) = (𝑁 mod (2↑𝑁))) |
| 127 | | id 19 |
. . . . . . 7
⊢ (𝑁 ∈ ℕ0
→ 𝑁 ∈
ℕ0) |
| 128 | 127, 52 | eleqtrdi 2289 |
. . . . . 6
⊢ (𝑁 ∈ ℕ0
→ 𝑁 ∈
(ℤ≥‘0)) |
| 129 | 84 | a1i 9 |
. . . . . . . 8
⊢ (𝑁 ∈ ℕ0
→ 2 ∈ ℕ) |
| 130 | 129, 127 | nnexpcld 10789 |
. . . . . . 7
⊢ (𝑁 ∈ ℕ0
→ (2↑𝑁) ∈
ℕ) |
| 131 | 130 | nnzd 9449 |
. . . . . 6
⊢ (𝑁 ∈ ℕ0
→ (2↑𝑁) ∈
ℤ) |
| 132 | | 2z 9356 |
. . . . . . . 8
⊢ 2 ∈
ℤ |
| 133 | | uzid 9617 |
. . . . . . . 8
⊢ (2 ∈
ℤ → 2 ∈ (ℤ≥‘2)) |
| 134 | 132, 133 | ax-mp 5 |
. . . . . . 7
⊢ 2 ∈
(ℤ≥‘2) |
| 135 | | bernneq3 10756 |
. . . . . . 7
⊢ ((2
∈ (ℤ≥‘2) ∧ 𝑁 ∈ ℕ0) → 𝑁 < (2↑𝑁)) |
| 136 | 134, 135 | mpan 424 |
. . . . . 6
⊢ (𝑁 ∈ ℕ0
→ 𝑁 < (2↑𝑁)) |
| 137 | | elfzo2 10227 |
. . . . . 6
⊢ (𝑁 ∈ (0..^(2↑𝑁)) ↔ (𝑁 ∈ (ℤ≥‘0)
∧ (2↑𝑁) ∈
ℤ ∧ 𝑁 <
(2↑𝑁))) |
| 138 | 128, 131,
136, 137 | syl3anbrc 1183 |
. . . . 5
⊢ (𝑁 ∈ ℕ0
→ 𝑁 ∈
(0..^(2↑𝑁))) |
| 139 | | bitsfzo 12122 |
. . . . . 6
⊢ ((𝑁 ∈ ℤ ∧ 𝑁 ∈ ℕ0)
→ (𝑁 ∈
(0..^(2↑𝑁)) ↔
(bits‘𝑁) ⊆
(0..^𝑁))) |
| 140 | 39, 127, 139 | syl2anc 411 |
. . . . 5
⊢ (𝑁 ∈ ℕ0
→ (𝑁 ∈
(0..^(2↑𝑁)) ↔
(bits‘𝑁) ⊆
(0..^𝑁))) |
| 141 | 138, 140 | mpbid 147 |
. . . 4
⊢ (𝑁 ∈ ℕ0
→ (bits‘𝑁)
⊆ (0..^𝑁)) |
| 142 | | dfss2 3174 |
. . . 4
⊢
((bits‘𝑁)
⊆ (0..^𝑁) ↔
((bits‘𝑁) ∩
(0..^𝑁)) =
(bits‘𝑁)) |
| 143 | 141, 142 | sylib 122 |
. . 3
⊢ (𝑁 ∈ ℕ0
→ ((bits‘𝑁)
∩ (0..^𝑁)) =
(bits‘𝑁)) |
| 144 | 143 | sumeq1d 11533 |
. 2
⊢ (𝑁 ∈ ℕ0
→ Σ𝑛 ∈
((bits‘𝑁) ∩
(0..^𝑁))(2↑𝑛) = Σ𝑛 ∈ (bits‘𝑁)(2↑𝑛)) |
| 145 | | zq 9702 |
. . . 4
⊢ (𝑁 ∈ ℤ → 𝑁 ∈
ℚ) |
| 146 | 39, 145 | syl 14 |
. . 3
⊢ (𝑁 ∈ ℕ0
→ 𝑁 ∈
ℚ) |
| 147 | | zexpcl 10648 |
. . . . 5
⊢ ((2
∈ ℤ ∧ 𝑁
∈ ℕ0) → (2↑𝑁) ∈ ℤ) |
| 148 | 132, 147 | mpan 424 |
. . . 4
⊢ (𝑁 ∈ ℕ0
→ (2↑𝑁) ∈
ℤ) |
| 149 | | zq 9702 |
. . . 4
⊢
((2↑𝑁) ∈
ℤ → (2↑𝑁)
∈ ℚ) |
| 150 | 148, 149 | syl 14 |
. . 3
⊢ (𝑁 ∈ ℕ0
→ (2↑𝑁) ∈
ℚ) |
| 151 | | nn0ge0 9276 |
. . 3
⊢ (𝑁 ∈ ℕ0
→ 0 ≤ 𝑁) |
| 152 | | modqid 10443 |
. . 3
⊢ (((𝑁 ∈ ℚ ∧
(2↑𝑁) ∈ ℚ)
∧ (0 ≤ 𝑁 ∧ 𝑁 < (2↑𝑁))) → (𝑁 mod (2↑𝑁)) = 𝑁) |
| 153 | 146, 150,
151, 136, 152 | syl22anc 1250 |
. 2
⊢ (𝑁 ∈ ℕ0
→ (𝑁 mod (2↑𝑁)) = 𝑁) |
| 154 | 126, 144,
153 | 3eqtr3d 2237 |
1
⊢ (𝑁 ∈ ℕ0
→ Σ𝑛 ∈
(bits‘𝑁)(2↑𝑛) = 𝑁) |