Uninstall[l]
FM32a151e2
l=LinkCreate[]
LinkObject[FM32a15827,2,2]
Install[l]
LinkObject[FM32a15827,2,2]
urule={{4{1,2,3}}{4{1,5,6},5{2,4,6},6{3,4,5}}};
tetra={1{2,3,4},2{1,3,4},3{1,2,4},4{1,2,3}};
UEvolve[urule,tetra,4]
{{1,1,1,1},{4,6,8,10,12},{1{2,11,12},2{1,3,4},3{5,2,4},4{6,2,3},5{3,7,6},6{4,8,5},7{5,9,8},8{6,10,7},9{7,11,10},10{8,12,9},11{9,1,12},12{10,1,11}}}
UEvolveList[urule,tetra,4]
{{1,1,1,1},{{1{2,3,4},2{1,3,4},3{1,2,4},4{1,2,3}},{1{2,5,6},2{1,3,4},3{5,2,4},4{6,2,3},5{3,1,6},6{4,1,5}},{1{2,7,8},2{1,3,4},3{5,2,4},4{6,2,3},5{3,7,6},6{4,8,5},7{5,1,8},8{6,1,7}},{1{2,9,10},2{1,3,4},3{5,2,4},4{6,2,3},5{3,7,6},6{4,8,5},7{5,9,8},8{6,10,7},9{7,1,10},10{8,1,9}},{1{2,11,12},2{1,3,4},3{5,2,4},4{6,2,3},5{3,7,6},6{4,8,5},7{5,9,8},8{6,10,7},9{7,11,10},10{8,12,9},11{9,1,12},12{10,1,11}}}}
prob=UEvolveList[urule,tetra,4]
{{1,1,1,1},{{1{2,3,4},2{1,3,4},3{1,2,4},4{1,2,3}},{1{2,5,6},2{1,3,4},3{5,2,4},4{6,2,3},5{3,1,6},6{4,1,5}},{1{2,7,8},2{1,3,4},3{5,2,4},4{6,2,3},5{3,7,6},6{4,8,5},7{5,1,8},8{6,1,7}},{1{2,9,10},2{1,3,4},3{5,2,4},4{6,2,3},5{3,7,6},6{4,8,5},7{5,9,8},8{6,10,7},9{7,1,10},10{8,1,9}},{1{2,11,12},2{1,3,4},3{5,2,4},4{6,2,3},5{3,7,6},6{4,8,5},7{5,9,8},8{6,10,7},9{7,11,10},10{8,12,9},11{9,1,12},12{10,1,11}}}}
Length[Last[prob]]
5
Show[NeighborsPicture[Last[Last[prob]]]];
UEvolve[urule,tetra,6]
{{1,1,1,1,1,1},{4,6,8,10,12,14,16},{1{2,15,16},2{1,3,4},3{5,2,4},4{6,2,3},5{3,7,6},6{4,8,5},7{5,9,8},8{6,10,7},9{7,11,10},10{8,12,9},11{9,13,12},12{10,14,11},13{11,15,14},14{12,16,13},15{13,1,16},16{14,1,15}}}
asym={1{2,8,7},2{3,11,1},3{2,11,4},4{3,12,5},5{4,12,6},6{5,9,7},7{6,8,1},8{1,7,9},9{6,8,10},10{9,11,12},11{2,3,10},12{4,5,10}};
asymProb=UEvolve[urule,asym,5]
{{1,1,1,1,1},{12,14,16,18,20,22},{1{2,21,22},2{3,11,1},3{2,11,4},4{3,12,5},5{4,12,6},6{5,9,7},7{6,8,14},8{13,7,9},9{6,8,10},10{9,11,12},11{2,3,10},12{4,5,10},13{8,15,14},14{7,16,13},15{13,17,16},16{14,18,15},17{15,19,18},18{16,20,17},19{17,21,20},20{18,22,19},21{19,1,22},22{20,1,21}}}
Show[NeighborsPicture[Last[asymProb]]];
FileNames[]
{MLMain.c,mlmain.obj,mprep.exe,rulelist-2.m,rulelist.m,ShortestPaths.nb,SmallSubs,SmallSubs.c,SmallSubs.out,TestPrint.nb,Universe-1a.nb,Universe-2.nb,Universe-Init-2.nb,Universe-Init.nb,UniverseLink,UniverseLink.bak,UniverseLink.c,UniverseLink.csm,universelink.exe,universelink.obj,UniverseLink.tm,UniverseLink.tm.c,UniverseLinktm.c,universelinktm.obj,Universe.nb}
<<rulelist-2.m;
allrules=%;
Length[allrules]
36
?TrivalentQ
Global`TrivalentQ
TrivalentQ[g_]:=Module[{nodes},nodes=Sort[List@@First/@g];Sort[Flatten[Apply[List,Last/@g,{0,1}]]]===Sort[Flatten[{nodes,nodes,nodes}]]]
TrivalentQ/@Last[asymEv36]
{True,True,True,True,True,True}
ruleOut[n_]:=UEvolveList[Map[#1+1&,allrules〚n〛,{-1}],asym,5]
ruleMovie[n_,t_,g_:asym]:=Show[NeighborsPicture[#,{#[[1,1]]}]]&/@Last[UEvolveList[Map[(#+1)&,allrules[[n]],{-1}],g,t]]
checkRule[n_,t_,g_:asym]:=TrivalentQ/@Last[UEvolveList[Map[(#+1)&,allrules[[n]],{-1}],g,t]]
(And@@checkRule[#1,10]&)/@Range[36]
{True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True}
ruleMovie[1,10]