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 mulid1d φ 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 syl5eq φ 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 mulid1d φ 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 syl5eq φ 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 syl5eq φ 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 syl5eq φ 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