Metamath Proof Explorer


Theorem ccatswrd

Description: Joining two adjacent subwords makes a longer subword. (Contributed by Stefan O'Rear, 20-Aug-2015)

Ref Expression
Assertion ccatswrd ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Y ++ S substr Y Z = S substr X Z

Proof

Step Hyp Ref Expression
1 swrdcl ⊢ S ∈ Word A → S substr X Y ∈ Word A
2 1 adantr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Y ∈ Word A
3 swrdcl ⊢ S ∈ Word A → S substr Y Z ∈ Word A
4 3 adantr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr Y Z ∈ Word A
5 ccatcl ⊢ S substr X Y ∈ Word A ∧ S substr Y Z ∈ Word A → S substr X Y ++ S substr Y Z ∈ Word A
6 2 4 5 syl2anc ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Y ++ S substr Y Z ∈ Word A
7 wrdfn ⊢ S substr X Y ++ S substr Y Z ∈ Word A → S substr X Y ++ S substr Y Z Fn 0 ..^ S substr X Y ++ S substr Y Z
8 6 7 syl ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Y ++ S substr Y Z Fn 0 ..^ S substr X Y ++ S substr Y Z
9 ccatlen ⊢ S substr X Y ∈ Word A ∧ S substr Y Z ∈ Word A → S substr X Y ++ S substr Y Z = S substr X Y + S substr Y Z
10 2 4 9 syl2anc ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Y ++ S substr Y Z = S substr X Y + S substr Y Z
11 simpl ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S ∈ Word A
12 simpr1 ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → X ∈ 0 … Y
13 simpr2 ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → Y ∈ 0 … Z
14 simpr3 ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → Z ∈ 0 … S
15 fzass4 ⊢ Y ∈ 0 … S ∧ Z ∈ Y … S ↔ Y ∈ 0 … Z ∧ Z ∈ 0 … S
16 15 biimpri ⊢ Y ∈ 0 … Z ∧ Z ∈ 0 … S → Y ∈ 0 … S ∧ Z ∈ Y … S
17 16 simpld ⊢ Y ∈ 0 … Z ∧ Z ∈ 0 … S → Y ∈ 0 … S
18 13 14 17 syl2anc ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → Y ∈ 0 … S
19 swrdlen ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … S → S substr X Y = Y − X
20 11 12 18 19 syl3anc ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Y = Y − X
21 swrdlen ⊢ S ∈ Word A ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr Y Z = Z − Y
22 21 3adant3r1 ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr Y Z = Z − Y
23 20 22 oveq12d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Y + S substr Y Z = Y − X + Z - Y
24 13 elfzelzd ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → Y ∈ ℤ
25 24 zcnd ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → Y ∈ ℂ
26 12 elfzelzd ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → X ∈ ℤ
27 26 zcnd ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → X ∈ ℂ
28 14 elfzelzd ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → Z ∈ ℤ
29 28 zcnd ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → Z ∈ ℂ
30 25 27 29 npncan3d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → Y − X + Z - Y = Z − X
31 10 23 30 3eqtrd ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Y ++ S substr Y Z = Z − X
32 31 oveq2d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → 0 ..^ S substr X Y ++ S substr Y Z = 0 ..^ Z − X
33 32 fneq2d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Y ++ S substr Y Z Fn 0 ..^ S substr X Y ++ S substr Y Z ↔ S substr X Y ++ S substr Y Z Fn 0 ..^ Z − X
34 8 33 mpbid ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Y ++ S substr Y Z Fn 0 ..^ Z − X
35 swrdcl ⊢ S ∈ Word A → S substr X Z ∈ Word A
36 35 adantr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Z ∈ Word A
37 wrdfn ⊢ S substr X Z ∈ Word A → S substr X Z Fn 0 ..^ S substr X Z
38 36 37 syl ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Z Fn 0 ..^ S substr X Z
39 fzass4 ⊢ X ∈ 0 … Z ∧ Y ∈ X … Z ↔ X ∈ 0 … Y ∧ Y ∈ 0 … Z
40 39 biimpri ⊢ X ∈ 0 … Y ∧ Y ∈ 0 … Z → X ∈ 0 … Z ∧ Y ∈ X … Z
41 40 simpld ⊢ X ∈ 0 … Y ∧ Y ∈ 0 … Z → X ∈ 0 … Z
42 12 13 41 syl2anc ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → X ∈ 0 … Z
43 swrdlen ⊢ S ∈ Word A ∧ X ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Z = Z − X
44 11 42 14 43 syl3anc ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Z = Z − X
45 44 oveq2d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → 0 ..^ S substr X Z = 0 ..^ Z − X
46 45 fneq2d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Z Fn 0 ..^ S substr X Z ↔ S substr X Z Fn 0 ..^ Z − X
47 38 46 mpbid ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Z Fn 0 ..^ Z − X
48 24 26 zsubcld ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → Y − X ∈ ℤ
49 48 anim1ci ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Z − X → x ∈ 0 ..^ Z − X ∧ Y − X ∈ ℤ
50 fzospliti ⊢ x ∈ 0 ..^ Z − X ∧ Y − X ∈ ℤ → x ∈ 0 ..^ Y − X ∨ x ∈ Y − X ..^ Z − X
51 49 50 syl ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Z − X → x ∈ 0 ..^ Y − X ∨ x ∈ Y − X ..^ Z − X
52 1 ad2antrr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Y − X → S substr X Y ∈ Word A
53 3 ad2antrr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Y − X → S substr Y Z ∈ Word A
54 20 oveq2d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → 0 ..^ S substr X Y = 0 ..^ Y − X
55 54 eleq2d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → x ∈ 0 ..^ S substr X Y ↔ x ∈ 0 ..^ Y − X
56 55 biimpar ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Y − X → x ∈ 0 ..^ S substr X Y
57 ccatval1 ⊢ S substr X Y ∈ Word A ∧ S substr Y Z ∈ Word A ∧ x ∈ 0 ..^ S substr X Y → S substr X Y ++ S substr Y Z ⁡ x = S substr X Y ⁡ x
58 52 53 56 57 syl3anc ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Y − X → S substr X Y ++ S substr Y Z ⁡ x = S substr X Y ⁡ x
59 simpll ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Y − X → S ∈ Word A
60 simplr1 ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Y − X → X ∈ 0 … Y
61 18 adantr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Y − X → Y ∈ 0 … S
62 simpr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Y − X → x ∈ 0 ..^ Y − X
63 swrdfv ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … S ∧ x ∈ 0 ..^ Y − X → S substr X Y ⁡ x = S ⁡ x + X
64 59 60 61 62 63 syl31anc ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Y − X → S substr X Y ⁡ x = S ⁡ x + X
65 58 64 eqtrd ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Y − X → S substr X Y ++ S substr Y Z ⁡ x = S ⁡ x + X
66 1 ad2antrr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → S substr X Y ∈ Word A
67 3 ad2antrr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → S substr Y Z ∈ Word A
68 23 30 eqtrd ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Y + S substr Y Z = Z − X
69 20 68 oveq12d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Y ..^ S substr X Y + S substr Y Z = Y − X ..^ Z − X
70 69 eleq2d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → x ∈ S substr X Y ..^ S substr X Y + S substr Y Z ↔ x ∈ Y − X ..^ Z − X
71 70 biimpar ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → x ∈ S substr X Y ..^ S substr X Y + S substr Y Z
72 ccatval2 ⊢ S substr X Y ∈ Word A ∧ S substr Y Z ∈ Word A ∧ x ∈ S substr X Y ..^ S substr X Y + S substr Y Z → S substr X Y ++ S substr Y Z ⁡ x = S substr Y Z ⁡ x − S substr X Y
73 66 67 71 72 syl3anc ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → S substr X Y ++ S substr Y Z ⁡ x = S substr Y Z ⁡ x − S substr X Y
74 simpll ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → S ∈ Word A
75 simplr2 ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → Y ∈ 0 … Z
76 simplr3 ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → Z ∈ 0 … S
77 20 oveq2d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → x − S substr X Y = x − Y − X
78 77 adantr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → x − S substr X Y = x − Y − X
79 30 oveq2d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → Y − X ..^ Y − X + Z - Y = Y − X ..^ Z − X
80 79 eleq2d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → x ∈ Y − X ..^ Y − X + Z - Y ↔ x ∈ Y − X ..^ Z − X
81 80 biimpar ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → x ∈ Y − X ..^ Y − X + Z - Y
82 28 24 zsubcld ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → Z − Y ∈ ℤ
83 82 adantr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → Z − Y ∈ ℤ
84 fzosubel3 ⊢ x ∈ Y − X ..^ Y − X + Z - Y ∧ Z − Y ∈ ℤ → x − Y − X ∈ 0 ..^ Z − Y
85 81 83 84 syl2anc ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → x − Y − X ∈ 0 ..^ Z − Y
86 78 85 eqeltrd ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → x − S substr X Y ∈ 0 ..^ Z − Y
87 swrdfv ⊢ S ∈ Word A ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x − S substr X Y ∈ 0 ..^ Z − Y → S substr Y Z ⁡ x − S substr X Y = S ⁡ x - S substr X Y + Y
88 74 75 76 86 87 syl31anc ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → S substr Y Z ⁡ x − S substr X Y = S ⁡ x - S substr X Y + Y
89 77 oveq1d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → x - S substr X Y + Y = x - Y − X + Y
90 89 adantr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → x - S substr X Y + Y = x - Y − X + Y
91 elfzoelz ⊢ x ∈ Y − X ..^ Z − X → x ∈ ℤ
92 91 zcnd ⊢ x ∈ Y − X ..^ Z − X → x ∈ ℂ
93 92 adantl ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → x ∈ ℂ
94 25 27 subcld ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → Y − X ∈ ℂ
95 94 adantr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → Y − X ∈ ℂ
96 25 adantr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → Y ∈ ℂ
97 93 95 96 subadd23d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → x - Y − X + Y = x + Y - Y − X
98 25 27 nncand ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → Y − Y − X = X
99 98 oveq2d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → x + Y - Y − X = x + X
100 99 adantr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → x + Y - Y − X = x + X
101 90 97 100 3eqtrd ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → x - S substr X Y + Y = x + X
102 101 fveq2d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → S ⁡ x - S substr X Y + Y = S ⁡ x + X
103 73 88 102 3eqtrd ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ Y − X ..^ Z − X → S substr X Y ++ S substr Y Z ⁡ x = S ⁡ x + X
104 65 103 jaodan ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Y − X ∨ x ∈ Y − X ..^ Z − X → S substr X Y ++ S substr Y Z ⁡ x = S ⁡ x + X
105 51 104 syldan ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Z − X → S substr X Y ++ S substr Y Z ⁡ x = S ⁡ x + X
106 simpll ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Z − X → S ∈ Word A
107 42 adantr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Z − X → X ∈ 0 … Z
108 simplr3 ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Z − X → Z ∈ 0 … S
109 simpr ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Z − X → x ∈ 0 ..^ Z − X
110 swrdfv ⊢ S ∈ Word A ∧ X ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Z − X → S substr X Z ⁡ x = S ⁡ x + X
111 106 107 108 109 110 syl31anc ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Z − X → S substr X Z ⁡ x = S ⁡ x + X
112 105 111 eqtr4d ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S ∧ x ∈ 0 ..^ Z − X → S substr X Y ++ S substr Y Z ⁡ x = S substr X Z ⁡ x
113 34 47 112 eqfnfvd ⊢ S ∈ Word A ∧ X ∈ 0 … Y ∧ Y ∈ 0 … Z ∧ Z ∈ 0 … S → S substr X Y ++ S substr Y Z = S substr X Z