Metamath Proof Explorer


Theorem splfv1

Description: Symbols to the left of a splice are unaffected. (Contributed by Stefan O'Rear, 23-Aug-2015) (Proof shortened by AV, 15-Oct-2022)

Ref Expression
Hypotheses spllen.s ⊢ φ → S ∈ Word A
spllen.f ⊢ φ → F ∈ 0 … T
spllen.t ⊢ φ → T ∈ 0 … S
spllen.r ⊢ φ → R ∈ Word A
splfv1.x ⊢ φ → X ∈ 0 ..^ F
Assertion splfv1 ⊢ φ → S splice F T R ⁡ X = S ⁡ X

Proof

Step Hyp Ref Expression
1 spllen.s ⊢ φ → S ∈ Word A
2 spllen.f ⊢ φ → F ∈ 0 … T
3 spllen.t ⊢ φ → T ∈ 0 … S
4 spllen.r ⊢ φ → R ∈ Word A
5 splfv1.x ⊢ φ → X ∈ 0 ..^ F
6 splval ⊢ S ∈ Word A ∧ F ∈ 0 … T ∧ T ∈ 0 … S ∧ R ∈ Word A → S splice F T R = S prefix F ++ R ++ S substr T S
7 1 2 3 4 6 syl13anc ⊢ φ → S splice F T R = S prefix F ++ R ++ S substr T S
8 7 fveq1d ⊢ φ → S splice F T R ⁡ X = S prefix F ++ R ++ S substr T S ⁡ X
9 pfxcl ⊢ S ∈ Word A → S prefix F ∈ Word A
10 1 9 syl ⊢ φ → S prefix F ∈ Word A
11 ccatcl ⊢ S prefix F ∈ Word A ∧ R ∈ Word A → S prefix F ++ R ∈ Word A
12 10 4 11 syl2anc ⊢ φ → S prefix F ++ R ∈ Word A
13 swrdcl ⊢ S ∈ Word A → S substr T S ∈ Word A
14 1 13 syl ⊢ φ → S substr T S ∈ Word A
15 2 elfzelzd ⊢ φ → F ∈ ℤ
16 15 uzidd ⊢ φ → F ∈ ℤ ≥ F
17 lencl ⊢ R ∈ Word A → R ∈ ℕ 0
18 4 17 syl ⊢ φ → R ∈ ℕ 0
19 uzaddcl ⊢ F ∈ ℤ ≥ F ∧ R ∈ ℕ 0 → F + R ∈ ℤ ≥ F
20 16 18 19 syl2anc ⊢ φ → F + R ∈ ℤ ≥ F
21 fzoss2 ⊢ F + R ∈ ℤ ≥ F → 0 ..^ F ⊆ 0 ..^ F + R
22 20 21 syl ⊢ φ → 0 ..^ F ⊆ 0 ..^ F + R
23 22 5 sseldd ⊢ φ → X ∈ 0 ..^ F + R
24 ccatlen ⊢ S prefix F ∈ Word A ∧ R ∈ Word A → S prefix F ++ R = S prefix F + R
25 10 4 24 syl2anc ⊢ φ → S prefix F ++ R = S prefix F + R
26 fzass4 ⊢ F ∈ 0 … S ∧ T ∈ F … S ↔ F ∈ 0 … T ∧ T ∈ 0 … S
27 26 biimpri ⊢ F ∈ 0 … T ∧ T ∈ 0 … S → F ∈ 0 … S ∧ T ∈ F … S
28 27 simpld ⊢ F ∈ 0 … T ∧ T ∈ 0 … S → F ∈ 0 … S
29 2 3 28 syl2anc ⊢ φ → F ∈ 0 … S
30 pfxlen ⊢ S ∈ Word A ∧ F ∈ 0 … S → S prefix F = F
31 1 29 30 syl2anc ⊢ φ → S prefix F = F
32 31 oveq1d ⊢ φ → S prefix F + R = F + R
33 25 32 eqtrd ⊢ φ → S prefix F ++ R = F + R
34 33 oveq2d ⊢ φ → 0 ..^ S prefix F ++ R = 0 ..^ F + R
35 23 34 eleqtrrd ⊢ φ → X ∈ 0 ..^ S prefix F ++ R
36 ccatval1 ⊢ S prefix F ++ R ∈ Word A ∧ S substr T S ∈ Word A ∧ X ∈ 0 ..^ S prefix F ++ R → S prefix F ++ R ++ S substr T S ⁡ X = S prefix F ++ R ⁡ X
37 12 14 35 36 syl3anc ⊢ φ → S prefix F ++ R ++ S substr T S ⁡ X = S prefix F ++ R ⁡ X
38 31 oveq2d ⊢ φ → 0 ..^ S prefix F = 0 ..^ F
39 5 38 eleqtrrd ⊢ φ → X ∈ 0 ..^ S prefix F
40 ccatval1 ⊢ S prefix F ∈ Word A ∧ R ∈ Word A ∧ X ∈ 0 ..^ S prefix F → S prefix F ++ R ⁡ X = S prefix F ⁡ X
41 10 4 39 40 syl3anc ⊢ φ → S prefix F ++ R ⁡ X = S prefix F ⁡ X
42 pfxfv ⊢ S ∈ Word A ∧ F ∈ 0 … S ∧ X ∈ 0 ..^ F → S prefix F ⁡ X = S ⁡ X
43 1 29 5 42 syl3anc ⊢ φ → S prefix F ⁡ X = S ⁡ X
44 41 43 eqtrd ⊢ φ → S prefix F ++ R ⁡ X = S ⁡ X
45 8 37 44 3eqtrd ⊢ φ → S splice F T R ⁡ X = S ⁡ X