In[]:=
ListPlot3D[Reverse/@PadRight[CombinatorDepthGraphic[SKFixedPointEvolveList[times[integer[3]][integer[2]][s][k]]]],ColorFunction"Rainbow",MeshFunctions{#3&}]
Out[]=
In[]:=
NestList[SKStep,s[s][k][s[s[s]][s]][s],10]
Out[]=
{s[s][k][s[s[s]][s]][s],s[s[s[s]][s]][k[s[s[s]][s]]][s],s[s[s]][s][s][k[s[s[s]][s]][s]],s[s][s][s[s]][k[s[s[s]][s]][s]],s[s[s]][s[s[s]]][k[s[s[s]][s]][s]],s[s][k[s[s[s]][s]][s]][s[s[s]][k[s[s[s]][s]][s]]],s[s[s[s]][k[s[s[s]][s]][s]]][k[s[s[s]][s]][s][s[s[s]][k[s[s[s]][s]][s]]]],s[s[s[s]][k[s[s[s]][s]][s]]][s[s[s]][s][s[s[s]][k[s[s[s]][s]][s]]]],s[s[s[s]][k[s[s[s]][s]][s]]][s[s][s[s[s]][k[s[s[s]][s]][s]]][s[s[s[s]][k[s[s[s]][s]][s]]]]],s[s[s[s]][k[s[s[s]][s]][s]]][s[s[s[s[s]][k[s[s[s]][s]][s]]]][s[s[s]][k[s[s[s]][s]][s]][s[s[s[s]][k[s[s[s]][s]][s]]]]]],s[s[s[s]][k[s[s[s]][s]][s]]][s[s[s[s[s]][k[s[s[s]][s]][s]]]][s[s][s[s[s[s]][k[s[s[s]][s]][s]]]][k[s[s[s]][s]][s][s[s[s[s]][k[s[s[s]][s]][s]]]]]]]}
In[]:=
SKMatches/@%
Out[]=
{{{0}},{{}},{{0},{1}},{{0},{1}},{{1},{}},{{0,1},{1,1},{}},{{0,1,1},{1,0},{1,1,1}},{{0,1,1},{1,1,1},{1}},{{0,1,1},{1,0,1,1},{1,1,1,1},{1}},{{0,1,1},{1,0,1,1,1},{1,1,0,1},{1,1,1,1,1},{1,1}},{{0,1,1},{1,0,1,1,1},{1,1,0,1,1,1},{1,1,1,0},{1,1,1,1,1,1},{1,1}}}
In[]:=
%39[[6]]
Out[]=
s[s][k[s[s[s]][s]][s]][s[s[s]][k[s[s[s]][s]][s]]]
In[]:=
Position[%,_]
Out[]=
{{0,0,0},{0,0,1},{0,0},{0,1,0,0},{0,1,0,1,0,0},{0,1,0,1,0,1,0},{0,1,0,1,0,1,1},{0,1,0,1,0,1},{0,1,0,1,0},{0,1,0,1,1},{0,1,0,1},{0,1,0},{0,1,1},{0,1},{0},{1,0,0},{1,0,1,0},{1,0,1,1},{1,0,1},{1,0},{1,1,0,0},{1,1,0,1,0,0},{1,1,0,1,0,1,0},{1,1,0,1,0,1,1},{1,1,0,1,0,1},{1,1,0,1,0},{1,1,0,1,1},{1,1,0,1},{1,1,0},{1,1,1},{1,1},{1},{}}
In[]:=
SKMatchLeafSpan[expr_,part_]:=MinMax[Position[Position[expr,_],Append[part,___]]]
In[]:=
SKMatches[s[s][k[s[s[s]][s]][s]][s[s[s]][k[s[s[s]][s]][s]]]]
Out[]=
{{0,1},{1,1},{}}
In[]:=
Position[s[s][k[s[s[s]][s]][s]][s[s[s]][k[s[s[s]][s]][s]]],_[_]]
Out[]=
{{0,0},{0,1,0,1,0,1},{0,1,0,1,0},{0,1,0,1},{0,1,0},{0,1},{0},{1,0,1},{1,0},{1,1,0,1,0,1},{1,1,0,1,0},{1,1,0,1},{1,1,0},{1,1},{1},{}}
In[]:=
SKMatches[s[s][k[s[s[s]][s]][s]][s[s[s]][k[s[s[s]][s]][s]]]]
Out[]=
{{0,1},{1,1},{}}
In[]:=
MinMax[SKMatchLeafPosition[s[s][k[s[s[s]][s]][s]][s[s[s]][k[s[s[s]][s]][s]]],{0,1}]]
Out[]=
{4,14}
In[]:=
SKMatchLeafSpan[#,First[Sort[SKMatches[#]]]]&/@SKEvolveList[s[s][s][s[s]][s][s],15]
Out[]=
{{1,9},{1,13},{1,13},{1,21},{1,9},{1,9},{1,23},{1,33},{20,48},{20,44},{20,60},{20,98},{20,116},{20,94},{20,150},{20,296}}
In[]:=
Graphics[MapIndexed[Line[{{#2[[1]],#[[1]]},{#2[[1]],#[[2]]}}]&,%]]
In[]:=
SKSpannedSizePlot[evol_]:=Show[ListLinePlot[(3LeafCount[#]-2)&/@evol],Graphics[MapIndexed[Line[{{#2[[1]],#[[1]]},{#2[[1]],#[[2]]}}]&,SKMatchLeafSpan[#,First[Sort[SKMatches[#]]]]&/@evol]]]
In[]:=
SKSpannedSizePlot[SKEvolveList[s[s][s][s[s]][s][s],15]]
Out[]=
In[]:=
SKSpannedSizePlot[SKEvolveList[s[s][s][s[s]][s][s],30]]
Out[]=
In[]:=
SKSpannedSizePlot[SKEvolveList[s[s][s][s[s]][s][s],50]]
Out[]=
In[]:=
SKEvolveList[s[s][s][s[s]][s][s],7]
Out[]=
{s[s][s][s[s]][s][s],s[s[s]][s[s[s]]][s][s],s[s][s][s[s[s]][s]][s],s[s[s[s]][s]][s[s[s[s]][s]]][s],s[s[s]][s][s][s[s[s[s]][s]][s]],s[s][s][s[s]][s[s[s[s]][s]][s]],s[s[s]][s[s[s]]][s[s[s[s]][s]][s]],s[s][s[s[s[s]][s]][s]][s[s[s]][s[s[s[s]][s]][s]]]}
In[]:=
{Length[Position[#,_]],LeafCount[#]}&/@%
Out[]=
{{13,7},{15,8},{15,8},{21,11},{21,11},{21,11},{23,12},{33,17}}
In[]:=
LeafCount[s[s][s][s[s]][s][s]]
Out[]=
7
In[]:=
StringLength[ToString[s[s][s][s[s]][s][s]]]
Out[]=
19
In[]:=
AllCombinators[4]
Depth indicators
Depth indicators
Updating
Updating
Multiway Cases
Multiway Cases
Size 7
Size 7
Look for dangling ends.....
Look for dangling ends.....
Make larger LeafCount nodes larger, and a different color..... [[ indicate “still active” nodes, vs. terminated ones ]]
Make larger LeafCount nodes larger, and a different color..... [[ indicate “still active” nodes, vs. terminated ones ]]