Metamath Proof Explorer


Theorem splval2

Description: Value of a splice, assuming the input word S has already been decomposed into its pieces. (Contributed by Mario Carneiro, 1-Oct-2015) (Proof shortened by AV, 15-Oct-2022)

Ref Expression
Hypotheses splval2.a φAWordX
splval2.b φBWordX
splval2.c φCWordX
splval2.r φRWordX
splval2.s φS=A++B++C
splval2.f φF=A
splval2.t φT=F+B
Assertion splval2 φSspliceFTR=A++R++C

Proof

Step Hyp Ref Expression
1 splval2.a φAWordX
2 splval2.b φBWordX
3 splval2.c φCWordX
4 splval2.r φRWordX
5 splval2.s φS=A++B++C
6 splval2.f φF=A
7 splval2.t φT=F+B
8 ccatcl AWordXBWordXA++BWordX
9 1 2 8 syl2anc φA++BWordX
10 ccatcl A++BWordXCWordXA++B++CWordX
11 9 3 10 syl2anc φA++B++CWordX
12 5 11 eqeltrd φSWordX
13 lencl AWordXA0
14 1 13 syl φA0
15 6 14 eqeltrd φF0
16 lencl BWordXB0
17 2 16 syl φB0
18 15 17 nn0addcld φF+B0
19 7 18 eqeltrd φT0
20 splval SWordXF0T0RWordXSspliceFTR=SprefixF++R++SsubstrTS
21 12 15 19 4 20 syl13anc φSspliceFTR=SprefixF++R++SsubstrTS
22 nn0uz 0=0
23 15 22 eleqtrdi φF0
24 15 nn0zd φF
25 24 uzidd φFF
26 uzaddcl FFB0F+BF
27 25 17 26 syl2anc φF+BF
28 7 27 eqeltrd φTF
29 elfzuzb F0TF0TF
30 23 28 29 sylanbrc φF0T
31 19 22 eleqtrdi φT0
32 ccatlen A++BWordXCWordXA++B++C=A++B+C
33 9 3 32 syl2anc φA++B++C=A++B+C
34 5 fveq2d φS=A++B++C
35 6 oveq1d φF+B=A+B
36 ccatlen AWordXBWordXA++B=A+B
37 1 2 36 syl2anc φA++B=A+B
38 35 7 37 3eqtr4d φT=A++B
39 38 oveq1d φT+C=A++B+C
40 33 34 39 3eqtr4d φS=T+C
41 19 nn0zd φT
42 41 uzidd φTT
43 lencl CWordXC0
44 3 43 syl φC0
45 uzaddcl TTC0T+CT
46 42 44 45 syl2anc φT+CT
47 40 46 eqeltrd φST
48 elfzuzb T0ST0ST
49 31 47 48 sylanbrc φT0S
50 ccatpfx SWordXF0TT0SSprefixF++SsubstrFT=SprefixT
51 12 30 49 50 syl3anc φSprefixF++SsubstrFT=SprefixT
52 lencl SWordXS0
53 12 52 syl φS0
54 53 22 eleqtrdi φS0
55 eluzfz2 S0S0S
56 54 55 syl φS0S
57 ccatpfx SWordXT0SS0SSprefixT++SsubstrTS=SprefixS
58 12 49 56 57 syl3anc φSprefixT++SsubstrTS=SprefixS
59 pfxid SWordXSprefixS=S
60 12 59 syl φSprefixS=S
61 58 60 5 3eqtrd φSprefixT++SsubstrTS=A++B++C
62 pfxcl SWordXSprefixTWordX
63 12 62 syl φSprefixTWordX
64 swrdcl SWordXSsubstrTSWordX
65 12 64 syl φSsubstrTSWordX
66 pfxlen SWordXT0SSprefixT=T
67 12 49 66 syl2anc φSprefixT=T
68 67 38 eqtrd φSprefixT=A++B
69 ccatopth SprefixTWordXSsubstrTSWordXA++BWordXCWordXSprefixT=A++BSprefixT++SsubstrTS=A++B++CSprefixT=A++BSsubstrTS=C
70 63 65 9 3 68 69 syl221anc φSprefixT++SsubstrTS=A++B++CSprefixT=A++BSsubstrTS=C
71 61 70 mpbid φSprefixT=A++BSsubstrTS=C
72 71 simpld φSprefixT=A++B
73 51 72 eqtrd φSprefixF++SsubstrFT=A++B
74 pfxcl SWordXSprefixFWordX
75 12 74 syl φSprefixFWordX
76 swrdcl SWordXSsubstrFTWordX
77 12 76 syl φSsubstrFTWordX
78 uztrn STTFSF
79 47 28 78 syl2anc φSF
80 elfzuzb F0SF0SF
81 23 79 80 sylanbrc φF0S
82 pfxlen SWordXF0SSprefixF=F
83 12 81 82 syl2anc φSprefixF=F
84 83 6 eqtrd φSprefixF=A
85 ccatopth SprefixFWordXSsubstrFTWordXAWordXBWordXSprefixF=ASprefixF++SsubstrFT=A++BSprefixF=ASsubstrFT=B
86 75 77 1 2 84 85 syl221anc φSprefixF++SsubstrFT=A++BSprefixF=ASsubstrFT=B
87 73 86 mpbid φSprefixF=ASsubstrFT=B
88 87 simpld φSprefixF=A
89 88 oveq1d φSprefixF++R=A++R
90 71 simprd φSsubstrTS=C
91 89 90 oveq12d φSprefixF++R++SsubstrTS=A++R++C
92 21 91 eqtrd φSspliceFTR=A++R++C