| Step | Hyp | Ref | Expression | 
|---|
| 1 |  | inass 4228 | . . . . . . . 8
⊢ ((𝐴 ∩ (0..^𝑁)) ∩ (0..^𝑁)) = (𝐴 ∩ ((0..^𝑁) ∩ (0..^𝑁))) | 
| 2 |  | inidm 4227 | . . . . . . . . 9
⊢
((0..^𝑁) ∩
(0..^𝑁)) = (0..^𝑁) | 
| 3 | 2 | ineq2i 4217 | . . . . . . . 8
⊢ (𝐴 ∩ ((0..^𝑁) ∩ (0..^𝑁))) = (𝐴 ∩ (0..^𝑁)) | 
| 4 | 1, 3 | eqtri 2765 | . . . . . . 7
⊢ ((𝐴 ∩ (0..^𝑁)) ∩ (0..^𝑁)) = (𝐴 ∩ (0..^𝑁)) | 
| 5 | 4 | fveq2i 6909 | . . . . . 6
⊢ (◡(bits ↾
ℕ0)‘((𝐴 ∩ (0..^𝑁)) ∩ (0..^𝑁))) = (◡(bits ↾
ℕ0)‘(𝐴 ∩ (0..^𝑁))) | 
| 6 |  | inass 4228 | . . . . . . . 8
⊢ ((𝐵 ∩ (0..^𝑁)) ∩ (0..^𝑁)) = (𝐵 ∩ ((0..^𝑁) ∩ (0..^𝑁))) | 
| 7 | 2 | ineq2i 4217 | . . . . . . . 8
⊢ (𝐵 ∩ ((0..^𝑁) ∩ (0..^𝑁))) = (𝐵 ∩ (0..^𝑁)) | 
| 8 | 6, 7 | eqtri 2765 | . . . . . . 7
⊢ ((𝐵 ∩ (0..^𝑁)) ∩ (0..^𝑁)) = (𝐵 ∩ (0..^𝑁)) | 
| 9 | 8 | fveq2i 6909 | . . . . . 6
⊢ (◡(bits ↾
ℕ0)‘((𝐵 ∩ (0..^𝑁)) ∩ (0..^𝑁))) = (◡(bits ↾
ℕ0)‘(𝐵 ∩ (0..^𝑁))) | 
| 10 | 5, 9 | oveq12i 7443 | . . . . 5
⊢ ((◡(bits ↾
ℕ0)‘((𝐴 ∩ (0..^𝑁)) ∩ (0..^𝑁))) + (◡(bits ↾
ℕ0)‘((𝐵 ∩ (0..^𝑁)) ∩ (0..^𝑁)))) = ((◡(bits ↾
ℕ0)‘(𝐴 ∩ (0..^𝑁))) + (◡(bits ↾
ℕ0)‘(𝐵 ∩ (0..^𝑁)))) | 
| 11 | 10 | oveq1i 7441 | . . . 4
⊢ (((◡(bits ↾
ℕ0)‘((𝐴 ∩ (0..^𝑁)) ∩ (0..^𝑁))) + (◡(bits ↾
ℕ0)‘((𝐵 ∩ (0..^𝑁)) ∩ (0..^𝑁)))) mod (2↑𝑁)) = (((◡(bits ↾
ℕ0)‘(𝐴 ∩ (0..^𝑁))) + (◡(bits ↾
ℕ0)‘(𝐵 ∩ (0..^𝑁)))) mod (2↑𝑁)) | 
| 12 |  | inss1 4237 | . . . . . 6
⊢ (𝐴 ∩ (0..^𝑁)) ⊆ 𝐴 | 
| 13 |  | sadeq.a | . . . . . 6
⊢ (𝜑 → 𝐴 ⊆
ℕ0) | 
| 14 | 12, 13 | sstrid 3995 | . . . . 5
⊢ (𝜑 → (𝐴 ∩ (0..^𝑁)) ⊆
ℕ0) | 
| 15 |  | inss1 4237 | . . . . . 6
⊢ (𝐵 ∩ (0..^𝑁)) ⊆ 𝐵 | 
| 16 |  | sadeq.b | . . . . . 6
⊢ (𝜑 → 𝐵 ⊆
ℕ0) | 
| 17 | 15, 16 | sstrid 3995 | . . . . 5
⊢ (𝜑 → (𝐵 ∩ (0..^𝑁)) ⊆
ℕ0) | 
| 18 |  | eqid 2737 | . . . . 5
⊢
seq0((𝑐 ∈
2o, 𝑚 ∈
ℕ0 ↦ if(cadd(𝑚 ∈ (𝐴 ∩ (0..^𝑁)), 𝑚 ∈ (𝐵 ∩ (0..^𝑁)), ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0
↦ if(𝑛 = 0, ∅,
(𝑛 − 1)))) =
seq0((𝑐 ∈
2o, 𝑚 ∈
ℕ0 ↦ if(cadd(𝑚 ∈ (𝐴 ∩ (0..^𝑁)), 𝑚 ∈ (𝐵 ∩ (0..^𝑁)), ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0
↦ if(𝑛 = 0, ∅,
(𝑛 −
1)))) | 
| 19 |  | sadeq.n | . . . . 5
⊢ (𝜑 → 𝑁 ∈
ℕ0) | 
| 20 |  | eqid 2737 | . . . . 5
⊢ ◡(bits ↾ ℕ0) = ◡(bits ↾
ℕ0) | 
| 21 | 14, 17, 18, 19, 20 | sadadd3 16498 | . . . 4
⊢ (𝜑 → ((◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) mod (2↑𝑁)) = (((◡(bits ↾
ℕ0)‘((𝐴 ∩ (0..^𝑁)) ∩ (0..^𝑁))) + (◡(bits ↾
ℕ0)‘((𝐵 ∩ (0..^𝑁)) ∩ (0..^𝑁)))) mod (2↑𝑁))) | 
| 22 |  | eqid 2737 | . . . . 5
⊢
seq0((𝑐 ∈
2o, 𝑚 ∈
ℕ0 ↦ if(cadd(𝑚 ∈ 𝐴, 𝑚 ∈ 𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0
↦ if(𝑛 = 0, ∅,
(𝑛 − 1)))) =
seq0((𝑐 ∈
2o, 𝑚 ∈
ℕ0 ↦ if(cadd(𝑚 ∈ 𝐴, 𝑚 ∈ 𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0
↦ if(𝑛 = 0, ∅,
(𝑛 −
1)))) | 
| 23 | 13, 16, 22, 19, 20 | sadadd3 16498 | . . . 4
⊢ (𝜑 → ((◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) mod (2↑𝑁)) = (((◡(bits ↾
ℕ0)‘(𝐴 ∩ (0..^𝑁))) + (◡(bits ↾
ℕ0)‘(𝐵 ∩ (0..^𝑁)))) mod (2↑𝑁))) | 
| 24 | 11, 21, 23 | 3eqtr4a 2803 | . . 3
⊢ (𝜑 → ((◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) mod (2↑𝑁)) = ((◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) mod (2↑𝑁))) | 
| 25 |  | inss1 4237 | . . . . . . . 8
⊢ (((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)) ⊆ ((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) | 
| 26 |  | sadcl 16499 | . . . . . . . . 9
⊢ (((𝐴 ∩ (0..^𝑁)) ⊆ ℕ0 ∧ (𝐵 ∩ (0..^𝑁)) ⊆ ℕ0) →
((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ⊆
ℕ0) | 
| 27 | 14, 17, 26 | syl2anc 584 | . . . . . . . 8
⊢ (𝜑 → ((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ⊆
ℕ0) | 
| 28 | 25, 27 | sstrid 3995 | . . . . . . 7
⊢ (𝜑 → (((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)) ⊆
ℕ0) | 
| 29 |  | fzofi 14015 | . . . . . . . . 9
⊢
(0..^𝑁) ∈
Fin | 
| 30 | 29 | a1i 11 | . . . . . . . 8
⊢ (𝜑 → (0..^𝑁) ∈ Fin) | 
| 31 |  | inss2 4238 | . . . . . . . 8
⊢ (((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)) ⊆ (0..^𝑁) | 
| 32 |  | ssfi 9213 | . . . . . . . 8
⊢
(((0..^𝑁) ∈ Fin
∧ (((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)) ⊆ (0..^𝑁)) → (((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)) ∈ Fin) | 
| 33 | 30, 31, 32 | sylancl 586 | . . . . . . 7
⊢ (𝜑 → (((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)) ∈ Fin) | 
| 34 |  | elfpw 9394 | . . . . . . 7
⊢ ((((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0
∩ Fin) ↔ ((((𝐴
∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)) ⊆ ℕ0 ∧
(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)) ∈ Fin)) | 
| 35 | 28, 33, 34 | sylanbrc 583 | . . . . . 6
⊢ (𝜑 → (((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0
∩ Fin)) | 
| 36 |  | bitsf1o 16482 | . . . . . . . 8
⊢ (bits
↾ ℕ0):ℕ0–1-1-onto→(𝒫 ℕ0 ∩
Fin) | 
| 37 |  | f1ocnv 6860 | . . . . . . . 8
⊢ ((bits
↾ ℕ0):ℕ0–1-1-onto→(𝒫 ℕ0 ∩ Fin)
→ ◡(bits ↾
ℕ0):(𝒫 ℕ0 ∩ Fin)–1-1-onto→ℕ0) | 
| 38 |  | f1of 6848 | . . . . . . . 8
⊢ (◡(bits ↾
ℕ0):(𝒫 ℕ0 ∩ Fin)–1-1-onto→ℕ0 → ◡(bits ↾
ℕ0):(𝒫 ℕ0 ∩
Fin)⟶ℕ0) | 
| 39 | 36, 37, 38 | mp2b 10 | . . . . . . 7
⊢ ◡(bits ↾
ℕ0):(𝒫 ℕ0 ∩
Fin)⟶ℕ0 | 
| 40 | 39 | ffvelcdmi 7103 | . . . . . 6
⊢ ((((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0
∩ Fin) → (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) ∈
ℕ0) | 
| 41 | 35, 40 | syl 17 | . . . . 5
⊢ (𝜑 → (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) ∈
ℕ0) | 
| 42 | 41 | nn0red 12588 | . . . 4
⊢ (𝜑 → (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) ∈ ℝ) | 
| 43 |  | 2rp 13039 | . . . . . 6
⊢ 2 ∈
ℝ+ | 
| 44 | 43 | a1i 11 | . . . . 5
⊢ (𝜑 → 2 ∈
ℝ+) | 
| 45 | 19 | nn0zd 12639 | . . . . 5
⊢ (𝜑 → 𝑁 ∈ ℤ) | 
| 46 | 44, 45 | rpexpcld 14286 | . . . 4
⊢ (𝜑 → (2↑𝑁) ∈
ℝ+) | 
| 47 | 41 | nn0ge0d 12590 | . . . 4
⊢ (𝜑 → 0 ≤ (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)))) | 
| 48 | 41 | fvresd 6926 | . . . . . . . 8
⊢ (𝜑 → ((bits ↾
ℕ0)‘(◡(bits
↾ ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)))) = (bits‘(◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))))) | 
| 49 |  | f1ocnvfv2 7297 | . . . . . . . . 9
⊢ (((bits
↾ ℕ0):ℕ0–1-1-onto→(𝒫 ℕ0 ∩ Fin)
∧ (((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0
∩ Fin)) → ((bits ↾ ℕ0)‘(◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)))) = (((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) | 
| 50 | 36, 35, 49 | sylancr 587 | . . . . . . . 8
⊢ (𝜑 → ((bits ↾
ℕ0)‘(◡(bits
↾ ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)))) = (((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) | 
| 51 | 48, 50 | eqtr3d 2779 | . . . . . . 7
⊢ (𝜑 → (bits‘(◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)))) = (((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) | 
| 52 | 51, 31 | eqsstrdi 4028 | . . . . . 6
⊢ (𝜑 → (bits‘(◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)))) ⊆ (0..^𝑁)) | 
| 53 | 41 | nn0zd 12639 | . . . . . . 7
⊢ (𝜑 → (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) ∈ ℤ) | 
| 54 |  | bitsfzo 16472 | . . . . . . 7
⊢ (((◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) ∈ ℤ ∧ 𝑁 ∈ ℕ0) → ((◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) ∈ (0..^(2↑𝑁)) ↔ (bits‘(◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)))) ⊆ (0..^𝑁))) | 
| 55 | 53, 19, 54 | syl2anc 584 | . . . . . 6
⊢ (𝜑 → ((◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) ∈ (0..^(2↑𝑁)) ↔ (bits‘(◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)))) ⊆ (0..^𝑁))) | 
| 56 | 52, 55 | mpbird 257 | . . . . 5
⊢ (𝜑 → (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) ∈ (0..^(2↑𝑁))) | 
| 57 |  | elfzolt2 13708 | . . . . 5
⊢ ((◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) ∈ (0..^(2↑𝑁)) → (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) < (2↑𝑁)) | 
| 58 | 56, 57 | syl 17 | . . . 4
⊢ (𝜑 → (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) < (2↑𝑁)) | 
| 59 |  | modid 13936 | . . . 4
⊢ ((((◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) ∈ ℝ ∧ (2↑𝑁) ∈ ℝ+)
∧ (0 ≤ (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) ∧ (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) < (2↑𝑁))) → ((◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) mod (2↑𝑁)) = (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)))) | 
| 60 | 42, 46, 47, 58, 59 | syl22anc 839 | . . 3
⊢ (𝜑 → ((◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) mod (2↑𝑁)) = (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)))) | 
| 61 |  | inss1 4237 | . . . . . . . 8
⊢ ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ⊆ (𝐴 sadd 𝐵) | 
| 62 |  | sadcl 16499 | . . . . . . . . 9
⊢ ((𝐴 ⊆ ℕ0
∧ 𝐵 ⊆
ℕ0) → (𝐴 sadd 𝐵) ⊆
ℕ0) | 
| 63 | 13, 16, 62 | syl2anc 584 | . . . . . . . 8
⊢ (𝜑 → (𝐴 sadd 𝐵) ⊆
ℕ0) | 
| 64 | 61, 63 | sstrid 3995 | . . . . . . 7
⊢ (𝜑 → ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ⊆
ℕ0) | 
| 65 |  | inss2 4238 | . . . . . . . 8
⊢ ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ⊆ (0..^𝑁) | 
| 66 |  | ssfi 9213 | . . . . . . . 8
⊢
(((0..^𝑁) ∈ Fin
∧ ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ⊆ (0..^𝑁)) → ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ Fin) | 
| 67 | 30, 65, 66 | sylancl 586 | . . . . . . 7
⊢ (𝜑 → ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ Fin) | 
| 68 |  | elfpw 9394 | . . . . . . 7
⊢ (((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0
∩ Fin) ↔ (((𝐴 sadd
𝐵) ∩ (0..^𝑁)) ⊆ ℕ0
∧ ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ Fin)) | 
| 69 | 64, 67, 68 | sylanbrc 583 | . . . . . 6
⊢ (𝜑 → ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0
∩ Fin)) | 
| 70 | 39 | ffvelcdmi 7103 | . . . . . 6
⊢ (((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0
∩ Fin) → (◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈
ℕ0) | 
| 71 | 69, 70 | syl 17 | . . . . 5
⊢ (𝜑 → (◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈
ℕ0) | 
| 72 | 71 | nn0red 12588 | . . . 4
⊢ (𝜑 → (◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ ℝ) | 
| 73 | 71 | nn0ge0d 12590 | . . . 4
⊢ (𝜑 → 0 ≤ (◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁)))) | 
| 74 | 71 | fvresd 6926 | . . . . . . . 8
⊢ (𝜑 → ((bits ↾
ℕ0)‘(◡(bits
↾ ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁)))) = (bits‘(◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))))) | 
| 75 |  | f1ocnvfv2 7297 | . . . . . . . . 9
⊢ (((bits
↾ ℕ0):ℕ0–1-1-onto→(𝒫 ℕ0 ∩ Fin)
∧ ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0
∩ Fin)) → ((bits ↾ ℕ0)‘(◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁)))) = ((𝐴 sadd 𝐵) ∩ (0..^𝑁))) | 
| 76 | 36, 69, 75 | sylancr 587 | . . . . . . . 8
⊢ (𝜑 → ((bits ↾
ℕ0)‘(◡(bits
↾ ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁)))) = ((𝐴 sadd 𝐵) ∩ (0..^𝑁))) | 
| 77 | 74, 76 | eqtr3d 2779 | . . . . . . 7
⊢ (𝜑 → (bits‘(◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁)))) = ((𝐴 sadd 𝐵) ∩ (0..^𝑁))) | 
| 78 | 77, 65 | eqsstrdi 4028 | . . . . . 6
⊢ (𝜑 → (bits‘(◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁)))) ⊆ (0..^𝑁)) | 
| 79 | 71 | nn0zd 12639 | . . . . . . 7
⊢ (𝜑 → (◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ ℤ) | 
| 80 |  | bitsfzo 16472 | . . . . . . 7
⊢ (((◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ ℤ ∧ 𝑁 ∈ ℕ0) → ((◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ (0..^(2↑𝑁)) ↔ (bits‘(◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁)))) ⊆ (0..^𝑁))) | 
| 81 | 79, 19, 80 | syl2anc 584 | . . . . . 6
⊢ (𝜑 → ((◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ (0..^(2↑𝑁)) ↔ (bits‘(◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁)))) ⊆ (0..^𝑁))) | 
| 82 | 78, 81 | mpbird 257 | . . . . 5
⊢ (𝜑 → (◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ (0..^(2↑𝑁))) | 
| 83 |  | elfzolt2 13708 | . . . . 5
⊢ ((◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ (0..^(2↑𝑁)) → (◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) < (2↑𝑁)) | 
| 84 | 82, 83 | syl 17 | . . . 4
⊢ (𝜑 → (◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) < (2↑𝑁)) | 
| 85 |  | modid 13936 | . . . 4
⊢ ((((◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ ℝ ∧ (2↑𝑁) ∈ ℝ+)
∧ (0 ≤ (◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∧ (◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) < (2↑𝑁))) → ((◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) mod (2↑𝑁)) = (◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁)))) | 
| 86 | 72, 46, 73, 84, 85 | syl22anc 839 | . . 3
⊢ (𝜑 → ((◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) mod (2↑𝑁)) = (◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁)))) | 
| 87 | 24, 60, 86 | 3eqtr3rd 2786 | . 2
⊢ (𝜑 → (◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) = (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)))) | 
| 88 |  | f1of1 6847 | . . . . 5
⊢ (◡(bits ↾
ℕ0):(𝒫 ℕ0 ∩ Fin)–1-1-onto→ℕ0 → ◡(bits ↾
ℕ0):(𝒫 ℕ0 ∩ Fin)–1-1→ℕ0) | 
| 89 | 36, 37, 88 | mp2b 10 | . . . 4
⊢ ◡(bits ↾
ℕ0):(𝒫 ℕ0 ∩ Fin)–1-1→ℕ0 | 
| 90 |  | f1fveq 7282 | . . . 4
⊢ ((◡(bits ↾
ℕ0):(𝒫 ℕ0 ∩ Fin)–1-1→ℕ0 ∧ (((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0
∩ Fin) ∧ (((𝐴 ∩
(0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0
∩ Fin))) → ((◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) = (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) ↔ ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) = (((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)))) | 
| 91 | 89, 90 | mpan 690 | . . 3
⊢ ((((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0
∩ Fin) ∧ (((𝐴 ∩
(0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0
∩ Fin)) → ((◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) = (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) ↔ ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) = (((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)))) | 
| 92 | 69, 35, 91 | syl2anc 584 | . 2
⊢ (𝜑 → ((◡(bits ↾
ℕ0)‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) = (◡(bits ↾
ℕ0)‘(((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) ↔ ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) = (((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁)))) | 
| 93 | 87, 92 | mpbid 232 | 1
⊢ (𝜑 → ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) = (((𝐴 ∩ (0..^𝑁)) sadd (𝐵 ∩ (0..^𝑁))) ∩ (0..^𝑁))) |