Step | Hyp | Ref
| Expression |
1 | | ccatmulgnn0dir.a |
. . . . . . . . 9
⊢ 𝐴 = ((0..^𝑀) × {𝐾}) |
2 | 1 | fveq2i 6777 |
. . . . . . . 8
⊢
(♯‘𝐴) =
(♯‘((0..^𝑀)
× {𝐾})) |
3 | | fzofi 13694 |
. . . . . . . . 9
⊢
(0..^𝑀) ∈
Fin |
4 | | snfi 8834 |
. . . . . . . . 9
⊢ {𝐾} ∈ Fin |
5 | | hashxp 14149 |
. . . . . . . . 9
⊢
(((0..^𝑀) ∈ Fin
∧ {𝐾} ∈ Fin)
→ (♯‘((0..^𝑀) × {𝐾})) = ((♯‘(0..^𝑀)) · (♯‘{𝐾}))) |
6 | 3, 4, 5 | mp2an 689 |
. . . . . . . 8
⊢
(♯‘((0..^𝑀) × {𝐾})) = ((♯‘(0..^𝑀)) · (♯‘{𝐾})) |
7 | 2, 6 | eqtri 2766 |
. . . . . . 7
⊢
(♯‘𝐴) =
((♯‘(0..^𝑀))
· (♯‘{𝐾})) |
8 | | ccatmulgnn0dir.m |
. . . . . . . . 9
⊢ (𝜑 → 𝑀 ∈
ℕ0) |
9 | | hashfzo0 14145 |
. . . . . . . . 9
⊢ (𝑀 ∈ ℕ0
→ (♯‘(0..^𝑀)) = 𝑀) |
10 | 8, 9 | syl 17 |
. . . . . . . 8
⊢ (𝜑 → (♯‘(0..^𝑀)) = 𝑀) |
11 | | ccatmulgnn0dir.k |
. . . . . . . . 9
⊢ (𝜑 → 𝐾 ∈ 𝑆) |
12 | | hashsng 14084 |
. . . . . . . . 9
⊢ (𝐾 ∈ 𝑆 → (♯‘{𝐾}) = 1) |
13 | 11, 12 | syl 17 |
. . . . . . . 8
⊢ (𝜑 → (♯‘{𝐾}) = 1) |
14 | 10, 13 | oveq12d 7293 |
. . . . . . 7
⊢ (𝜑 → ((♯‘(0..^𝑀)) ·
(♯‘{𝐾})) =
(𝑀 ·
1)) |
15 | 7, 14 | eqtrid 2790 |
. . . . . 6
⊢ (𝜑 → (♯‘𝐴) = (𝑀 · 1)) |
16 | 8 | nn0cnd 12295 |
. . . . . . 7
⊢ (𝜑 → 𝑀 ∈ ℂ) |
17 | 16 | mulid1d 10992 |
. . . . . 6
⊢ (𝜑 → (𝑀 · 1) = 𝑀) |
18 | 15, 17 | eqtrd 2778 |
. . . . 5
⊢ (𝜑 → (♯‘𝐴) = 𝑀) |
19 | | ccatmulgnn0dir.b |
. . . . . . . . 9
⊢ 𝐵 = ((0..^𝑁) × {𝐾}) |
20 | 19 | fveq2i 6777 |
. . . . . . . 8
⊢
(♯‘𝐵) =
(♯‘((0..^𝑁)
× {𝐾})) |
21 | | fzofi 13694 |
. . . . . . . . 9
⊢
(0..^𝑁) ∈
Fin |
22 | | hashxp 14149 |
. . . . . . . . 9
⊢
(((0..^𝑁) ∈ Fin
∧ {𝐾} ∈ Fin)
→ (♯‘((0..^𝑁) × {𝐾})) = ((♯‘(0..^𝑁)) · (♯‘{𝐾}))) |
23 | 21, 4, 22 | mp2an 689 |
. . . . . . . 8
⊢
(♯‘((0..^𝑁) × {𝐾})) = ((♯‘(0..^𝑁)) · (♯‘{𝐾})) |
24 | 20, 23 | eqtri 2766 |
. . . . . . 7
⊢
(♯‘𝐵) =
((♯‘(0..^𝑁))
· (♯‘{𝐾})) |
25 | | ccatmulgnn0dir.n |
. . . . . . . . 9
⊢ (𝜑 → 𝑁 ∈
ℕ0) |
26 | | hashfzo0 14145 |
. . . . . . . . 9
⊢ (𝑁 ∈ ℕ0
→ (♯‘(0..^𝑁)) = 𝑁) |
27 | 25, 26 | syl 17 |
. . . . . . . 8
⊢ (𝜑 → (♯‘(0..^𝑁)) = 𝑁) |
28 | 27, 13 | oveq12d 7293 |
. . . . . . 7
⊢ (𝜑 → ((♯‘(0..^𝑁)) ·
(♯‘{𝐾})) =
(𝑁 ·
1)) |
29 | 24, 28 | eqtrid 2790 |
. . . . . 6
⊢ (𝜑 → (♯‘𝐵) = (𝑁 · 1)) |
30 | 25 | nn0cnd 12295 |
. . . . . . 7
⊢ (𝜑 → 𝑁 ∈ ℂ) |
31 | 30 | mulid1d 10992 |
. . . . . 6
⊢ (𝜑 → (𝑁 · 1) = 𝑁) |
32 | 29, 31 | eqtrd 2778 |
. . . . 5
⊢ (𝜑 → (♯‘𝐵) = 𝑁) |
33 | 18, 32 | oveq12d 7293 |
. . . 4
⊢ (𝜑 → ((♯‘𝐴) + (♯‘𝐵)) = (𝑀 + 𝑁)) |
34 | 33 | oveq2d 7291 |
. . 3
⊢ (𝜑 → (0..^((♯‘𝐴) + (♯‘𝐵))) = (0..^(𝑀 + 𝑁))) |
35 | | simpll 764 |
. . . . 5
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ 𝑖 ∈ (0..^(♯‘𝐴))) → 𝜑) |
36 | | simpr 485 |
. . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ 𝑖 ∈ (0..^(♯‘𝐴))) → 𝑖 ∈ (0..^(♯‘𝐴))) |
37 | 18 | oveq2d 7291 |
. . . . . . 7
⊢ (𝜑 → (0..^(♯‘𝐴)) = (0..^𝑀)) |
38 | 35, 37 | syl 17 |
. . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ 𝑖 ∈ (0..^(♯‘𝐴))) → (0..^(♯‘𝐴)) = (0..^𝑀)) |
39 | 36, 38 | eleqtrd 2841 |
. . . . 5
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ 𝑖 ∈ (0..^(♯‘𝐴))) → 𝑖 ∈ (0..^𝑀)) |
40 | | fconstg 6661 |
. . . . . . . 8
⊢ (𝐾 ∈ 𝑆 → ((0..^𝑀) × {𝐾}):(0..^𝑀)⟶{𝐾}) |
41 | 11, 40 | syl 17 |
. . . . . . 7
⊢ (𝜑 → ((0..^𝑀) × {𝐾}):(0..^𝑀)⟶{𝐾}) |
42 | 1 | a1i 11 |
. . . . . . . 8
⊢ (𝜑 → 𝐴 = ((0..^𝑀) × {𝐾})) |
43 | 42 | feq1d 6585 |
. . . . . . 7
⊢ (𝜑 → (𝐴:(0..^𝑀)⟶{𝐾} ↔ ((0..^𝑀) × {𝐾}):(0..^𝑀)⟶{𝐾})) |
44 | 41, 43 | mpbird 256 |
. . . . . 6
⊢ (𝜑 → 𝐴:(0..^𝑀)⟶{𝐾}) |
45 | | fvconst 7036 |
. . . . . 6
⊢ ((𝐴:(0..^𝑀)⟶{𝐾} ∧ 𝑖 ∈ (0..^𝑀)) → (𝐴‘𝑖) = 𝐾) |
46 | 44, 45 | sylan 580 |
. . . . 5
⊢ ((𝜑 ∧ 𝑖 ∈ (0..^𝑀)) → (𝐴‘𝑖) = 𝐾) |
47 | 35, 39, 46 | syl2anc 584 |
. . . 4
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ 𝑖 ∈ (0..^(♯‘𝐴))) → (𝐴‘𝑖) = 𝐾) |
48 | | simpll 764 |
. . . . 5
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ 𝜑) |
49 | | simplr 766 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ 𝑖 ∈
(0..^((♯‘𝐴) +
(♯‘𝐵)))) |
50 | | simpr 485 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ ¬ 𝑖 ∈
(0..^(♯‘𝐴))) |
51 | 18, 8 | eqeltrd 2839 |
. . . . . . . . 9
⊢ (𝜑 → (♯‘𝐴) ∈
ℕ0) |
52 | 48, 51 | syl 17 |
. . . . . . . 8
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (♯‘𝐴)
∈ ℕ0) |
53 | 52 | nn0zd 12424 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (♯‘𝐴)
∈ ℤ) |
54 | 32, 25 | eqeltrd 2839 |
. . . . . . . . 9
⊢ (𝜑 → (♯‘𝐵) ∈
ℕ0) |
55 | 48, 54 | syl 17 |
. . . . . . . 8
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (♯‘𝐵)
∈ ℕ0) |
56 | 55 | nn0zd 12424 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (♯‘𝐵)
∈ ℤ) |
57 | | fzocatel 13451 |
. . . . . . 7
⊢ (((𝑖 ∈
(0..^((♯‘𝐴) +
(♯‘𝐵))) ∧
¬ 𝑖 ∈
(0..^(♯‘𝐴)))
∧ ((♯‘𝐴)
∈ ℤ ∧ (♯‘𝐵) ∈ ℤ)) → (𝑖 − (♯‘𝐴)) ∈
(0..^(♯‘𝐵))) |
58 | 49, 50, 53, 56, 57 | syl22anc 836 |
. . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (𝑖 −
(♯‘𝐴)) ∈
(0..^(♯‘𝐵))) |
59 | 32 | oveq2d 7291 |
. . . . . . 7
⊢ (𝜑 → (0..^(♯‘𝐵)) = (0..^𝑁)) |
60 | 48, 59 | syl 17 |
. . . . . 6
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (0..^(♯‘𝐵)) = (0..^𝑁)) |
61 | 58, 60 | eleqtrd 2841 |
. . . . 5
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (𝑖 −
(♯‘𝐴)) ∈
(0..^𝑁)) |
62 | | fconstg 6661 |
. . . . . . . 8
⊢ (𝐾 ∈ 𝑆 → ((0..^𝑁) × {𝐾}):(0..^𝑁)⟶{𝐾}) |
63 | 11, 62 | syl 17 |
. . . . . . 7
⊢ (𝜑 → ((0..^𝑁) × {𝐾}):(0..^𝑁)⟶{𝐾}) |
64 | 19 | a1i 11 |
. . . . . . . 8
⊢ (𝜑 → 𝐵 = ((0..^𝑁) × {𝐾})) |
65 | 64 | feq1d 6585 |
. . . . . . 7
⊢ (𝜑 → (𝐵:(0..^𝑁)⟶{𝐾} ↔ ((0..^𝑁) × {𝐾}):(0..^𝑁)⟶{𝐾})) |
66 | 63, 65 | mpbird 256 |
. . . . . 6
⊢ (𝜑 → 𝐵:(0..^𝑁)⟶{𝐾}) |
67 | | fvconst 7036 |
. . . . . 6
⊢ ((𝐵:(0..^𝑁)⟶{𝐾} ∧ (𝑖 − (♯‘𝐴)) ∈ (0..^𝑁)) → (𝐵‘(𝑖 − (♯‘𝐴))) = 𝐾) |
68 | 66, 67 | sylan 580 |
. . . . 5
⊢ ((𝜑 ∧ (𝑖 − (♯‘𝐴)) ∈ (0..^𝑁)) → (𝐵‘(𝑖 − (♯‘𝐴))) = 𝐾) |
69 | 48, 61, 68 | syl2anc 584 |
. . . 4
⊢ (((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) ∧ ¬ 𝑖 ∈
(0..^(♯‘𝐴)))
→ (𝐵‘(𝑖 − (♯‘𝐴))) = 𝐾) |
70 | 47, 69 | ifeqda 4495 |
. . 3
⊢ ((𝜑 ∧ 𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))) → if(𝑖 ∈
(0..^(♯‘𝐴)),
(𝐴‘𝑖), (𝐵‘(𝑖 − (♯‘𝐴)))) = 𝐾) |
71 | 34, 70 | mpteq12dva 5163 |
. 2
⊢ (𝜑 → (𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑖 ∈
(0..^(♯‘𝐴)),
(𝐴‘𝑖), (𝐵‘(𝑖 − (♯‘𝐴))))) = (𝑖 ∈ (0..^(𝑀 + 𝑁)) ↦ 𝐾)) |
72 | | ovex 7308 |
. . . . 5
⊢
(0..^𝑀) ∈
V |
73 | | snex 5354 |
. . . . 5
⊢ {𝐾} ∈ V |
74 | 72, 73 | xpex 7603 |
. . . 4
⊢
((0..^𝑀) ×
{𝐾}) ∈
V |
75 | 1, 74 | eqeltri 2835 |
. . 3
⊢ 𝐴 ∈ V |
76 | | ovex 7308 |
. . . . 5
⊢
(0..^𝑁) ∈
V |
77 | 76, 73 | xpex 7603 |
. . . 4
⊢
((0..^𝑁) ×
{𝐾}) ∈
V |
78 | 19, 77 | eqeltri 2835 |
. . 3
⊢ 𝐵 ∈ V |
79 | | ccatfval 14276 |
. . 3
⊢ ((𝐴 ∈ V ∧ 𝐵 ∈ V) → (𝐴 ++ 𝐵) = (𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑖 ∈
(0..^(♯‘𝐴)),
(𝐴‘𝑖), (𝐵‘(𝑖 − (♯‘𝐴)))))) |
80 | 75, 78, 79 | mp2an 689 |
. 2
⊢ (𝐴 ++ 𝐵) = (𝑖 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑖 ∈
(0..^(♯‘𝐴)),
(𝐴‘𝑖), (𝐵‘(𝑖 − (♯‘𝐴))))) |
81 | | ccatmulgnn0dir.c |
. . 3
⊢ 𝐶 = ((0..^(𝑀 + 𝑁)) × {𝐾}) |
82 | | fconstmpt 5649 |
. . 3
⊢
((0..^(𝑀 + 𝑁)) × {𝐾}) = (𝑖 ∈ (0..^(𝑀 + 𝑁)) ↦ 𝐾) |
83 | 81, 82 | eqtri 2766 |
. 2
⊢ 𝐶 = (𝑖 ∈ (0..^(𝑀 + 𝑁)) ↦ 𝐾) |
84 | 71, 80, 83 | 3eqtr4g 2803 |
1
⊢ (𝜑 → (𝐴 ++ 𝐵) = 𝐶) |