Metamath Proof Explorer


Theorem frlmvscadiccat

Description: Scalar multiplication distributes over concatenation. (Contributed by SN, 6-Sep-2023)

Ref Expression
Hypotheses frlmfzoccat.w ⊢ W = K freeLMod 0 ..^ L
frlmfzoccat.x ⊢ X = K freeLMod 0 ..^ M
frlmfzoccat.y ⊢ Y = K freeLMod 0 ..^ N
frlmfzoccat.b ⊢ B = Base W
frlmfzoccat.c ⊢ C = Base X
frlmfzoccat.d ⊢ D = Base Y
frlmfzoccat.k ⊢ φ → K ∈ Z
frlmfzoccat.l ⊢ φ → M + N = L
frlmfzoccat.m ⊢ φ → M ∈ ℕ 0
frlmfzoccat.n ⊢ φ → N ∈ ℕ 0
frlmfzoccat.u ⊢ φ → U ∈ C
frlmfzoccat.v ⊢ φ → V ∈ D
frlmvscadiccat.o ⊢ O = ⋅ W
frlmvscadiccat.p ⊢ ∙ ˙ = ⋅ X
frlmvscadiccat.q ⊢ · ˙ = ⋅ Y
frlmvscadiccat.s ⊢ S = Base K
frlmvscadiccat.a ⊢ φ → A ∈ S
Assertion frlmvscadiccat ⊢ φ → A O U ++ V = A ∙ ˙ U ++ A · ˙ V

Proof

Step Hyp Ref Expression
1 frlmfzoccat.w ⊢ W = K freeLMod 0 ..^ L
2 frlmfzoccat.x ⊢ X = K freeLMod 0 ..^ M
3 frlmfzoccat.y ⊢ Y = K freeLMod 0 ..^ N
4 frlmfzoccat.b ⊢ B = Base W
5 frlmfzoccat.c ⊢ C = Base X
6 frlmfzoccat.d ⊢ D = Base Y
7 frlmfzoccat.k ⊢ φ → K ∈ Z
8 frlmfzoccat.l ⊢ φ → M + N = L
9 frlmfzoccat.m ⊢ φ → M ∈ ℕ 0
10 frlmfzoccat.n ⊢ φ → N ∈ ℕ 0
11 frlmfzoccat.u ⊢ φ → U ∈ C
12 frlmfzoccat.v ⊢ φ → V ∈ D
13 frlmvscadiccat.o ⊢ O = ⋅ W
14 frlmvscadiccat.p ⊢ ∙ ˙ = ⋅ X
15 frlmvscadiccat.q ⊢ · ˙ = ⋅ Y
16 frlmvscadiccat.s ⊢ S = Base K
17 frlmvscadiccat.a ⊢ φ → A ∈ S
18 fconstg ⊢ A ∈ S → 0 ..^ L × A : 0 ..^ L ⟶ A
19 17 18 syl ⊢ φ → 0 ..^ L × A : 0 ..^ L ⟶ A
20 19 ffnd ⊢ φ → 0 ..^ L × A Fn 0 ..^ L
21 fconstg ⊢ A ∈ S → 0 ..^ M × A : 0 ..^ M ⟶ A
22 iswrdi ⊢ 0 ..^ M × A : 0 ..^ M ⟶ A → 0 ..^ M × A ∈ Word A
23 17 21 22 3syl ⊢ φ → 0 ..^ M × A ∈ Word A
24 fconstg ⊢ A ∈ S → 0 ..^ N × A : 0 ..^ N ⟶ A
25 iswrdi ⊢ 0 ..^ N × A : 0 ..^ N ⟶ A → 0 ..^ N × A ∈ Word A
26 17 24 25 3syl ⊢ φ → 0 ..^ N × A ∈ Word A
27 ccatvalfn ⊢ 0 ..^ M × A ∈ Word A ∧ 0 ..^ N × A ∈ Word A → 0 ..^ M × A ++ 0 ..^ N × A Fn 0 ..^ 0 ..^ M × A + 0 ..^ N × A
28 23 26 27 syl2anc ⊢ φ → 0 ..^ M × A ++ 0 ..^ N × A Fn 0 ..^ 0 ..^ M × A + 0 ..^ N × A
29 fzofi ⊢ 0 ..^ M ∈ Fin
30 snfi ⊢ A ∈ Fin
31 hashxp ⊢ 0 ..^ M ∈ Fin ∧ A ∈ Fin → 0 ..^ M × A = 0 ..^ M ⁢ A
32 29 30 31 mp2an ⊢ 0 ..^ M × A = 0 ..^ M ⁢ A
33 hashsng ⊢ A ∈ S → A = 1
34 17 33 syl ⊢ φ → A = 1
35 34 oveq2d ⊢ φ → 0 ..^ M ⁢ A = 0 ..^ M ⋅ 1
36 hashcl ⊢ 0 ..^ M ∈ Fin → 0 ..^ M ∈ ℕ 0
37 29 36 mp1i ⊢ φ → 0 ..^ M ∈ ℕ 0
38 37 nn0cnd ⊢ φ → 0 ..^ M ∈ ℂ
39 38 mulridd ⊢ φ → 0 ..^ M ⋅ 1 = 0 ..^ M
40 hashfzo0 ⊢ M ∈ ℕ 0 → 0 ..^ M = M
41 9 40 syl ⊢ φ → 0 ..^ M = M
42 35 39 41 3eqtrd ⊢ φ → 0 ..^ M ⁢ A = M
43 32 42 eqtrid ⊢ φ → 0 ..^ M × A = M
44 fzofi ⊢ 0 ..^ N ∈ Fin
45 hashxp ⊢ 0 ..^ N ∈ Fin ∧ A ∈ Fin → 0 ..^ N × A = 0 ..^ N ⁢ A
46 44 30 45 mp2an ⊢ 0 ..^ N × A = 0 ..^ N ⁢ A
47 34 oveq2d ⊢ φ → 0 ..^ N ⁢ A = 0 ..^ N ⋅ 1
48 hashcl ⊢ 0 ..^ N ∈ Fin → 0 ..^ N ∈ ℕ 0
49 44 48 mp1i ⊢ φ → 0 ..^ N ∈ ℕ 0
50 49 nn0cnd ⊢ φ → 0 ..^ N ∈ ℂ
51 50 mulridd ⊢ φ → 0 ..^ N ⋅ 1 = 0 ..^ N
52 hashfzo0 ⊢ N ∈ ℕ 0 → 0 ..^ N = N
53 10 52 syl ⊢ φ → 0 ..^ N = N
54 47 51 53 3eqtrd ⊢ φ → 0 ..^ N ⁢ A = N
55 46 54 eqtrid ⊢ φ → 0 ..^ N × A = N
56 43 55 oveq12d ⊢ φ → 0 ..^ M × A + 0 ..^ N × A = M + N
57 56 8 eqtrd ⊢ φ → 0 ..^ M × A + 0 ..^ N × A = L
58 57 oveq2d ⊢ φ → 0 ..^ 0 ..^ M × A + 0 ..^ N × A = 0 ..^ L
59 58 fneq2d ⊢ φ → 0 ..^ M × A ++ 0 ..^ N × A Fn 0 ..^ 0 ..^ M × A + 0 ..^ N × A ↔ 0 ..^ M × A ++ 0 ..^ N × A Fn 0 ..^ L
60 28 59 mpbid ⊢ φ → 0 ..^ M × A ++ 0 ..^ N × A Fn 0 ..^ L
61 43 adantr ⊢ φ ∧ x ∈ 0 ..^ L → 0 ..^ M × A = M
62 61 breq2d ⊢ φ ∧ x ∈ 0 ..^ L → x < 0 ..^ M × A ↔ x < M
63 62 ifbid ⊢ φ ∧ x ∈ 0 ..^ L → if x < 0 ..^ M × A 0 ..^ M × A ⁡ x 0 ..^ N × A ⁡ x − 0 ..^ M × A = if x < M 0 ..^ M × A ⁡ x 0 ..^ N × A ⁡ x − 0 ..^ M × A
64 17 adantr ⊢ φ ∧ x ∈ 0 ..^ L → A ∈ S
65 elfzouz ⊢ x ∈ 0 ..^ L → x ∈ ℤ ≥ 0
66 65 ad2antlr ⊢ φ ∧ x ∈ 0 ..^ L ∧ x < M → x ∈ ℤ ≥ 0
67 9 ad2antrr ⊢ φ ∧ x ∈ 0 ..^ L ∧ x < M → M ∈ ℕ 0
68 67 nn0zd ⊢ φ ∧ x ∈ 0 ..^ L ∧ x < M → M ∈ ℤ
69 simpr ⊢ φ ∧ x ∈ 0 ..^ L ∧ x < M → x < M
70 elfzo2 ⊢ x ∈ 0 ..^ M ↔ x ∈ ℤ ≥ 0 ∧ M ∈ ℤ ∧ x < M
71 66 68 69 70 syl3anbrc ⊢ φ ∧ x ∈ 0 ..^ L ∧ x < M → x ∈ 0 ..^ M
72 fvconst2g ⊢ A ∈ S ∧ x ∈ 0 ..^ M → 0 ..^ M × A ⁡ x = A
73 64 71 72 syl2an2r ⊢ φ ∧ x ∈ 0 ..^ L ∧ x < M → 0 ..^ M × A ⁡ x = A
74 43 ad2antrr ⊢ φ ∧ x ∈ 0 ..^ L ∧ ¬ x < M → 0 ..^ M × A = M
75 74 oveq2d ⊢ φ ∧ x ∈ 0 ..^ L ∧ ¬ x < M → x − 0 ..^ M × A = x − M
76 9 ad2antrr ⊢ φ ∧ x ∈ 0 ..^ L ∧ ¬ x < M → M ∈ ℕ 0
77 elfzonn0 ⊢ x ∈ 0 ..^ L → x ∈ ℕ 0
78 77 ad2antlr ⊢ φ ∧ x ∈ 0 ..^ L ∧ ¬ x < M → x ∈ ℕ 0
79 9 adantr ⊢ φ ∧ x ∈ 0 ..^ L → M ∈ ℕ 0
80 79 nn0red ⊢ φ ∧ x ∈ 0 ..^ L → M ∈ ℝ
81 elfzoelz ⊢ x ∈ 0 ..^ L → x ∈ ℤ
82 81 adantl ⊢ φ ∧ x ∈ 0 ..^ L → x ∈ ℤ
83 82 zred ⊢ φ ∧ x ∈ 0 ..^ L → x ∈ ℝ
84 80 83 lenltd ⊢ φ ∧ x ∈ 0 ..^ L → M ≤ x ↔ ¬ x < M
85 84 biimpar ⊢ φ ∧ x ∈ 0 ..^ L ∧ ¬ x < M → M ≤ x
86 nn0sub2 ⊢ M ∈ ℕ 0 ∧ x ∈ ℕ 0 ∧ M ≤ x → x − M ∈ ℕ 0
87 76 78 85 86 syl3anc ⊢ φ ∧ x ∈ 0 ..^ L ∧ ¬ x < M → x − M ∈ ℕ 0
88 elnn0uz ⊢ x − M ∈ ℕ 0 ↔ x − M ∈ ℤ ≥ 0
89 87 88 sylib ⊢ φ ∧ x ∈ 0 ..^ L ∧ ¬ x < M → x − M ∈ ℤ ≥ 0
90 10 ad2antrr ⊢ φ ∧ x ∈ 0 ..^ L ∧ ¬ x < M → N ∈ ℕ 0
91 90 nn0zd ⊢ φ ∧ x ∈ 0 ..^ L ∧ ¬ x < M → N ∈ ℤ
92 elfzolt2 ⊢ x ∈ 0 ..^ L → x < L
93 92 adantl ⊢ φ ∧ x ∈ 0 ..^ L → x < L
94 80 recnd ⊢ φ ∧ x ∈ 0 ..^ L → M ∈ ℂ
95 83 recnd ⊢ φ ∧ x ∈ 0 ..^ L → x ∈ ℂ
96 94 95 pncan3d ⊢ φ ∧ x ∈ 0 ..^ L → M + x - M = x
97 8 adantr ⊢ φ ∧ x ∈ 0 ..^ L → M + N = L
98 93 96 97 3brtr4d ⊢ φ ∧ x ∈ 0 ..^ L → M + x - M < M + N
99 83 80 resubcld ⊢ φ ∧ x ∈ 0 ..^ L → x − M ∈ ℝ
100 10 adantr ⊢ φ ∧ x ∈ 0 ..^ L → N ∈ ℕ 0
101 100 nn0red ⊢ φ ∧ x ∈ 0 ..^ L → N ∈ ℝ
102 99 101 80 ltadd2d ⊢ φ ∧ x ∈ 0 ..^ L → x − M < N ↔ M + x - M < M + N
103 98 102 mpbird ⊢ φ ∧ x ∈ 0 ..^ L → x − M < N
104 103 adantr ⊢ φ ∧ x ∈ 0 ..^ L ∧ ¬ x < M → x − M < N
105 elfzo2 ⊢ x − M ∈ 0 ..^ N ↔ x − M ∈ ℤ ≥ 0 ∧ N ∈ ℤ ∧ x − M < N
106 89 91 104 105 syl3anbrc ⊢ φ ∧ x ∈ 0 ..^ L ∧ ¬ x < M → x − M ∈ 0 ..^ N
107 75 106 eqeltrd ⊢ φ ∧ x ∈ 0 ..^ L ∧ ¬ x < M → x − 0 ..^ M × A ∈ 0 ..^ N
108 fvconst2g ⊢ A ∈ S ∧ x − 0 ..^ M × A ∈ 0 ..^ N → 0 ..^ N × A ⁡ x − 0 ..^ M × A = A
109 64 107 108 syl2an2r ⊢ φ ∧ x ∈ 0 ..^ L ∧ ¬ x < M → 0 ..^ N × A ⁡ x − 0 ..^ M × A = A
110 73 109 ifeqda ⊢ φ ∧ x ∈ 0 ..^ L → if x < M 0 ..^ M × A ⁡ x 0 ..^ N × A ⁡ x − 0 ..^ M × A = A
111 63 110 eqtr2d ⊢ φ ∧ x ∈ 0 ..^ L → A = if x < 0 ..^ M × A 0 ..^ M × A ⁡ x 0 ..^ N × A ⁡ x − 0 ..^ M × A
112 fvconst2g ⊢ A ∈ S ∧ x ∈ 0 ..^ L → 0 ..^ L × A ⁡ x = A
113 17 112 sylan ⊢ φ ∧ x ∈ 0 ..^ L → 0 ..^ L × A ⁡ x = A
114 64 21 22 3syl ⊢ φ ∧ x ∈ 0 ..^ L → 0 ..^ M × A ∈ Word A
115 64 24 25 3syl ⊢ φ ∧ x ∈ 0 ..^ L → 0 ..^ N × A ∈ Word A
116 ccatsymb ⊢ 0 ..^ M × A ∈ Word A ∧ 0 ..^ N × A ∈ Word A ∧ x ∈ ℤ → 0 ..^ M × A ++ 0 ..^ N × A ⁡ x = if x < 0 ..^ M × A 0 ..^ M × A ⁡ x 0 ..^ N × A ⁡ x − 0 ..^ M × A
117 114 115 82 116 syl3anc ⊢ φ ∧ x ∈ 0 ..^ L → 0 ..^ M × A ++ 0 ..^ N × A ⁡ x = if x < 0 ..^ M × A 0 ..^ M × A ⁡ x 0 ..^ N × A ⁡ x − 0 ..^ M × A
118 111 113 117 3eqtr4d ⊢ φ ∧ x ∈ 0 ..^ L → 0 ..^ L × A ⁡ x = 0 ..^ M × A ++ 0 ..^ N × A ⁡ x
119 20 60 118 eqfnfvd ⊢ φ → 0 ..^ L × A = 0 ..^ M × A ++ 0 ..^ N × A
120 119 oveq1d ⊢ φ → 0 ..^ L × A ⋅ K f U ++ V = 0 ..^ M × A ++ 0 ..^ N × A ⋅ K f U ++ V
121 2 5 16 frlmfzowrd ⊢ U ∈ C → U ∈ Word S
122 11 121 syl ⊢ φ → U ∈ Word S
123 3 6 16 frlmfzowrd ⊢ V ∈ D → V ∈ Word S
124 12 123 syl ⊢ φ → V ∈ Word S
125 32 35 eqtrid ⊢ φ → 0 ..^ M × A = 0 ..^ M ⋅ 1
126 ovexd ⊢ φ → 0 ..^ M ∈ V
127 2 16 5 frlmbasf ⊢ 0 ..^ M ∈ V ∧ U ∈ C → U : 0 ..^ M ⟶ S
128 126 11 127 syl2anc ⊢ φ → U : 0 ..^ M ⟶ S
129 128 ffnd ⊢ φ → U Fn 0 ..^ M
130 hashfn ⊢ U Fn 0 ..^ M → U = 0 ..^ M
131 129 130 syl ⊢ φ → U = 0 ..^ M
132 39 125 131 3eqtr4d ⊢ φ → 0 ..^ M × A = U
133 47 51 eqtrd ⊢ φ → 0 ..^ N ⁢ A = 0 ..^ N
134 46 133 eqtrid ⊢ φ → 0 ..^ N × A = 0 ..^ N
135 ovexd ⊢ φ → 0 ..^ N ∈ V
136 3 16 6 frlmbasf ⊢ 0 ..^ N ∈ V ∧ V ∈ D → V : 0 ..^ N ⟶ S
137 135 12 136 syl2anc ⊢ φ → V : 0 ..^ N ⟶ S
138 137 ffnd ⊢ φ → V Fn 0 ..^ N
139 hashfn ⊢ V Fn 0 ..^ N → V = 0 ..^ N
140 138 139 syl ⊢ φ → V = 0 ..^ N
141 134 140 eqtr4d ⊢ φ → 0 ..^ N × A = V
142 23 26 122 124 132 141 ofccat ⊢ φ → 0 ..^ M × A ++ 0 ..^ N × A ⋅ K f U ++ V = 0 ..^ M × A ⋅ K f U ++ 0 ..^ N × A ⋅ K f V
143 120 142 eqtrd ⊢ φ → 0 ..^ L × A ⋅ K f U ++ V = 0 ..^ M × A ⋅ K f U ++ 0 ..^ N × A ⋅ K f V
144 ovexd ⊢ φ → 0 ..^ L ∈ V
145 1 2 3 4 5 6 7 8 9 10 11 12 frlmfzoccat ⊢ φ → U ++ V ∈ B
146 eqid ⊢ ⋅ K = ⋅ K
147 1 4 16 144 17 145 13 146 frlmvscafval ⊢ φ → A O U ++ V = 0 ..^ L × A ⋅ K f U ++ V
148 2 5 16 126 17 11 14 146 frlmvscafval ⊢ φ → A ∙ ˙ U = 0 ..^ M × A ⋅ K f U
149 3 6 16 135 17 12 15 146 frlmvscafval ⊢ φ → A · ˙ V = 0 ..^ N × A ⋅ K f V
150 148 149 oveq12d ⊢ φ → A ∙ ˙ U ++ A · ˙ V = 0 ..^ M × A ⋅ K f U ++ 0 ..^ N × A ⋅ K f V
151 143 147 150 3eqtr4d ⊢ φ → A O U ++ V = A ∙ ˙ U ++ A · ˙ V