In[]:=
rules={not[1]0,not[0]1,and[0,0]0,and[0,1]0,and[1,0]0,and[1,1]1,or[0,0]0,or[0,1]1,or[1,0]1,or[1,1]1,xor[0,0]0,xor[0,1]1,xor[1,0]1,xor[1,1]0}; init=and[or[x,x],or[y,x]]; init=ReplaceAll[init,{x1,y0}]; expr=init;prevExpr={expr};Do[expr=ResourceFunction["MultiwayCombinator"][rules"Sequential",expr,1];Echo[expr];expr=Part[expr,2];Print[i];Print[expr];If[expr=={},Break[]]; prevExpr=expr,{i,15}];StringForm["Final expression: ``",Part[prevExpr,1]]
»
{{and[or[1, 1], or[0, 1]]},{and[1, or[0, 1]]}}
1
{and[1, or[0, 1]]}
»
{{and[1, or[0, 1]]},{and[1, 1]}}
2
{and[1, 1]}
»
{{and[1, 1]},{1}}
3
{1}
»
{{1},{}}
4
{}
Out[]=
Final expression: 1
In[]:=
rules={not[1]0,not[0]1,and[0,0]0,and[0,1]0,and[1,0]0,and[1,1]1,or[0,0]0,or[0,1]1,or[1,0]1,or[1,1]1,xor[0,0]0,xor[0,1]1,xor[1,0]1,xor[1,1]0};init=or[xor[and[or[0,0],or[0,1]],1],and[1,1]];ResourceFunction["MultiwayCombinator"][rules,init,10,"StatesGraphStructure"]
Out[]=