{"A""AA","A""B"},{"A""AB","A""B"}
CausalInvariantQ[{"A""AB","B""A"},"A",1]
In[]:=
True
Out[]=
CausalInvariantQ[{"A""AB","A""B"},"AA",3]
In[]:=
False
Out[]=
MultiwaySystem[{"A""AA","A""B"},"A",4,"CriticalPairsList"]
In[]:=
Out[]=
MultiwaySystem[{"A""AA","A""B"},"A",4,"KnuthBendixCompletion"]
In[]:=
{BAA,AAB}
Out[]=
​
MultiwaySystem[{"A""AA","A""B","B""AA","AA""B"},"A",4,"CriticalPairsList"]
In[]:=
Out[]=
{Length[#Resolved],Length[#Unresolved]}&/@MultiwaySystem[{"A""AA","A""B"},"A",4,"CriticalPairsList"]
In[]:=
{{0,1},{4,1},{11,1},{32,1}}
Out[]=
PairRates[rule_,init_,t_]:={Length[#Resolved],Length[#Unresolved]}&/@MultiwaySystem[rule,init,t,"CriticalPairsList"]
In[]:=
EnumerateSubstitutionSystemRules[{12},2]
In[]:=
{{AAA},{AAB},{ABB}}
Out[]=
{#,PairRates[#,"A",4]}&/@EnumerateSubstitutionSystemRules[{12},2]
In[]:=
{{{AAA},{{0,0},{0,0},{0,0},{0,0}}},{{AAB},{{0,0},{0,0},{0,0},{0,0}}},{{ABB},{{0,0},{0,0},{0,0},{0,0}}}}
Out[]=
{#,PairRates[#,"A",4]}&/@EnumerateSubstitutionSystemRules[{12,11},2]
In[]:=
Out[]=
ParallelMapMonitored[{#,PairRates[#,"AA",4]}&,EnumerateSubstitutionSystemRules[{12,11},2]]
In[]:=
Out[]=
PairRates[{"A""AB","B""A"},"AA",8]
In[]:=
{{0,1},{6,0},{22,0},{66,0},{174,0},{420,0},{951,0},{2053,0}}
Out[]=
First/@%475
In[]:=
{0,18,34,61,89,126,165,214}
Out[]=
FindSequenceFunction[%,n]
In[]:=
FindSequenceFunction[{0,18,34,61,89,126,165,214},n]
Out[]=
Differences[{0,18,34,61,89,126,165,214}]
In[]:=
{18,16,27,28,37,39,49}
Out[]=
Differences[%]
In[]:=
{-2,11,1,9,2,10}
Out[]=
PairRates[{"A""AB","B""A"},"A",10]
In[]:=
{{0,0},{1,0},{4,0},{13,0},{36,0},{91,0},{215,0},{483,0},{1043,0},{2182,0}}
Out[]=
First/@%
In[]:=
{0,1,4,13,36,91,215,483,1043,2182}
Out[]=
Ratios[%485]//N
In[]:=
Divide
:Infinite expression
1
0
encountered.
{ComplexInfinity,4.,3.25,2.76923,2.52778,2.36264,2.24651,2.15942,2.09204}
Out[]=
FindSequenceFunction[%,t]
In[]:=
FindSequenceFunction[{0,1,4,13,36,91,215,483,1043,2182},t]
Out[]=
PairRates[{"A""AB","A""B"},"AA",8]
In[]:=
{{0,6},{18,1},{34,4},{61,2},{89,5},{126,5},{165,9},{214,9}}
Out[]=
MultiwaySystem[{"A""AB","A""B"},"A",5,"CriticalPairsList"]
In[]:=
Out[]=
PairRates[{"A""AB","A""B"},"A",6]
In[]:=
{{0,1},{1,1},{1,2},{2,2},{2,3},{3,3}}
Out[]=
MultiwaySystem[{"A""AB","A""B"},"A",6,"StatesGraph"]//LayeredGraphPlot
In[]:=
Out[]=
MultiwaySystem[{"A""AB","A""B","B""AB"},"A",5,"StatesGraph"]
In[]:=
Out[]=
MultiwaySystem[{"A""AB","A""B"},"A",6,"KnuthBendixCompletion"]
In[]:=
{ABB,BAB,ABBBB,BBABB,ABBBBBB,BBBABBB}
Out[]=
MultiwaySystem[{"A""BB","A""B"},"A",6,"StatesGraph"]//LayeredGraphPlot
In[]:=
Out[]=
PairRates[{"A""AA","A""B"},"A",6]
In[]:=
{{0,1},{4,1},{11,1},{32,1},{78,3},{186,3}}
Out[]=
PairRates[{"A""AA","A""B"},"A",7]
In[]:=
{{0,1},{4,1},{11,1},{32,1},{78,3},{186,3},{410,3}}
Out[]=
PairRates[{"A""AA","A""B"},"A",8]
In[]:=
{{0,1},{4,1},{11,1},{32,1},{78,3},{186,3},{410,3},{869,3}}
Out[]=
PairRates[{"A""AA","A""B"},"A",9]
In[]:=
{{0,1},{4,1},{11,1},{32,1},{78,3},{186,3},{410,3},{869,3},{1795,6}}
Out[]=
MultiwaySystem[{"A""AA","A""B"},"A",5,"StatesGraph"]//LayeredGraphPlot
In[]:=
Out[]=
MultiwaySystem[{"A""AA","A""B"},"A",5,"KnuthBendixCompletion"]
In[]:=
{BAA,AAB,AABBB,BBAAB,BAABB,BBBAA}
Out[]=
MultiwaySystem[{"A""AA","A""B"},"A",6,"KnuthBendixCompletion"]
In[]:=
{BAA,AAB,AABBB,BBAAB,BAABB,BBBAA}
Out[]=
MultiwaySystem[{"A""AA","A""B"},"A",7,"KnuthBendixCompletion"]
In[]:=
{BAA,AAB,AABBB,BBAAB,BAABB,BBBAA}
Out[]=
These are irrelevant additional completions:
MultiwaySystem[{"A""AA","A""B"},"A",9,"KnuthBendixCompletion"]
In[]:=
{BAA,AAB,AABBB,BBAAB,BAABB,BBBAA,AABBBBB,BBBAABB,BAABBBB,BBBBAAB,BBBBBAA,BBAABBB}
Out[]=
MultiwaySystem[Join[{"A""AA","A""B"},{"B""AA","AA""B","AAB""BB","BB""AAB","BAA""BB","BB""BAA"}],"A",9,"KnuthBendixCompletion"]
In[]:=
{}
Out[]=
MultiwaySystem[Join[{"A""AA","A""B"},{"B""AA","AA""B","AAB""BB","BB""AAB","BAA""BB","BB""BAA"}],"A",5,"StatesGraph"]//LayeredGraphPlot
In[]:=
Out[]=
MultiwaySystem[Join[{"A""AA","A""B"},{"B""AA","AA""B","AAB""BB","BB""AAB","BAA""BB","BB""BAA"}],"A",7,"StatesGraphStructure"]
In[]:=
Out[]=
MultiwaySystem[Join[{"A""AA","A""B"},{"B""AA","AA""B","AAB""BB","BB""AAB","BAA""BB","BB""BAA"}],"A",3,"CausalGraphStructure"]
In[]:=
Out[]=
MultiwaySystem[Join[{"A""AA","A""B"},{"B""AA","AA""B","AAB""BB","BB""AAB","BAA""BB","BB""BAA"}],"A",4,"CausalGraphStructure"]
In[]:=
Out[]=
MultiwaySystem[Join[{"A""AA","A""B"},{"B""AA","AA""B","AAB""BB","BB""AAB","BAA""BB","BB""BAA"}],"A",7,"StatesGraphStructure"]
TotalCausalInvariantQ[Join[{"A""AA","A""B"},{"B""AA","AA""B","AAB""BB","BB""AAB","BAA""BB","BB""BAA"}],2]
In[]:=
True
Out[]=
PairRates[Join[{"A""AA","A""B"},{"B""AA","AA""B","AAB""BB","BB""AAB","BAA""BB","BB""BAA"}],"A",8]
In[]:=
{{0,1},{7,0},{26,0},{75,0},{197,0},{472,0},{1083,0},{2349,0}}
Out[]=
Subsets[{"B""AA","AA""B","AAB""BB","BB""AAB","BAA""BB","BB""BAA"}]
In[]:=
Out[]=
ParallelMapMonitored[TotalCausalInvariantQ[Join[{"A""AA","A""B"},#],1]&,%]
In[]:=
{False,True,False,False,False,False,False,False,False,True,False,True,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,True,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False}
Out[]=
ParallelMapMonitored[TotalCausalInvariantQ[Join[{"A""AA","A""B"},#],2]&,%252]
In[]:=
{False,True,False,False,False,False,False,True,True,True,True,True,False,False,False,False,False,False,False,False,False,False,True,True,True,True,True,True,True,True,True,True,False,False,False,False,False,False,False,False,False,False,True,True,True,True,True,True,True,True,True,True,False,False,False,False,False,True,True,True,True,True,False,True}
Out[]=
PairRates[Join[{"A""AA","A""B"},{"B""AA"}],"A",8]
In[]:=
{{0,1},{4,0},{15,0},{43,0},{113,0},{272,0},{627,0},{1383,0}}
Out[]=
MultiwaySystem[Join[{"A""AA","A""B"},{"B""AA"}],"A",5,"StatesGraph"]
In[]:=
Out[]=
MultiwaySystem[Join[{"A""AA","A""B"},{"B""AA"}],"A",9,"StatesGraphStructure"]
In[]:=
Out[]=
​
ParallelMapMonitored[{#,PairRates[#,"AA",4]}&,EnumerateSubstitutionSystemRules[{12,22},2]]
In[]:=
Out[]=
ParallelMapMonitored[{#,PairRates[#,"AA",6]}&,EnumerateSubstitutionSystemRules[{12,22},2]]
In[]:=
Out[]=
​
EnumerateSubstitutionSystemRules[{23,32},2];
In[]:=
Length[%]
In[]:=
272
Out[]=
ParallelMapMonitored[{#,PairRates[#,"AA",8]}&,EnumerateSubstitutionSystemRules[{23,32},2]]
In[]:=
Out[]=
TakeLargestBy[%,#[[-1,-1,-1]]&,10]
In[]:=
Out[]=
ParallelMapMonitored[{#,PairRates[#,StringTuples["AB",2],8]}&,EnumerateSubstitutionSystemRules[{23,32},2]]
In[]:=
Out[]=
TakeLargestBy[%,#[[-1,-1,-1]]&,10]
In[]:=
Out[]=
ParallelMapMonitored[{#,PairRates[#,StringTuples["AB",3],8]}&,EnumerateSubstitutionSystemRules[{23,32},2]]
In[]:=
Out[]=
TakeLargestBy[%,#[[-1,-1,-1]]&,10]
In[]:=
Out[]=
ParallelMapMonitored[{#,PairRates[#,StringTuples["AB",3],8]}&,EnumerateSubstitutionSystemRules[{23,21},2]]
In[]:=
Out[]=
TakeLargestBy[%,#[[-1,-1,-1]]&,10]
In[]:=
Out[]=
{"AA""AAA","AA""B"}
PairRates[{"AA""AAB","AA""B"},"AAA",8]
In[]:=
{{0,6},{7,6},{8,13},{17,13},{19,21},{30,21},{33,30},{46,30}}
Out[]=
MultiwaySystem[{"AA""AAB","AA""B"},"AAA",3,"CriticalPairsList"]
In[]:=
Out[]=
MultiwaySystem[{"AA""AAB","AA""B"},"AAA",1,"KnuthBendixCompletion"]
In[]:=
{AAABAABA,AABAAAAB,AAABAB,ABAAAB,AAABBA,BAAAAB,AABAAB,ABAABA,AABABA,BAAABA,ABBA,BAAB}
Out[]=
MultiwaySystem[{"AA""AAB","AA""B","AB""BA"},"AAA",3,"CriticalPairsList"]
In[]:=
Out[]=
MultiwaySystem[Join[{"AA""AAB","AA""B"},MultiwaySystem[{"AA""AAB","AA""B"},"AAA",1,"KnuthBendixCompletion"]],"AAA",3,"CriticalPairsList"]
In[]:=
Out[]=
PairRates[Join[{"AA""AAB","AA""B"},MultiwaySystem[{"AA""AAB","AA""B"},"AAA",1,"KnuthBendixCompletion"]],"AAA",5]
In[]:=
{{0,6},{69,0},{415,0},{2182,0},{9889,0}}
Out[]=
MultiwaySystem[{"AA""AAB","AA""B"},"AAA",1,"KnuthBendixCompletion"]
In[]:=
{AAABAABA,AABAAAAB,AAABAB,ABAAAB,AAABBA,BAAAAB,AABAAB,ABAABA,AABABA,BAAABA,ABBA,BAAB}
Out[]=
PairRates[Join[{"AA""AAB","AA""B"},{"AB""BA","BA""AB"}],"AAA",5]
In[]:=
{{0,6},{17,5},{43,15},{105,15},{180,32}}
Out[]=
ss=Subsets[{"AAAB""AABA","AABA""AAAB","AAAB""AB","AB""AAAB","AAAB""BA","BA""AAAB","AABA""AB","AB""AABA","AABA""BA","BA""AABA","AB""BA","BA""AB"},1];
In[]:=
ParallelMapMonitored[TotalCausalInvariantQ[Join[{"AA""AAB","AA""B"},#],3]&,ss]
In[]:=
{False,False,False,False,False,False,False,False,False,False,False,False,False}
Out[]=
ss=Subsets[{"AAAB""AABA","AABA""AAAB","AAAB""AB","AB""AAAB","AAAB""BA","BA""AAAB","AABA""AB","AB""AABA","AABA""BA","BA""AABA","AB""BA","BA""AB"},2];
In[]:=
ParallelMapMonitored[TotalCausalInvariantQ[Join[{"AA""AAB","AA""B"},#],3]&,ss]
In[]:=
{False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False}
Out[]=
ss=SortBy[Subsets[{"AAAB""AABA","AABA""AAAB","AAAB""AB","AB""AAAB","AAAB""BA","BA""AAAB","AABA""AB","AB""AABA","AABA""BA","BA""AABA","AB""BA","BA""AB"}],Length];
In[]:=
ParallelMapMonitored[TotalCausalInvariantQ[Join[{"AA""AAB","AA""B"},#],3]&,ss]
In[]:=
Out[]=
Counts[%]
In[]:=
False4096
Out[]=
TotalCausalInvariantQ[Join[{"AA""AAB","AA""B"},{"AAAB""AABA","AABA""AAAB","AAAB""AB","AB""AAAB","AAAB""BA","BA""AAAB","AABA""AB","AB""AABA","AABA""BA","BA""AABA","AB""BA","BA""AB"}],4]
In[]:=
False
Out[]=
PairRates[Join[{"AA""AAB","AA""B"},{"AAAB""AABA","AABA""AAAB","AAAB""AB","AB""AAAB","AAAB""BA","BA""AAAB","AABA""AB","AB""AABA","AABA""BA","BA""AABA","AB""BA","BA""AB"}],"AAA",3]
In[]:=
{{0,6},{69,0},{415,0}}
Out[]=
PairRates[Join[{"AA""AAB","AA""B"},{"AAAB""AABA","AABA""AAAB","AAAB""AB","AB""AAAB","AAAB""BA","BA""AAAB","AABA""AB","AB""AABA","AABA""BA","BA""AABA","AB""BA","BA""AB"}],"AAA",4]
In[]:=
{{0,6},{69,0},{415,0},{2182,0}}
Out[]=
ss=Subsets[{"AAAB""AABA","AABA""AAAB","AAAB""AB","AB""AAAB","AAAB""BA","BA""AAAB","AABA""AB","AB""AABA","AABA""BA","BA""AABA","AB""BA","BA""AB"},1];
In[]:=
ParallelMapMonitored[MultiwaySystem[Join[{"AA""AAB","AA""B"},#],"AAA",3,"CausalInvariantQ"]&,ss]
In[]:=
{False,False,False,False,False,False,False,False,False,False,False,False,False}
Out[]=
ss=SortBy[Subsets[{"AAAB""AABA","AABA""AAAB","AAAB""AB","AB""AAAB","AAAB""BA","BA""AAAB","AABA""AB","AB""AABA","AABA""BA","BA""AABA","AB""BA","BA""AB"}],Length];
In[]:=
ParallelMapMonitored[Function[r,If[#,Echo[r];#,#]&[MultiwaySystem[Join[{"AA""AAB","AA""B"},r],"AAA",3,"CausalInvariantQ"]]],ss]
In[]:=
>> {ABAAAB,BAAB}
(kernel 79)
>> {AAABAB,ABAAAB,BAAB}
(kernel 72)
>> {ABAAAB,AABAAB,BAAB}
(kernel 64)
>> {AAABAABA,AAABAB,ABAABA,BAAB}
(kernel 59)
>> {AAABAABA,BAAAAB,AABABA,BAAB}
(kernel 49)
>> {AABAAAAB,AAABBA,BAAAAB,BAAB}
(kernel 35)