Function Repository Resource:

CausalConnectionGraph

Generate a graph giving the relations between regions of causally equivalent events in a causal graph

Contributed by: Stephen Wolfram with Jonathan Gorard and Max Piskunov
 ResourceFunction["CausalConnectionGraph"][cgf,ti,tf] generates a graph of relations between causally equivalent regions that are detected at step ti in the causal graph generated by cgf, as determined by outcomes at step tf. ResourceFunction["CausalConnectionGraph"][cgf,{ti1,ti2},{tf1,tf2}] considers regions detected between steps ti1 and ti2, with outcomes determined by looking at steps tf1 through tf2. ResourceFunction["CausalConnectionGraph"][cg,{vi1,…},{vf1,…}] generates the causal connection graph from the causal graph cg by considering causally equivalent regions among the event nodes vik, as determined by looking at the event nodes vfk. ResourceFunction["CausalConnectionGraph"][c,i,f,"Full"] gives the full causal connection graph for every event, not aggregating causally equivalent events.

Details and Options

If the future light cone of A contains the future light cone of B, then there is a directed edge from A to B in the resulting graph.
If the future light cone of A intersects the future light cone of B, but neither contains the other, then there is an undirected edge between A and B in the resulting graph.
Typical forms for the causal graph generator include:
 ResourceFunction[“SubstitutionSystemCausalGraph”][rules,init, #] & string substitution system ResourceFunction[“WolframModel”][rules,init, #, “CausalGraph”] & Wolfram model
ResourceFunction["CausalConnectionGraph"] takes the same options as Graph.

Examples

Basic Examples (2)

Generate a causal graph:

 In[1]:=
 Out[1]=

Find the causal connection graph for events at step 3 (there are just two "subuniverses" in this case):

 In[2]:=
 Out[2]=

Find the corresponding result for events at step 5:

 In[3]:=
 Out[3]=

Generate the causal connection graph for a “black hole”, where the future of a1 contains the future of a2, but not the other way around:

 In[4]:=
 Out[4]=
 In[5]:=
 Out[5]=

Scope (2)

Cases with undirected edges:

 In[6]:=
 Out[6]=
 In[7]:=
 Out[7]=

Another example:

 In[8]:=
 Out[8]=
 In[9]:=
 Out[9]=

Version History

• 1.0.0 – 20 May 2020