Metamath Proof Explorer


Theorem frgpuplem

Description: Any assignment of the generators to target elements can be extended (uniquely) to a homomorphism from a free monoid to an arbitrary other monoid. (Contributed by Mario Carneiro, 2-Oct-2015)

Ref Expression
Hypotheses frgpup.b B=BaseH
frgpup.n N=invgH
frgpup.t T=yI,z2𝑜ifz=FyNFy
frgpup.h φHGrp
frgpup.i φIV
frgpup.a φF:IB
frgpup.w W=IWordI×2𝑜
frgpup.r ˙=~FGI
Assertion frgpuplem φA˙CHTA=HTC

Proof

Step Hyp Ref Expression
1 frgpup.b B=BaseH
2 frgpup.n N=invgH
3 frgpup.t T=yI,z2𝑜ifz=FyNFy
4 frgpup.h φHGrp
5 frgpup.i φIV
6 frgpup.a φF:IB
7 frgpup.w W=IWordI×2𝑜
8 frgpup.r ˙=~FGI
9 7 8 efgval ˙=r|rErWxWn0xaIb2𝑜xrxsplicenn⟨“aba1𝑜b”⟩
10 coeq2 u=vTu=Tv
11 10 oveq2d u=vHTu=HTv
12 eqid uv|HTu=HTv=uv|HTu=HTv
13 11 12 eqer uv|HTu=HTvErV
14 13 a1i φuv|HTu=HTvErV
15 ssv WV
16 15 a1i φWV
17 14 16 erinxp φuv|HTu=HTvW×WErW
18 df-xp W×W=uv|uWvW
19 18 ineq1i W×Wuv|HTu=HTv=uv|uWvWuv|HTu=HTv
20 incom W×Wuv|HTu=HTv=uv|HTu=HTvW×W
21 inopab uv|uWvWuv|HTu=HTv=uv|uWvWHTu=HTv
22 19 20 21 3eqtr3i uv|HTu=HTvW×W=uv|uWvWHTu=HTv
23 vex uV
24 vex vV
25 23 24 prss uWvWuvW
26 25 anbi1i uWvWHTu=HTvuvWHTu=HTv
27 26 opabbii uv|uWvWHTu=HTv=uv|uvWHTu=HTv
28 22 27 eqtri uv|HTu=HTvW×W=uv|uvWHTu=HTv
29 ereq1 uv|HTu=HTvW×W=uv|uvWHTu=HTvuv|HTu=HTvW×WErWuv|uvWHTu=HTvErW
30 28 29 ax-mp uv|HTu=HTvW×WErWuv|uvWHTu=HTvErW
31 17 30 sylib φuv|uvWHTu=HTvErW
32 simplrl φxWn0xaIb2𝑜xW
33 fviss IWordI×2𝑜WordI×2𝑜
34 7 33 eqsstri WWordI×2𝑜
35 34 32 sselid φxWn0xaIb2𝑜xWordI×2𝑜
36 opelxpi aIb2𝑜abI×2𝑜
37 36 adantl φxWn0xaIb2𝑜abI×2𝑜
38 simprl φxWn0xaIb2𝑜aI
39 2oconcl b2𝑜1𝑜b2𝑜
40 39 ad2antll φxWn0xaIb2𝑜1𝑜b2𝑜
41 38 40 opelxpd φxWn0xaIb2𝑜a1𝑜bI×2𝑜
42 37 41 s2cld φxWn0xaIb2𝑜⟨“aba1𝑜b”⟩WordI×2𝑜
43 splcl xWordI×2𝑜⟨“aba1𝑜b”⟩WordI×2𝑜xsplicenn⟨“aba1𝑜b”⟩WordI×2𝑜
44 35 42 43 syl2anc φxWn0xaIb2𝑜xsplicenn⟨“aba1𝑜b”⟩WordI×2𝑜
45 7 efgrcl xWIVW=WordI×2𝑜
46 32 45 syl φxWn0xaIb2𝑜IVW=WordI×2𝑜
47 46 simprd φxWn0xaIb2𝑜W=WordI×2𝑜
48 44 47 eleqtrrd φxWn0xaIb2𝑜xsplicenn⟨“aba1𝑜b”⟩W
49 pfxcl xWordI×2𝑜xprefixnWordI×2𝑜
50 35 49 syl φxWn0xaIb2𝑜xprefixnWordI×2𝑜
51 1 2 3 4 5 6 frgpuptf φT:I×2𝑜B
52 51 ad2antrr φxWn0xaIb2𝑜T:I×2𝑜B
53 ccatco xprefixnWordI×2𝑜⟨“aba1𝑜b”⟩WordI×2𝑜T:I×2𝑜BTxprefixn++⟨“aba1𝑜b”⟩=Txprefixn++T⟨“aba1𝑜b”⟩
54 50 42 52 53 syl3anc φxWn0xaIb2𝑜Txprefixn++⟨“aba1𝑜b”⟩=Txprefixn++T⟨“aba1𝑜b”⟩
55 54 oveq2d φxWn0xaIb2𝑜HTxprefixn++⟨“aba1𝑜b”⟩=HTxprefixn++T⟨“aba1𝑜b”⟩
56 4 ad2antrr φxWn0xaIb2𝑜HGrp
57 56 grpmndd φxWn0xaIb2𝑜HMnd
58 wrdco xprefixnWordI×2𝑜T:I×2𝑜BTxprefixnWordB
59 50 52 58 syl2anc φxWn0xaIb2𝑜TxprefixnWordB
60 wrdco ⟨“aba1𝑜b”⟩WordI×2𝑜T:I×2𝑜BT⟨“aba1𝑜b”⟩WordB
61 42 52 60 syl2anc φxWn0xaIb2𝑜T⟨“aba1𝑜b”⟩WordB
62 eqid +H=+H
63 1 62 gsumccat HMndTxprefixnWordBT⟨“aba1𝑜b”⟩WordBHTxprefixn++T⟨“aba1𝑜b”⟩=HTxprefixn+HHT⟨“aba1𝑜b”⟩
64 57 59 61 63 syl3anc φxWn0xaIb2𝑜HTxprefixn++T⟨“aba1𝑜b”⟩=HTxprefixn+HHT⟨“aba1𝑜b”⟩
65 52 37 41 s2co φxWn0xaIb2𝑜T⟨“aba1𝑜b”⟩=⟨“TabTa1𝑜b”⟩
66 df-ov aTb=Tab
67 66 a1i φxWn0xaIb2𝑜aTb=Tab
68 66 fveq2i NaTb=NTab
69 df-ov ayI,z2𝑜y1𝑜zb=yI,z2𝑜y1𝑜zab
70 eqid yI,z2𝑜y1𝑜z=yI,z2𝑜y1𝑜z
71 70 efgmval aIb2𝑜ayI,z2𝑜y1𝑜zb=a1𝑜b
72 69 71 eqtr3id aIb2𝑜yI,z2𝑜y1𝑜zab=a1𝑜b
73 72 adantl φxWn0xaIb2𝑜yI,z2𝑜y1𝑜zab=a1𝑜b
74 73 fveq2d φxWn0xaIb2𝑜TyI,z2𝑜y1𝑜zab=Ta1𝑜b
75 1 2 3 4 5 6 70 frgpuptinv φabI×2𝑜TyI,z2𝑜y1𝑜zab=NTab
76 36 75 sylan2 φaIb2𝑜TyI,z2𝑜y1𝑜zab=NTab
77 76 adantlr φxWn0xaIb2𝑜TyI,z2𝑜y1𝑜zab=NTab
78 74 77 eqtr3d φxWn0xaIb2𝑜Ta1𝑜b=NTab
79 68 78 eqtr4id φxWn0xaIb2𝑜NaTb=Ta1𝑜b
80 67 79 s2eqd φxWn0xaIb2𝑜⟨“aTbNaTb”⟩=⟨“TabTa1𝑜b”⟩
81 65 80 eqtr4d φxWn0xaIb2𝑜T⟨“aba1𝑜b”⟩=⟨“aTbNaTb”⟩
82 81 oveq2d φxWn0xaIb2𝑜HT⟨“aba1𝑜b”⟩=H⟨“aTbNaTb”⟩
83 simprr φxWn0xaIb2𝑜b2𝑜
84 52 38 83 fovcdmd φxWn0xaIb2𝑜aTbB
85 1 2 grpinvcl HGrpaTbBNaTbB
86 56 84 85 syl2anc φxWn0xaIb2𝑜NaTbB
87 1 62 gsumws2 HMndaTbBNaTbBH⟨“aTbNaTb”⟩=aTb+HNaTb
88 57 84 86 87 syl3anc φxWn0xaIb2𝑜H⟨“aTbNaTb”⟩=aTb+HNaTb
89 eqid 0H=0H
90 1 62 89 2 grprinv HGrpaTbBaTb+HNaTb=0H
91 56 84 90 syl2anc φxWn0xaIb2𝑜aTb+HNaTb=0H
92 82 88 91 3eqtrd φxWn0xaIb2𝑜HT⟨“aba1𝑜b”⟩=0H
93 92 oveq2d φxWn0xaIb2𝑜HTxprefixn+HHT⟨“aba1𝑜b”⟩=HTxprefixn+H0H
94 1 gsumwcl HMndTxprefixnWordBHTxprefixnB
95 57 59 94 syl2anc φxWn0xaIb2𝑜HTxprefixnB
96 1 62 89 grprid HGrpHTxprefixnBHTxprefixn+H0H=HTxprefixn
97 56 95 96 syl2anc φxWn0xaIb2𝑜HTxprefixn+H0H=HTxprefixn
98 93 97 eqtrd φxWn0xaIb2𝑜HTxprefixn+HHT⟨“aba1𝑜b”⟩=HTxprefixn
99 55 64 98 3eqtrrd φxWn0xaIb2𝑜HTxprefixn=HTxprefixn++⟨“aba1𝑜b”⟩
100 99 oveq1d φxWn0xaIb2𝑜HTxprefixn+HHTxsubstrnx=HTxprefixn++⟨“aba1𝑜b”⟩+HHTxsubstrnx
101 swrdcl xWordI×2𝑜xsubstrnxWordI×2𝑜
102 35 101 syl φxWn0xaIb2𝑜xsubstrnxWordI×2𝑜
103 wrdco xsubstrnxWordI×2𝑜T:I×2𝑜BTxsubstrnxWordB
104 102 52 103 syl2anc φxWn0xaIb2𝑜TxsubstrnxWordB
105 1 62 gsumccat HMndTxprefixnWordBTxsubstrnxWordBHTxprefixn++Txsubstrnx=HTxprefixn+HHTxsubstrnx
106 57 59 104 105 syl3anc φxWn0xaIb2𝑜HTxprefixn++Txsubstrnx=HTxprefixn+HHTxsubstrnx
107 ccatcl xprefixnWordI×2𝑜⟨“aba1𝑜b”⟩WordI×2𝑜xprefixn++⟨“aba1𝑜b”⟩WordI×2𝑜
108 50 42 107 syl2anc φxWn0xaIb2𝑜xprefixn++⟨“aba1𝑜b”⟩WordI×2𝑜
109 wrdco xprefixn++⟨“aba1𝑜b”⟩WordI×2𝑜T:I×2𝑜BTxprefixn++⟨“aba1𝑜b”⟩WordB
110 108 52 109 syl2anc φxWn0xaIb2𝑜Txprefixn++⟨“aba1𝑜b”⟩WordB
111 1 62 gsumccat HMndTxprefixn++⟨“aba1𝑜b”⟩WordBTxsubstrnxWordBHTxprefixn++⟨“aba1𝑜b”⟩++Txsubstrnx=HTxprefixn++⟨“aba1𝑜b”⟩+HHTxsubstrnx
112 57 110 104 111 syl3anc φxWn0xaIb2𝑜HTxprefixn++⟨“aba1𝑜b”⟩++Txsubstrnx=HTxprefixn++⟨“aba1𝑜b”⟩+HHTxsubstrnx
113 100 106 112 3eqtr4d φxWn0xaIb2𝑜HTxprefixn++Txsubstrnx=HTxprefixn++⟨“aba1𝑜b”⟩++Txsubstrnx
114 simplrr φxWn0xaIb2𝑜n0x
115 lencl xWordI×2𝑜x0
116 35 115 syl φxWn0xaIb2𝑜x0
117 nn0uz 0=0
118 116 117 eleqtrdi φxWn0xaIb2𝑜x0
119 eluzfz2 x0x0x
120 118 119 syl φxWn0xaIb2𝑜x0x
121 ccatpfx xWordI×2𝑜n0xx0xxprefixn++xsubstrnx=xprefixx
122 35 114 120 121 syl3anc φxWn0xaIb2𝑜xprefixn++xsubstrnx=xprefixx
123 pfxid xWordI×2𝑜xprefixx=x
124 35 123 syl φxWn0xaIb2𝑜xprefixx=x
125 122 124 eqtrd φxWn0xaIb2𝑜xprefixn++xsubstrnx=x
126 125 coeq2d φxWn0xaIb2𝑜Txprefixn++xsubstrnx=Tx
127 ccatco xprefixnWordI×2𝑜xsubstrnxWordI×2𝑜T:I×2𝑜BTxprefixn++xsubstrnx=Txprefixn++Txsubstrnx
128 50 102 52 127 syl3anc φxWn0xaIb2𝑜Txprefixn++xsubstrnx=Txprefixn++Txsubstrnx
129 126 128 eqtr3d φxWn0xaIb2𝑜Tx=Txprefixn++Txsubstrnx
130 129 oveq2d φxWn0xaIb2𝑜HTx=HTxprefixn++Txsubstrnx
131 splval xWn0xn0x⟨“aba1𝑜b”⟩WordI×2𝑜xsplicenn⟨“aba1𝑜b”⟩=xprefixn++⟨“aba1𝑜b”⟩++xsubstrnx
132 32 114 114 42 131 syl13anc φxWn0xaIb2𝑜xsplicenn⟨“aba1𝑜b”⟩=xprefixn++⟨“aba1𝑜b”⟩++xsubstrnx
133 132 coeq2d φxWn0xaIb2𝑜Txsplicenn⟨“aba1𝑜b”⟩=Txprefixn++⟨“aba1𝑜b”⟩++xsubstrnx
134 ccatco xprefixn++⟨“aba1𝑜b”⟩WordI×2𝑜xsubstrnxWordI×2𝑜T:I×2𝑜BTxprefixn++⟨“aba1𝑜b”⟩++xsubstrnx=Txprefixn++⟨“aba1𝑜b”⟩++Txsubstrnx
135 108 102 52 134 syl3anc φxWn0xaIb2𝑜Txprefixn++⟨“aba1𝑜b”⟩++xsubstrnx=Txprefixn++⟨“aba1𝑜b”⟩++Txsubstrnx
136 133 135 eqtrd φxWn0xaIb2𝑜Txsplicenn⟨“aba1𝑜b”⟩=Txprefixn++⟨“aba1𝑜b”⟩++Txsubstrnx
137 136 oveq2d φxWn0xaIb2𝑜HTxsplicenn⟨“aba1𝑜b”⟩=HTxprefixn++⟨“aba1𝑜b”⟩++Txsubstrnx
138 113 130 137 3eqtr4d φxWn0xaIb2𝑜HTx=HTxsplicenn⟨“aba1𝑜b”⟩
139 vex xV
140 ovex xsplicenn⟨“aba1𝑜b”⟩V
141 eleq1 u=xuWxW
142 eleq1 v=xsplicenn⟨“aba1𝑜b”⟩vWxsplicenn⟨“aba1𝑜b”⟩W
143 141 142 bi2anan9 u=xv=xsplicenn⟨“aba1𝑜b”⟩uWvWxWxsplicenn⟨“aba1𝑜b”⟩W
144 25 143 bitr3id u=xv=xsplicenn⟨“aba1𝑜b”⟩uvWxWxsplicenn⟨“aba1𝑜b”⟩W
145 coeq2 u=xTu=Tx
146 145 oveq2d u=xHTu=HTx
147 coeq2 v=xsplicenn⟨“aba1𝑜b”⟩Tv=Txsplicenn⟨“aba1𝑜b”⟩
148 147 oveq2d v=xsplicenn⟨“aba1𝑜b”⟩HTv=HTxsplicenn⟨“aba1𝑜b”⟩
149 146 148 eqeqan12d u=xv=xsplicenn⟨“aba1𝑜b”⟩HTu=HTvHTx=HTxsplicenn⟨“aba1𝑜b”⟩
150 144 149 anbi12d u=xv=xsplicenn⟨“aba1𝑜b”⟩uvWHTu=HTvxWxsplicenn⟨“aba1𝑜b”⟩WHTx=HTxsplicenn⟨“aba1𝑜b”⟩
151 eqid uv|uvWHTu=HTv=uv|uvWHTu=HTv
152 139 140 150 151 braba xuv|uvWHTu=HTvxsplicenn⟨“aba1𝑜b”⟩xWxsplicenn⟨“aba1𝑜b”⟩WHTx=HTxsplicenn⟨“aba1𝑜b”⟩
153 32 48 138 152 syl21anbrc φxWn0xaIb2𝑜xuv|uvWHTu=HTvxsplicenn⟨“aba1𝑜b”⟩
154 153 ralrimivva φxWn0xaIb2𝑜xuv|uvWHTu=HTvxsplicenn⟨“aba1𝑜b”⟩
155 154 ralrimivva φxWn0xaIb2𝑜xuv|uvWHTu=HTvxsplicenn⟨“aba1𝑜b”⟩
156 7 fvexi WV
157 erex uv|uvWHTu=HTvErWWVuv|uvWHTu=HTvV
158 31 156 157 mpisyl φuv|uvWHTu=HTvV
159 ereq1 r=uv|uvWHTu=HTvrErWuv|uvWHTu=HTvErW
160 breq r=uv|uvWHTu=HTvxrxsplicenn⟨“aba1𝑜b”⟩xuv|uvWHTu=HTvxsplicenn⟨“aba1𝑜b”⟩
161 160 2ralbidv r=uv|uvWHTu=HTvaIb2𝑜xrxsplicenn⟨“aba1𝑜b”⟩aIb2𝑜xuv|uvWHTu=HTvxsplicenn⟨“aba1𝑜b”⟩
162 161 2ralbidv r=uv|uvWHTu=HTvxWn0xaIb2𝑜xrxsplicenn⟨“aba1𝑜b”⟩xWn0xaIb2𝑜xuv|uvWHTu=HTvxsplicenn⟨“aba1𝑜b”⟩
163 159 162 anbi12d r=uv|uvWHTu=HTvrErWxWn0xaIb2𝑜xrxsplicenn⟨“aba1𝑜b”⟩uv|uvWHTu=HTvErWxWn0xaIb2𝑜xuv|uvWHTu=HTvxsplicenn⟨“aba1𝑜b”⟩
164 163 elabg uv|uvWHTu=HTvVuv|uvWHTu=HTvr|rErWxWn0xaIb2𝑜xrxsplicenn⟨“aba1𝑜b”⟩uv|uvWHTu=HTvErWxWn0xaIb2𝑜xuv|uvWHTu=HTvxsplicenn⟨“aba1𝑜b”⟩
165 158 164 syl φuv|uvWHTu=HTvr|rErWxWn0xaIb2𝑜xrxsplicenn⟨“aba1𝑜b”⟩uv|uvWHTu=HTvErWxWn0xaIb2𝑜xuv|uvWHTu=HTvxsplicenn⟨“aba1𝑜b”⟩
166 31 155 165 mpbir2and φuv|uvWHTu=HTvr|rErWxWn0xaIb2𝑜xrxsplicenn⟨“aba1𝑜b”⟩
167 intss1 uv|uvWHTu=HTvr|rErWxWn0xaIb2𝑜xrxsplicenn⟨“aba1𝑜b”⟩r|rErWxWn0xaIb2𝑜xrxsplicenn⟨“aba1𝑜b”⟩uv|uvWHTu=HTv
168 166 167 syl φr|rErWxWn0xaIb2𝑜xrxsplicenn⟨“aba1𝑜b”⟩uv|uvWHTu=HTv
169 9 168 eqsstrid φ˙uv|uvWHTu=HTv
170 169 ssbrd φA˙CAuv|uvWHTu=HTvC
171 170 imp φA˙CAuv|uvWHTu=HTvC
172 7 8 efger ˙ErW
173 errel ˙ErWRel˙
174 172 173 mp1i φRel˙
175 brrelex12 Rel˙A˙CAVCV
176 174 175 sylan φA˙CAVCV
177 preq12 u=Av=Cuv=AC
178 177 sseq1d u=Av=CuvWACW
179 coeq2 u=ATu=TA
180 179 oveq2d u=AHTu=HTA
181 coeq2 v=CTv=TC
182 181 oveq2d v=CHTv=HTC
183 180 182 eqeqan12d u=Av=CHTu=HTvHTA=HTC
184 178 183 anbi12d u=Av=CuvWHTu=HTvACWHTA=HTC
185 184 151 brabga AVCVAuv|uvWHTu=HTvCACWHTA=HTC
186 176 185 syl φA˙CAuv|uvWHTu=HTvCACWHTA=HTC
187 171 186 mpbid φA˙CACWHTA=HTC
188 187 simprd φA˙CHTA=HTC