ir1={{"BBB""AAAA","ABA""ABAB"},{"BBBB""AA","ABA""BAAB"},{"ABA""ABBBB","BBBB""ABAABB"},{"ABAA""ABAAB","BBBB""ABAB"},{"BBBB""A","ABA""BABA"},{"AA""B","BBB""ABAAB"},{"BBB""A","AA""BAA"},{"AA""BABABB","BBAB""ABB"},{"BABB""ABA","AA""BABBBB"},{"BB""AAA","AA""BA"},{"AA""BAB","BBAB""BAAA"},{"ABA""ABB","BB""ABAAAA"},{"AA""ABBBBB","BABB""AAB"},{"ABA""BAAB","BBBB""B"},{"BAAB""ABAAB","AAAA""BA"},{"ABA""BAAB","BBBB""BABA"}};
ir1[[{8,9,14}]]
{{AABABABB,BBABABB},{BABBABA,AABABBBB},{ABABAAB,BBBBB}}
SMWEvolveList[{"ABA""BAAB","BBBB""AA"},"ABAAB",10]
{ABAAB,BAABAB,BABAABB,BBAABABB,BBABAABBB,BBBAABABBB,BBBABAABBBB,BBBBAABAAA,AAABAABAA,AABAABBAABA,ABAABABBABAAB}
StringPosition[#,First/@{"ABA""BAAB","BBBB""AA"}]&/@SMWEvolveList[{"ABA""BAAB","BBBB""AA"},"ABAAB",250];
overq[list_]:=Apply[Or,Apply[(#1>=#2)&,Partition[Rest[Flatten[list]],2],{1}]]
overq/@%80
RandomSMW[3,4]
{ABBAA,AAAAAAB,AA}
getpos[rule_,init_,t_]:=StringPosition[#,First/@rule]&/@SMWEvolveList[rule,init,t]
overanyq[rule_,init_,t_]:=Union[overq/@getpos[rule,init,t]]=!={False}
overanyq[{"ABA""BAAB","BBB""AA"},"ABAAB",25]
True
SMWEvolveList[{"ABA""BAAB","BBBB""AA"},"ABAAB",25]
{ABAAB,BAABAB,BABAABB,BBAABABB,BBABAABBB,BBBAABABBB,BBBABAABBBB,BBBBAABAAA,AAABAABAA,AABAABBAABA,ABAABABBABAAB,BAABBAABBBBAABAB,BAABBAAAAABAABB,BAABBAAAABAABABB,BAABBAAABAABBAABBB,BAABBAABAABABBAABBB,BAABBABAABBAABBBAABBB,BAABBBAABABBAABBBAABBB,BAABBBABAABBBAABBBAABBB,BAABBBBAABABBBAABBBAABBB,BAAAAABAABBBBAABBBAABBB,BAAAABAABAAAAABBBAABBB,BAAABAABBAABAAAABBBAABBB,BAABAABABBABAABAAABBBAABBB,BABAABBAABBBBAABBAABAABBBAABBB,BBAABABBAAAAAABBABAABABBBAABBB}
RuleOverlapQ[{"ABA""BAAB","BBBB""AA"},#]&/@%235
{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}
SMWOverlapTest[{"ABA""BAAB","BBBB""AA"},"ABAAB",25]
True
SMWOverlapTest[{"ABA""BAAB","BBB""AA"},"ABAAB",25]
False
Table[RandomSMW[3,4],{100}];
Select[%,SMWOverlapTest[#,"ABAAB",10]&]
{{AA,BBBBBB,BB},{ABAB,AABABBBA,ABBBBB},{BBBAA,ABAA,BAA},{ABAAB,AAA,BABAABB},{BB,ABAA,ABBBBABA},{BAABBAA,AAAAAB,AABB},{ABBAA,BAAAA,BBBBABA},{BBAAA,ABABABA,BBAB},{AAABB,AABBA,ABAAB},{BA,BA,BABBA},{BABBBBBA,AB,AABBABB},{ABBABBA,BAABB,BAABBAB},{BAABBB,BABBBAA,BABAB},{BBBA,AABAAAA,BAAA},{BAABA,ABABBBA,ABABA},{BA,BABB,ABBBABA},{BBBABA,AABAAA,ABABA},{ABBAAA,AAA,ABAAA},{BAABBA,AABAAB,AA},{AABBABAB,ABBBB,BBABB},{ABAABBB,AB,ABAA},{BBBB,BBABAA,AAABBBA},{BBAB,BA,BAAB},{AABBB,BAABBA,BBABBAA},{BBBABBA,BAABB,BBBB},{AABBBB,ABBBAAB,AABAA},{AAA,AAA,AABBAA},{BAB,BBBBBA,AABBBBAB},{BBAAA,BBABB,BAAABA},{BBBBBABA,BBAAAA,BAAA},{BBAA,BAABA,BBBAABA},{ABBA,AAABA,AABBBAB},{ABBA,BA,BBAB},{AABBBBA,AABAAB,AABBBBB},{ABAAA,ABBBAAA,ABAB},{BABBA,BBABABB,BBAA},{BABBBAB,BABAA,BABAAAA}}
Length[%]
37
Select[%246,SMWOverlapTest[#,"ABAAB",25]&]
{{AA,BBBBBB,BB},{ABAB,AABABBBA,ABBBBB},{BBBAA,ABAA,BAA},{ABAAB,AAA,BABAABB},{BB,ABAA,ABBBBABA},{BAABBAA,AAAAAB,AABB},{ABBAA,BAAAA,BBBBABA},{AAABB,AABBA,ABAAB},{BA,BA,BABBA},{BABBBBBA,AB,AABBABB},{ABBABBA,BAABB,BAABBAB},{BAABBB,BABBBAA,BABAB},{BBBA,AABAAAA,BAAA},{BAABA,ABABBBA,ABABA},{BA,BABB,ABBBABA},{BBBABA,AABAAA,ABABA},{ABBAAA,AAA,ABAAA},{BAABBA,AABAAB,AA},{AABBABAB,ABBBB,BBABB},{ABAABBB,AB,ABAA},{BBBB,BBABAA,AAABBBA},{BBAB,BA,BAAB},{AABBB,BAABBA,BBABBAA},{BBBABBA,BAABB,BBBB},{AABBBB,ABBBAAB,AABAA},{AAA,AAA,AABBAA},{BAB,BBBBBA,AABBBBAB},{BBAAA,BBABB,BAAABA},{BBBBBABA,BBAAAA,BAAA},{ABBA,AAABA,AABBBAB},{ABBA,BA,BBAB},{AABBBBA,AABAAB,AABBBBB},{ABAAA,ABBBAAA,ABAB},{BABBA,BBABABB,BBAA},{BABBBAB,BABAA,BABAAAA}}
Length[%]
35
RuleChecker[#,"ABAAB"]&/@%249
{Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,{Partially cyclic,{BAABA,ABABBBA,ABABA}},Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,{Partially cyclic,{BAB,BBBBBA,AABBBBAB}},{Partially cyclic,{BBAAA,BBABB,BAAABA}},Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied}
Flatten[%251,1]
{Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Partially cyclic,{BAABA,ABABBBA,ABABA},Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Partially cyclic,{BAB,BBBBBA,AABBBBAB},Partially cyclic,{BBAAA,BBABB,BAAABA},Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied,Unapplied}
DeleteCases[%,_String]
{{BAABA,ABABBBA,ABABA},{BAB,BBBBBA,AABBBBAB},{BBAAA,BBABB,BAAABA}}
MapIndexed[Show[LabelWrapper[GraphicsRow[{SMWXGraphicsStreamed[SMWEvolveListX[#,"ABAAB",20]],SMWXGraphicsStreamed[SMWEvolveListX[#,"ABAAB",20,Backward]]}],BigFont[First[#2]]]]&,%];
Select[ir1,SMWOverlapTest[#,"ABAAB",25]&]
{{BBBBAA,ABABAAB},{ABAABBBB,BBBBABAABB},{ABAAABAAB,BBBBABAB},{AABABABB,BBABABB},{BABBABA,AABABBBB},{ABAABB,BBABAAAA},{ABABAAB,BBBBB}}
MapIndexed[Show[LabelWrapper[GraphicsRow[{SMWXGraphicsStreamed[SMWEvolveListX[#,"ABAAB",20]],SMWXGraphicsStreamed[SMWEvolveListX[#,"ABAAB",20,Backward]]}],BigFont[First[#2]]]]&,%];