In[]:=
Reverse[{CenterDot[a,CenterDot[b,c]]==CenterDot[CenterDot[a,b],c],CenterDot[a,b]==CenterDot[b,a]}]
Out[]=
{a·bb·a,a·(b·c)(a·b)·c}
In[]:=
{RuleDelayed@@#,ReverseApplied[RuleDelayed]@@#}&/@%
Out[]=
{{a·bb·a,b·aa·b},{a·(b·c)(a·b)·c,(a·b)·ca·(b·c)}}
In[]:=
Flatten[%]
Out[]=
{a·bb·a,b·aa·b,a·(b·c)(a·b)·c,(a·b)·ca·(b·c)}
In[]:=
ResourceFunction["MultiwayOperatorSystem"][{a_·b_b·a,a_·(b_·c_)(a·b)·c,(a_·b_)·c_a·(b·c)},(y·(x·(y·x))),3]
Out[]=
{{CenterDot[y, CenterDot[x, CenterDot[y, x]]]},{CenterDot[CenterDot[x, CenterDot[y, x]], y],CenterDot[CenterDot[y, x], CenterDot[y, x]],CenterDot[y, CenterDot[CenterDot[x, y], x]],CenterDot[y, CenterDot[CenterDot[y, x], x]],CenterDot[y, CenterDot[x, CenterDot[x, y]]]},{CenterDot[CenterDot[CenterDot[x, y], x], y],CenterDot[CenterDot[CenterDot[y, x], x], y],CenterDot[CenterDot[CenterDot[y, x], y], x],CenterDot[CenterDot[x, CenterDot[x, y]], y],CenterDot[CenterDot[x, y], CenterDot[y, x]],CenterDot[CenterDot[y, CenterDot[x, y]], x],CenterDot[CenterDot[y, CenterDot[y, x]], x],CenterDot[CenterDot[y, x], CenterDot[x, y]],CenterDot[CenterDot[y, x], CenterDot[y, x]],CenterDot[x, CenterDot[CenterDot[y, x], y]],CenterDot[y, CenterDot[CenterDot[x, x], y]],CenterDot[y, CenterDot[CenterDot[x, y], x]],CenterDot[y, CenterDot[CenterDot[y, x], x]],CenterDot[y, CenterDot[x, CenterDot[x, y]]],CenterDot[y, CenterDot[x, CenterDot[y, x]]],CenterDot[y, CenterDot[y, CenterDot[x, x]]]},{CenterDot[CenterDot[CenterDot[x, x], y], y],CenterDot[CenterDot[CenterDot[x, y], x], y],CenterDot[CenterDot[CenterDot[x, y], y], x],CenterDot[CenterDot[CenterDot[y, x], x], y],CenterDot[CenterDot[CenterDot[y, x], y], x],CenterDot[CenterDot[CenterDot[y, y], x], x],CenterDot[CenterDot[x, CenterDot[x, y]], y],CenterDot[CenterDot[x, CenterDot[y, x]], y],CenterDot[CenterDot[x, y], CenterDot[x, y]],CenterDot[CenterDot[x, y], CenterDot[y, x]],CenterDot[CenterDot[y, CenterDot[x, x]], y],CenterDot[CenterDot[y, CenterDot[x, y]], x],CenterDot[CenterDot[y, CenterDot[y, x]], x],CenterDot[CenterDot[y, x], CenterDot[x, y]],CenterDot[CenterDot[y, x], CenterDot[y, x]],CenterDot[CenterDot[y, y], CenterDot[x, x]],CenterDot[x, CenterDot[CenterDot[x, y], y]],CenterDot[x, CenterDot[CenterDot[y, x], y]],CenterDot[x, CenterDot[y, CenterDot[x, y]]],CenterDot[x, CenterDot[y, CenterDot[y, x]]],CenterDot[y, CenterDot[CenterDot[x, x], y]],CenterDot[y, CenterDot[CenterDot[x, y], x]],CenterDot[y, CenterDot[CenterDot[y, x], x]],CenterDot[y, CenterDot[x, CenterDot[x, y]]],CenterDot[y, CenterDot[x, CenterDot[y, x]]],CenterDot[y, CenterDot[y, CenterDot[x, x]]]}}
In[]:=
Graph[ResourceFunction["MultiwayOperatorSystem"][{a_·b_b·a,a_·(b_·c_)(a·b)·c,(a_·b_)·c_a·(b·c)},(y·(x·(y·x))),3,"StatesGraph"],GraphLayout->"LayeredDigraphEmebdding"]
Out[]=
Graph
In[]:=
Graph[ResourceFunction["MultiwayOperatorSystem"][{a_·b_b·a,a_·(b_·c_)(a·b)·c,(a_·b_)·c_a·(b·c)},(y·(x·(y·x))),3,"StatesGraph"],GraphLayout"LayeredDigraphEmbedding"]
Out[]=
In[]:=
UndirectedGraph[%]
Out[]=
In[]:=
Graph
,GraphLayout"LayeredDigraphEmbedding"
Out[]=
ResourceFunction["MultiwayOperatorSystem"][{a_·b_b·a,a_·(b_·c_)(a·b)·c,(a_·b_)·c_a·(b·c)},(y·(x·(y·x))),3,"StatesGraph"]
In[]:=
Graph[ResourceFunction["MultiwayOperatorSystem"][{a_·(b_·c_)(a·b)·c,(a_·b_)·c_a·(b·c)},(y·(x·(y·x))),3,"StatesGraph"],GraphLayout"LayeredDigraphEmbedding"]
Out[]=
In[]:=
Magnify[UndirectedGraph[ResourceFunction["MultiwayOperatorSystem"][{a_·b_b·a,a_·(b_·c_)(a·b)·c,(a_·b_)·c_a·(b·c)},(y·(x·(y·x))),3,"StatesGraph"],GraphLayout"LayeredDigraphEmbedding"],.75]