| Step | Hyp | Ref | Expression | 
|---|
| 1 |  | ccatmulgnn0dir.a | . . . . . . . . 9
⊢ 𝐴 = ((0..^𝑀) × {𝐾}) | 
| 2 | 1 | fveq2i 6908 | . . . . . . . 8
⊢
(♯‘𝐴) =
(♯‘((0..^𝑀)
× {𝐾})) | 
| 3 |  | fzofi 14016 | . . . . . . . . 9
⊢
(0..^𝑀) ∈
Fin | 
| 4 |  | snfi 9084 | . . . . . . . . 9
⊢ {𝐾} ∈ Fin | 
| 5 |  | hashxp 14474 | . . . . . . . . 9
⊢
(((0..^𝑀) ∈ Fin
∧ {𝐾} ∈ Fin)
→ (♯‘((0..^𝑀) × {𝐾})) = ((♯‘(0..^𝑀)) · (♯‘{𝐾}))) | 
| 6 | 3, 4, 5 | mp2an 692 | . . . . . . . 8
⊢
(♯‘((0..^𝑀) × {𝐾})) = ((♯‘(0..^𝑀)) · (♯‘{𝐾})) | 
| 7 | 2, 6 | eqtri 2764 | . . . . . . 7
⊢
(♯‘𝐴) =
((♯‘(0..^𝑀))
· (♯‘{𝐾})) | 
| 8 |  | ccatmulgnn0dir.m | . . . . . . . . 9
⊢ (𝜑 → 𝑀 ∈
ℕ0) | 
| 9 |  | hashfzo0 14470 | . . . . . . . . 9
⊢ (𝑀 ∈ ℕ0
→ (♯‘(0..^𝑀)) = 𝑀) | 
| 10 | 8, 9 | syl 17 | . . . . . . . 8
⊢ (𝜑 → (♯‘(0..^𝑀)) = 𝑀) | 
| 11 |  | ccatmulgnn0dir.k | . . . . . . . . 9
⊢ (𝜑 → 𝐾 ∈ 𝑆) | 
| 12 |  | hashsng 14409 | . . . . . . . . 9
⊢ (𝐾 ∈ 𝑆 → (♯‘{𝐾}) = 1) | 
| 13 | 11, 12 | syl 17 | . . . . . . . 8
⊢ (𝜑 → (♯‘{𝐾}) = 1) | 
| 14 | 10, 13 | oveq12d 7450 | . . . . . . 7
⊢ (𝜑 → ((♯‘(0..^𝑀)) ·
(♯‘{𝐾})) =
(𝑀 ·
1)) | 
| 15 | 7, 14 | eqtrid 2788 | . . . . . 6
⊢ (𝜑 → (♯‘𝐴) = (𝑀 · 1)) | 
| 16 | 8 | nn0cnd 12591 | . . . . . . 7
⊢ (𝜑 → 𝑀 ∈ ℂ) | 
| 17 | 16 | mulridd 11279 | . . . . . 6
⊢ (𝜑 → (𝑀 · 1) = 𝑀) | 
| 18 | 15, 17 | eqtrd 2776 | . . . . 5
⊢ (𝜑 → (♯‘𝐴) = 𝑀) | 
| 19 |  | ccatmulgnn0dir.b | . . . . . . . . 9
⊢ 𝐵 = ((0..^𝑁) × {𝐾}) | 
| 20 | 19 | fveq2i 6908 | . . . . . . . 8
⊢
(♯‘𝐵) =
(♯‘((0..^𝑁)
× {𝐾})) | 
| 21 |  | fzofi 14016 | . . . . . . . . 9
⊢
(0..^𝑁) ∈
Fin | 
| 22 |  | hashxp 14474 | . . . . . . . . 9
⊢
(((0..^𝑁) ∈ Fin
∧ {𝐾} ∈ Fin)
→ (♯‘((0..^𝑁) × {𝐾})) = ((♯‘(0..^𝑁)) · (♯‘{𝐾}))) | 
| 23 | 21, 4, 22 | mp2an 692 | . . . . . . . 8
⊢
(♯‘((0..^𝑁) × {𝐾})) = ((♯‘(0..^𝑁)) · (♯‘{𝐾})) | 
| 24 | 20, 23 | eqtri 2764 | . . . . . . 7
⊢
(♯‘𝐵) =
((♯‘(0..^𝑁))
· (♯‘{𝐾})) | 
| 25 |  | ccatmulgnn0dir.n | . . . . . . . . 9
⊢ (𝜑 → 𝑁 ∈
ℕ0) | 
| 26 |  | hashfzo0 14470 | . . . . . . . . 9
⊢ (𝑁 ∈ ℕ0
→ (♯‘(0..^𝑁)) = 𝑁) | 
| 27 | 25, 26 | syl 17 | . . . . . . . 8
⊢ (𝜑 → (♯‘(0..^𝑁)) = 𝑁) | 
| 28 | 27, 13 | oveq12d 7450 | . . . . . . 7
⊢ (𝜑 → ((♯‘(0..^𝑁)) ·
(♯‘{𝐾})) =
(𝑁 ·
1)) | 
| 29 | 24, 28 | eqtrid 2788 | . . . . . 6
⊢ (𝜑 → (♯‘𝐵) = (𝑁 · 1)) | 
| 30 | 25 | nn0cnd 12591 | . . . . . . 7
⊢ (𝜑 → 𝑁 ∈ ℂ) | 
| 31 | 30 | mulridd 11279 | . . . . . 6
⊢ (𝜑 → (𝑁 · 1) = 𝑁) | 
| 32 | 29, 31 | eqtrd 2776 | . . . . 5
⊢ (𝜑 → (♯‘𝐵) = 𝑁) | 
| 33 | 18, 32 | oveq12d 7450 | . . . 4
⊢ (𝜑 → ((♯‘𝐴) + (♯‘𝐵)) = (𝑀 + 𝑁)) | 
| 34 | 33 | oveq2d 7448 | . . 3
⊢ (𝜑 → (0..^((♯‘𝐴) + (♯‘𝐵))) = (0..^(𝑀 + 𝑁))) | 
| 35 |  | simpll 766 | . . . . 5
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ 𝑖 ∈ (0..^(♯‘𝐴))) → 𝜑) | 
| 36 |  | simpr 484 | . . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ 𝑖 ∈ (0..^(♯‘𝐴))) → 𝑖 ∈ (0..^(♯‘𝐴))) | 
| 37 | 18 | oveq2d 7448 | . . . . . . 7
⊢ (𝜑 → (0..^(♯‘𝐴)) = (0..^𝑀)) | 
| 38 | 35, 37 | syl 17 | . . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ 𝑖 ∈ (0..^(♯‘𝐴))) → (0..^(♯‘𝐴)) = (0..^𝑀)) | 
| 39 | 36, 38 | eleqtrd 2842 | . . . . 5
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ 𝑖 ∈ (0..^(♯‘𝐴))) → 𝑖 ∈ (0..^𝑀)) | 
| 40 |  | fconstg 6794 | . . . . . . . 8
⊢ (𝐾 ∈ 𝑆 → ((0..^𝑀) × {𝐾}):(0..^𝑀)⟶{𝐾}) | 
| 41 | 11, 40 | syl 17 | . . . . . . 7
⊢ (𝜑 → ((0..^𝑀) × {𝐾}):(0..^𝑀)⟶{𝐾}) | 
| 42 | 1 | a1i 11 | . . . . . . . 8
⊢ (𝜑 → 𝐴 = ((0..^𝑀) × {𝐾})) | 
| 43 | 42 | feq1d 6719 | . . . . . . 7
⊢ (𝜑 → (𝐴:(0..^𝑀)⟶{𝐾} ↔ ((0..^𝑀) × {𝐾}):(0..^𝑀)⟶{𝐾})) | 
| 44 | 41, 43 | mpbird 257 | . . . . . 6
⊢ (𝜑 → 𝐴:(0..^𝑀)⟶{𝐾}) | 
| 45 |  | fvconst 7183 | . . . . . 6
⊢ ((𝐴:(0..^𝑀)⟶{𝐾} ∧ 𝑖 ∈ (0..^𝑀)) → (𝐴‘𝑖) = 𝐾) | 
| 46 | 44, 45 | sylan 580 | . . . . 5
⊢ ((𝜑 ∧ 𝑖 ∈ (0..^𝑀)) → (𝐴‘𝑖) = 𝐾) | 
| 47 | 35, 39, 46 | syl2anc 584 | . . . 4
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ 𝑖 ∈ (0..^(♯‘𝐴))) → (𝐴‘𝑖) = 𝐾) | 
| 48 |  | simpll 766 | . . . . 5
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ 𝜑) | 
| 49 |  | simplr 768 | . . . . . . 7
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ 𝑖 ∈
(0..^((♯‘𝐴) +
(♯‘𝐵)))) | 
| 50 |  | simpr 484 | . . . . . . 7
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ ¬ 𝑖 ∈
(0..^(♯‘𝐴))) | 
| 51 | 18, 8 | eqeltrd 2840 | . . . . . . . . 9
⊢ (𝜑 → (♯‘𝐴) ∈
ℕ0) | 
| 52 | 48, 51 | syl 17 | . . . . . . . 8
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (♯‘𝐴)
∈ ℕ0) | 
| 53 | 52 | nn0zd 12641 | . . . . . . 7
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (♯‘𝐴)
∈ ℤ) | 
| 54 | 32, 25 | eqeltrd 2840 | . . . . . . . . 9
⊢ (𝜑 → (♯‘𝐵) ∈
ℕ0) | 
| 55 | 48, 54 | syl 17 | . . . . . . . 8
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (♯‘𝐵)
∈ ℕ0) | 
| 56 | 55 | nn0zd 12641 | . . . . . . 7
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (♯‘𝐵)
∈ ℤ) | 
| 57 |  | fzocatel 13769 | . . . . . . 7
⊢ (((𝑖 ∈
(0..^((♯‘𝐴) +
(♯‘𝐵))) ∧
¬ 𝑖 ∈
(0..^(♯‘𝐴)))
∧ ((♯‘𝐴)
∈ ℤ ∧ (♯‘𝐵) ∈ ℤ)) → (𝑖 − (♯‘𝐴)) ∈
(0..^(♯‘𝐵))) | 
| 58 | 49, 50, 53, 56, 57 | syl22anc 838 | . . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (𝑖 −
(♯‘𝐴)) ∈
(0..^(♯‘𝐵))) | 
| 59 | 32 | oveq2d 7448 | . . . . . . 7
⊢ (𝜑 → (0..^(♯‘𝐵)) = (0..^𝑁)) | 
| 60 | 48, 59 | syl 17 | . . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (0..^(♯‘𝐵)) = (0..^𝑁)) | 
| 61 | 58, 60 | eleqtrd 2842 | . . . . 5
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (𝑖 −
(♯‘𝐴)) ∈
(0..^𝑁)) | 
| 62 |  | fconstg 6794 | . . . . . . . 8
⊢ (𝐾 ∈ 𝑆 → ((0..^𝑁) × {𝐾}):(0..^𝑁)⟶{𝐾}) | 
| 63 | 11, 62 | syl 17 | . . . . . . 7
⊢ (𝜑 → ((0..^𝑁) × {𝐾}):(0..^𝑁)⟶{𝐾}) | 
| 64 | 19 | a1i 11 | . . . . . . . 8
⊢ (𝜑 → 𝐵 = ((0..^𝑁) × {𝐾})) | 
| 65 | 64 | feq1d 6719 | . . . . . . 7
⊢ (𝜑 → (𝐵:(0..^𝑁)⟶{𝐾} ↔ ((0..^𝑁) × {𝐾}):(0..^𝑁)⟶{𝐾})) | 
| 66 | 63, 65 | mpbird 257 | . . . . . 6
⊢ (𝜑 → 𝐵:(0..^𝑁)⟶{𝐾}) | 
| 67 |  | fvconst 7183 | . . . . . 6
⊢ ((𝐵:(0..^𝑁)⟶{𝐾} ∧ (𝑖 − (♯‘𝐴)) ∈ (0..^𝑁)) → (𝐵‘(𝑖 − (♯‘𝐴))) = 𝐾) | 
| 68 | 66, 67 | sylan 580 | . . . . 5
⊢ ((𝜑 ∧ (𝑖 − (♯‘𝐴)) ∈ (0..^𝑁)) → (𝐵‘(𝑖 − (♯‘𝐴))) = 𝐾) | 
| 69 | 48, 61, 68 | syl2anc 584 | . . . 4
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (𝐵‘(𝑖 − (♯‘𝐴))) = 𝐾) | 
| 70 | 47, 69 | ifeqda 4561 | . . 3
⊢ ((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) → if(𝑖 ∈
(0..^(♯‘𝐴)),
(𝐴‘𝑖), (𝐵‘(𝑖 − (♯‘𝐴)))) = 𝐾) | 
| 71 | 34, 70 | mpteq12dva 5230 | . 2
⊢ (𝜑 → (𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑖 ∈
(0..^(♯‘𝐴)),
(𝐴‘𝑖), (𝐵‘(𝑖 − (♯‘𝐴))))) = (𝑖 ∈ (0..^(𝑀 + 𝑁)) ↦ 𝐾)) | 
| 72 |  | ovex 7465 | . . . . 5
⊢
(0..^𝑀) ∈
V | 
| 73 |  | snex 5435 | . . . . 5
⊢ {𝐾} ∈ V | 
| 74 | 72, 73 | xpex 7774 | . . . 4
⊢
((0..^𝑀) ×
{𝐾}) ∈
V | 
| 75 | 1, 74 | eqeltri 2836 | . . 3
⊢ 𝐴 ∈ V | 
| 76 |  | ovex 7465 | . . . . 5
⊢
(0..^𝑁) ∈
V | 
| 77 | 76, 73 | xpex 7774 | . . . 4
⊢
((0..^𝑁) ×
{𝐾}) ∈
V | 
| 78 | 19, 77 | eqeltri 2836 | . . 3
⊢ 𝐵 ∈ V | 
| 79 |  | ccatfval 14612 | . . 3
⊢ ((𝐴 ∈ V ∧ 𝐵 ∈ V) → (𝐴 ++ 𝐵) = (𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑖 ∈
(0..^(♯‘𝐴)),
(𝐴‘𝑖), (𝐵‘(𝑖 − (♯‘𝐴)))))) | 
| 80 | 75, 78, 79 | mp2an 692 | . 2
⊢ (𝐴 ++ 𝐵) = (𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑖 ∈
(0..^(♯‘𝐴)),
(𝐴‘𝑖), (𝐵‘(𝑖 − (♯‘𝐴))))) | 
| 81 |  | ccatmulgnn0dir.c | . . 3
⊢ 𝐶 = ((0..^(𝑀 + 𝑁)) × {𝐾}) | 
| 82 |  | fconstmpt 5746 | . . 3
⊢
((0..^(𝑀 + 𝑁)) × {𝐾}) = (𝑖 ∈ (0..^(𝑀 + 𝑁)) ↦ 𝐾) | 
| 83 | 81, 82 | eqtri 2764 | . 2
⊢ 𝐶 = (𝑖 ∈ (0..^(𝑀 + 𝑁)) ↦ 𝐾) | 
| 84 | 71, 80, 83 | 3eqtr4g 2801 | 1
⊢ (𝜑 → (𝐴 ++ 𝐵) = 𝐶) |