Metamath Proof Explorer


Theorem pfxccatin12

Description: The subword of a concatenation of two words within both of the concatenated words. (Contributed by Alexander van der Vekens, 5-Apr-2018) (Revised by AV, 9-May-2020)

Ref Expression
Hypothesis swrdccatin2.l L=A
Assertion pfxccatin12 AWordVBWordVM0LNLL+BA++BsubstrMN=AsubstrML++BprefixNL

Proof

Step Hyp Ref Expression
1 swrdccatin2.l L=A
2 1 pfxccatin12lem2c AWordVBWordVM0LNLL+BA++BWordVM0NN0A++B
3 swrdvalfn A++BWordVM0NN0A++BA++BsubstrMNFn0..^NM
4 2 3 syl AWordVBWordVM0LNLL+BA++BsubstrMNFn0..^NM
5 swrdcl AWordVAsubstrMLWordV
6 pfxcl BWordVBprefixNLWordV
7 ccatvalfn AsubstrMLWordVBprefixNLWordVAsubstrML++BprefixNLFn0..^AsubstrML+BprefixNL
8 5 6 7 syl2an AWordVBWordVAsubstrML++BprefixNLFn0..^AsubstrML+BprefixNL
9 8 adantr AWordVBWordVM0LNLL+BAsubstrML++BprefixNLFn0..^AsubstrML+BprefixNL
10 simpll AWordVBWordVM0LNLL+BAWordV
11 simprl AWordVBWordVM0LNLL+BM0L
12 lencl AWordVA0
13 nn0fz0 A0A0A
14 12 13 sylib AWordVA0A
15 1 14 eqeltrid AWordVL0A
16 15 ad2antrr AWordVBWordVM0LNLL+BL0A
17 swrdlen AWordVM0LL0AAsubstrML=LM
18 10 11 16 17 syl3anc AWordVBWordVM0LNLL+BAsubstrML=LM
19 lencl BWordVB0
20 19 nn0zd BWordVB
21 elfzmlbp BNLL+BNL0B
22 20 21 sylan BWordVNLL+BNL0B
23 pfxlen BWordVNL0BBprefixNL=NL
24 22 23 syldan BWordVNLL+BBprefixNL=NL
25 24 ad2ant2l AWordVBWordVM0LNLL+BBprefixNL=NL
26 18 25 oveq12d AWordVBWordVM0LNLL+BAsubstrML+BprefixNL=LM+N-L
27 elfz2nn0 M0LM0L0ML
28 nn0cn L0L
29 28 ad2antll NM0L0L
30 nn0cn M0M
31 30 ad2antrl NM0L0M
32 zcn NN
33 32 adantr NM0L0N
34 29 31 33 3jca NM0L0LMN
35 34 ex NM0L0LMN
36 elfzelz NLL+BN
37 35 36 syl11 M0L0NLL+BLMN
38 37 3adant3 M0L0MLNLL+BLMN
39 27 38 sylbi M0LNLL+BLMN
40 39 imp M0LNLL+BLMN
41 npncan3 LMNLM+N-L=NM
42 40 41 syl M0LNLL+BLM+N-L=NM
43 42 adantl AWordVBWordVM0LNLL+BLM+N-L=NM
44 26 43 eqtr2d AWordVBWordVM0LNLL+BNM=AsubstrML+BprefixNL
45 44 oveq2d AWordVBWordVM0LNLL+B0..^NM=0..^AsubstrML+BprefixNL
46 45 fneq2d AWordVBWordVM0LNLL+BAsubstrML++BprefixNLFn0..^NMAsubstrML++BprefixNLFn0..^AsubstrML+BprefixNL
47 9 46 mpbird AWordVBWordVM0LNLL+BAsubstrML++BprefixNLFn0..^NM
48 simprl k0..^LMAWordVBWordVM0LNLL+Bk0..^NMAWordVBWordVM0LNLL+B
49 simpr AWordVBWordVM0LNLL+Bk0..^NMk0..^NM
50 49 anim2i k0..^LMAWordVBWordVM0LNLL+Bk0..^NMk0..^LMk0..^NM
51 50 ancomd k0..^LMAWordVBWordVM0LNLL+Bk0..^NMk0..^NMk0..^LM
52 1 pfxccatin12lem3 AWordVBWordVM0LNLL+Bk0..^NMk0..^LMA++BsubstrMNk=AsubstrMLk
53 48 51 52 sylc k0..^LMAWordVBWordVM0LNLL+Bk0..^NMA++BsubstrMNk=AsubstrMLk
54 5 6 anim12i AWordVBWordVAsubstrMLWordVBprefixNLWordV
55 54 adantr AWordVBWordVM0LNLL+BAsubstrMLWordVBprefixNLWordV
56 55 ad2antrl k0..^LMAWordVBWordVM0LNLL+Bk0..^NMAsubstrMLWordVBprefixNLWordV
57 simpl k0..^LMAWordVBWordVM0LNLL+Bk0..^NMk0..^LM
58 18 oveq2d AWordVBWordVM0LNLL+B0..^AsubstrML=0..^LM
59 58 ad2antrl k0..^LMAWordVBWordVM0LNLL+Bk0..^NM0..^AsubstrML=0..^LM
60 57 59 eleqtrrd k0..^LMAWordVBWordVM0LNLL+Bk0..^NMk0..^AsubstrML
61 df-3an AsubstrMLWordVBprefixNLWordVk0..^AsubstrMLAsubstrMLWordVBprefixNLWordVk0..^AsubstrML
62 56 60 61 sylanbrc k0..^LMAWordVBWordVM0LNLL+Bk0..^NMAsubstrMLWordVBprefixNLWordVk0..^AsubstrML
63 ccatval1 AsubstrMLWordVBprefixNLWordVk0..^AsubstrMLAsubstrML++BprefixNLk=AsubstrMLk
64 62 63 syl k0..^LMAWordVBWordVM0LNLL+Bk0..^NMAsubstrML++BprefixNLk=AsubstrMLk
65 53 64 eqtr4d k0..^LMAWordVBWordVM0LNLL+Bk0..^NMA++BsubstrMNk=AsubstrML++BprefixNLk
66 simprl ¬k0..^LMAWordVBWordVM0LNLL+Bk0..^NMAWordVBWordVM0LNLL+B
67 49 anim2i ¬k0..^LMAWordVBWordVM0LNLL+Bk0..^NM¬k0..^LMk0..^NM
68 67 ancomd ¬k0..^LMAWordVBWordVM0LNLL+Bk0..^NMk0..^NM¬k0..^LM
69 1 pfxccatin12lem2 AWordVBWordVM0LNLL+Bk0..^NM¬k0..^LMA++BsubstrMNk=BprefixNLkAsubstrML
70 66 68 69 sylc ¬k0..^LMAWordVBWordVM0LNLL+Bk0..^NMA++BsubstrMNk=BprefixNLkAsubstrML
71 55 ad2antrl ¬k0..^LMAWordVBWordVM0LNLL+Bk0..^NMAsubstrMLWordVBprefixNLWordV
72 elfzuz NLL+BNL
73 eluzelz NLN
74 id L0M0NL0M0N
75 74 3expia L0M0NL0M0N
76 75 ancoms M0L0NL0M0N
77 76 3adant3 M0L0MLNL0M0N
78 27 77 sylbi M0LNL0M0N
79 73 78 syl5com NLM0LL0M0N
80 72 79 syl NLL+BM0LL0M0N
81 80 impcom M0LNLL+BL0M0N
82 81 adantl AWordVBWordVM0LNLL+BL0M0N
83 82 ad2antrl ¬k0..^LMAWordVBWordVM0LNLL+Bk0..^NML0M0N
84 pfxccatin12lem4 L0M0Nk0..^NM¬k0..^LMkLM..^LM+N-L
85 83 68 84 sylc ¬k0..^LMAWordVBWordVM0LNLL+Bk0..^NMkLM..^LM+N-L
86 18 26 oveq12d AWordVBWordVM0LNLL+BAsubstrML..^AsubstrML+BprefixNL=LM..^LM+N-L
87 86 ad2antrl ¬k0..^LMAWordVBWordVM0LNLL+Bk0..^NMAsubstrML..^AsubstrML+BprefixNL=LM..^LM+N-L
88 85 87 eleqtrrd ¬k0..^LMAWordVBWordVM0LNLL+Bk0..^NMkAsubstrML..^AsubstrML+BprefixNL
89 df-3an AsubstrMLWordVBprefixNLWordVkAsubstrML..^AsubstrML+BprefixNLAsubstrMLWordVBprefixNLWordVkAsubstrML..^AsubstrML+BprefixNL
90 71 88 89 sylanbrc ¬k0..^LMAWordVBWordVM0LNLL+Bk0..^NMAsubstrMLWordVBprefixNLWordVkAsubstrML..^AsubstrML+BprefixNL
91 ccatval2 AsubstrMLWordVBprefixNLWordVkAsubstrML..^AsubstrML+BprefixNLAsubstrML++BprefixNLk=BprefixNLkAsubstrML
92 90 91 syl ¬k0..^LMAWordVBWordVM0LNLL+Bk0..^NMAsubstrML++BprefixNLk=BprefixNLkAsubstrML
93 70 92 eqtr4d ¬k0..^LMAWordVBWordVM0LNLL+Bk0..^NMA++BsubstrMNk=AsubstrML++BprefixNLk
94 65 93 pm2.61ian AWordVBWordVM0LNLL+Bk0..^NMA++BsubstrMNk=AsubstrML++BprefixNLk
95 4 47 94 eqfnfvd AWordVBWordVM0LNLL+BA++BsubstrMN=AsubstrML++BprefixNL
96 95 ex AWordVBWordVM0LNLL+BA++BsubstrMN=AsubstrML++BprefixNL