Metamath Proof Explorer


Theorem gsumwrev

Description: A sum in an opposite monoid is the regular sum of a reversed word. (Contributed by Stefan O'Rear, 27-Aug-2015) (Proof shortened by Mario Carneiro, 28-Feb-2016)

Ref Expression
Hypotheses gsumwrev.b B=BaseM
gsumwrev.o O=opp𝑔M
Assertion gsumwrev MMndWWordBOW=MreverseW

Proof

Step Hyp Ref Expression
1 gsumwrev.b B=BaseM
2 gsumwrev.o O=opp𝑔M
3 oveq2 x=Ox=O
4 fveq2 x=reversex=reverse
5 rev0 reverse=
6 4 5 eqtrdi x=reversex=
7 6 oveq2d x=Mreversex=M
8 3 7 eqeq12d x=Ox=MreversexO=M
9 8 imbi2d x=MMndOx=MreversexMMndO=M
10 oveq2 x=yOx=Oy
11 fveq2 x=yreversex=reversey
12 11 oveq2d x=yMreversex=Mreversey
13 10 12 eqeq12d x=yOx=MreversexOy=Mreversey
14 13 imbi2d x=yMMndOx=MreversexMMndOy=Mreversey
15 oveq2 x=y++⟨“z”⟩Ox=Oy++⟨“z”⟩
16 fveq2 x=y++⟨“z”⟩reversex=reversey++⟨“z”⟩
17 16 oveq2d x=y++⟨“z”⟩Mreversex=Mreversey++⟨“z”⟩
18 15 17 eqeq12d x=y++⟨“z”⟩Ox=MreversexOy++⟨“z”⟩=Mreversey++⟨“z”⟩
19 18 imbi2d x=y++⟨“z”⟩MMndOx=MreversexMMndOy++⟨“z”⟩=Mreversey++⟨“z”⟩
20 oveq2 x=WOx=OW
21 fveq2 x=Wreversex=reverseW
22 21 oveq2d x=WMreversex=MreverseW
23 20 22 eqeq12d x=WOx=MreversexOW=MreverseW
24 23 imbi2d x=WMMndOx=MreversexMMndOW=MreverseW
25 eqid 0M=0M
26 2 25 oppgid 0M=0O
27 26 gsum0 O=0M
28 25 gsum0 M=0M
29 27 28 eqtr4i O=M
30 29 a1i MMndO=M
31 oveq2 Oy=Mreverseyz+MOy=z+MMreversey
32 2 oppgmnd MMndOMnd
33 32 adantr MMndyWordBzBOMnd
34 simprl MMndyWordBzByWordB
35 simprr MMndyWordBzBzB
36 35 s1cld MMndyWordBzB⟨“z”⟩WordB
37 2 1 oppgbas B=BaseO
38 eqid +O=+O
39 37 38 gsumccat OMndyWordB⟨“z”⟩WordBOy++⟨“z”⟩=Oy+OO⟨“z”⟩
40 33 34 36 39 syl3anc MMndyWordBzBOy++⟨“z”⟩=Oy+OO⟨“z”⟩
41 37 gsumws1 zBO⟨“z”⟩=z
42 41 ad2antll MMndyWordBzBO⟨“z”⟩=z
43 42 oveq2d MMndyWordBzBOy+OO⟨“z”⟩=Oy+Oz
44 eqid +M=+M
45 44 2 38 oppgplus Oy+Oz=z+MOy
46 43 45 eqtrdi MMndyWordBzBOy+OO⟨“z”⟩=z+MOy
47 40 46 eqtrd MMndyWordBzBOy++⟨“z”⟩=z+MOy
48 revccat yWordB⟨“z”⟩WordBreversey++⟨“z”⟩=reverse⟨“z”⟩++reversey
49 34 36 48 syl2anc MMndyWordBzBreversey++⟨“z”⟩=reverse⟨“z”⟩++reversey
50 revs1 reverse⟨“z”⟩=⟨“z”⟩
51 50 oveq1i reverse⟨“z”⟩++reversey=⟨“z”⟩++reversey
52 49 51 eqtrdi MMndyWordBzBreversey++⟨“z”⟩=⟨“z”⟩++reversey
53 52 oveq2d MMndyWordBzBMreversey++⟨“z”⟩=M⟨“z”⟩++reversey
54 simpl MMndyWordBzBMMnd
55 revcl yWordBreverseyWordB
56 55 ad2antrl MMndyWordBzBreverseyWordB
57 1 44 gsumccat MMnd⟨“z”⟩WordBreverseyWordBM⟨“z”⟩++reversey=M⟨“z”⟩+MMreversey
58 54 36 56 57 syl3anc MMndyWordBzBM⟨“z”⟩++reversey=M⟨“z”⟩+MMreversey
59 1 gsumws1 zBM⟨“z”⟩=z
60 59 ad2antll MMndyWordBzBM⟨“z”⟩=z
61 60 oveq1d MMndyWordBzBM⟨“z”⟩+MMreversey=z+MMreversey
62 53 58 61 3eqtrd MMndyWordBzBMreversey++⟨“z”⟩=z+MMreversey
63 47 62 eqeq12d MMndyWordBzBOy++⟨“z”⟩=Mreversey++⟨“z”⟩z+MOy=z+MMreversey
64 31 63 imbitrrid MMndyWordBzBOy=MreverseyOy++⟨“z”⟩=Mreversey++⟨“z”⟩
65 64 expcom yWordBzBMMndOy=MreverseyOy++⟨“z”⟩=Mreversey++⟨“z”⟩
66 65 a2d yWordBzBMMndOy=MreverseyMMndOy++⟨“z”⟩=Mreversey++⟨“z”⟩
67 9 14 19 24 30 66 wrdind WWordBMMndOW=MreverseW
68 67 impcom MMndWWordBOW=MreverseW