Metamath Proof Explorer


Theorem efgcpbllemb

Description: Lemma for efgrelex . Show that L is an equivalence relation containing all direct extensions of a word, so is closed under .~ . (Contributed by Mario Carneiro, 1-Oct-2015)

Ref Expression
Hypotheses efgval.w W=IWordI×2𝑜
efgval.r ˙=~FGI
efgval2.m M=yI,z2𝑜y1𝑜z
efgval2.t T=vWn0v,wI×2𝑜vsplicenn⟨“wMw”⟩
efgred.d D=WxWranTx
efgred.s S=mtWordW|t0Dk1..^ttkranTtk1mm1
efgcpbllem.1 L=ij|ijWA++i++B˙A++j++B
Assertion efgcpbllemb AWBW˙L

Proof

Step Hyp Ref Expression
1 efgval.w W=IWordI×2𝑜
2 efgval.r ˙=~FGI
3 efgval2.m M=yI,z2𝑜y1𝑜z
4 efgval2.t T=vWn0v,wI×2𝑜vsplicenn⟨“wMw”⟩
5 efgred.d D=WxWranTx
6 efgred.s S=mtWordW|t0Dk1..^ttkranTtk1mm1
7 efgcpbllem.1 L=ij|ijWA++i++B˙A++j++B
8 1 2 3 4 efgval2 ˙=r|rErWfWranTffr
9 7 relopabiv RelL
10 9 a1i AWBWRelL
11 1 2 3 4 5 6 7 efgcpbllema fLgfWgWA++f++B˙A++g++B
12 11 simp2bi fLggW
13 12 adantl AWBWfLggW
14 11 simp1bi fLgfW
15 14 adantl AWBWfLgfW
16 1 2 efger ˙ErW
17 16 a1i AWBWfLg˙ErW
18 11 simp3bi fLgA++f++B˙A++g++B
19 18 adantl AWBWfLgA++f++B˙A++g++B
20 17 19 ersym AWBWfLgA++g++B˙A++f++B
21 1 2 3 4 5 6 7 efgcpbllema gLfgWfWA++g++B˙A++f++B
22 13 15 20 21 syl3anbrc AWBWfLggLf
23 14 ad2antrl AWBWfLggLhfW
24 1 2 3 4 5 6 7 efgcpbllema gLhgWhWA++g++B˙A++h++B
25 24 simp2bi gLhhW
26 25 ad2antll AWBWfLggLhhW
27 16 a1i AWBWfLggLh˙ErW
28 18 ad2antrl AWBWfLggLhA++f++B˙A++g++B
29 24 simp3bi gLhA++g++B˙A++h++B
30 29 ad2antll AWBWfLggLhA++g++B˙A++h++B
31 27 28 30 ertrd AWBWfLggLhA++f++B˙A++h++B
32 1 2 3 4 5 6 7 efgcpbllema fLhfWhWA++f++B˙A++h++B
33 23 26 31 32 syl3anbrc AWBWfLggLhfLh
34 16 a1i AWBWfW˙ErW
35 fviss IWordI×2𝑜WordI×2𝑜
36 1 35 eqsstri WWordI×2𝑜
37 simpll AWBWfWAW
38 36 37 sselid AWBWfWAWordI×2𝑜
39 simpr AWBWfWfW
40 36 39 sselid AWBWfWfWordI×2𝑜
41 ccatcl AWordI×2𝑜fWordI×2𝑜A++fWordI×2𝑜
42 38 40 41 syl2anc AWBWfWA++fWordI×2𝑜
43 simplr AWBWfWBW
44 36 43 sselid AWBWfWBWordI×2𝑜
45 ccatcl A++fWordI×2𝑜BWordI×2𝑜A++f++BWordI×2𝑜
46 42 44 45 syl2anc AWBWfWA++f++BWordI×2𝑜
47 1 efgrcl AWIVW=WordI×2𝑜
48 47 simprd AWW=WordI×2𝑜
49 48 ad2antrr AWBWfWW=WordI×2𝑜
50 46 49 eleqtrrd AWBWfWA++f++BW
51 34 50 erref AWBWfWA++f++B˙A++f++B
52 51 ex AWBWfWA++f++B˙A++f++B
53 52 pm4.71d AWBWfWfWA++f++B˙A++f++B
54 1 2 3 4 5 6 7 efgcpbllema fLffWfWA++f++B˙A++f++B
55 df-3an fWfWA++f++B˙A++f++BfWfWA++f++B˙A++f++B
56 anidm fWfWfW
57 56 anbi1i fWfWA++f++B˙A++f++BfWA++f++B˙A++f++B
58 54 55 57 3bitri fLffWA++f++B˙A++f++B
59 53 58 bitr4di AWBWfWfLf
60 10 22 33 59 iserd AWBWLErW
61 1 2 3 4 efgtf fWTf=a0f,bI×2𝑜fspliceaa⟨“bMb”⟩Tf:0f×I×2𝑜W
62 61 simprd fWTf:0f×I×2𝑜W
63 62 adantl AWBWfWTf:0f×I×2𝑜W
64 ffn Tf:0f×I×2𝑜WTfFn0f×I×2𝑜
65 ovelrn TfFn0f×I×2𝑜aranTfc0fuI×2𝑜a=cTfu
66 63 64 65 3syl AWBWfWaranTfc0fuI×2𝑜a=cTfu
67 simplr AWBWfWc0fuI×2𝑜fW
68 62 ad2antlr AWBWfWc0fuI×2𝑜Tf:0f×I×2𝑜W
69 simprl AWBWfWc0fuI×2𝑜c0f
70 simprr AWBWfWc0fuI×2𝑜uI×2𝑜
71 68 69 70 fovcdmd AWBWfWc0fuI×2𝑜cTfuW
72 50 adantr AWBWfWc0fuI×2𝑜A++f++BW
73 37 adantr AWBWfWc0fuI×2𝑜AW
74 36 73 sselid AWBWfWc0fuI×2𝑜AWordI×2𝑜
75 40 adantr AWBWfWc0fuI×2𝑜fWordI×2𝑜
76 pfxcl fWordI×2𝑜fprefixcWordI×2𝑜
77 75 76 syl AWBWfWc0fuI×2𝑜fprefixcWordI×2𝑜
78 ccatcl AWordI×2𝑜fprefixcWordI×2𝑜A++fprefixcWordI×2𝑜
79 74 77 78 syl2anc AWBWfWc0fuI×2𝑜A++fprefixcWordI×2𝑜
80 3 efgmf M:I×2𝑜I×2𝑜
81 80 ffvelcdmi uI×2𝑜MuI×2𝑜
82 81 ad2antll AWBWfWc0fuI×2𝑜MuI×2𝑜
83 70 82 s2cld AWBWfWc0fuI×2𝑜⟨“uMu”⟩WordI×2𝑜
84 ccatcl A++fprefixcWordI×2𝑜⟨“uMu”⟩WordI×2𝑜A++fprefixc++⟨“uMu”⟩WordI×2𝑜
85 79 83 84 syl2anc AWBWfWc0fuI×2𝑜A++fprefixc++⟨“uMu”⟩WordI×2𝑜
86 swrdcl fWordI×2𝑜fsubstrcfWordI×2𝑜
87 75 86 syl AWBWfWc0fuI×2𝑜fsubstrcfWordI×2𝑜
88 44 adantr AWBWfWc0fuI×2𝑜BWordI×2𝑜
89 ccatass A++fprefixc++⟨“uMu”⟩WordI×2𝑜fsubstrcfWordI×2𝑜BWordI×2𝑜A++fprefixc++⟨“uMu”⟩++fsubstrcf++B=A++fprefixc++⟨“uMu”⟩++fsubstrcf++B
90 85 87 88 89 syl3anc AWBWfWc0fuI×2𝑜A++fprefixc++⟨“uMu”⟩++fsubstrcf++B=A++fprefixc++⟨“uMu”⟩++fsubstrcf++B
91 ccatcl fprefixcWordI×2𝑜⟨“uMu”⟩WordI×2𝑜fprefixc++⟨“uMu”⟩WordI×2𝑜
92 77 83 91 syl2anc AWBWfWc0fuI×2𝑜fprefixc++⟨“uMu”⟩WordI×2𝑜
93 ccatass AWordI×2𝑜fprefixc++⟨“uMu”⟩WordI×2𝑜fsubstrcfWordI×2𝑜A++fprefixc++⟨“uMu”⟩++fsubstrcf=A++fprefixc++⟨“uMu”⟩++fsubstrcf
94 74 92 87 93 syl3anc AWBWfWc0fuI×2𝑜A++fprefixc++⟨“uMu”⟩++fsubstrcf=A++fprefixc++⟨“uMu”⟩++fsubstrcf
95 ccatass AWordI×2𝑜fprefixcWordI×2𝑜⟨“uMu”⟩WordI×2𝑜A++fprefixc++⟨“uMu”⟩=A++fprefixc++⟨“uMu”⟩
96 74 77 83 95 syl3anc AWBWfWc0fuI×2𝑜A++fprefixc++⟨“uMu”⟩=A++fprefixc++⟨“uMu”⟩
97 96 oveq1d AWBWfWc0fuI×2𝑜A++fprefixc++⟨“uMu”⟩++fsubstrcf=A++fprefixc++⟨“uMu”⟩++fsubstrcf
98 1 2 3 4 efgtval fWc0fuI×2𝑜cTfu=fsplicecc⟨“uMu”⟩
99 67 69 70 98 syl3anc AWBWfWc0fuI×2𝑜cTfu=fsplicecc⟨“uMu”⟩
100 splval fWc0fc0f⟨“uMu”⟩WordI×2𝑜fsplicecc⟨“uMu”⟩=fprefixc++⟨“uMu”⟩++fsubstrcf
101 67 69 69 83 100 syl13anc AWBWfWc0fuI×2𝑜fsplicecc⟨“uMu”⟩=fprefixc++⟨“uMu”⟩++fsubstrcf
102 99 101 eqtrd AWBWfWc0fuI×2𝑜cTfu=fprefixc++⟨“uMu”⟩++fsubstrcf
103 102 oveq2d AWBWfWc0fuI×2𝑜A++cTfu=A++fprefixc++⟨“uMu”⟩++fsubstrcf
104 94 97 103 3eqtr4rd AWBWfWc0fuI×2𝑜A++cTfu=A++fprefixc++⟨“uMu”⟩++fsubstrcf
105 104 oveq1d AWBWfWc0fuI×2𝑜A++cTfu++B=A++fprefixc++⟨“uMu”⟩++fsubstrcf++B
106 lencl AWordI×2𝑜A0
107 74 106 syl AWBWfWc0fuI×2𝑜A0
108 nn0uz 0=0
109 107 108 eleqtrdi AWBWfWc0fuI×2𝑜A0
110 elfznn0 c0fc0
111 110 ad2antrl AWBWfWc0fuI×2𝑜c0
112 uzaddcl A0c0A+c0
113 109 111 112 syl2anc AWBWfWc0fuI×2𝑜A+c0
114 42 adantr AWBWfWc0fuI×2𝑜A++fWordI×2𝑜
115 ccatlen A++fWordI×2𝑜BWordI×2𝑜A++f++B=A++f+B
116 114 88 115 syl2anc AWBWfWc0fuI×2𝑜A++f++B=A++f+B
117 ccatlen AWordI×2𝑜fWordI×2𝑜A++f=A+f
118 74 75 117 syl2anc AWBWfWc0fuI×2𝑜A++f=A+f
119 elfzuz3 c0ffc
120 119 ad2antrl AWBWfWc0fuI×2𝑜fc
121 107 nn0zd AWBWfWc0fuI×2𝑜A
122 eluzadd fcAf+Ac+A
123 120 121 122 syl2anc AWBWfWc0fuI×2𝑜f+Ac+A
124 lencl fWordI×2𝑜f0
125 75 124 syl AWBWfWc0fuI×2𝑜f0
126 125 nn0cnd AWBWfWc0fuI×2𝑜f
127 107 nn0cnd AWBWfWc0fuI×2𝑜A
128 126 127 addcomd AWBWfWc0fuI×2𝑜f+A=A+f
129 111 nn0cnd AWBWfWc0fuI×2𝑜c
130 129 127 addcomd AWBWfWc0fuI×2𝑜c+A=A+c
131 130 fveq2d AWBWfWc0fuI×2𝑜c+A=A+c
132 123 128 131 3eltr3d AWBWfWc0fuI×2𝑜A+fA+c
133 118 132 eqeltrd AWBWfWc0fuI×2𝑜A++fA+c
134 lencl BWordI×2𝑜B0
135 88 134 syl AWBWfWc0fuI×2𝑜B0
136 uzaddcl A++fA+cB0A++f+BA+c
137 133 135 136 syl2anc AWBWfWc0fuI×2𝑜A++f+BA+c
138 116 137 eqeltrd AWBWfWc0fuI×2𝑜A++f++BA+c
139 elfzuzb A+c0A++f++BA+c0A++f++BA+c
140 113 138 139 sylanbrc AWBWfWc0fuI×2𝑜A+c0A++f++B
141 1 2 3 4 efgtval A++f++BWA+c0A++f++BuI×2𝑜A+cTA++f++Bu=A++f++BspliceA+cA+c⟨“uMu”⟩
142 72 140 70 141 syl3anc AWBWfWc0fuI×2𝑜A+cTA++f++Bu=A++f++BspliceA+cA+c⟨“uMu”⟩
143 wrd0 WordI×2𝑜
144 143 a1i AWBWfWc0fuI×2𝑜WordI×2𝑜
145 ccatcl fsubstrcfWordI×2𝑜BWordI×2𝑜fsubstrcf++BWordI×2𝑜
146 87 88 145 syl2anc AWBWfWc0fuI×2𝑜fsubstrcf++BWordI×2𝑜
147 ccatrid A++fprefixcWordI×2𝑜A++fprefixc++=A++fprefixc
148 79 147 syl AWBWfWc0fuI×2𝑜A++fprefixc++=A++fprefixc
149 148 oveq1d AWBWfWc0fuI×2𝑜A++fprefixc++++fsubstrcf++B=A++fprefixc++fsubstrcf++B
150 ccatass A++fprefixcWordI×2𝑜fsubstrcfWordI×2𝑜BWordI×2𝑜A++fprefixc++fsubstrcf++B=A++fprefixc++fsubstrcf++B
151 79 87 88 150 syl3anc AWBWfWc0fuI×2𝑜A++fprefixc++fsubstrcf++B=A++fprefixc++fsubstrcf++B
152 ccatass AWordI×2𝑜fprefixcWordI×2𝑜fsubstrcfWordI×2𝑜A++fprefixc++fsubstrcf=A++fprefixc++fsubstrcf
153 74 77 87 152 syl3anc AWBWfWc0fuI×2𝑜A++fprefixc++fsubstrcf=A++fprefixc++fsubstrcf
154 125 108 eleqtrdi AWBWfWc0fuI×2𝑜f0
155 eluzfz2 f0f0f
156 154 155 syl AWBWfWc0fuI×2𝑜f0f
157 ccatpfx fWordI×2𝑜c0ff0ffprefixc++fsubstrcf=fprefixf
158 75 69 156 157 syl3anc AWBWfWc0fuI×2𝑜fprefixc++fsubstrcf=fprefixf
159 pfxid fWordI×2𝑜fprefixf=f
160 75 159 syl AWBWfWc0fuI×2𝑜fprefixf=f
161 158 160 eqtrd AWBWfWc0fuI×2𝑜fprefixc++fsubstrcf=f
162 161 oveq2d AWBWfWc0fuI×2𝑜A++fprefixc++fsubstrcf=A++f
163 153 162 eqtrd AWBWfWc0fuI×2𝑜A++fprefixc++fsubstrcf=A++f
164 163 oveq1d AWBWfWc0fuI×2𝑜A++fprefixc++fsubstrcf++B=A++f++B
165 149 151 164 3eqtr2rd AWBWfWc0fuI×2𝑜A++f++B=A++fprefixc++++fsubstrcf++B
166 ccatlen AWordI×2𝑜fprefixcWordI×2𝑜A++fprefixc=A+fprefixc
167 74 77 166 syl2anc AWBWfWc0fuI×2𝑜A++fprefixc=A+fprefixc
168 pfxlen fWordI×2𝑜c0ffprefixc=c
169 75 69 168 syl2anc AWBWfWc0fuI×2𝑜fprefixc=c
170 169 oveq2d AWBWfWc0fuI×2𝑜A+fprefixc=A+c
171 167 170 eqtr2d AWBWfWc0fuI×2𝑜A+c=A++fprefixc
172 hash0 =0
173 172 oveq2i A+c+=A+c+0
174 107 111 nn0addcld AWBWfWc0fuI×2𝑜A+c0
175 174 nn0cnd AWBWfWc0fuI×2𝑜A+c
176 175 addridd AWBWfWc0fuI×2𝑜A+c+0=A+c
177 173 176 eqtr2id AWBWfWc0fuI×2𝑜A+c=A+c+
178 79 144 146 83 165 171 177 splval2 AWBWfWc0fuI×2𝑜A++f++BspliceA+cA+c⟨“uMu”⟩=A++fprefixc++⟨“uMu”⟩++fsubstrcf++B
179 142 178 eqtrd AWBWfWc0fuI×2𝑜A+cTA++f++Bu=A++fprefixc++⟨“uMu”⟩++fsubstrcf++B
180 90 105 179 3eqtr4d AWBWfWc0fuI×2𝑜A++cTfu++B=A+cTA++f++Bu
181 1 2 3 4 efgtf A++f++BWTA++f++B=a0A++f++B,bI×2𝑜A++f++Bspliceaa⟨“bMb”⟩TA++f++B:0A++f++B×I×2𝑜W
182 181 simprd A++f++BWTA++f++B:0A++f++B×I×2𝑜W
183 ffn TA++f++B:0A++f++B×I×2𝑜WTA++f++BFn0A++f++B×I×2𝑜
184 72 182 183 3syl AWBWfWc0fuI×2𝑜TA++f++BFn0A++f++B×I×2𝑜
185 fnovrn TA++f++BFn0A++f++B×I×2𝑜A+c0A++f++BuI×2𝑜A+cTA++f++BuranTA++f++B
186 184 140 70 185 syl3anc AWBWfWc0fuI×2𝑜A+cTA++f++BuranTA++f++B
187 180 186 eqeltrd AWBWfWc0fuI×2𝑜A++cTfu++BranTA++f++B
188 1 2 3 4 efgi2 A++f++BWA++cTfu++BranTA++f++BA++f++B˙A++cTfu++B
189 72 187 188 syl2anc AWBWfWc0fuI×2𝑜A++f++B˙A++cTfu++B
190 1 2 3 4 5 6 7 efgcpbllema fLcTfufWcTfuWA++f++B˙A++cTfu++B
191 67 71 189 190 syl3anbrc AWBWfWc0fuI×2𝑜fLcTfu
192 vex aV
193 vex fV
194 192 193 elec afLfLa
195 breq2 a=cTfufLafLcTfu
196 194 195 bitrid a=cTfuafLfLcTfu
197 191 196 syl5ibrcom AWBWfWc0fuI×2𝑜a=cTfuafL
198 197 rexlimdvva AWBWfWc0fuI×2𝑜a=cTfuafL
199 66 198 sylbid AWBWfWaranTfafL
200 199 ssrdv AWBWfWranTffL
201 200 ralrimiva AWBWfWranTffL
202 1 fvexi WV
203 erex LErWWVLV
204 60 202 203 mpisyl AWBWLV
205 ereq1 r=LrErWLErW
206 eceq2 r=Lfr=fL
207 206 sseq2d r=LranTffrranTffL
208 207 ralbidv r=LfWranTffrfWranTffL
209 205 208 anbi12d r=LrErWfWranTffrLErWfWranTffL
210 209 elabg LVLr|rErWfWranTffrLErWfWranTffL
211 204 210 syl AWBWLr|rErWfWranTffrLErWfWranTffL
212 60 201 211 mpbir2and AWBWLr|rErWfWranTffr
213 intss1 Lr|rErWfWranTffrr|rErWfWranTffrL
214 212 213 syl AWBWr|rErWfWranTffrL
215 8 214 eqsstrid AWBW˙L