Metamath Proof Explorer


Theorem ofcccat

Description: Letterwise operations on word concatenations. (Contributed by Thierry Arnoux, 5-Oct-2018)

Ref Expression
Hypotheses ofcccat.1 ⊢ φ → F ∈ Word S
ofcccat.2 ⊢ φ → G ∈ Word S
ofcccat.3 ⊢ φ → K ∈ T
Assertion ofcccat ⊢ φ → F ++ G ∘ fc ⁡ R K = F ∘ fc ⁡ R K ++ G ∘ fc ⁡ R K

Proof

Step Hyp Ref Expression
1 ofcccat.1 ⊢ φ → F ∈ Word S
2 ofcccat.2 ⊢ φ → G ∈ Word S
3 ofcccat.3 ⊢ φ → K ∈ T
4 fconst6g ⊢ K ∈ T → 0 ..^ F × K : 0 ..^ F ⟶ T
5 iswrdi ⊢ 0 ..^ F × K : 0 ..^ F ⟶ T → 0 ..^ F × K ∈ Word T
6 3 4 5 3syl ⊢ φ → 0 ..^ F × K ∈ Word T
7 fconst6g ⊢ K ∈ T → 0 ..^ G × K : 0 ..^ G ⟶ T
8 iswrdi ⊢ 0 ..^ G × K : 0 ..^ G ⟶ T → 0 ..^ G × K ∈ Word T
9 3 7 8 3syl ⊢ φ → 0 ..^ G × K ∈ Word T
10 fzofi ⊢ 0 ..^ F ∈ Fin
11 snfi ⊢ K ∈ Fin
12 hashxp ⊢ 0 ..^ F ∈ Fin ∧ K ∈ Fin → 0 ..^ F × K = 0 ..^ F ⁢ K
13 10 11 12 mp2an ⊢ 0 ..^ F × K = 0 ..^ F ⁢ K
14 lencl ⊢ F ∈ Word S → F ∈ ℕ 0
15 hashfzo0 ⊢ F ∈ ℕ 0 → 0 ..^ F = F
16 1 14 15 3syl ⊢ φ → 0 ..^ F = F
17 hashsng ⊢ K ∈ T → K = 1
18 3 17 syl ⊢ φ → K = 1
19 16 18 oveq12d ⊢ φ → 0 ..^ F ⁢ K = F ⋅ 1
20 1 14 syl ⊢ φ → F ∈ ℕ 0
21 20 nn0cnd ⊢ φ → F ∈ ℂ
22 21 mulridd ⊢ φ → F ⋅ 1 = F
23 19 22 eqtrd ⊢ φ → 0 ..^ F ⁢ K = F
24 13 23 eqtr2id ⊢ φ → F = 0 ..^ F × K
25 fzofi ⊢ 0 ..^ G ∈ Fin
26 hashxp ⊢ 0 ..^ G ∈ Fin ∧ K ∈ Fin → 0 ..^ G × K = 0 ..^ G ⁢ K
27 25 11 26 mp2an ⊢ 0 ..^ G × K = 0 ..^ G ⁢ K
28 lencl ⊢ G ∈ Word S → G ∈ ℕ 0
29 hashfzo0 ⊢ G ∈ ℕ 0 → 0 ..^ G = G
30 2 28 29 3syl ⊢ φ → 0 ..^ G = G
31 30 18 oveq12d ⊢ φ → 0 ..^ G ⁢ K = G ⋅ 1
32 2 28 syl ⊢ φ → G ∈ ℕ 0
33 32 nn0cnd ⊢ φ → G ∈ ℂ
34 33 mulridd ⊢ φ → G ⋅ 1 = G
35 31 34 eqtrd ⊢ φ → 0 ..^ G ⁢ K = G
36 27 35 eqtr2id ⊢ φ → G = 0 ..^ G × K
37 1 2 6 9 24 36 ofccat ⊢ φ → F ++ G R f 0 ..^ F × K ++ 0 ..^ G × K = F R f 0 ..^ F × K ++ G R f 0 ..^ G × K
38 ccatcl ⊢ F ∈ Word S ∧ G ∈ Word S → F ++ G ∈ Word S
39 1 2 38 syl2anc ⊢ φ → F ++ G ∈ Word S
40 wrdf ⊢ F ++ G ∈ Word S → F ++ G : 0 ..^ F ++ G ⟶ S
41 39 40 syl ⊢ φ → F ++ G : 0 ..^ F ++ G ⟶ S
42 ovexd ⊢ φ → 0 ..^ F ++ G ∈ V
43 41 42 3 ofcof ⊢ φ → F ++ G ∘ fc ⁡ R K = F ++ G R f 0 ..^ F ++ G × K
44 eqid ⊢ 0 ..^ F + G × K = 0 ..^ F + G × K
45 ccatlen ⊢ F ∈ Word S ∧ G ∈ Word S → F ++ G = F + G
46 1 2 45 syl2anc ⊢ φ → F ++ G = F + G
47 46 oveq2d ⊢ φ → 0 ..^ F ++ G = 0 ..^ F + G
48 47 xpeq1d ⊢ φ → 0 ..^ F ++ G × K = 0 ..^ F + G × K
49 eqid ⊢ 0 ..^ F × K = 0 ..^ F × K
50 eqid ⊢ 0 ..^ G × K = 0 ..^ G × K
51 49 50 44 3 20 32 ccatmulgnn0dir ⊢ φ → 0 ..^ F × K ++ 0 ..^ G × K = 0 ..^ F + G × K
52 44 48 51 3eqtr4a ⊢ φ → 0 ..^ F ++ G × K = 0 ..^ F × K ++ 0 ..^ G × K
53 52 oveq2d ⊢ φ → F ++ G R f 0 ..^ F ++ G × K = F ++ G R f 0 ..^ F × K ++ 0 ..^ G × K
54 43 53 eqtrd ⊢ φ → F ++ G ∘ fc ⁡ R K = F ++ G R f 0 ..^ F × K ++ 0 ..^ G × K
55 wrdf ⊢ F ∈ Word S → F : 0 ..^ F ⟶ S
56 1 55 syl ⊢ φ → F : 0 ..^ F ⟶ S
57 ovexd ⊢ φ → 0 ..^ F ∈ V
58 56 57 3 ofcof ⊢ φ → F ∘ fc ⁡ R K = F R f 0 ..^ F × K
59 wrdf ⊢ G ∈ Word S → G : 0 ..^ G ⟶ S
60 2 59 syl ⊢ φ → G : 0 ..^ G ⟶ S
61 ovexd ⊢ φ → 0 ..^ G ∈ V
62 60 61 3 ofcof ⊢ φ → G ∘ fc ⁡ R K = G R f 0 ..^ G × K
63 58 62 oveq12d ⊢ φ → F ∘ fc ⁡ R K ++ G ∘ fc ⁡ R K = F R f 0 ..^ F × K ++ G R f 0 ..^ G × K
64 37 54 63 3eqtr4d ⊢ φ → F ++ G ∘ fc ⁡ R K = F ∘ fc ⁡ R K ++ G ∘ fc ⁡ R K