In[]:=
rule=MultiwaySystem[x_+y_:>x+y/;True,Unevaluated[a+b]]
Out[]=
MultiwaySystem
In[]:=
rule["TokenEventGraph",1]
Out[]=
In[]:=
Graph[rule["TokenEventGraph",1],VertexShapeFunction->_DirectedEdge->Automatic,VertexSize->_DirectedEdge->.2]
Out[]=
{{i_,Plus,j_,k_},{j_,x_},{k_,y_}}->{{i,x+y}}
In[]:=
res=MultiwaySystem[x_Integer+y_Integer:>x+y/;True,Unevaluated[1+(2+3)]]
Out[]=
MultiwaySystem
In[]:=
Graph[res["TokenEventGraph",4],VertexShapeFunction->_DirectedEdge->Automatic,VertexSize->_DirectedEdge->.2]
Out[]=
In[]:=
res=MultiwaySystem[x_Integer+y_Integer:>x+y/;True,Unevaluated[(1+(2+2))+(3+4)]]
Out[]=
MultiwaySystem
In[]:=
Graph[res["TokenEventGraph",4],VertexShapeFunction->_DirectedEdge->Automatic,VertexSize->_DirectedEdge->.2]
Out[]=
In[]:=
SimpleGraph[Graph[res["TokenEventGraph",4,"CanonicalEventFunction"->Automatic],VertexShapeFunction->_DirectedEdge->Automatic,VertexSize->_DirectedEdge->.2]]
Out[]=
In[]:=
SimpleGraph[Graph[res["TokenEventGraph",4,"CanonicalEventFunction"->Automatic,"CausalEdges"->True],EdgeLabels->DirectedEdge[from_DirectedEdge,to_DirectedEdge]:>Intersection[from[[3]]["Output"],to[[3]]["Input"]],VertexShapeFunction->_DirectedEdge->Automatic,VertexSize->_DirectedEdge->.2]]
Out[]=
In[]:=
SimpleGraph[Graph[res["TokenEventGraph",4,"CausalEdges"->True],EdgeLabels->DirectedEdge[from_DirectedEdge,to_DirectedEdge]:>Intersection[from[[3]]["Output"],to[[3]]["Input"]],VertexShapeFunction->_DirectedEdge->Automatic,VertexSize->_DirectedEdge->.2]]
Out[]=