In[]:=
Clear[f]
In[]:=
f[0]=f[1]=1;f[n_]:=f[n-1]+f[n-2]
In[]:=
ggx=TraceCausalGraph[f[7],"ShowIndices"->False,"ShowExpressions"->False,"ShowPositions"->False,"IncludeInitialEvent"->True,AspectRatio->1,VertexShapeFunction->Automatic,GraphLayout->"LayeredDigraphEmbedding"];
In[]:=
Show[ggx,Graphics[{Red,Thick,Arrowheads[{.02}],Arrow/@Partition[GraphEmbedding[ggx],2,1]}]]
Out[]=
In[]:=
f[0]=f[1]=1;f[n_]:=f[n]=f[n-1]+f[n-2]
In[]:=
Clear[f];f[0]=f[1]=1;f[n_]:=f[n]=f[n-1]+f[n-2];ggx=TraceCausalGraph[f[8],"ShowIndices"->False,"ShowExpressions"->False,"ShowPositions"->False,"IncludeInitialEvent"->True,AspectRatio->1,VertexShapeFunction->Automatic,GraphLayout->"LayeredDigraphEmbedding"]
Out[]=
In[]:=
Show[ggx,Graphics[{Red,Thick,Arrowheads[{.02}],Arrow/@Partition[GraphEmbedding[ggx],2,1]}]]
Out[]=
In[]:=
cg=TraceCausalGraph[(1+(2+2))+(3+4),"ShowIndices"->False,"ShowExpressions"->False,"ShowPositions"->False,"IncludeInitialEvent"->True,AspectRatio->1]
Out[]=
In[]:=
foliations=ResourceFunction["GraphFoliations"][cg,"IncludePermutations"->True];
In[]:=
With[{embedding=Thread[VertexList[cg]->GraphEmbedding[cg]]},Grid[Partition[Show[cg,Graphics[{Arrowheads[0.1],Thick,Red,If[Length[#]>1,{RegionBoundary@RegionDilation[Line[#],.1]}&,Circle[#,.1]&]@Lookup[embedding,#]&/@#}],ImageSize->Medium]&/@foliations,UpTo[5]]]]
Out[]=
In[]:=
foliations
Out[]=
(0HoldComplete[Missing[]])(1HoldComplete[(1+(2+2))+(3+4)]),(1HoldComplete[(1+(2+2))+(3+4)])(2HoldComplete[(1+4)+(3+4)]),(2HoldComplete[(1+4)+(3+4)])(3HoldComplete[5+(3+4)]),(3HoldComplete[5+(3+4)])(4HoldComplete[5+7]),(4HoldComplete[5+7])(5HoldComplete[12]),(0HoldComplete[Missing[]])(1HoldComplete[(1+(2+2))+(3+4)]),(1HoldComplete[(1+(2+2))+(3+4)])(2HoldComplete[(1+4)+(3+4)]),(3HoldComplete[5+(3+4)])(4HoldComplete[5+7]),(2HoldComplete[(1+4)+(3+4)])(3HoldComplete[5+(3+4)]),(4HoldComplete[5+7])(5HoldComplete[12])
{-1}{}
{}{1,2}
{1,2}{1}
{1}{2}
{2}{}
{-1}{}
{}{1,2}
{1}{2}
{1,2}{1}
{2}{}
In[]:=
allorders=Catenate/@Flatten[Tuples/@Map[Permutations,foliations,{2}],1];
In[]:=
Length[allorders]
Out[]=
4
In[]:=
allorders
Out[]=
(0HoldComplete[Missing[]])(1HoldComplete[(1+(2+2))+(3+4)]),(1HoldComplete[(1+(2+2))+(3+4)])(2HoldComplete[(1+4)+(3+4)]),(2HoldComplete[(1+4)+(3+4)])(3HoldComplete[5+(3+4)]),(3HoldComplete[5+(3+4)])(4HoldComplete[5+7]),(4HoldComplete[5+7])(5HoldComplete[12]),(0HoldComplete[Missing[]])(1HoldComplete[(1+(2+2))+(3+4)]),(1HoldComplete[(1+(2+2))+(3+4)])(2HoldComplete[(1+4)+(3+4)]),(3HoldComplete[5+(3+4)])(4HoldComplete[5+7]),(2HoldComplete[(1+4)+(3+4)])(3HoldComplete[5+(3+4)]),(4HoldComplete[5+7])(5HoldComplete[12]),(0HoldComplete[Missing[]])(1HoldComplete[(1+(2+2))+(3+4)]),(1HoldComplete[(1+(2+2))+(3+4)])(2HoldComplete[(1+4)+(3+4)]),(3HoldComplete[5+(3+4)])(4HoldComplete[5+7]),(2HoldComplete[(1+4)+(3+4)])(3HoldComplete[5+(3+4)]),(4HoldComplete[5+7])(5HoldComplete[12]),(0HoldComplete[Missing[]])(1HoldComplete[(1+(2+2))+(3+4)]),(3HoldComplete[5+(3+4)])(4HoldComplete[5+7]),(1HoldComplete[(1+(2+2))+(3+4)])(2HoldComplete[(1+4)+(3+4)]),(2HoldComplete[(1+4)+(3+4)])(3HoldComplete[5+(3+4)]),(4HoldComplete[5+7])(5HoldComplete[12])
{-1}{}
{}{1,2}
{1,2}{1}
{1}{2}
{2}{}
{-1}{}
{}{1,2}
{1}{2}
{1,2}{1}
{2}{}
{-1}{}
{}{1,2}
{1}{2}
{1,2}{1}
{2}{}
{-1}{}
{1}{2}
{}{1,2}
{1,2}{1}
{2}{}
Multiway
Multiway
[[ Standard evaluation is one path ]]
[ Is SMP evaluation a path ??? ]
Branchlike
Branchlike
Strange dependency for sequences.......
Foliations and the Definition of Time
Foliations and the Definition of Time