In[]:=
MultiwaySystem[{"A""AB","B""A"},"A",4,"CriticalPairs"]
Out[]=
{{AA,ABB},{AAB,ABA},{AAB,ABBB},{ABA,ABBB},{AAA,AABB},{AAA,ABAB},{AABB,ABAB},{AAA,ABBA},{ABAB,ABBA},{AABB,ABBA},{AABB,ABBBB},{ABAB,ABBBB},{ABBA,ABBBB}}
In[]:=
Table[MultiwaySystem[{"A""AB","B""A"},"A",t,"CriticalPairs"],{t,5}]
Out[]=
In[]:=
Graph[UndirectedEdge@@@Catenate[%]]
Out[]=
In[]:=
Graph[UndirectedEdge@@@Catenate[Table[MultiwaySystem[{"A""AB","B""A"},"A",t,"CriticalPairs"],{t,8}]]]
Out[]=
In[]:=
Graph[UndirectedEdge@@@#]&/@Table[MultiwaySystem[{"A""AB","B""A"},"A",t,"CriticalPairs"],{t,7}]
Out[]=
We can also compute the branchial graph of the multiway causal network
In[]:=
MultiwaySystem[{"A""AB","B""A"},"A",5,"EvolutionGraph"]//LayeredGraphPlot
Out[]=
In[]:=
{"A""AB","B""A"}
Out[]=
{AAB,BA}
In[]:=
MultiwaySystem[{"A""AB","B""A"},"A",5,"CriticalPairs"]
Out[]=
In[]:=
MultiwaySystem[{"A""AB","B""A"},"A",4,"UnresolvedCriticalPairs"]
Out[]=
{{AAA,AABB},{AAA,ABAB},{AABB,ABAB},{AAA,ABBA},{ABAB,ABBA},{AABB,ABBA},{AABB,ABBBB},{ABAB,ABBBB},{ABBA,ABBBB}}
In[]:=
MultiwaySystem[{"A""AB","B""A"},"A",5]
Out[]=
{{A},{AB},{AA,ABB},{AAB,ABA,ABBB},{AAA,AABB,ABAB,ABBA,ABBBB},{AAAB,AABA,AABBB,ABAA,ABABB,ABBAB,ABBBA,ABBBBB}}
In[]:=
{{"AAA","AABB"},{"AAA","ABAB"},{"AABB","ABAB"},{"AAA","ABBA"},{"ABAB","ABBA"},{"AABB","ABBA"},{"AABB","ABBBB"},{"ABAB","ABBBB"},{"ABBA","ABBBB"}}
Out[]=
{{AAA,AABB},{AAA,ABAB},{AABB,ABAB},{AAA,ABBA},{ABAB,ABBA},{AABB,ABBA},{AABB,ABBBB},{ABAB,ABBBB},{ABBA,ABBBB}}
getEventRenderingFunction["ListSubstitutionSystem",Automatic]:=​​ Text[Framed[Style[getEventRenderingForm[Row,stripMetadata[#2]],Black],FrameMargins->None,​​ FrameStyle->Directive[Opacity[.2],Blue],Background->Directive[Opacity[.1],Blue]],#1,{0,0}]&
getStateRenderingFunction["StringSubstitutionSystem",Automatic]:=Text[Framed[Style[stripMetadata[#2],Black],​​ FrameMargins->None,FrameStyle->Directive[Opacity[.4],Gray],Background->Directive[Opacity[.2],Gray]],​​ #1,{0,0}]&
In[]:=
StateBranchialGraph[rule_,init_,t_]:=Graph[UndirectedEdge@@@MultiwaySystem[{"A""AB","B""A"},"A",t,"UnresolvedCriticalPairs"],VertexShapeFunctionText[Framed[Style[#2,Black],​​ FrameMargins->None,FrameStyle->Directive[Opacity[.4],Gray],Background->Directive[Opacity[.2],Gray]],​​ #1,{0,0}]&]
In[]:=
Table[StateBranchialGraph[{"A""AB","B""A"},"A",t],{t,2,6}]
Out[]=
In[]:=
VertexDegree

Out[]=
{6,8,10,8,9,10,8,10,8,10,10,8,5}
In[]:=
TransitiveReductionGraph

Out[]=

Testing on Causal Invariant Rules

Role of weighting in branchial graphs

“Equal-time commutator in state branchial graphs”

Distance in string space corresponding to branchial state graphs

What is the induced string metric?

Can one characterize distances between states in the branchial state graph by complex numbers?

Events Branchial Graphs

Each complete graph is just the critical pairs with a given predecessor
Size of the event branchial graph is a measure of ambiguity at a particular stage.