/export/starexec/sandbox/solver/bin/starexec_run_ttt2-1.17+nonreach /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES Problem: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Proof: DP Processor: DPs: active#(minus(0(),Y)) -> mark#(0()) active#(minus(s(X),s(Y))) -> minus#(X,Y) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) active#(geq(X,0())) -> mark#(true()) active#(geq(0(),s(Y))) -> mark#(false()) active#(geq(s(X),s(Y))) -> geq#(X,Y) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) active#(div(0(),s(Y))) -> mark#(0()) active#(div(s(X),s(Y))) -> minus#(X,Y) active#(div(s(X),s(Y))) -> div#(minus(X,Y),s(Y)) active#(div(s(X),s(Y))) -> s#(div(minus(X,Y),s(Y))) active#(div(s(X),s(Y))) -> geq#(X,Y) active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active#(if(true(),X,Y)) -> mark#(X) active#(if(false(),X,Y)) -> mark#(Y) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) mark#(0()) -> active#(0()) mark#(s(X)) -> mark#(X) mark#(s(X)) -> s#(mark(X)) mark#(s(X)) -> active#(s(mark(X))) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) mark#(true()) -> active#(true()) mark#(false()) -> active#(false()) mark#(div(X1,X2)) -> mark#(X1) mark#(div(X1,X2)) -> div#(mark(X1),X2) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) mark#(if(X1,X2,X3)) -> mark#(X1) mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) minus#(mark(X1),X2) -> minus#(X1,X2) minus#(X1,mark(X2)) -> minus#(X1,X2) minus#(active(X1),X2) -> minus#(X1,X2) minus#(X1,active(X2)) -> minus#(X1,X2) s#(mark(X)) -> s#(X) s#(active(X)) -> s#(X) geq#(mark(X1),X2) -> geq#(X1,X2) geq#(X1,mark(X2)) -> geq#(X1,X2) geq#(active(X1),X2) -> geq#(X1,X2) geq#(X1,active(X2)) -> geq#(X1,X2) div#(mark(X1),X2) -> div#(X1,X2) div#(X1,mark(X2)) -> div#(X1,X2) div#(active(X1),X2) -> div#(X1,X2) div#(X1,active(X2)) -> div#(X1,X2) if#(mark(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,mark(X2),X3) -> if#(X1,X2,X3) if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) if#(active(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,active(X2),X3) -> if#(X1,X2,X3) if#(X1,X2,active(X3)) -> if#(X1,X2,X3) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) TDG Processor: DPs: active#(minus(0(),Y)) -> mark#(0()) active#(minus(s(X),s(Y))) -> minus#(X,Y) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) active#(geq(X,0())) -> mark#(true()) active#(geq(0(),s(Y))) -> mark#(false()) active#(geq(s(X),s(Y))) -> geq#(X,Y) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) active#(div(0(),s(Y))) -> mark#(0()) active#(div(s(X),s(Y))) -> minus#(X,Y) active#(div(s(X),s(Y))) -> div#(minus(X,Y),s(Y)) active#(div(s(X),s(Y))) -> s#(div(minus(X,Y),s(Y))) active#(div(s(X),s(Y))) -> geq#(X,Y) active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active#(if(true(),X,Y)) -> mark#(X) active#(if(false(),X,Y)) -> mark#(Y) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) mark#(0()) -> active#(0()) mark#(s(X)) -> mark#(X) mark#(s(X)) -> s#(mark(X)) mark#(s(X)) -> active#(s(mark(X))) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) mark#(true()) -> active#(true()) mark#(false()) -> active#(false()) mark#(div(X1,X2)) -> mark#(X1) mark#(div(X1,X2)) -> div#(mark(X1),X2) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) mark#(if(X1,X2,X3)) -> mark#(X1) mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) minus#(mark(X1),X2) -> minus#(X1,X2) minus#(X1,mark(X2)) -> minus#(X1,X2) minus#(active(X1),X2) -> minus#(X1,X2) minus#(X1,active(X2)) -> minus#(X1,X2) s#(mark(X)) -> s#(X) s#(active(X)) -> s#(X) geq#(mark(X1),X2) -> geq#(X1,X2) geq#(X1,mark(X2)) -> geq#(X1,X2) geq#(active(X1),X2) -> geq#(X1,X2) geq#(X1,active(X2)) -> geq#(X1,X2) div#(mark(X1),X2) -> div#(X1,X2) div#(X1,mark(X2)) -> div#(X1,X2) div#(active(X1),X2) -> div#(X1,X2) div#(X1,active(X2)) -> div#(X1,X2) if#(mark(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,mark(X2),X3) -> if#(X1,X2,X3) if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) if#(active(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,active(X2),X3) -> if#(X1,X2,X3) if#(X1,X2,active(X3)) -> if#(X1,X2,X3) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) graph: if#(mark(X1),X2,X3) -> if#(X1,X2,X3) -> if#(X1,X2,active(X3)) -> if#(X1,X2,X3) if#(mark(X1),X2,X3) -> if#(X1,X2,X3) -> if#(X1,active(X2),X3) -> if#(X1,X2,X3) if#(mark(X1),X2,X3) -> if#(X1,X2,X3) -> if#(active(X1),X2,X3) -> if#(X1,X2,X3) if#(mark(X1),X2,X3) -> if#(X1,X2,X3) -> if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) if#(mark(X1),X2,X3) -> if#(X1,X2,X3) -> if#(X1,mark(X2),X3) -> if#(X1,X2,X3) if#(mark(X1),X2,X3) -> if#(X1,X2,X3) -> if#(mark(X1),X2,X3) -> if#(X1,X2,X3) if#(active(X1),X2,X3) -> if#(X1,X2,X3) -> if#(X1,X2,active(X3)) -> if#(X1,X2,X3) if#(active(X1),X2,X3) -> if#(X1,X2,X3) -> if#(X1,active(X2),X3) -> if#(X1,X2,X3) if#(active(X1),X2,X3) -> if#(X1,X2,X3) -> if#(active(X1),X2,X3) -> if#(X1,X2,X3) if#(active(X1),X2,X3) -> if#(X1,X2,X3) -> if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) if#(active(X1),X2,X3) -> if#(X1,X2,X3) -> if#(X1,mark(X2),X3) -> if#(X1,X2,X3) if#(active(X1),X2,X3) -> if#(X1,X2,X3) -> if#(mark(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,mark(X2),X3) -> if#(X1,X2,X3) -> if#(X1,X2,active(X3)) -> if#(X1,X2,X3) if#(X1,mark(X2),X3) -> if#(X1,X2,X3) -> if#(X1,active(X2),X3) -> if#(X1,X2,X3) if#(X1,mark(X2),X3) -> if#(X1,X2,X3) -> if#(active(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,mark(X2),X3) -> if#(X1,X2,X3) -> if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) if#(X1,mark(X2),X3) -> if#(X1,X2,X3) -> if#(X1,mark(X2),X3) -> if#(X1,X2,X3) if#(X1,mark(X2),X3) -> if#(X1,X2,X3) -> if#(mark(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,active(X2),X3) -> if#(X1,X2,X3) -> if#(X1,X2,active(X3)) -> if#(X1,X2,X3) if#(X1,active(X2),X3) -> if#(X1,X2,X3) -> if#(X1,active(X2),X3) -> if#(X1,X2,X3) if#(X1,active(X2),X3) -> if#(X1,X2,X3) -> if#(active(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,active(X2),X3) -> if#(X1,X2,X3) -> if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) if#(X1,active(X2),X3) -> if#(X1,X2,X3) -> if#(X1,mark(X2),X3) -> if#(X1,X2,X3) if#(X1,active(X2),X3) -> if#(X1,X2,X3) -> if#(mark(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) -> if#(X1,X2,active(X3)) -> if#(X1,X2,X3) if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) -> if#(X1,active(X2),X3) -> if#(X1,X2,X3) if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) -> if#(active(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) -> if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) -> if#(X1,mark(X2),X3) -> if#(X1,X2,X3) if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) -> if#(mark(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,X2,active(X3)) -> if#(X1,X2,X3) -> if#(X1,X2,active(X3)) -> if#(X1,X2,X3) if#(X1,X2,active(X3)) -> if#(X1,X2,X3) -> if#(X1,active(X2),X3) -> if#(X1,X2,X3) if#(X1,X2,active(X3)) -> if#(X1,X2,X3) -> if#(active(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,X2,active(X3)) -> if#(X1,X2,X3) -> if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) if#(X1,X2,active(X3)) -> if#(X1,X2,X3) -> if#(X1,mark(X2),X3) -> if#(X1,X2,X3) if#(X1,X2,active(X3)) -> if#(X1,X2,X3) -> if#(mark(X1),X2,X3) -> if#(X1,X2,X3) s#(mark(X)) -> s#(X) -> s#(active(X)) -> s#(X) s#(mark(X)) -> s#(X) -> s#(mark(X)) -> s#(X) s#(active(X)) -> s#(X) -> s#(active(X)) -> s#(X) s#(active(X)) -> s#(X) -> s#(mark(X)) -> s#(X) div#(mark(X1),X2) -> div#(X1,X2) -> div#(X1,active(X2)) -> div#(X1,X2) div#(mark(X1),X2) -> div#(X1,X2) -> div#(active(X1),X2) -> div#(X1,X2) div#(mark(X1),X2) -> div#(X1,X2) -> div#(X1,mark(X2)) -> div#(X1,X2) div#(mark(X1),X2) -> div#(X1,X2) -> div#(mark(X1),X2) -> div#(X1,X2) div#(active(X1),X2) -> div#(X1,X2) -> div#(X1,active(X2)) -> div#(X1,X2) div#(active(X1),X2) -> div#(X1,X2) -> div#(active(X1),X2) -> div#(X1,X2) div#(active(X1),X2) -> div#(X1,X2) -> div#(X1,mark(X2)) -> div#(X1,X2) div#(active(X1),X2) -> div#(X1,X2) -> div#(mark(X1),X2) -> div#(X1,X2) div#(X1,mark(X2)) -> div#(X1,X2) -> div#(X1,active(X2)) -> div#(X1,X2) div#(X1,mark(X2)) -> div#(X1,X2) -> div#(active(X1),X2) -> div#(X1,X2) div#(X1,mark(X2)) -> div#(X1,X2) -> div#(X1,mark(X2)) -> div#(X1,X2) div#(X1,mark(X2)) -> div#(X1,X2) -> div#(mark(X1),X2) -> div#(X1,X2) div#(X1,active(X2)) -> div#(X1,X2) -> div#(X1,active(X2)) -> div#(X1,X2) div#(X1,active(X2)) -> div#(X1,X2) -> div#(active(X1),X2) -> div#(X1,X2) div#(X1,active(X2)) -> div#(X1,X2) -> div#(X1,mark(X2)) -> div#(X1,X2) div#(X1,active(X2)) -> div#(X1,X2) -> div#(mark(X1),X2) -> div#(X1,X2) geq#(mark(X1),X2) -> geq#(X1,X2) -> geq#(X1,active(X2)) -> geq#(X1,X2) geq#(mark(X1),X2) -> geq#(X1,X2) -> geq#(active(X1),X2) -> geq#(X1,X2) geq#(mark(X1),X2) -> geq#(X1,X2) -> geq#(X1,mark(X2)) -> geq#(X1,X2) geq#(mark(X1),X2) -> geq#(X1,X2) -> geq#(mark(X1),X2) -> geq#(X1,X2) geq#(active(X1),X2) -> geq#(X1,X2) -> geq#(X1,active(X2)) -> geq#(X1,X2) geq#(active(X1),X2) -> geq#(X1,X2) -> geq#(active(X1),X2) -> geq#(X1,X2) geq#(active(X1),X2) -> geq#(X1,X2) -> geq#(X1,mark(X2)) -> geq#(X1,X2) geq#(active(X1),X2) -> geq#(X1,X2) -> geq#(mark(X1),X2) -> geq#(X1,X2) geq#(X1,mark(X2)) -> geq#(X1,X2) -> geq#(X1,active(X2)) -> geq#(X1,X2) geq#(X1,mark(X2)) -> geq#(X1,X2) -> geq#(active(X1),X2) -> geq#(X1,X2) geq#(X1,mark(X2)) -> geq#(X1,X2) -> geq#(X1,mark(X2)) -> geq#(X1,X2) geq#(X1,mark(X2)) -> geq#(X1,X2) -> geq#(mark(X1),X2) -> geq#(X1,X2) geq#(X1,active(X2)) -> geq#(X1,X2) -> geq#(X1,active(X2)) -> geq#(X1,X2) geq#(X1,active(X2)) -> geq#(X1,X2) -> geq#(active(X1),X2) -> geq#(X1,X2) geq#(X1,active(X2)) -> geq#(X1,X2) -> geq#(X1,mark(X2)) -> geq#(X1,X2) geq#(X1,active(X2)) -> geq#(X1,X2) -> geq#(mark(X1),X2) -> geq#(X1,X2) minus#(mark(X1),X2) -> minus#(X1,X2) -> minus#(X1,active(X2)) -> minus#(X1,X2) minus#(mark(X1),X2) -> minus#(X1,X2) -> minus#(active(X1),X2) -> minus#(X1,X2) minus#(mark(X1),X2) -> minus#(X1,X2) -> minus#(X1,mark(X2)) -> minus#(X1,X2) minus#(mark(X1),X2) -> minus#(X1,X2) -> minus#(mark(X1),X2) -> minus#(X1,X2) minus#(active(X1),X2) -> minus#(X1,X2) -> minus#(X1,active(X2)) -> minus#(X1,X2) minus#(active(X1),X2) -> minus#(X1,X2) -> minus#(active(X1),X2) -> minus#(X1,X2) minus#(active(X1),X2) -> minus#(X1,X2) -> minus#(X1,mark(X2)) -> minus#(X1,X2) minus#(active(X1),X2) -> minus#(X1,X2) -> minus#(mark(X1),X2) -> minus#(X1,X2) minus#(X1,mark(X2)) -> minus#(X1,X2) -> minus#(X1,active(X2)) -> minus#(X1,X2) minus#(X1,mark(X2)) -> minus#(X1,X2) -> minus#(active(X1),X2) -> minus#(X1,X2) minus#(X1,mark(X2)) -> minus#(X1,X2) -> minus#(X1,mark(X2)) -> minus#(X1,X2) minus#(X1,mark(X2)) -> minus#(X1,X2) -> minus#(mark(X1),X2) -> minus#(X1,X2) minus#(X1,active(X2)) -> minus#(X1,X2) -> minus#(X1,active(X2)) -> minus#(X1,X2) minus#(X1,active(X2)) -> minus#(X1,X2) -> minus#(active(X1),X2) -> minus#(X1,X2) minus#(X1,active(X2)) -> minus#(X1,X2) -> minus#(X1,mark(X2)) -> minus#(X1,X2) minus#(X1,active(X2)) -> minus#(X1,X2) -> minus#(mark(X1),X2) -> minus#(X1,X2) mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) -> if#(X1,X2,active(X3)) -> if#(X1,X2,X3) mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) -> if#(X1,active(X2),X3) -> if#(X1,X2,X3) mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) -> if#(active(X1),X2,X3) -> if#(X1,X2,X3) mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) -> if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) -> if#(X1,mark(X2),X3) -> if#(X1,X2,X3) mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) -> if#(mark(X1),X2,X3) -> if#(X1,X2,X3) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(if(X1,X2,X3)) -> mark#(X1) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(div(X1,X2)) -> div#(mark(X1),X2) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(div(X1,X2)) -> mark#(X1) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(false()) -> active#(false()) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(true()) -> active#(true()) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(s(X)) -> active#(s(mark(X))) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(s(X)) -> s#(mark(X)) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(s(X)) -> mark#(X) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(0()) -> active#(0()) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(if(false(),X,Y)) -> mark#(Y) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(if(true(),X,Y)) -> mark#(X) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(div(s(X),s(Y))) -> geq#(X,Y) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(div(s(X),s(Y))) -> s#(div(minus(X,Y),s(Y))) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(div(s(X),s(Y))) -> div#(minus(X,Y),s(Y)) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(div(s(X),s(Y))) -> minus#(X,Y) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(div(0(),s(Y))) -> mark#(0()) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(geq(s(X),s(Y))) -> geq#(X,Y) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(geq(0(),s(Y))) -> mark#(false()) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(geq(X,0())) -> mark#(true()) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(minus(s(X),s(Y))) -> minus#(X,Y) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(minus(0(),Y)) -> mark#(0()) mark#(div(X1,X2)) -> div#(mark(X1),X2) -> div#(X1,active(X2)) -> div#(X1,X2) mark#(div(X1,X2)) -> div#(mark(X1),X2) -> div#(active(X1),X2) -> div#(X1,X2) mark#(div(X1,X2)) -> div#(mark(X1),X2) -> div#(X1,mark(X2)) -> div#(X1,X2) mark#(div(X1,X2)) -> div#(mark(X1),X2) -> div#(mark(X1),X2) -> div#(X1,X2) mark#(div(X1,X2)) -> mark#(X1) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) mark#(div(X1,X2)) -> mark#(X1) -> mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) mark#(div(X1,X2)) -> mark#(X1) -> mark#(if(X1,X2,X3)) -> mark#(X1) mark#(div(X1,X2)) -> mark#(X1) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) mark#(div(X1,X2)) -> mark#(X1) -> mark#(div(X1,X2)) -> div#(mark(X1),X2) mark#(div(X1,X2)) -> mark#(X1) -> mark#(div(X1,X2)) -> mark#(X1) mark#(div(X1,X2)) -> mark#(X1) -> mark#(false()) -> active#(false()) mark#(div(X1,X2)) -> mark#(X1) -> mark#(true()) -> active#(true()) mark#(div(X1,X2)) -> mark#(X1) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) mark#(div(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> active#(s(mark(X))) mark#(div(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> s#(mark(X)) mark#(div(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X) mark#(div(X1,X2)) -> mark#(X1) -> mark#(0()) -> active#(0()) mark#(div(X1,X2)) -> mark#(X1) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(if(false(),X,Y)) -> mark#(Y) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(if(true(),X,Y)) -> mark#(X) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(div(s(X),s(Y))) -> geq#(X,Y) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(div(s(X),s(Y))) -> s#(div(minus(X,Y),s(Y))) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(div(s(X),s(Y))) -> div#(minus(X,Y),s(Y)) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(div(s(X),s(Y))) -> minus#(X,Y) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(div(0(),s(Y))) -> mark#(0()) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(geq(s(X),s(Y))) -> geq#(X,Y) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(geq(0(),s(Y))) -> mark#(false()) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(geq(X,0())) -> mark#(true()) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(minus(s(X),s(Y))) -> minus#(X,Y) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(minus(0(),Y)) -> mark#(0()) mark#(false()) -> active#(false()) -> active#(if(false(),X,Y)) -> mark#(Y) mark#(false()) -> active#(false()) -> active#(if(true(),X,Y)) -> mark#(X) mark#(false()) -> active#(false()) -> active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) mark#(false()) -> active#(false()) -> active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) mark#(false()) -> active#(false()) -> active#(div(s(X),s(Y))) -> geq#(X,Y) mark#(false()) -> active#(false()) -> active#(div(s(X),s(Y))) -> s#(div(minus(X,Y),s(Y))) mark#(false()) -> active#(false()) -> active#(div(s(X),s(Y))) -> div#(minus(X,Y),s(Y)) mark#(false()) -> active#(false()) -> active#(div(s(X),s(Y))) -> minus#(X,Y) mark#(false()) -> active#(false()) -> active#(div(0(),s(Y))) -> mark#(0()) mark#(false()) -> active#(false()) -> active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) mark#(false()) -> active#(false()) -> active#(geq(s(X),s(Y))) -> geq#(X,Y) mark#(false()) -> active#(false()) -> active#(geq(0(),s(Y))) -> mark#(false()) mark#(false()) -> active#(false()) -> active#(geq(X,0())) -> mark#(true()) mark#(false()) -> active#(false()) -> active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) mark#(false()) -> active#(false()) -> active#(minus(s(X),s(Y))) -> minus#(X,Y) mark#(false()) -> active#(false()) -> active#(minus(0(),Y)) -> mark#(0()) mark#(true()) -> active#(true()) -> active#(if(false(),X,Y)) -> mark#(Y) mark#(true()) -> active#(true()) -> active#(if(true(),X,Y)) -> mark#(X) mark#(true()) -> active#(true()) -> active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) mark#(true()) -> active#(true()) -> active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) mark#(true()) -> active#(true()) -> active#(div(s(X),s(Y))) -> geq#(X,Y) mark#(true()) -> active#(true()) -> active#(div(s(X),s(Y))) -> s#(div(minus(X,Y),s(Y))) mark#(true()) -> active#(true()) -> active#(div(s(X),s(Y))) -> div#(minus(X,Y),s(Y)) mark#(true()) -> active#(true()) -> active#(div(s(X),s(Y))) -> minus#(X,Y) mark#(true()) -> active#(true()) -> active#(div(0(),s(Y))) -> mark#(0()) mark#(true()) -> active#(true()) -> active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) mark#(true()) -> active#(true()) -> active#(geq(s(X),s(Y))) -> geq#(X,Y) mark#(true()) -> active#(true()) -> active#(geq(0(),s(Y))) -> mark#(false()) mark#(true()) -> active#(true()) -> active#(geq(X,0())) -> mark#(true()) mark#(true()) -> active#(true()) -> active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) mark#(true()) -> active#(true()) -> active#(minus(s(X),s(Y))) -> minus#(X,Y) mark#(true()) -> active#(true()) -> active#(minus(0(),Y)) -> mark#(0()) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(if(false(),X,Y)) -> mark#(Y) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(if(true(),X,Y)) -> mark#(X) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(div(s(X),s(Y))) -> geq#(X,Y) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(div(s(X),s(Y))) -> s#(div(minus(X,Y),s(Y))) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(div(s(X),s(Y))) -> div#(minus(X,Y),s(Y)) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(div(s(X),s(Y))) -> minus#(X,Y) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(div(0(),s(Y))) -> mark#(0()) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(geq(s(X),s(Y))) -> geq#(X,Y) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(geq(0(),s(Y))) -> mark#(false()) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(geq(X,0())) -> mark#(true()) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(minus(s(X),s(Y))) -> minus#(X,Y) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(minus(0(),Y)) -> mark#(0()) mark#(s(X)) -> s#(mark(X)) -> s#(active(X)) -> s#(X) mark#(s(X)) -> s#(mark(X)) -> s#(mark(X)) -> s#(X) mark#(s(X)) -> mark#(X) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) mark#(s(X)) -> mark#(X) -> mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) mark#(s(X)) -> mark#(X) -> mark#(if(X1,X2,X3)) -> mark#(X1) mark#(s(X)) -> mark#(X) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) mark#(s(X)) -> mark#(X) -> mark#(div(X1,X2)) -> div#(mark(X1),X2) mark#(s(X)) -> mark#(X) -> mark#(div(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) -> mark#(false()) -> active#(false()) mark#(s(X)) -> mark#(X) -> mark#(true()) -> active#(true()) mark#(s(X)) -> mark#(X) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) mark#(s(X)) -> mark#(X) -> mark#(s(X)) -> active#(s(mark(X))) mark#(s(X)) -> mark#(X) -> mark#(s(X)) -> s#(mark(X)) mark#(s(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(s(X)) -> mark#(X) -> mark#(0()) -> active#(0()) mark#(s(X)) -> mark#(X) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) mark#(s(X)) -> active#(s(mark(X))) -> active#(if(false(),X,Y)) -> mark#(Y) mark#(s(X)) -> active#(s(mark(X))) -> active#(if(true(),X,Y)) -> mark#(X) mark#(s(X)) -> active#(s(mark(X))) -> active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) mark#(s(X)) -> active#(s(mark(X))) -> active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) mark#(s(X)) -> active#(s(mark(X))) -> active#(div(s(X),s(Y))) -> geq#(X,Y) mark#(s(X)) -> active#(s(mark(X))) -> active#(div(s(X),s(Y))) -> s#(div(minus(X,Y),s(Y))) mark#(s(X)) -> active#(s(mark(X))) -> active#(div(s(X),s(Y))) -> div#(minus(X,Y),s(Y)) mark#(s(X)) -> active#(s(mark(X))) -> active#(div(s(X),s(Y))) -> minus#(X,Y) mark#(s(X)) -> active#(s(mark(X))) -> active#(div(0(),s(Y))) -> mark#(0()) mark#(s(X)) -> active#(s(mark(X))) -> active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) mark#(s(X)) -> active#(s(mark(X))) -> active#(geq(s(X),s(Y))) -> geq#(X,Y) mark#(s(X)) -> active#(s(mark(X))) -> active#(geq(0(),s(Y))) -> mark#(false()) mark#(s(X)) -> active#(s(mark(X))) -> active#(geq(X,0())) -> mark#(true()) mark#(s(X)) -> active#(s(mark(X))) -> active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) mark#(s(X)) -> active#(s(mark(X))) -> active#(minus(s(X),s(Y))) -> minus#(X,Y) mark#(s(X)) -> active#(s(mark(X))) -> active#(minus(0(),Y)) -> mark#(0()) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(if(false(),X,Y)) -> mark#(Y) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(if(true(),X,Y)) -> mark#(X) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(div(s(X),s(Y))) -> geq#(X,Y) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(div(s(X),s(Y))) -> s#(div(minus(X,Y),s(Y))) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(div(s(X),s(Y))) -> div#(minus(X,Y),s(Y)) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(div(s(X),s(Y))) -> minus#(X,Y) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(div(0(),s(Y))) -> mark#(0()) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(geq(s(X),s(Y))) -> geq#(X,Y) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(geq(0(),s(Y))) -> mark#(false()) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(geq(X,0())) -> mark#(true()) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(minus(s(X),s(Y))) -> minus#(X,Y) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(minus(0(),Y)) -> mark#(0()) mark#(0()) -> active#(0()) -> active#(if(false(),X,Y)) -> mark#(Y) mark#(0()) -> active#(0()) -> active#(if(true(),X,Y)) -> mark#(X) mark#(0()) -> active#(0()) -> active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) mark#(0()) -> active#(0()) -> active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) mark#(0()) -> active#(0()) -> active#(div(s(X),s(Y))) -> geq#(X,Y) mark#(0()) -> active#(0()) -> active#(div(s(X),s(Y))) -> s#(div(minus(X,Y),s(Y))) mark#(0()) -> active#(0()) -> active#(div(s(X),s(Y))) -> div#(minus(X,Y),s(Y)) mark#(0()) -> active#(0()) -> active#(div(s(X),s(Y))) -> minus#(X,Y) mark#(0()) -> active#(0()) -> active#(div(0(),s(Y))) -> mark#(0()) mark#(0()) -> active#(0()) -> active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) mark#(0()) -> active#(0()) -> active#(geq(s(X),s(Y))) -> geq#(X,Y) mark#(0()) -> active#(0()) -> active#(geq(0(),s(Y))) -> mark#(false()) mark#(0()) -> active#(0()) -> active#(geq(X,0())) -> mark#(true()) mark#(0()) -> active#(0()) -> active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) mark#(0()) -> active#(0()) -> active#(minus(s(X),s(Y))) -> minus#(X,Y) mark#(0()) -> active#(0()) -> active#(minus(0(),Y)) -> mark#(0()) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(if(X1,X2,X3)) -> mark#(X1) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(div(X1,X2)) -> div#(mark(X1),X2) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(div(X1,X2)) -> mark#(X1) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(false()) -> active#(false()) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(true()) -> active#(true()) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(s(X)) -> active#(s(mark(X))) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(s(X)) -> s#(mark(X)) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(s(X)) -> mark#(X) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(0()) -> active#(0()) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) active#(if(true(),X,Y)) -> mark#(X) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) active#(if(true(),X,Y)) -> mark#(X) -> mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) active#(if(true(),X,Y)) -> mark#(X) -> mark#(if(X1,X2,X3)) -> mark#(X1) active#(if(true(),X,Y)) -> mark#(X) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) active#(if(true(),X,Y)) -> mark#(X) -> mark#(div(X1,X2)) -> div#(mark(X1),X2) active#(if(true(),X,Y)) -> mark#(X) -> mark#(div(X1,X2)) -> mark#(X1) active#(if(true(),X,Y)) -> mark#(X) -> mark#(false()) -> active#(false()) active#(if(true(),X,Y)) -> mark#(X) -> mark#(true()) -> active#(true()) active#(if(true(),X,Y)) -> mark#(X) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) active#(if(true(),X,Y)) -> mark#(X) -> mark#(s(X)) -> active#(s(mark(X))) active#(if(true(),X,Y)) -> mark#(X) -> mark#(s(X)) -> s#(mark(X)) active#(if(true(),X,Y)) -> mark#(X) -> mark#(s(X)) -> mark#(X) active#(if(true(),X,Y)) -> mark#(X) -> mark#(0()) -> active#(0()) active#(if(true(),X,Y)) -> mark#(X) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) -> if#(X1,X2,active(X3)) -> if#(X1,X2,X3) active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) -> if#(X1,active(X2),X3) -> if#(X1,X2,X3) active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) -> if#(active(X1),X2,X3) -> if#(X1,X2,X3) active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) -> if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) -> if#(X1,mark(X2),X3) -> if#(X1,X2,X3) active#(div(s(X),s(Y))) -> if#(geq(X,Y),s(div(minus(X,Y),s(Y))),0()) -> if#(mark(X1),X2,X3) -> if#(X1,X2,X3) active#(div(s(X),s(Y))) -> s#(div(minus(X,Y),s(Y))) -> s#(active(X)) -> s#(X) active#(div(s(X),s(Y))) -> s#(div(minus(X,Y),s(Y))) -> s#(mark(X)) -> s#(X) active#(div(s(X),s(Y))) -> div#(minus(X,Y),s(Y)) -> div#(X1,active(X2)) -> div#(X1,X2) active#(div(s(X),s(Y))) -> div#(minus(X,Y),s(Y)) -> div#(active(X1),X2) -> div#(X1,X2) active#(div(s(X),s(Y))) -> div#(minus(X,Y),s(Y)) -> div#(X1,mark(X2)) -> div#(X1,X2) active#(div(s(X),s(Y))) -> div#(minus(X,Y),s(Y)) -> div#(mark(X1),X2) -> div#(X1,X2) active#(div(s(X),s(Y))) -> geq#(X,Y) -> geq#(X1,active(X2)) -> geq#(X1,X2) active#(div(s(X),s(Y))) -> geq#(X,Y) -> geq#(active(X1),X2) -> geq#(X1,X2) active#(div(s(X),s(Y))) -> geq#(X,Y) -> geq#(X1,mark(X2)) -> geq#(X1,X2) active#(div(s(X),s(Y))) -> geq#(X,Y) -> geq#(mark(X1),X2) -> geq#(X1,X2) active#(div(s(X),s(Y))) -> minus#(X,Y) -> minus#(X1,active(X2)) -> minus#(X1,X2) active#(div(s(X),s(Y))) -> minus#(X,Y) -> minus#(active(X1),X2) -> minus#(X1,X2) active#(div(s(X),s(Y))) -> minus#(X,Y) -> minus#(X1,mark(X2)) -> minus#(X1,X2) active#(div(s(X),s(Y))) -> minus#(X,Y) -> minus#(mark(X1),X2) -> minus#(X1,X2) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(if(X1,X2,X3)) -> mark#(X1) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(div(X1,X2)) -> div#(mark(X1),X2) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(div(X1,X2)) -> mark#(X1) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(false()) -> active#(false()) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(true()) -> active#(true()) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(s(X)) -> active#(s(mark(X))) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(s(X)) -> s#(mark(X)) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(s(X)) -> mark#(X) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(0()) -> active#(0()) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) active#(div(0(),s(Y))) -> mark#(0()) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) active#(div(0(),s(Y))) -> mark#(0()) -> mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) active#(div(0(),s(Y))) -> mark#(0()) -> mark#(if(X1,X2,X3)) -> mark#(X1) active#(div(0(),s(Y))) -> mark#(0()) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) active#(div(0(),s(Y))) -> mark#(0()) -> mark#(div(X1,X2)) -> div#(mark(X1),X2) active#(div(0(),s(Y))) -> mark#(0()) -> mark#(div(X1,X2)) -> mark#(X1) active#(div(0(),s(Y))) -> mark#(0()) -> mark#(false()) -> active#(false()) active#(div(0(),s(Y))) -> mark#(0()) -> mark#(true()) -> active#(true()) active#(div(0(),s(Y))) -> mark#(0()) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) active#(div(0(),s(Y))) -> mark#(0()) -> mark#(s(X)) -> active#(s(mark(X))) active#(div(0(),s(Y))) -> mark#(0()) -> mark#(s(X)) -> s#(mark(X)) active#(div(0(),s(Y))) -> mark#(0()) -> mark#(s(X)) -> mark#(X) active#(div(0(),s(Y))) -> mark#(0()) -> mark#(0()) -> active#(0()) active#(div(0(),s(Y))) -> mark#(0()) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) active#(geq(s(X),s(Y))) -> geq#(X,Y) -> geq#(X1,active(X2)) -> geq#(X1,X2) active#(geq(s(X),s(Y))) -> geq#(X,Y) -> geq#(active(X1),X2) -> geq#(X1,X2) active#(geq(s(X),s(Y))) -> geq#(X,Y) -> geq#(X1,mark(X2)) -> geq#(X1,X2) active#(geq(s(X),s(Y))) -> geq#(X,Y) -> geq#(mark(X1),X2) -> geq#(X1,X2) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) -> mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) -> mark#(if(X1,X2,X3)) -> mark#(X1) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) -> mark#(div(X1,X2)) -> div#(mark(X1),X2) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) -> mark#(div(X1,X2)) -> mark#(X1) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) -> mark#(false()) -> active#(false()) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) -> mark#(true()) -> active#(true()) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) -> mark#(s(X)) -> active#(s(mark(X))) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) -> mark#(s(X)) -> s#(mark(X)) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) -> mark#(s(X)) -> mark#(X) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) -> mark#(0()) -> active#(0()) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) active#(geq(0(),s(Y))) -> mark#(false()) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) active#(geq(0(),s(Y))) -> mark#(false()) -> mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) active#(geq(0(),s(Y))) -> mark#(false()) -> mark#(if(X1,X2,X3)) -> mark#(X1) active#(geq(0(),s(Y))) -> mark#(false()) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) active#(geq(0(),s(Y))) -> mark#(false()) -> mark#(div(X1,X2)) -> div#(mark(X1),X2) active#(geq(0(),s(Y))) -> mark#(false()) -> mark#(div(X1,X2)) -> mark#(X1) active#(geq(0(),s(Y))) -> mark#(false()) -> mark#(false()) -> active#(false()) active#(geq(0(),s(Y))) -> mark#(false()) -> mark#(true()) -> active#(true()) active#(geq(0(),s(Y))) -> mark#(false()) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) active#(geq(0(),s(Y))) -> mark#(false()) -> mark#(s(X)) -> active#(s(mark(X))) active#(geq(0(),s(Y))) -> mark#(false()) -> mark#(s(X)) -> s#(mark(X)) active#(geq(0(),s(Y))) -> mark#(false()) -> mark#(s(X)) -> mark#(X) active#(geq(0(),s(Y))) -> mark#(false()) -> mark#(0()) -> active#(0()) active#(geq(0(),s(Y))) -> mark#(false()) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) active#(geq(X,0())) -> mark#(true()) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) active#(geq(X,0())) -> mark#(true()) -> mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) active#(geq(X,0())) -> mark#(true()) -> mark#(if(X1,X2,X3)) -> mark#(X1) active#(geq(X,0())) -> mark#(true()) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) active#(geq(X,0())) -> mark#(true()) -> mark#(div(X1,X2)) -> div#(mark(X1),X2) active#(geq(X,0())) -> mark#(true()) -> mark#(div(X1,X2)) -> mark#(X1) active#(geq(X,0())) -> mark#(true()) -> mark#(false()) -> active#(false()) active#(geq(X,0())) -> mark#(true()) -> mark#(true()) -> active#(true()) active#(geq(X,0())) -> mark#(true()) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) active#(geq(X,0())) -> mark#(true()) -> mark#(s(X)) -> active#(s(mark(X))) active#(geq(X,0())) -> mark#(true()) -> mark#(s(X)) -> s#(mark(X)) active#(geq(X,0())) -> mark#(true()) -> mark#(s(X)) -> mark#(X) active#(geq(X,0())) -> mark#(true()) -> mark#(0()) -> active#(0()) active#(geq(X,0())) -> mark#(true()) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) active#(minus(s(X),s(Y))) -> minus#(X,Y) -> minus#(X1,active(X2)) -> minus#(X1,X2) active#(minus(s(X),s(Y))) -> minus#(X,Y) -> minus#(active(X1),X2) -> minus#(X1,X2) active#(minus(s(X),s(Y))) -> minus#(X,Y) -> minus#(X1,mark(X2)) -> minus#(X1,X2) active#(minus(s(X),s(Y))) -> minus#(X,Y) -> minus#(mark(X1),X2) -> minus#(X1,X2) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) -> mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) -> mark#(if(X1,X2,X3)) -> mark#(X1) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) -> mark#(div(X1,X2)) -> div#(mark(X1),X2) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) -> mark#(div(X1,X2)) -> mark#(X1) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) -> mark#(false()) -> active#(false()) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) -> mark#(true()) -> active#(true()) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) -> mark#(s(X)) -> active#(s(mark(X))) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) -> mark#(s(X)) -> s#(mark(X)) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) -> mark#(s(X)) -> mark#(X) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) -> mark#(0()) -> active#(0()) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) active#(minus(0(),Y)) -> mark#(0()) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) active#(minus(0(),Y)) -> mark#(0()) -> mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) active#(minus(0(),Y)) -> mark#(0()) -> mark#(if(X1,X2,X3)) -> mark#(X1) active#(minus(0(),Y)) -> mark#(0()) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) active#(minus(0(),Y)) -> mark#(0()) -> mark#(div(X1,X2)) -> div#(mark(X1),X2) active#(minus(0(),Y)) -> mark#(0()) -> mark#(div(X1,X2)) -> mark#(X1) active#(minus(0(),Y)) -> mark#(0()) -> mark#(false()) -> active#(false()) active#(minus(0(),Y)) -> mark#(0()) -> mark#(true()) -> active#(true()) active#(minus(0(),Y)) -> mark#(0()) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) active#(minus(0(),Y)) -> mark#(0()) -> mark#(s(X)) -> active#(s(mark(X))) active#(minus(0(),Y)) -> mark#(0()) -> mark#(s(X)) -> s#(mark(X)) active#(minus(0(),Y)) -> mark#(0()) -> mark#(s(X)) -> mark#(X) active#(minus(0(),Y)) -> mark#(0()) -> mark#(0()) -> active#(0()) active#(minus(0(),Y)) -> mark#(0()) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) SCC Processor: #sccs: 6 #rules: 40 #arcs: 424/2500 DPs: mark#(if(X1,X2,X3)) -> mark#(X1) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) active#(minus(0(),Y)) -> mark#(0()) mark#(0()) -> active#(0()) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) mark#(s(X)) -> mark#(X) mark#(s(X)) -> active#(s(mark(X))) active#(geq(X,0())) -> mark#(true()) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) active#(geq(0(),s(Y))) -> mark#(false()) mark#(true()) -> active#(true()) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) mark#(false()) -> active#(false()) active#(div(0(),s(Y))) -> mark#(0()) mark#(div(X1,X2)) -> mark#(X1) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) active#(if(true(),X,Y)) -> mark#(X) active#(if(false(),X,Y)) -> mark#(Y) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) EDG Processor: DPs: mark#(if(X1,X2,X3)) -> mark#(X1) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) active#(minus(0(),Y)) -> mark#(0()) mark#(0()) -> active#(0()) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) mark#(s(X)) -> mark#(X) mark#(s(X)) -> active#(s(mark(X))) active#(geq(X,0())) -> mark#(true()) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) active#(geq(0(),s(Y))) -> mark#(false()) mark#(true()) -> active#(true()) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) mark#(false()) -> active#(false()) active#(div(0(),s(Y))) -> mark#(0()) mark#(div(X1,X2)) -> mark#(X1) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) active#(if(true(),X,Y)) -> mark#(X) active#(if(false(),X,Y)) -> mark#(Y) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) graph: mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(0()) -> active#(0()) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(s(X)) -> mark#(X) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(s(X)) -> active#(s(mark(X))) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(true()) -> active#(true()) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(false()) -> active#(false()) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(div(X1,X2)) -> mark#(X1) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(if(X1,X2,X3)) -> mark#(X1) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(if(true(),X,Y)) -> mark#(X) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) -> active#(if(false(),X,Y)) -> mark#(Y) mark#(div(X1,X2)) -> mark#(X1) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) mark#(div(X1,X2)) -> mark#(X1) -> mark#(0()) -> active#(0()) mark#(div(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X) mark#(div(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> active#(s(mark(X))) mark#(div(X1,X2)) -> mark#(X1) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) mark#(div(X1,X2)) -> mark#(X1) -> mark#(true()) -> active#(true()) mark#(div(X1,X2)) -> mark#(X1) -> mark#(false()) -> active#(false()) mark#(div(X1,X2)) -> mark#(X1) -> mark#(div(X1,X2)) -> mark#(X1) mark#(div(X1,X2)) -> mark#(X1) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) mark#(div(X1,X2)) -> mark#(X1) -> mark#(if(X1,X2,X3)) -> mark#(X1) mark#(div(X1,X2)) -> mark#(X1) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(div(0(),s(Y))) -> mark#(0()) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) -> active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(geq(X,0())) -> mark#(true()) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(geq(0(),s(Y))) -> mark#(false()) mark#(geq(X1,X2)) -> active#(geq(X1,X2)) -> active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) mark#(s(X)) -> mark#(X) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) mark#(s(X)) -> mark#(X) -> mark#(0()) -> active#(0()) mark#(s(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(s(X)) -> mark#(X) -> mark#(s(X)) -> active#(s(mark(X))) mark#(s(X)) -> mark#(X) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) mark#(s(X)) -> mark#(X) -> mark#(true()) -> active#(true()) mark#(s(X)) -> mark#(X) -> mark#(false()) -> active#(false()) mark#(s(X)) -> mark#(X) -> mark#(div(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) mark#(s(X)) -> mark#(X) -> mark#(if(X1,X2,X3)) -> mark#(X1) mark#(s(X)) -> mark#(X) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(minus(0(),Y)) -> mark#(0()) mark#(minus(X1,X2)) -> active#(minus(X1,X2)) -> active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(0()) -> active#(0()) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(s(X)) -> mark#(X) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(s(X)) -> active#(s(mark(X))) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(true()) -> active#(true()) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(false()) -> active#(false()) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(div(X1,X2)) -> mark#(X1) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(if(X1,X2,X3)) -> mark#(X1) active#(if(false(),X,Y)) -> mark#(Y) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) active#(if(true(),X,Y)) -> mark#(X) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) active#(if(true(),X,Y)) -> mark#(X) -> mark#(0()) -> active#(0()) active#(if(true(),X,Y)) -> mark#(X) -> mark#(s(X)) -> mark#(X) active#(if(true(),X,Y)) -> mark#(X) -> mark#(s(X)) -> active#(s(mark(X))) active#(if(true(),X,Y)) -> mark#(X) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) active#(if(true(),X,Y)) -> mark#(X) -> mark#(true()) -> active#(true()) active#(if(true(),X,Y)) -> mark#(X) -> mark#(false()) -> active#(false()) active#(if(true(),X,Y)) -> mark#(X) -> mark#(div(X1,X2)) -> mark#(X1) active#(if(true(),X,Y)) -> mark#(X) -> mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) active#(if(true(),X,Y)) -> mark#(X) -> mark#(if(X1,X2,X3)) -> mark#(X1) active#(if(true(),X,Y)) -> mark#(X) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(if(X1,X2,X3)) -> mark#(X1) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) -> mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) active#(div(0(),s(Y))) -> mark#(0()) -> mark#(0()) -> active#(0()) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) -> mark#(geq(X1,X2)) -> active#(geq(X1,X2)) active#(geq(0(),s(Y))) -> mark#(false()) -> mark#(false()) -> active#(false()) active#(geq(X,0())) -> mark#(true()) -> mark#(true()) -> active#(true()) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) -> mark#(minus(X1,X2)) -> active#(minus(X1,X2)) active#(minus(0(),Y)) -> mark#(0()) -> mark#(0()) -> active#(0()) SCC Processor: #sccs: 3 #rules: 12 #arcs: 72/400 DPs: mark#(if(X1,X2,X3)) -> mark#(X1) mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) active#(if(false(),X,Y)) -> mark#(Y) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) active#(div(s(X),s(Y))) -> mark#(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) mark#(div(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) active#(if(true(),X,Y)) -> mark#(X) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) LPO Processor: argument filtering: pi(0) = [] pi(minus) = 0 pi(active) = 0 pi(mark) = 0 pi(s) = [0] pi(geq) = [] pi(true) = [] pi(false) = [] pi(div) = [0] pi(if) = [0,1,2] pi(active#) = 0 pi(mark#) = 0 usable rules: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) precedence: div > geq > mark# ~ active# ~ if ~ false ~ true ~ s ~ mark ~ active ~ minus ~ 0 problem: DPs: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Restore Modifier: DPs: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) mark#(div(X1,X2)) -> active#(div(mark(X1),X2)) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) SCC Processor: #sccs: 0 #rules: 0 #arcs: 30/4 DPs: mark#(minus(X1,X2)) -> active#(minus(X1,X2)) active#(minus(s(X),s(Y))) -> mark#(minus(X,Y)) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Subterm Criterion Processor: simple projection: pi(minus) = 1 pi(active#) = 0 pi(mark#) = 0 problem: DPs: mark#(minus(X1,X2)) -> active#(minus(X1,X2)) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) SCC Processor: #sccs: 0 #rules: 0 #arcs: 2/1 DPs: mark#(geq(X1,X2)) -> active#(geq(X1,X2)) active#(geq(s(X),s(Y))) -> mark#(geq(X,Y)) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Subterm Criterion Processor: simple projection: pi(geq) = 1 pi(active#) = 0 pi(mark#) = 0 problem: DPs: mark#(geq(X1,X2)) -> active#(geq(X1,X2)) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) SCC Processor: #sccs: 0 #rules: 0 #arcs: 2/1 DPs: minus#(mark(X1),X2) -> minus#(X1,X2) minus#(X1,mark(X2)) -> minus#(X1,X2) minus#(active(X1),X2) -> minus#(X1,X2) minus#(X1,active(X2)) -> minus#(X1,X2) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Subterm Criterion Processor: simple projection: pi(minus#) = 0 problem: DPs: minus#(X1,mark(X2)) -> minus#(X1,X2) minus#(X1,active(X2)) -> minus#(X1,X2) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Subterm Criterion Processor: simple projection: pi(minus#) = 1 problem: DPs: TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Qed DPs: geq#(mark(X1),X2) -> geq#(X1,X2) geq#(X1,mark(X2)) -> geq#(X1,X2) geq#(active(X1),X2) -> geq#(X1,X2) geq#(X1,active(X2)) -> geq#(X1,X2) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Subterm Criterion Processor: simple projection: pi(geq#) = 0 problem: DPs: geq#(X1,mark(X2)) -> geq#(X1,X2) geq#(X1,active(X2)) -> geq#(X1,X2) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Subterm Criterion Processor: simple projection: pi(geq#) = 1 problem: DPs: TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Qed DPs: div#(mark(X1),X2) -> div#(X1,X2) div#(X1,mark(X2)) -> div#(X1,X2) div#(active(X1),X2) -> div#(X1,X2) div#(X1,active(X2)) -> div#(X1,X2) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Subterm Criterion Processor: simple projection: pi(div#) = 0 problem: DPs: div#(X1,mark(X2)) -> div#(X1,X2) div#(X1,active(X2)) -> div#(X1,X2) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Subterm Criterion Processor: simple projection: pi(div#) = 1 problem: DPs: TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Qed DPs: s#(mark(X)) -> s#(X) s#(active(X)) -> s#(X) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Subterm Criterion Processor: simple projection: pi(s#) = 0 problem: DPs: TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Qed DPs: if#(mark(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,mark(X2),X3) -> if#(X1,X2,X3) if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) if#(active(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,active(X2),X3) -> if#(X1,X2,X3) if#(X1,X2,active(X3)) -> if#(X1,X2,X3) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Subterm Criterion Processor: simple projection: pi(if#) = 1 problem: DPs: if#(mark(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) if#(active(X1),X2,X3) -> if#(X1,X2,X3) if#(X1,X2,active(X3)) -> if#(X1,X2,X3) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Subterm Criterion Processor: simple projection: pi(if#) = 2 problem: DPs: if#(mark(X1),X2,X3) -> if#(X1,X2,X3) if#(active(X1),X2,X3) -> if#(X1,X2,X3) TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Subterm Criterion Processor: simple projection: pi(if#) = 0 problem: DPs: TRS: active(minus(0(),Y)) -> mark(0()) active(minus(s(X),s(Y))) -> mark(minus(X,Y)) active(geq(X,0())) -> mark(true()) active(geq(0(),s(Y))) -> mark(false()) active(geq(s(X),s(Y))) -> mark(geq(X,Y)) active(div(0(),s(Y))) -> mark(0()) active(div(s(X),s(Y))) -> mark(if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) mark(minus(X1,X2)) -> active(minus(X1,X2)) mark(0()) -> active(0()) mark(s(X)) -> active(s(mark(X))) mark(geq(X1,X2)) -> active(geq(X1,X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(div(X1,X2)) -> active(div(mark(X1),X2)) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) minus(mark(X1),X2) -> minus(X1,X2) minus(X1,mark(X2)) -> minus(X1,X2) minus(active(X1),X2) -> minus(X1,X2) minus(X1,active(X2)) -> minus(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1),X2) -> geq(X1,X2) geq(X1,mark(X2)) -> geq(X1,X2) geq(active(X1),X2) -> geq(X1,X2) geq(X1,active(X2)) -> geq(X1,X2) div(mark(X1),X2) -> div(X1,X2) div(X1,mark(X2)) -> div(X1,X2) div(active(X1),X2) -> div(X1,X2) div(X1,active(X2)) -> div(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) Qed