<<"MultiwaySystems/Multiway.m"
$RecursionLimit=400;
Makanin's semigroup:
mak=Join[#,Map[Reverse,#]]&["CCBB"->"BBCC", "BCCCBB"->"CBBBCC","ACCBB"->"BBA", "ABCCCBB"->"CBBA","BBCCBBBBCC"->"BBCCBBBBCCA"]
Tzeitin's semigroup:
tze=Join[#,Map[Reverse,#]]&[{"AC""CA","AD""DA","BC""CB","BD""DB","ECA""CE","EDB""DE","CCA""CCAE"}];
tze2=Join[#,Map[Reverse,#]]&[{"AC""CA","AD""DA","BC""CB","BD""DB","ECA""CE","EDB""DE","CDCA""CDCAE","CAAA""AAA","DAAA""AAA"}];
mwcolormap=Join[mwcolormap,{"C"GrayLevel[.2],"D"GrayLevel[.5],"E"GrayLevel[.7]}];
Show[Surround[MWGraphic[MWEvolveListT[tze2,{"AAA"},2]]]];
Show[Surround[MWGraphic[MWEvolveListT[tze2,{"AAA"},3]]]];
XMWUEvolveList[tze2,{"AAA"},4]
{{AAA},{CAAA,DAAA},{ACAA,CCAAA,CDAAA,ADAA,DCAAA,DDAAA},{AACA,CACAA,CCCAAA,CCDAAA,CADAA,CDCAAA,CDDAAA,AADA,DACAA,DCCAAA,DCDAAA,DADAA,DDCAAA,DDDAAA},{AAAC,ACCAA,CAACA,CCACAA,CCCCAAA,CCCDAAA,CCADAA,CCDCAAA,CCDDAAA,ACDAA,CAADA,CDCAEAA,CDACAA,CDCCAAA,CDCDAAA,CDADAA,CDDCAAA,CDDDAAA,AAAD,ADCAA,DAACA,DCACAA,DCCCAAA,DCCDAAA,DCADAA,DCDCAAA,DCDDAAA,ADDAA,DAADA,DDACAA,DDCCAAA,DDCDAAA,DDADAA,DDDCAAA,DDDDAAA}}
MWEvolveList[tze2,{"AAA"},2]
{{AAA},{CAAA,DAAA},{AAA,ACAA,ADAA,CCAAA,CDAAA,DCAAA,DDAAA}}
MWEvolveList[tze2,{"AAA"},4]
{{AAA},{CAAA,DAAA},{AAA,ACAA,ADAA,CCAAA,CDAAA,DCAAA,DDAAA},{AACA,AADA,CAAA,CACAA,CADAA,CCCAAA,CCDAAA,CDCAAA,CDDAAA,DAAA,DACAA,DADAA,DCCAAA,DCDAAA,DDCAAA,DDDAAA},{AAA,AAAC,AAAD,ACAA,ACCAA,ACDAA,ADAA,ADCAA,ADDAA,CAACA,CAADA,CCAAA,CCACAA,CCADAA,CCCCAAA,CCCDAAA,CCDCAAA,CCDDAAA,CDAAA,CDACAA,CDADAA,CDCAEAA,CDCCAAA,CDCDAAA,CDDCAAA,CDDDAAA,DAACA,DAADA,DCAAA,DCACAA,DCADAA,DCCCAAA,DCCDAAA,DCDCAAA,DCDDAAA,DDAAA,DDACAA,DDADAA,DDCCAAA,DDCDAAA,DDDCAAA,DDDDAAA}}
StringToInteger[s_,k_:2]:=FromDigits[Prepend[Characters[s]/.{"A"0,"B"1},1],2]
StringToInteger[s_,k_:2]:=FromDigits[Prepend[Characters[s]/.{"A"0,"B"1,"C"2,"D"3,"E"4},1],5]
XMWUPositionData[tze2,{"AAA"},10,6];
ListPlot[%];
XMWUPositionData[tze2,{"AAA"},15,6];
ListPlot[%];
XMWUPositionData[tze2,{"AAA"},25,6];
LinkObject::linkd:LinkObject[.\MultiwaySystems\mwlink.exe\Windows\mwlink.exe,7,3] is closed; the connection is dead.
Flatten::normal:Nonatomic expression expected at position 1 in Flatten[$Failed,1].
Length/@MWEvolveList[tze2,{"AAA"},8]
{1,2,7,16,42,92,216,470,1051}
etze2=MWEvolveList[tze2,{"AAA"},8];
Take[Sort[{StringLength[#],#}&/@Last[etze2]],10]
{{3,AAA},{4,AAAC},{4,AAAD},{4,ACAA},{4,ADAA},{5,AAACC},{5,AAACD},{5,AAADC},{5,AAADD},{5,AACCA}}
Complement[Last/@%29,Flatten[Drop[etze2,-1]]]
{AAACC,AAACD,AAADC,AAADD}
The following doesn't work now:
XMWUEvolveList[tze2,{"AAA"},4]