| Step | Hyp | Ref
| Expression |
| 1 | | ccatmulgnn0dir.a |
. . . . . . . . 9
⊢ 𝐴 = ((0..^𝑀) × {𝐾}) |
| 2 | 1 | fveq2i 6884 |
. . . . . . . 8
⊢
(♯‘𝐴) =
(♯‘((0..^𝑀)
× {𝐾})) |
| 3 | | fzofi 13997 |
. . . . . . . . 9
⊢
(0..^𝑀) ∈
Fin |
| 4 | | snfi 9062 |
. . . . . . . . 9
⊢ {𝐾} ∈ Fin |
| 5 | | hashxp 14457 |
. . . . . . . . 9
⊢
(((0..^𝑀) ∈ Fin
∧ {𝐾} ∈ Fin)
→ (♯‘((0..^𝑀) × {𝐾})) = ((♯‘(0..^𝑀)) · (♯‘{𝐾}))) |
| 6 | 3, 4, 5 | mp2an 692 |
. . . . . . . 8
⊢
(♯‘((0..^𝑀) × {𝐾})) = ((♯‘(0..^𝑀)) · (♯‘{𝐾})) |
| 7 | 2, 6 | eqtri 2759 |
. . . . . . 7
⊢
(♯‘𝐴) =
((♯‘(0..^𝑀))
· (♯‘{𝐾})) |
| 8 | | ccatmulgnn0dir.m |
. . . . . . . . 9
⊢ (𝜑 → 𝑀 ∈
ℕ0) |
| 9 | | hashfzo0 14453 |
. . . . . . . . 9
⊢ (𝑀 ∈ ℕ0
→ (♯‘(0..^𝑀)) = 𝑀) |
| 10 | 8, 9 | syl 17 |
. . . . . . . 8
⊢ (𝜑 → (♯‘(0..^𝑀)) = 𝑀) |
| 11 | | ccatmulgnn0dir.k |
. . . . . . . . 9
⊢ (𝜑 → 𝐾 ∈ 𝑆) |
| 12 | | hashsng 14392 |
. . . . . . . . 9
⊢ (𝐾 ∈ 𝑆 → (♯‘{𝐾}) = 1) |
| 13 | 11, 12 | syl 17 |
. . . . . . . 8
⊢ (𝜑 → (♯‘{𝐾}) = 1) |
| 14 | 10, 13 | oveq12d 7428 |
. . . . . . 7
⊢ (𝜑 → ((♯‘(0..^𝑀)) ·
(♯‘{𝐾})) =
(𝑀 ·
1)) |
| 15 | 7, 14 | eqtrid 2783 |
. . . . . 6
⊢ (𝜑 → (♯‘𝐴) = (𝑀 · 1)) |
| 16 | 8 | nn0cnd 12569 |
. . . . . . 7
⊢ (𝜑 → 𝑀 ∈ ℂ) |
| 17 | 16 | mulridd 11257 |
. . . . . 6
⊢ (𝜑 → (𝑀 · 1) = 𝑀) |
| 18 | 15, 17 | eqtrd 2771 |
. . . . 5
⊢ (𝜑 → (♯‘𝐴) = 𝑀) |
| 19 | | ccatmulgnn0dir.b |
. . . . . . . . 9
⊢ 𝐵 = ((0..^𝑁) × {𝐾}) |
| 20 | 19 | fveq2i 6884 |
. . . . . . . 8
⊢
(♯‘𝐵) =
(♯‘((0..^𝑁)
× {𝐾})) |
| 21 | | fzofi 13997 |
. . . . . . . . 9
⊢
(0..^𝑁) ∈
Fin |
| 22 | | hashxp 14457 |
. . . . . . . . 9
⊢
(((0..^𝑁) ∈ Fin
∧ {𝐾} ∈ Fin)
→ (♯‘((0..^𝑁) × {𝐾})) = ((♯‘(0..^𝑁)) · (♯‘{𝐾}))) |
| 23 | 21, 4, 22 | mp2an 692 |
. . . . . . . 8
⊢
(♯‘((0..^𝑁) × {𝐾})) = ((♯‘(0..^𝑁)) · (♯‘{𝐾})) |
| 24 | 20, 23 | eqtri 2759 |
. . . . . . 7
⊢
(♯‘𝐵) =
((♯‘(0..^𝑁))
· (♯‘{𝐾})) |
| 25 | | ccatmulgnn0dir.n |
. . . . . . . . 9
⊢ (𝜑 → 𝑁 ∈
ℕ0) |
| 26 | | hashfzo0 14453 |
. . . . . . . . 9
⊢ (𝑁 ∈ ℕ0
→ (♯‘(0..^𝑁)) = 𝑁) |
| 27 | 25, 26 | syl 17 |
. . . . . . . 8
⊢ (𝜑 → (♯‘(0..^𝑁)) = 𝑁) |
| 28 | 27, 13 | oveq12d 7428 |
. . . . . . 7
⊢ (𝜑 → ((♯‘(0..^𝑁)) ·
(♯‘{𝐾})) =
(𝑁 ·
1)) |
| 29 | 24, 28 | eqtrid 2783 |
. . . . . 6
⊢ (𝜑 → (♯‘𝐵) = (𝑁 · 1)) |
| 30 | 25 | nn0cnd 12569 |
. . . . . . 7
⊢ (𝜑 → 𝑁 ∈ ℂ) |
| 31 | 30 | mulridd 11257 |
. . . . . 6
⊢ (𝜑 → (𝑁 · 1) = 𝑁) |
| 32 | 29, 31 | eqtrd 2771 |
. . . . 5
⊢ (𝜑 → (♯‘𝐵) = 𝑁) |
| 33 | 18, 32 | oveq12d 7428 |
. . . 4
⊢ (𝜑 → ((♯‘𝐴) + (♯‘𝐵)) = (𝑀 + 𝑁)) |
| 34 | 33 | oveq2d 7426 |
. . 3
⊢ (𝜑 → (0..^((♯‘𝐴) + (♯‘𝐵))) = (0..^(𝑀 + 𝑁))) |
| 35 | | simpll 766 |
. . . . 5
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ 𝑖 ∈ (0..^(♯‘𝐴))) → 𝜑) |
| 36 | | simpr 484 |
. . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ 𝑖 ∈ (0..^(♯‘𝐴))) → 𝑖 ∈ (0..^(♯‘𝐴))) |
| 37 | 18 | oveq2d 7426 |
. . . . . . 7
⊢ (𝜑 → (0..^(♯‘𝐴)) = (0..^𝑀)) |
| 38 | 35, 37 | syl 17 |
. . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ 𝑖 ∈ (0..^(♯‘𝐴))) → (0..^(♯‘𝐴)) = (0..^𝑀)) |
| 39 | 36, 38 | eleqtrd 2837 |
. . . . 5
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ 𝑖 ∈ (0..^(♯‘𝐴))) → 𝑖 ∈ (0..^𝑀)) |
| 40 | | fconstg 6770 |
. . . . . . . 8
⊢ (𝐾 ∈ 𝑆 → ((0..^𝑀) × {𝐾}):(0..^𝑀)⟶{𝐾}) |
| 41 | 11, 40 | syl 17 |
. . . . . . 7
⊢ (𝜑 → ((0..^𝑀) × {𝐾}):(0..^𝑀)⟶{𝐾}) |
| 42 | 1 | a1i 11 |
. . . . . . . 8
⊢ (𝜑 → 𝐴 = ((0..^𝑀) × {𝐾})) |
| 43 | 42 | feq1d 6695 |
. . . . . . 7
⊢ (𝜑 → (𝐴:(0..^𝑀)⟶{𝐾} ↔ ((0..^𝑀) × {𝐾}):(0..^𝑀)⟶{𝐾})) |
| 44 | 41, 43 | mpbird 257 |
. . . . . 6
⊢ (𝜑 → 𝐴:(0..^𝑀)⟶{𝐾}) |
| 45 | | fvconst 7159 |
. . . . . 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 2835 |
. . . . . . . . 9
⊢ (𝜑 → (♯‘𝐴) ∈
ℕ0) |
| 52 | 48, 51 | syl 17 |
. . . . . . . 8
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (♯‘𝐴)
∈ ℕ0) |
| 53 | 52 | nn0zd 12619 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (♯‘𝐴)
∈ ℤ) |
| 54 | 32, 25 | eqeltrd 2835 |
. . . . . . . . 9
⊢ (𝜑 → (♯‘𝐵) ∈
ℕ0) |
| 55 | 48, 54 | syl 17 |
. . . . . . . 8
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (♯‘𝐵)
∈ ℕ0) |
| 56 | 55 | nn0zd 12619 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (♯‘𝐵)
∈ ℤ) |
| 57 | | fzocatel 13750 |
. . . . . . 7
⊢ (((𝑖 ∈
(0..^((♯‘𝐴) +
(♯‘𝐵))) ∧
¬ 𝑖 ∈
(0..^(♯‘𝐴)))
∧ ((♯‘𝐴)
∈ ℤ ∧ (♯‘𝐵) ∈ ℤ)) → (𝑖 − (♯‘𝐴)) ∈
(0..^(♯‘𝐵))) |
| 58 | 49, 50, 53, 56, 57 | syl22anc 838 |
. . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (𝑖 −
(♯‘𝐴)) ∈
(0..^(♯‘𝐵))) |
| 59 | 32 | oveq2d 7426 |
. . . . . . 7
⊢ (𝜑 → (0..^(♯‘𝐵)) = (0..^𝑁)) |
| 60 | 48, 59 | syl 17 |
. . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (0..^(♯‘𝐵)) = (0..^𝑁)) |
| 61 | 58, 60 | eleqtrd 2837 |
. . . . 5
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (𝑖 −
(♯‘𝐴)) ∈
(0..^𝑁)) |
| 62 | | fconstg 6770 |
. . . . . . . 8
⊢ (𝐾 ∈ 𝑆 → ((0..^𝑁) × {𝐾}):(0..^𝑁)⟶{𝐾}) |
| 63 | 11, 62 | syl 17 |
. . . . . . 7
⊢ (𝜑 → ((0..^𝑁) × {𝐾}):(0..^𝑁)⟶{𝐾}) |
| 64 | 19 | a1i 11 |
. . . . . . . 8
⊢ (𝜑 → 𝐵 = ((0..^𝑁) × {𝐾})) |
| 65 | 64 | feq1d 6695 |
. . . . . . 7
⊢ (𝜑 → (𝐵:(0..^𝑁)⟶{𝐾} ↔ ((0..^𝑁) × {𝐾}):(0..^𝑁)⟶{𝐾})) |
| 66 | 63, 65 | mpbird 257 |
. . . . . 6
⊢ (𝜑 → 𝐵:(0..^𝑁)⟶{𝐾}) |
| 67 | | fvconst 7159 |
. . . . . 6
⊢ ((𝐵:(0..^𝑁)⟶{𝐾} ∧ (𝑖 − (♯‘𝐴)) ∈ (0..^𝑁)) → (𝐵‘(𝑖 − (♯‘𝐴))) = 𝐾) |
| 68 | 66, 67 | sylan 580 |
. . . . 5
⊢ ((𝜑 ∧ (𝑖 − (♯‘𝐴)) ∈ (0..^𝑁)) → (𝐵‘(𝑖 − (♯‘𝐴))) = 𝐾) |
| 69 | 48, 61, 68 | syl2anc 584 |
. . . 4
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (𝐵‘(𝑖 − (♯‘𝐴))) = 𝐾) |
| 70 | 47, 69 | ifeqda 4542 |
. . 3
⊢ ((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) → if(𝑖 ∈
(0..^(♯‘𝐴)),
(𝐴‘𝑖), (𝐵‘(𝑖 − (♯‘𝐴)))) = 𝐾) |
| 71 | 34, 70 | mpteq12dva 5211 |
. 2
⊢ (𝜑 → (𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑖 ∈
(0..^(♯‘𝐴)),
(𝐴‘𝑖), (𝐵‘(𝑖 − (♯‘𝐴))))) = (𝑖 ∈ (0..^(𝑀 + 𝑁)) ↦ 𝐾)) |
| 72 | | ovex 7443 |
. . . . 5
⊢
(0..^𝑀) ∈
V |
| 73 | | snex 5411 |
. . . . 5
⊢ {𝐾} ∈ V |
| 74 | 72, 73 | xpex 7752 |
. . . 4
⊢
((0..^𝑀) ×
{𝐾}) ∈
V |
| 75 | 1, 74 | eqeltri 2831 |
. . 3
⊢ 𝐴 ∈ V |
| 76 | | ovex 7443 |
. . . . 5
⊢
(0..^𝑁) ∈
V |
| 77 | 76, 73 | xpex 7752 |
. . . 4
⊢
((0..^𝑁) ×
{𝐾}) ∈
V |
| 78 | 19, 77 | eqeltri 2831 |
. . 3
⊢ 𝐵 ∈ V |
| 79 | | ccatfval 14596 |
. . 3
⊢ ((𝐴 ∈ V ∧ 𝐵 ∈ V) → (𝐴 ++ 𝐵) = (𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑖 ∈
(0..^(♯‘𝐴)),
(𝐴‘𝑖), (𝐵‘(𝑖 − (♯‘𝐴)))))) |
| 80 | 75, 78, 79 | mp2an 692 |
. 2
⊢ (𝐴 ++ 𝐵) = (𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑖 ∈
(0..^(♯‘𝐴)),
(𝐴‘𝑖), (𝐵‘(𝑖 − (♯‘𝐴))))) |
| 81 | | ccatmulgnn0dir.c |
. . 3
⊢ 𝐶 = ((0..^(𝑀 + 𝑁)) × {𝐾}) |
| 82 | | fconstmpt 5721 |
. . 3
⊢
((0..^(𝑀 + 𝑁)) × {𝐾}) = (𝑖 ∈ (0..^(𝑀 + 𝑁)) ↦ 𝐾) |
| 83 | 81, 82 | eqtri 2759 |
. 2
⊢ 𝐶 = (𝑖 ∈ (0..^(𝑀 + 𝑁)) ↦ 𝐾) |
| 84 | 71, 80, 83 | 3eqtr4g 2796 |
1
⊢ (𝜑 → (𝐴 ++ 𝐵) = 𝐶) |