Step | Hyp | Ref
| Expression |
1 | | ccatmulgnn0dir.a |
. . . . . . . . 9
⊢ 𝐴 = ((0..^𝑀) × {𝐾}) |
2 | 1 | fveq2i 6106 |
. . . . . . . 8
⊢
(#‘𝐴) =
(#‘((0..^𝑀) ×
{𝐾})) |
3 | | fzofi 12635 |
. . . . . . . . 9
⊢
(0..^𝑀) ∈
Fin |
4 | | snfi 7923 |
. . . . . . . . 9
⊢ {𝐾} ∈ Fin |
5 | | hashxp 13081 |
. . . . . . . . 9
⊢
(((0..^𝑀) ∈ Fin
∧ {𝐾} ∈ Fin)
→ (#‘((0..^𝑀)
× {𝐾})) =
((#‘(0..^𝑀)) ·
(#‘{𝐾}))) |
6 | 3, 4, 5 | mp2an 704 |
. . . . . . . 8
⊢
(#‘((0..^𝑀)
× {𝐾})) =
((#‘(0..^𝑀)) ·
(#‘{𝐾})) |
7 | 2, 6 | eqtri 2632 |
. . . . . . 7
⊢
(#‘𝐴) =
((#‘(0..^𝑀)) ·
(#‘{𝐾})) |
8 | | ccatmulgnn0dir.m |
. . . . . . . . 9
⊢ (𝜑 → 𝑀 ∈
ℕ0) |
9 | | hashfzo0 13077 |
. . . . . . . . 9
⊢ (𝑀 ∈ ℕ0
→ (#‘(0..^𝑀)) =
𝑀) |
10 | 8, 9 | syl 17 |
. . . . . . . 8
⊢ (𝜑 → (#‘(0..^𝑀)) = 𝑀) |
11 | | ccatmulgnn0dir.k |
. . . . . . . . 9
⊢ (𝜑 → 𝐾 ∈ 𝑆) |
12 | | hashsng 13020 |
. . . . . . . . 9
⊢ (𝐾 ∈ 𝑆 → (#‘{𝐾}) = 1) |
13 | 11, 12 | syl 17 |
. . . . . . . 8
⊢ (𝜑 → (#‘{𝐾}) = 1) |
14 | 10, 13 | oveq12d 6567 |
. . . . . . 7
⊢ (𝜑 → ((#‘(0..^𝑀)) · (#‘{𝐾})) = (𝑀 · 1)) |
15 | 7, 14 | syl5eq 2656 |
. . . . . 6
⊢ (𝜑 → (#‘𝐴) = (𝑀 · 1)) |
16 | 8 | nn0cnd 11230 |
. . . . . . 7
⊢ (𝜑 → 𝑀 ∈ ℂ) |
17 | 16 | mulid1d 9936 |
. . . . . 6
⊢ (𝜑 → (𝑀 · 1) = 𝑀) |
18 | 15, 17 | eqtrd 2644 |
. . . . 5
⊢ (𝜑 → (#‘𝐴) = 𝑀) |
19 | | ccatmulgnn0dir.b |
. . . . . . . . 9
⊢ 𝐵 = ((0..^𝑁) × {𝐾}) |
20 | 19 | fveq2i 6106 |
. . . . . . . 8
⊢
(#‘𝐵) =
(#‘((0..^𝑁) ×
{𝐾})) |
21 | | fzofi 12635 |
. . . . . . . . 9
⊢
(0..^𝑁) ∈
Fin |
22 | | hashxp 13081 |
. . . . . . . . 9
⊢
(((0..^𝑁) ∈ Fin
∧ {𝐾} ∈ Fin)
→ (#‘((0..^𝑁)
× {𝐾})) =
((#‘(0..^𝑁)) ·
(#‘{𝐾}))) |
23 | 21, 4, 22 | mp2an 704 |
. . . . . . . 8
⊢
(#‘((0..^𝑁)
× {𝐾})) =
((#‘(0..^𝑁)) ·
(#‘{𝐾})) |
24 | 20, 23 | eqtri 2632 |
. . . . . . 7
⊢
(#‘𝐵) =
((#‘(0..^𝑁)) ·
(#‘{𝐾})) |
25 | | ccatmulgnn0dir.n |
. . . . . . . . 9
⊢ (𝜑 → 𝑁 ∈
ℕ0) |
26 | | hashfzo0 13077 |
. . . . . . . . 9
⊢ (𝑁 ∈ ℕ0
→ (#‘(0..^𝑁)) =
𝑁) |
27 | 25, 26 | syl 17 |
. . . . . . . 8
⊢ (𝜑 → (#‘(0..^𝑁)) = 𝑁) |
28 | 27, 13 | oveq12d 6567 |
. . . . . . 7
⊢ (𝜑 → ((#‘(0..^𝑁)) · (#‘{𝐾})) = (𝑁 · 1)) |
29 | 24, 28 | syl5eq 2656 |
. . . . . 6
⊢ (𝜑 → (#‘𝐵) = (𝑁 · 1)) |
30 | 25 | nn0cnd 11230 |
. . . . . . 7
⊢ (𝜑 → 𝑁 ∈ ℂ) |
31 | 30 | mulid1d 9936 |
. . . . . 6
⊢ (𝜑 → (𝑁 · 1) = 𝑁) |
32 | 29, 31 | eqtrd 2644 |
. . . . 5
⊢ (𝜑 → (#‘𝐵) = 𝑁) |
33 | 18, 32 | oveq12d 6567 |
. . . 4
⊢ (𝜑 → ((#‘𝐴) + (#‘𝐵)) = (𝑀 + 𝑁)) |
34 | 33 | oveq2d 6565 |
. . 3
⊢ (𝜑 → (0..^((#‘𝐴) + (#‘𝐵))) = (0..^(𝑀 + 𝑁))) |
35 | | simpll 786 |
. . . . 5
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ 𝑖 ∈ (0..^(#‘𝐴))) → 𝜑) |
36 | | simpr 476 |
. . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ 𝑖 ∈ (0..^(#‘𝐴))) → 𝑖 ∈ (0..^(#‘𝐴))) |
37 | 18 | oveq2d 6565 |
. . . . . . 7
⊢ (𝜑 → (0..^(#‘𝐴)) = (0..^𝑀)) |
38 | 35, 37 | syl 17 |
. . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ 𝑖 ∈ (0..^(#‘𝐴))) → (0..^(#‘𝐴)) = (0..^𝑀)) |
39 | 36, 38 | eleqtrd 2690 |
. . . . 5
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ 𝑖 ∈ (0..^(#‘𝐴))) → 𝑖 ∈ (0..^𝑀)) |
40 | | fconstg 6005 |
. . . . . . . 8
⊢ (𝐾 ∈ 𝑆 → ((0..^𝑀) × {𝐾}):(0..^𝑀)⟶{𝐾}) |
41 | 11, 40 | syl 17 |
. . . . . . 7
⊢ (𝜑 → ((0..^𝑀) × {𝐾}):(0..^𝑀)⟶{𝐾}) |
42 | 1 | a1i 11 |
. . . . . . . 8
⊢ (𝜑 → 𝐴 = ((0..^𝑀) × {𝐾})) |
43 | 42 | feq1d 5943 |
. . . . . . 7
⊢ (𝜑 → (𝐴:(0..^𝑀)⟶{𝐾} ↔ ((0..^𝑀) × {𝐾}):(0..^𝑀)⟶{𝐾})) |
44 | 41, 43 | mpbird 246 |
. . . . . 6
⊢ (𝜑 → 𝐴:(0..^𝑀)⟶{𝐾}) |
45 | | fvconst 6336 |
. . . . . 6
⊢ ((𝐴:(0..^𝑀)⟶{𝐾} ∧ 𝑖 ∈ (0..^𝑀)) → (𝐴‘𝑖) = 𝐾) |
46 | 44, 45 | sylan 487 |
. . . . 5
⊢ ((𝜑 ∧ 𝑖 ∈ (0..^𝑀)) → (𝐴‘𝑖) = 𝐾) |
47 | 35, 39, 46 | syl2anc 691 |
. . . 4
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ 𝑖 ∈ (0..^(#‘𝐴))) → (𝐴‘𝑖) = 𝐾) |
48 | | simpll 786 |
. . . . 5
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ ¬ 𝑖 ∈ (0..^(#‘𝐴))) → 𝜑) |
49 | | simplr 788 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ ¬ 𝑖 ∈ (0..^(#‘𝐴))) → 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) |
50 | | simpr 476 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ ¬ 𝑖 ∈ (0..^(#‘𝐴))) → ¬ 𝑖 ∈ (0..^(#‘𝐴))) |
51 | 18, 8 | eqeltrd 2688 |
. . . . . . . . 9
⊢ (𝜑 → (#‘𝐴) ∈
ℕ0) |
52 | 48, 51 | syl 17 |
. . . . . . . 8
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ ¬ 𝑖 ∈ (0..^(#‘𝐴))) → (#‘𝐴) ∈
ℕ0) |
53 | 52 | nn0zd 11356 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ ¬ 𝑖 ∈ (0..^(#‘𝐴))) → (#‘𝐴) ∈ ℤ) |
54 | 32, 25 | eqeltrd 2688 |
. . . . . . . . 9
⊢ (𝜑 → (#‘𝐵) ∈
ℕ0) |
55 | 48, 54 | syl 17 |
. . . . . . . 8
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ ¬ 𝑖 ∈ (0..^(#‘𝐴))) → (#‘𝐵) ∈
ℕ0) |
56 | 55 | nn0zd 11356 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ ¬ 𝑖 ∈ (0..^(#‘𝐴))) → (#‘𝐵) ∈ ℤ) |
57 | | fzocatel 12399 |
. . . . . . 7
⊢ (((𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ∧ ¬ 𝑖 ∈ (0..^(#‘𝐴))) ∧ ((#‘𝐴) ∈ ℤ ∧ (#‘𝐵) ∈ ℤ)) → (𝑖 − (#‘𝐴)) ∈ (0..^(#‘𝐵))) |
58 | 49, 50, 53, 56, 57 | syl22anc 1319 |
. . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ ¬ 𝑖 ∈ (0..^(#‘𝐴))) → (𝑖 − (#‘𝐴)) ∈ (0..^(#‘𝐵))) |
59 | 32 | oveq2d 6565 |
. . . . . . 7
⊢ (𝜑 → (0..^(#‘𝐵)) = (0..^𝑁)) |
60 | 48, 59 | syl 17 |
. . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ ¬ 𝑖 ∈ (0..^(#‘𝐴))) → (0..^(#‘𝐵)) = (0..^𝑁)) |
61 | 58, 60 | eleqtrd 2690 |
. . . . 5
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ ¬ 𝑖 ∈ (0..^(#‘𝐴))) → (𝑖 − (#‘𝐴)) ∈ (0..^𝑁)) |
62 | | fconstg 6005 |
. . . . . . . 8
⊢ (𝐾 ∈ 𝑆 → ((0..^𝑁) × {𝐾}):(0..^𝑁)⟶{𝐾}) |
63 | 11, 62 | syl 17 |
. . . . . . 7
⊢ (𝜑 → ((0..^𝑁) × {𝐾}):(0..^𝑁)⟶{𝐾}) |
64 | 19 | a1i 11 |
. . . . . . . 8
⊢ (𝜑 → 𝐵 = ((0..^𝑁) × {𝐾})) |
65 | 64 | feq1d 5943 |
. . . . . . 7
⊢ (𝜑 → (𝐵:(0..^𝑁)⟶{𝐾} ↔ ((0..^𝑁) × {𝐾}):(0..^𝑁)⟶{𝐾})) |
66 | 63, 65 | mpbird 246 |
. . . . . 6
⊢ (𝜑 → 𝐵:(0..^𝑁)⟶{𝐾}) |
67 | | fvconst 6336 |
. . . . . 6
⊢ ((𝐵:(0..^𝑁)⟶{𝐾} ∧ (𝑖 − (#‘𝐴)) ∈ (0..^𝑁)) → (𝐵‘(𝑖 − (#‘𝐴))) = 𝐾) |
68 | 66, 67 | sylan 487 |
. . . . 5
⊢ ((𝜑 ∧ (𝑖 − (#‘𝐴)) ∈ (0..^𝑁)) → (𝐵‘(𝑖 − (#‘𝐴))) = 𝐾) |
69 | 48, 61, 68 | syl2anc 691 |
. . . 4
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) ∧ ¬ 𝑖 ∈ (0..^(#‘𝐴))) → (𝐵‘(𝑖 − (#‘𝐴))) = 𝐾) |
70 | 47, 69 | ifeqda 4071 |
. . 3
⊢ ((𝜑 ∧ 𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵)))) → if(𝑖 ∈ (0..^(#‘𝐴)), (𝐴‘𝑖), (𝐵‘(𝑖 − (#‘𝐴)))) = 𝐾) |
71 | 34, 70 | mpteq12dva 4662 |
. 2
⊢ (𝜑 → (𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑖 ∈ (0..^(#‘𝐴)), (𝐴‘𝑖), (𝐵‘(𝑖 − (#‘𝐴))))) = (𝑖 ∈ (0..^(𝑀 + 𝑁)) ↦ 𝐾)) |
72 | | ovex 6577 |
. . . . 5
⊢
(0..^𝑀) ∈
V |
73 | | snex 4835 |
. . . . 5
⊢ {𝐾} ∈ V |
74 | 72, 73 | xpex 6860 |
. . . 4
⊢
((0..^𝑀) ×
{𝐾}) ∈
V |
75 | 1, 74 | eqeltri 2684 |
. . 3
⊢ 𝐴 ∈ V |
76 | | ovex 6577 |
. . . . 5
⊢
(0..^𝑁) ∈
V |
77 | 76, 73 | xpex 6860 |
. . . 4
⊢
((0..^𝑁) ×
{𝐾}) ∈
V |
78 | 19, 77 | eqeltri 2684 |
. . 3
⊢ 𝐵 ∈ V |
79 | | ccatfval 13211 |
. . 3
⊢ ((𝐴 ∈ V ∧ 𝐵 ∈ V) → (𝐴 ++ 𝐵) = (𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑖 ∈ (0..^(#‘𝐴)), (𝐴‘𝑖), (𝐵‘(𝑖 − (#‘𝐴)))))) |
80 | 75, 78, 79 | mp2an 704 |
. 2
⊢ (𝐴 ++ 𝐵) = (𝑖 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑖 ∈ (0..^(#‘𝐴)), (𝐴‘𝑖), (𝐵‘(𝑖 − (#‘𝐴))))) |
81 | | ccatmulgnn0dir.c |
. . 3
⊢ 𝐶 = ((0..^(𝑀 + 𝑁)) × {𝐾}) |
82 | | fconstmpt 5085 |
. . 3
⊢
((0..^(𝑀 + 𝑁)) × {𝐾}) = (𝑖 ∈ (0..^(𝑀 + 𝑁)) ↦ 𝐾) |
83 | 81, 82 | eqtri 2632 |
. 2
⊢ 𝐶 = (𝑖 ∈ (0..^(𝑀 + 𝑁)) ↦ 𝐾) |
84 | 71, 80, 83 | 3eqtr4g 2669 |
1
⊢ (𝜑 → (𝐴 ++ 𝐵) = 𝐶) |