Causal Invariance ! Confluence
Causal Invariance ! Confluence
Causal Invariance all causal graphs are isomorphic (not clear what it means for infinite graphs, but let’s only look at terminating systems)
Confluence all branches merge (there exists an evolution path that merges the branches)
The following system is causal invariant. There are two causal graphs possible (they both consist of a single event):
In[]:=
WolframModel[{{{1}}{{1,2}},{{1}}{{1,2,3}}},{{1}},Infinity,"EventOrderingFunction"#]["CausalGraph",ImageSize100]&/@{"RuleIndex","ReverseRuleIndex"}
Out[]=
,
In[]:=
IsomorphicGraphQ@@%
Out[]=
True
It however is not confluent, because the two branches never merge, the final state is not unique.
In[]:=
WolframModel[{{{1}}{{1,2}},{{1}}{{1,2,3}}},{{1}},Infinity,"EventOrderingFunction"#]["FinalStatePlot"]&/@{"RuleIndex","ReverseRuleIndex"}
Out[]=
,
Expressions-events graph to further explain what is happening (not available yet, use SHA bac61cf):
In[]:=
WolframModel[{{{1}}{{1,2}},{{1}}{{1,2,3}}},{{1}},Infinity,"EventSelectionFunction"None]["ExpressionsEventsGraph",VertexLabelsPlaced[Automatic,After],ImageSize200]
Out[]=
PS. If we require the causal graphs to be equal, not isomorphic, that would imply confluence. It would also imply the system is non-overlapping (there is no branching at all).
Confluence ! Causal Invariance
Confluence ! Causal Invariance
The following system is confluent:
In[]:=
ResourceFunction["MultiwaySystem"]["WolframModel"{{{1,2,3,4,5}}{{1,2,3,4}},{{1,2,3,4}}{{1}},{{1,2,3,4,5}}{{1,2,3}},{{1,2,3}}{{1,2}},{{1,2}}{{1}}},{{{1,2,3,4,5}}},3,"StatesGraphStructure",VertexLabelsAutomatic]
Out[]=
It, however, is not causal invariant:
In[]:=
WolframModel[{{{1,2,3,4,5}}{{1,2,3,4}},{{1,2,3,4}}{{1}},{{1,2,3,4,5}}{{1,2,3}},{{1,2,3}}{{1,2}},{{1,2}}{{1}}},{{1,2,3,4,5}},Infinity,"EventOrderingFunction"#]["CausalGraph",ImageSize100]&/@{"RuleIndex","ReverseRuleIndex"}
Out[]=
{
,
}
In[]:=
IsomorphicGraphQ@@%
Out[]=
False