/export/starexec/sandbox2/solver/bin/starexec_run_ttt2 /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES Problem: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Proof: DP Processor: DPs: active#(from(X)) -> s#(X) active#(from(X)) -> from#(s(X)) active#(from(X)) -> cons#(X,from(s(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(2ndspos(0(),Z)) -> mark#(rnil()) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> 2ndsneg#(N,Z) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> posrecip#(Y) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> rcons#(posrecip(Y),2ndsneg(N,Z)) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndsneg(0(),Z)) -> mark#(rnil()) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> 2ndspos#(N,Z) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> negrecip#(Y) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> rcons#(negrecip(Y),2ndspos(N,Z)) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) active#(pi(X)) -> from#(0()) active#(pi(X)) -> 2ndspos#(X,from(0())) active#(pi(X)) -> mark#(2ndspos(X,from(0()))) active#(plus(0(),Y)) -> mark#(Y) active#(plus(s(X),Y)) -> plus#(X,Y) active#(plus(s(X),Y)) -> s#(plus(X,Y)) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) active#(times(0(),Y)) -> mark#(0()) active#(times(s(X),Y)) -> times#(X,Y) active#(times(s(X),Y)) -> plus#(Y,times(X,Y)) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) active#(square(X)) -> times#(X,X) active#(square(X)) -> mark#(times(X,X)) mark#(from(X)) -> mark#(X) mark#(from(X)) -> from#(mark(X)) mark#(from(X)) -> active#(from(mark(X))) mark#(cons(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> cons#(mark(X1),X2) mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(s(X)) -> mark#(X) mark#(s(X)) -> s#(mark(X)) mark#(s(X)) -> active#(s(mark(X))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> 2ndspos#(mark(X1),mark(X2)) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(0()) -> active#(0()) mark#(rnil()) -> active#(rnil()) mark#(rcons(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> rcons#(mark(X1),mark(X2)) mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(posrecip(X)) -> mark#(X) mark#(posrecip(X)) -> posrecip#(mark(X)) mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> 2ndsneg#(mark(X1),mark(X2)) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(negrecip(X)) -> mark#(X) mark#(negrecip(X)) -> negrecip#(mark(X)) mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(pi(X)) -> mark#(X) mark#(pi(X)) -> pi#(mark(X)) mark#(pi(X)) -> active#(pi(mark(X))) mark#(plus(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> plus#(mark(X1),mark(X2)) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(times(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> times#(mark(X1),mark(X2)) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(square(X)) -> mark#(X) mark#(square(X)) -> square#(mark(X)) mark#(square(X)) -> active#(square(mark(X))) from#(mark(X)) -> from#(X) from#(active(X)) -> from#(X) cons#(mark(X1),X2) -> cons#(X1,X2) cons#(X1,mark(X2)) -> cons#(X1,X2) cons#(active(X1),X2) -> cons#(X1,X2) cons#(X1,active(X2)) -> cons#(X1,X2) s#(mark(X)) -> s#(X) s#(active(X)) -> s#(X) 2ndspos#(mark(X1),X2) -> 2ndspos#(X1,X2) 2ndspos#(X1,mark(X2)) -> 2ndspos#(X1,X2) 2ndspos#(active(X1),X2) -> 2ndspos#(X1,X2) 2ndspos#(X1,active(X2)) -> 2ndspos#(X1,X2) rcons#(mark(X1),X2) -> rcons#(X1,X2) rcons#(X1,mark(X2)) -> rcons#(X1,X2) rcons#(active(X1),X2) -> rcons#(X1,X2) rcons#(X1,active(X2)) -> rcons#(X1,X2) posrecip#(mark(X)) -> posrecip#(X) posrecip#(active(X)) -> posrecip#(X) 2ndsneg#(mark(X1),X2) -> 2ndsneg#(X1,X2) 2ndsneg#(X1,mark(X2)) -> 2ndsneg#(X1,X2) 2ndsneg#(active(X1),X2) -> 2ndsneg#(X1,X2) 2ndsneg#(X1,active(X2)) -> 2ndsneg#(X1,X2) negrecip#(mark(X)) -> negrecip#(X) negrecip#(active(X)) -> negrecip#(X) pi#(mark(X)) -> pi#(X) pi#(active(X)) -> pi#(X) plus#(mark(X1),X2) -> plus#(X1,X2) plus#(X1,mark(X2)) -> plus#(X1,X2) plus#(active(X1),X2) -> plus#(X1,X2) plus#(X1,active(X2)) -> plus#(X1,X2) times#(mark(X1),X2) -> times#(X1,X2) times#(X1,mark(X2)) -> times#(X1,X2) times#(active(X1),X2) -> times#(X1,X2) times#(X1,active(X2)) -> times#(X1,X2) square#(mark(X)) -> square#(X) square#(active(X)) -> square#(X) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) TDG Processor: DPs: active#(from(X)) -> s#(X) active#(from(X)) -> from#(s(X)) active#(from(X)) -> cons#(X,from(s(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(2ndspos(0(),Z)) -> mark#(rnil()) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> 2ndsneg#(N,Z) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> posrecip#(Y) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> rcons#(posrecip(Y),2ndsneg(N,Z)) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndsneg(0(),Z)) -> mark#(rnil()) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> 2ndspos#(N,Z) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> negrecip#(Y) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> rcons#(negrecip(Y),2ndspos(N,Z)) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) active#(pi(X)) -> from#(0()) active#(pi(X)) -> 2ndspos#(X,from(0())) active#(pi(X)) -> mark#(2ndspos(X,from(0()))) active#(plus(0(),Y)) -> mark#(Y) active#(plus(s(X),Y)) -> plus#(X,Y) active#(plus(s(X),Y)) -> s#(plus(X,Y)) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) active#(times(0(),Y)) -> mark#(0()) active#(times(s(X),Y)) -> times#(X,Y) active#(times(s(X),Y)) -> plus#(Y,times(X,Y)) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) active#(square(X)) -> times#(X,X) active#(square(X)) -> mark#(times(X,X)) mark#(from(X)) -> mark#(X) mark#(from(X)) -> from#(mark(X)) mark#(from(X)) -> active#(from(mark(X))) mark#(cons(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> cons#(mark(X1),X2) mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(s(X)) -> mark#(X) mark#(s(X)) -> s#(mark(X)) mark#(s(X)) -> active#(s(mark(X))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> 2ndspos#(mark(X1),mark(X2)) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(0()) -> active#(0()) mark#(rnil()) -> active#(rnil()) mark#(rcons(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> rcons#(mark(X1),mark(X2)) mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(posrecip(X)) -> mark#(X) mark#(posrecip(X)) -> posrecip#(mark(X)) mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> 2ndsneg#(mark(X1),mark(X2)) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(negrecip(X)) -> mark#(X) mark#(negrecip(X)) -> negrecip#(mark(X)) mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(pi(X)) -> mark#(X) mark#(pi(X)) -> pi#(mark(X)) mark#(pi(X)) -> active#(pi(mark(X))) mark#(plus(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> plus#(mark(X1),mark(X2)) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(times(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> times#(mark(X1),mark(X2)) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(square(X)) -> mark#(X) mark#(square(X)) -> square#(mark(X)) mark#(square(X)) -> active#(square(mark(X))) from#(mark(X)) -> from#(X) from#(active(X)) -> from#(X) cons#(mark(X1),X2) -> cons#(X1,X2) cons#(X1,mark(X2)) -> cons#(X1,X2) cons#(active(X1),X2) -> cons#(X1,X2) cons#(X1,active(X2)) -> cons#(X1,X2) s#(mark(X)) -> s#(X) s#(active(X)) -> s#(X) 2ndspos#(mark(X1),X2) -> 2ndspos#(X1,X2) 2ndspos#(X1,mark(X2)) -> 2ndspos#(X1,X2) 2ndspos#(active(X1),X2) -> 2ndspos#(X1,X2) 2ndspos#(X1,active(X2)) -> 2ndspos#(X1,X2) rcons#(mark(X1),X2) -> rcons#(X1,X2) rcons#(X1,mark(X2)) -> rcons#(X1,X2) rcons#(active(X1),X2) -> rcons#(X1,X2) rcons#(X1,active(X2)) -> rcons#(X1,X2) posrecip#(mark(X)) -> posrecip#(X) posrecip#(active(X)) -> posrecip#(X) 2ndsneg#(mark(X1),X2) -> 2ndsneg#(X1,X2) 2ndsneg#(X1,mark(X2)) -> 2ndsneg#(X1,X2) 2ndsneg#(active(X1),X2) -> 2ndsneg#(X1,X2) 2ndsneg#(X1,active(X2)) -> 2ndsneg#(X1,X2) negrecip#(mark(X)) -> negrecip#(X) negrecip#(active(X)) -> negrecip#(X) pi#(mark(X)) -> pi#(X) pi#(active(X)) -> pi#(X) plus#(mark(X1),X2) -> plus#(X1,X2) plus#(X1,mark(X2)) -> plus#(X1,X2) plus#(active(X1),X2) -> plus#(X1,X2) plus#(X1,active(X2)) -> plus#(X1,X2) times#(mark(X1),X2) -> times#(X1,X2) times#(X1,mark(X2)) -> times#(X1,X2) times#(active(X1),X2) -> times#(X1,X2) times#(X1,active(X2)) -> times#(X1,X2) square#(mark(X)) -> square#(X) square#(active(X)) -> square#(X) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) graph: ... SCC Processor: #sccs: 13 #rules: 78 #arcs: 1790/11236 DPs: mark#(square(X)) -> mark#(X) mark#(from(X)) -> mark#(X) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) mark#(cons(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) active#(2ndspos(0(),Z)) -> mark#(rnil()) mark#(s(X)) -> mark#(X) mark#(s(X)) -> active#(s(mark(X))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndsneg(0(),Z)) -> mark#(rnil()) mark#(0()) -> active#(0()) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rnil()) -> active#(rnil()) active#(pi(X)) -> mark#(2ndspos(X,from(0()))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) active#(plus(0(),Y)) -> mark#(Y) mark#(posrecip(X)) -> mark#(X) mark#(posrecip(X)) -> active#(posrecip(mark(X))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(times(0(),Y)) -> mark#(0()) mark#(negrecip(X)) -> mark#(X) mark#(negrecip(X)) -> active#(negrecip(mark(X))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(pi(X)) -> mark#(X) mark#(pi(X)) -> active#(pi(mark(X))) active#(square(X)) -> mark#(times(X,X)) mark#(plus(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(times(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(square(X)) -> active#(square(mark(X))) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) EDG Processor: DPs: mark#(square(X)) -> mark#(X) mark#(from(X)) -> mark#(X) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) mark#(cons(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) active#(2ndspos(0(),Z)) -> mark#(rnil()) mark#(s(X)) -> mark#(X) mark#(s(X)) -> active#(s(mark(X))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndsneg(0(),Z)) -> mark#(rnil()) mark#(0()) -> active#(0()) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rnil()) -> active#(rnil()) active#(pi(X)) -> mark#(2ndspos(X,from(0()))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) active#(plus(0(),Y)) -> mark#(Y) mark#(posrecip(X)) -> mark#(X) mark#(posrecip(X)) -> active#(posrecip(mark(X))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(times(0(),Y)) -> mark#(0()) mark#(negrecip(X)) -> mark#(X) mark#(negrecip(X)) -> active#(negrecip(mark(X))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(pi(X)) -> mark#(X) mark#(pi(X)) -> active#(pi(mark(X))) active#(square(X)) -> mark#(times(X,X)) mark#(plus(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(times(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(square(X)) -> active#(square(mark(X))) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) graph: mark#(square(X)) -> mark#(X) -> mark#(from(X)) -> mark#(X) mark#(square(X)) -> mark#(X) -> mark#(from(X)) -> active#(from(mark(X))) mark#(square(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(square(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(square(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(square(X)) -> mark#(X) -> mark#(s(X)) -> active#(s(mark(X))) mark#(square(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(square(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(square(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(square(X)) -> mark#(X) -> mark#(0()) -> active#(0()) mark#(square(X)) -> mark#(X) -> mark#(rnil()) -> active#(rnil()) mark#(square(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(square(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(square(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(square(X)) -> mark#(X) -> mark#(posrecip(X)) -> mark#(X) mark#(square(X)) -> mark#(X) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(square(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(square(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(square(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(square(X)) -> mark#(X) -> mark#(negrecip(X)) -> mark#(X) mark#(square(X)) -> mark#(X) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(square(X)) -> mark#(X) -> mark#(pi(X)) -> mark#(X) mark#(square(X)) -> mark#(X) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(square(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(square(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(square(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(square(X)) -> mark#(X) -> mark#(times(X1,X2)) -> mark#(X2) mark#(square(X)) -> mark#(X) -> mark#(times(X1,X2)) -> mark#(X1) mark#(square(X)) -> mark#(X) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(square(X)) -> mark#(X) -> mark#(square(X)) -> mark#(X) mark#(square(X)) -> mark#(X) -> mark#(square(X)) -> active#(square(mark(X))) mark#(square(X)) -> active#(square(mark(X))) -> active#(square(X)) -> mark#(times(X,X)) mark#(times(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> active#(from(mark(X))) mark#(times(X1,X2)) -> mark#(X2) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> mark#(X2) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(times(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> active#(s(mark(X))) mark#(times(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(times(X1,X2)) -> mark#(X2) -> mark#(0()) -> active#(0()) mark#(times(X1,X2)) -> mark#(X2) -> mark#(rnil()) -> active#(rnil()) mark#(times(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(times(X1,X2)) -> mark#(X2) -> mark#(posrecip(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X2) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(times(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(times(X1,X2)) -> mark#(X2) -> mark#(negrecip(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X2) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(times(X1,X2)) -> mark#(X2) -> mark#(pi(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X2) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(times(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(times(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(times(X1,X2)) -> mark#(X2) -> mark#(square(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X2) -> mark#(square(X)) -> active#(square(mark(X))) mark#(times(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> active#(from(mark(X))) mark#(times(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(times(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> active#(s(mark(X))) mark#(times(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(times(X1,X2)) -> mark#(X1) -> mark#(0()) -> active#(0()) mark#(times(X1,X2)) -> mark#(X1) -> mark#(rnil()) -> active#(rnil()) mark#(times(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(times(X1,X2)) -> mark#(X1) -> mark#(posrecip(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(times(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(times(X1,X2)) -> mark#(X1) -> mark#(negrecip(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(times(X1,X2)) -> mark#(X1) -> mark#(pi(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(times(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(times(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(times(X1,X2)) -> mark#(X1) -> mark#(square(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) -> mark#(square(X)) -> active#(square(mark(X))) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) -> active#(times(0(),Y)) -> mark#(0()) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) -> active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> active#(from(mark(X))) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> active#(s(mark(X))) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(0()) -> active#(0()) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(rnil()) -> active#(rnil()) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(posrecip(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(negrecip(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(pi(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(square(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(square(X)) -> active#(square(mark(X))) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> active#(from(mark(X))) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> active#(s(mark(X))) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(0()) -> active#(0()) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(rnil()) -> active#(rnil()) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(posrecip(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(negrecip(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(pi(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(square(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(square(X)) -> active#(square(mark(X))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) -> active#(plus(0(),Y)) -> mark#(Y) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) -> active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(pi(X)) -> mark#(X) -> mark#(from(X)) -> mark#(X) mark#(pi(X)) -> mark#(X) -> mark#(from(X)) -> active#(from(mark(X))) mark#(pi(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(pi(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(pi(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(pi(X)) -> mark#(X) -> mark#(s(X)) -> active#(s(mark(X))) mark#(pi(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(pi(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(pi(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(pi(X)) -> mark#(X) -> mark#(0()) -> active#(0()) mark#(pi(X)) -> mark#(X) -> mark#(rnil()) -> active#(rnil()) mark#(pi(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(pi(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(pi(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(pi(X)) -> mark#(X) -> mark#(posrecip(X)) -> mark#(X) mark#(pi(X)) -> mark#(X) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(pi(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(pi(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(pi(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(pi(X)) -> mark#(X) -> mark#(negrecip(X)) -> mark#(X) mark#(pi(X)) -> mark#(X) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(pi(X)) -> mark#(X) -> mark#(pi(X)) -> mark#(X) mark#(pi(X)) -> mark#(X) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(pi(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(pi(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(pi(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(pi(X)) -> mark#(X) -> mark#(times(X1,X2)) -> mark#(X2) mark#(pi(X)) -> mark#(X) -> mark#(times(X1,X2)) -> mark#(X1) mark#(pi(X)) -> mark#(X) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(pi(X)) -> mark#(X) -> mark#(square(X)) -> mark#(X) mark#(pi(X)) -> mark#(X) -> mark#(square(X)) -> active#(square(mark(X))) mark#(pi(X)) -> active#(pi(mark(X))) -> active#(pi(X)) -> mark#(2ndspos(X,from(0()))) mark#(negrecip(X)) -> mark#(X) -> mark#(from(X)) -> mark#(X) mark#(negrecip(X)) -> mark#(X) -> mark#(from(X)) -> active#(from(mark(X))) mark#(negrecip(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(negrecip(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(negrecip(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(negrecip(X)) -> mark#(X) -> mark#(s(X)) -> active#(s(mark(X))) mark#(negrecip(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(negrecip(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(negrecip(X)) -> mark#(X) -> mark#(0()) -> active#(0()) mark#(negrecip(X)) -> mark#(X) -> mark#(rnil()) -> active#(rnil()) mark#(negrecip(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(negrecip(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(negrecip(X)) -> mark#(X) -> mark#(posrecip(X)) -> mark#(X) mark#(negrecip(X)) -> mark#(X) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(negrecip(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(negrecip(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(negrecip(X)) -> mark#(X) -> mark#(negrecip(X)) -> mark#(X) mark#(negrecip(X)) -> mark#(X) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(negrecip(X)) -> mark#(X) -> mark#(pi(X)) -> mark#(X) mark#(negrecip(X)) -> mark#(X) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(negrecip(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(negrecip(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(negrecip(X)) -> mark#(X) -> mark#(times(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) -> mark#(times(X1,X2)) -> mark#(X1) mark#(negrecip(X)) -> mark#(X) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(negrecip(X)) -> mark#(X) -> mark#(square(X)) -> mark#(X) mark#(negrecip(X)) -> mark#(X) -> mark#(square(X)) -> active#(square(mark(X))) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> active#(from(mark(X))) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> active#(s(mark(X))) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(0()) -> active#(0()) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(rnil()) -> active#(rnil()) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(negrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(pi(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(square(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(square(X)) -> active#(square(mark(X))) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> active#(from(mark(X))) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> active#(s(mark(X))) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(0()) -> active#(0()) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(rnil()) -> active#(rnil()) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(negrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(pi(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(square(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(square(X)) -> active#(square(mark(X))) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> active#(from(mark(X))) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> active#(s(mark(X))) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(0()) -> active#(0()) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(rnil()) -> active#(rnil()) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(posrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(pi(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(square(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(square(X)) -> active#(square(mark(X))) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> active#(from(mark(X))) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> active#(s(mark(X))) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(0()) -> active#(0()) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(rnil()) -> active#(rnil()) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(posrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(pi(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(square(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(square(X)) -> active#(square(mark(X))) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) -> active#(2ndsneg(0(),Z)) -> mark#(rnil()) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) -> active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(posrecip(X)) -> mark#(X) -> mark#(from(X)) -> mark#(X) mark#(posrecip(X)) -> mark#(X) -> mark#(from(X)) -> active#(from(mark(X))) mark#(posrecip(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(posrecip(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(posrecip(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(posrecip(X)) -> mark#(X) -> mark#(s(X)) -> active#(s(mark(X))) mark#(posrecip(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(posrecip(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(posrecip(X)) -> mark#(X) -> mark#(0()) -> active#(0()) mark#(posrecip(X)) -> mark#(X) -> mark#(rnil()) -> active#(rnil()) mark#(posrecip(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(posrecip(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(posrecip(X)) -> mark#(X) -> mark#(posrecip(X)) -> mark#(X) mark#(posrecip(X)) -> mark#(X) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(posrecip(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(posrecip(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(posrecip(X)) -> mark#(X) -> mark#(negrecip(X)) -> mark#(X) mark#(posrecip(X)) -> mark#(X) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(posrecip(X)) -> mark#(X) -> mark#(pi(X)) -> mark#(X) mark#(posrecip(X)) -> mark#(X) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(posrecip(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(posrecip(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(posrecip(X)) -> mark#(X) -> mark#(times(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) -> mark#(times(X1,X2)) -> mark#(X1) mark#(posrecip(X)) -> mark#(X) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(posrecip(X)) -> mark#(X) -> mark#(square(X)) -> mark#(X) mark#(posrecip(X)) -> mark#(X) -> mark#(square(X)) -> active#(square(mark(X))) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> active#(from(mark(X))) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> active#(s(mark(X))) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(0()) -> active#(0()) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(rnil()) -> active#(rnil()) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(posrecip(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(negrecip(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(pi(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(square(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(square(X)) -> active#(square(mark(X))) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> active#(from(mark(X))) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> active#(s(mark(X))) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(0()) -> active#(0()) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(rnil()) -> active#(rnil()) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(posrecip(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(negrecip(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(pi(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(square(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(square(X)) -> active#(square(mark(X))) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) -> active#(2ndspos(0(),Z)) -> mark#(rnil()) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) -> active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> active#(from(mark(X))) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> active#(s(mark(X))) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(0()) -> active#(0()) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(rnil()) -> active#(rnil()) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(posrecip(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(negrecip(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(pi(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(square(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(square(X)) -> active#(square(mark(X))) mark#(s(X)) -> mark#(X) -> mark#(from(X)) -> mark#(X) mark#(s(X)) -> mark#(X) -> mark#(from(X)) -> active#(from(mark(X))) mark#(s(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) 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#(2ndspos(X1,X2)) -> mark#(X2) mark#(s(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(s(X)) -> mark#(X) -> mark#(0()) -> active#(0()) mark#(s(X)) -> mark#(X) -> mark#(rnil()) -> active#(rnil()) mark#(s(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(s(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(s(X)) -> mark#(X) -> mark#(posrecip(X)) -> mark#(X) mark#(s(X)) -> mark#(X) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(s(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(s(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(s(X)) -> mark#(X) -> mark#(negrecip(X)) -> mark#(X) mark#(s(X)) -> mark#(X) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(s(X)) -> mark#(X) -> mark#(pi(X)) -> mark#(X) mark#(s(X)) -> mark#(X) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(s(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(s(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(s(X)) -> mark#(X) -> mark#(times(X1,X2)) -> mark#(X2) mark#(s(X)) -> mark#(X) -> mark#(times(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(s(X)) -> mark#(X) -> mark#(square(X)) -> mark#(X) mark#(s(X)) -> mark#(X) -> mark#(square(X)) -> active#(square(mark(X))) mark#(from(X)) -> mark#(X) -> mark#(from(X)) -> mark#(X) mark#(from(X)) -> mark#(X) -> mark#(from(X)) -> active#(from(mark(X))) mark#(from(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(from(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(from(X)) -> mark#(X) -> mark#(s(X)) -> active#(s(mark(X))) mark#(from(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(from(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(from(X)) -> mark#(X) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(from(X)) -> mark#(X) -> mark#(0()) -> active#(0()) mark#(from(X)) -> mark#(X) -> mark#(rnil()) -> active#(rnil()) mark#(from(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(from(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(from(X)) -> mark#(X) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(from(X)) -> mark#(X) -> mark#(posrecip(X)) -> mark#(X) mark#(from(X)) -> mark#(X) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(from(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(from(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(from(X)) -> mark#(X) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(from(X)) -> mark#(X) -> mark#(negrecip(X)) -> mark#(X) mark#(from(X)) -> mark#(X) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(from(X)) -> mark#(X) -> mark#(pi(X)) -> mark#(X) mark#(from(X)) -> mark#(X) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(from(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(from(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(from(X)) -> mark#(X) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(from(X)) -> mark#(X) -> mark#(times(X1,X2)) -> mark#(X2) mark#(from(X)) -> mark#(X) -> mark#(times(X1,X2)) -> mark#(X1) mark#(from(X)) -> mark#(X) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(from(X)) -> mark#(X) -> mark#(square(X)) -> mark#(X) mark#(from(X)) -> mark#(X) -> mark#(square(X)) -> active#(square(mark(X))) mark#(from(X)) -> active#(from(mark(X))) -> active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(square(X)) -> mark#(times(X,X)) -> mark#(times(X1,X2)) -> mark#(X2) active#(square(X)) -> mark#(times(X,X)) -> mark#(times(X1,X2)) -> mark#(X1) active#(square(X)) -> mark#(times(X,X)) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(0(),Y)) -> mark#(0()) -> mark#(0()) -> active#(0()) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) -> mark#(plus(X1,X2)) -> mark#(X2) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) -> mark#(plus(X1,X2)) -> mark#(X1) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(0(),Y)) -> mark#(Y) -> mark#(from(X)) -> mark#(X) active#(plus(0(),Y)) -> mark#(Y) -> mark#(from(X)) -> active#(from(mark(X))) active#(plus(0(),Y)) -> mark#(Y) -> mark#(cons(X1,X2)) -> mark#(X1) active#(plus(0(),Y)) -> mark#(Y) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) active#(plus(0(),Y)) -> mark#(Y) -> mark#(s(X)) -> mark#(X) active#(plus(0(),Y)) -> mark#(Y) -> mark#(s(X)) -> active#(s(mark(X))) active#(plus(0(),Y)) -> mark#(Y) -> mark#(2ndspos(X1,X2)) -> mark#(X2) active#(plus(0(),Y)) -> mark#(Y) -> mark#(2ndspos(X1,X2)) -> mark#(X1) active#(plus(0(),Y)) -> mark#(Y) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(plus(0(),Y)) -> mark#(Y) -> mark#(0()) -> active#(0()) active#(plus(0(),Y)) -> mark#(Y) -> mark#(rnil()) -> active#(rnil()) active#(plus(0(),Y)) -> mark#(Y) -> mark#(rcons(X1,X2)) -> mark#(X2) active#(plus(0(),Y)) -> mark#(Y) -> mark#(rcons(X1,X2)) -> mark#(X1) active#(plus(0(),Y)) -> mark#(Y) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) active#(plus(0(),Y)) -> mark#(Y) -> mark#(posrecip(X)) -> mark#(X) active#(plus(0(),Y)) -> mark#(Y) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) active#(plus(0(),Y)) -> mark#(Y) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) active#(plus(0(),Y)) -> mark#(Y) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) active#(plus(0(),Y)) -> mark#(Y) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(plus(0(),Y)) -> mark#(Y) -> mark#(negrecip(X)) -> mark#(X) active#(plus(0(),Y)) -> mark#(Y) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) active#(plus(0(),Y)) -> mark#(Y) -> mark#(pi(X)) -> mark#(X) active#(plus(0(),Y)) -> mark#(Y) -> mark#(pi(X)) -> active#(pi(mark(X))) active#(plus(0(),Y)) -> mark#(Y) -> mark#(plus(X1,X2)) -> mark#(X2) active#(plus(0(),Y)) -> mark#(Y) -> mark#(plus(X1,X2)) -> mark#(X1) active#(plus(0(),Y)) -> mark#(Y) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(0(),Y)) -> mark#(Y) -> mark#(times(X1,X2)) -> mark#(X2) active#(plus(0(),Y)) -> mark#(Y) -> mark#(times(X1,X2)) -> mark#(X1) active#(plus(0(),Y)) -> mark#(Y) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(plus(0(),Y)) -> mark#(Y) -> mark#(square(X)) -> mark#(X) active#(plus(0(),Y)) -> mark#(Y) -> mark#(square(X)) -> active#(square(mark(X))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) -> mark#(s(X)) -> mark#(X) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) -> mark#(s(X)) -> active#(s(mark(X))) active#(pi(X)) -> mark#(2ndspos(X,from(0()))) -> mark#(2ndspos(X1,X2)) -> mark#(X2) active#(pi(X)) -> mark#(2ndspos(X,from(0()))) -> mark#(2ndspos(X1,X2)) -> mark#(X1) active#(pi(X)) -> mark#(2ndspos(X,from(0()))) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndsneg(0(),Z)) -> mark#(rnil()) -> mark#(rnil()) -> active#(rnil()) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) -> mark#(rcons(X1,X2)) -> mark#(X2) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) -> mark#(rcons(X1,X2)) -> mark#(X1) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) active#(2ndspos(0(),Z)) -> mark#(rnil()) -> mark#(rnil()) -> active#(rnil()) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) -> mark#(rcons(X1,X2)) -> mark#(X2) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) -> mark#(rcons(X1,X2)) -> mark#(X1) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) active#(from(X)) -> mark#(cons(X,from(s(X)))) -> mark#(cons(X1,X2)) -> mark#(X1) active#(from(X)) -> mark#(cons(X,from(s(X)))) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) SCC Processor: #sccs: 1 #rules: 32 #arcs: 591/1764 DPs: mark#(square(X)) -> mark#(X) mark#(square(X)) -> active#(square(mark(X))) active#(square(X)) -> mark#(times(X,X)) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(pi(X)) -> active#(pi(mark(X))) active#(pi(X)) -> mark#(2ndspos(X,from(0()))) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(pi(X)) -> mark#(X) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) mark#(from(X)) -> mark#(X) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Arctic Interpretation Processor: dimension: 1 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) interpretation: [mark](x0) = x0, [square](x0) = 4x0 + 0, [posrecip](x0) = x0 + 0, [active](x0) = x0, [cons](x0, x1) = x0 + x1 + 0, [active#](x0) = x0, [0] = 0, [rcons](x0, x1) = x0 + x1 + 0, [from](x0) = x0 + 0, [rnil] = 3, [mark#](x0) = x0, [times](x0, x1) = x0 + 4x1 + 0, [pi](x0) = 3x0 + 3, [negrecip](x0) = x0 + 0, [2ndsneg](x0, x1) = 3x0 + x1 + 0, [plus](x0, x1) = x0 + x1, [2ndspos](x0, x1) = 3x0 + x1 + 0, [s](x0) = x0 orientation: mark#(square(X)) = 4X + 0 >= X = mark#(X) mark#(square(X)) = 4X + 0 >= 4X + 0 = active#(square(mark(X))) active#(square(X)) = 4X + 0 >= 4X + 0 = mark#(times(X,X)) mark#(times(X1,X2)) = X1 + 4X2 + 0 >= X1 + 4X2 + 0 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = X + 4Y + 0 >= X + 4Y + 0 = mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) = X1 + X2 >= X1 + X2 = active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) = X + Y >= X + Y = mark#(s(plus(X,Y))) mark#(s(X)) = X >= X = mark#(X) mark#(times(X1,X2)) = X1 + 4X2 + 0 >= X1 = mark#(X1) mark#(times(X1,X2)) = X1 + 4X2 + 0 >= X2 = mark#(X2) mark#(plus(X1,X2)) = X1 + X2 >= X1 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 >= X2 = mark#(X2) mark#(pi(X)) = 3X + 3 >= 3X + 3 = active#(pi(mark(X))) active#(pi(X)) = 3X + 3 >= 3X + 0 = mark#(2ndspos(X,from(0()))) mark#(2ndspos(X1,X2)) = 3X1 + X2 + 0 >= 3X1 + X2 + 0 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) = 3N + X + Y + Z + 0 >= 3N + Y + Z + 0 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X1 = mark#(X1) mark#(pi(X)) = 3X + 3 >= X = mark#(X) mark#(negrecip(X)) = X + 0 >= X = mark#(X) mark#(2ndsneg(X1,X2)) = 3X1 + X2 + 0 >= 3X1 + X2 + 0 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) = 3N + X + Y + Z + 0 >= 3N + Y + Z + 0 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X2 = mark#(X2) mark#(2ndsneg(X1,X2)) = 3X1 + X2 + 0 >= X1 = mark#(X1) mark#(2ndsneg(X1,X2)) = 3X1 + X2 + 0 >= X2 = mark#(X2) mark#(posrecip(X)) = X + 0 >= X = mark#(X) mark#(2ndspos(X1,X2)) = 3X1 + X2 + 0 >= X1 = mark#(X1) mark#(2ndspos(X1,X2)) = 3X1 + X2 + 0 >= X2 = mark#(X2) mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 = mark#(X1) mark#(from(X)) = X + 0 >= X + 0 = active#(from(mark(X))) active#(from(X)) = X + 0 >= X + 0 = mark#(cons(X,from(s(X)))) mark#(from(X)) = X + 0 >= X = mark#(X) active#(plus(0(),Y)) = Y + 0 >= Y = mark#(Y) active(from(X)) = X + 0 >= X + 0 = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = Z + 3 >= 3 = mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) = 3N + X + Y + Z + 0 >= 3N + Y + Z + 0 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = Z + 3 >= 3 = mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) = 3N + X + Y + Z + 0 >= 3N + Y + Z + 0 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = 3X + 3 >= 3X + 0 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 0 >= Y = mark(Y) active(plus(s(X),Y)) = X + Y >= X + Y = mark(s(plus(X,Y))) active(times(0(),Y)) = 4Y + 0 >= 0 = mark(0()) active(times(s(X),Y)) = X + 4Y + 0 >= X + 4Y + 0 = mark(plus(Y,times(X,Y))) active(square(X)) = 4X + 0 >= 4X + 0 = mark(times(X,X)) mark(from(X)) = X + 0 >= X + 0 = active(from(mark(X))) mark(cons(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(cons(mark(X1),X2)) mark(s(X)) = X >= X = active(s(mark(X))) mark(2ndspos(X1,X2)) = 3X1 + X2 + 0 >= 3X1 + X2 + 0 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 0 >= 0 = active(0()) mark(rnil()) = 3 >= 3 = active(rnil()) mark(rcons(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) = X + 0 >= X + 0 = active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) = 3X1 + X2 + 0 >= 3X1 + X2 + 0 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = X + 0 >= X + 0 = active(negrecip(mark(X))) mark(pi(X)) = 3X + 3 >= 3X + 3 = active(pi(mark(X))) mark(plus(X1,X2)) = X1 + X2 >= X1 + X2 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = X1 + 4X2 + 0 >= X1 + 4X2 + 0 = active(times(mark(X1),mark(X2))) mark(square(X)) = 4X + 0 >= 4X + 0 = active(square(mark(X))) from(mark(X)) = X + 0 >= X + 0 = from(X) from(active(X)) = X + 0 >= X + 0 = from(X) cons(mark(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) s(mark(X)) = X >= X = s(X) s(active(X)) = X >= X = s(X) 2ndspos(mark(X1),X2) = 3X1 + X2 + 0 >= 3X1 + X2 + 0 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = 3X1 + X2 + 0 >= 3X1 + X2 + 0 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = 3X1 + X2 + 0 >= 3X1 + X2 + 0 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = 3X1 + X2 + 0 >= 3X1 + X2 + 0 = 2ndspos(X1,X2) rcons(mark(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = rcons(X1,X2) rcons(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = rcons(X1,X2) rcons(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = rcons(X1,X2) rcons(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = rcons(X1,X2) posrecip(mark(X)) = X + 0 >= X + 0 = posrecip(X) posrecip(active(X)) = X + 0 >= X + 0 = posrecip(X) 2ndsneg(mark(X1),X2) = 3X1 + X2 + 0 >= 3X1 + X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = 3X1 + X2 + 0 >= 3X1 + X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = 3X1 + X2 + 0 >= 3X1 + X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = 3X1 + X2 + 0 >= 3X1 + X2 + 0 = 2ndsneg(X1,X2) negrecip(mark(X)) = X + 0 >= X + 0 = negrecip(X) negrecip(active(X)) = X + 0 >= X + 0 = negrecip(X) pi(mark(X)) = 3X + 3 >= 3X + 3 = pi(X) pi(active(X)) = 3X + 3 >= 3X + 3 = pi(X) plus(mark(X1),X2) = X1 + X2 >= X1 + X2 = plus(X1,X2) plus(X1,mark(X2)) = X1 + X2 >= X1 + X2 = plus(X1,X2) plus(active(X1),X2) = X1 + X2 >= X1 + X2 = plus(X1,X2) plus(X1,active(X2)) = X1 + X2 >= X1 + X2 = plus(X1,X2) times(mark(X1),X2) = X1 + 4X2 + 0 >= X1 + 4X2 + 0 = times(X1,X2) times(X1,mark(X2)) = X1 + 4X2 + 0 >= X1 + 4X2 + 0 = times(X1,X2) times(active(X1),X2) = X1 + 4X2 + 0 >= X1 + 4X2 + 0 = times(X1,X2) times(X1,active(X2)) = X1 + 4X2 + 0 >= X1 + 4X2 + 0 = times(X1,X2) square(mark(X)) = 4X + 0 >= 4X + 0 = square(X) square(active(X)) = 4X + 0 >= 4X + 0 = square(X) problem: DPs: mark#(square(X)) -> active#(square(mark(X))) active#(square(X)) -> mark#(times(X,X)) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(pi(X)) -> active#(pi(mark(X))) active#(pi(X)) -> mark#(2ndspos(X,from(0()))) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) mark#(from(X)) -> mark#(X) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Restore Modifier: DPs: mark#(square(X)) -> active#(square(mark(X))) active#(square(X)) -> mark#(times(X,X)) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(pi(X)) -> active#(pi(mark(X))) active#(pi(X)) -> mark#(2ndspos(X,from(0()))) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) mark#(from(X)) -> mark#(X) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Arctic Interpretation Processor: dimension: 1 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) interpretation: [mark](x0) = x0, [square](x0) = x0, [posrecip](x0) = x0 + 0, [active](x0) = x0, [cons](x0, x1) = x0 + x1, [active#](x0) = x0 + 0, [0] = 0, [rcons](x0, x1) = x0 + x1, [from](x0) = x0 + 0, [rnil] = 0, [mark#](x0) = x0 + 0, [times](x0, x1) = x0 + x1, [pi](x0) = 1x0 + 4, [negrecip](x0) = x0 + 0, [2ndsneg](x0, x1) = x0 + x1, [plus](x0, x1) = x0 + x1 + 0, [2ndspos](x0, x1) = x0 + x1, [s](x0) = x0 + 0 orientation: mark#(square(X)) = X + 0 >= X + 0 = active#(square(mark(X))) active#(square(X)) = X + 0 >= X + 0 = mark#(times(X,X)) mark#(times(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = X + Y + 0 >= X + Y + 0 = mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) = X + Y + 0 >= X + Y + 0 = mark#(s(plus(X,Y))) mark#(s(X)) = X + 0 >= X + 0 = mark#(X) mark#(times(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(pi(X)) = 1X + 4 >= 1X + 4 = active#(pi(mark(X))) active#(pi(X)) = 1X + 4 >= X + 0 = mark#(2ndspos(X,from(0()))) mark#(2ndspos(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 0 >= N + Y + Z + 0 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(negrecip(X)) = X + 0 >= X + 0 = mark#(X) mark#(2ndsneg(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 0 >= N + Y + Z + 0 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(2ndsneg(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(posrecip(X)) = X + 0 >= X + 0 = mark#(X) mark#(2ndspos(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(from(X)) = X + 0 >= X + 0 = active#(from(mark(X))) active#(from(X)) = X + 0 >= X + 0 = mark#(cons(X,from(s(X)))) mark#(from(X)) = X + 0 >= X + 0 = mark#(X) active#(plus(0(),Y)) = Y + 0 >= Y + 0 = mark#(Y) active(from(X)) = X + 0 >= X + 0 = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = Z + 0 >= 0 = mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 0 >= N + Y + Z + 0 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = Z + 0 >= 0 = mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 0 >= N + Y + Z + 0 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = 1X + 4 >= X + 0 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 0 >= Y = mark(Y) active(plus(s(X),Y)) = X + Y + 0 >= X + Y + 0 = mark(s(plus(X,Y))) active(times(0(),Y)) = Y + 0 >= 0 = mark(0()) active(times(s(X),Y)) = X + Y + 0 >= X + Y + 0 = mark(plus(Y,times(X,Y))) active(square(X)) = X >= X = mark(times(X,X)) mark(from(X)) = X + 0 >= X + 0 = active(from(mark(X))) mark(cons(X1,X2)) = X1 + X2 >= X1 + X2 = active(cons(mark(X1),X2)) mark(s(X)) = X + 0 >= X + 0 = active(s(mark(X))) mark(2ndspos(X1,X2)) = X1 + X2 >= X1 + X2 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 0 >= 0 = active(0()) mark(rnil()) = 0 >= 0 = active(rnil()) mark(rcons(X1,X2)) = X1 + X2 >= X1 + X2 = active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) = X + 0 >= X + 0 = active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) = X1 + X2 >= X1 + X2 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = X + 0 >= X + 0 = active(negrecip(mark(X))) mark(pi(X)) = 1X + 4 >= 1X + 4 = active(pi(mark(X))) mark(plus(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = X1 + X2 >= X1 + X2 = active(times(mark(X1),mark(X2))) mark(square(X)) = X >= X = active(square(mark(X))) from(mark(X)) = X + 0 >= X + 0 = from(X) from(active(X)) = X + 0 >= X + 0 = from(X) cons(mark(X1),X2) = X1 + X2 >= X1 + X2 = cons(X1,X2) cons(X1,mark(X2)) = X1 + X2 >= X1 + X2 = cons(X1,X2) cons(active(X1),X2) = X1 + X2 >= X1 + X2 = cons(X1,X2) cons(X1,active(X2)) = X1 + X2 >= X1 + X2 = cons(X1,X2) s(mark(X)) = X + 0 >= X + 0 = s(X) s(active(X)) = X + 0 >= X + 0 = s(X) 2ndspos(mark(X1),X2) = X1 + X2 >= X1 + X2 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = X1 + X2 >= X1 + X2 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = X1 + X2 >= X1 + X2 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = X1 + X2 >= X1 + X2 = 2ndspos(X1,X2) rcons(mark(X1),X2) = X1 + X2 >= X1 + X2 = rcons(X1,X2) rcons(X1,mark(X2)) = X1 + X2 >= X1 + X2 = rcons(X1,X2) rcons(active(X1),X2) = X1 + X2 >= X1 + X2 = rcons(X1,X2) rcons(X1,active(X2)) = X1 + X2 >= X1 + X2 = rcons(X1,X2) posrecip(mark(X)) = X + 0 >= X + 0 = posrecip(X) posrecip(active(X)) = X + 0 >= X + 0 = posrecip(X) 2ndsneg(mark(X1),X2) = X1 + X2 >= X1 + X2 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = X1 + X2 >= X1 + X2 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = X1 + X2 >= X1 + X2 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = X1 + X2 >= X1 + X2 = 2ndsneg(X1,X2) negrecip(mark(X)) = X + 0 >= X + 0 = negrecip(X) negrecip(active(X)) = X + 0 >= X + 0 = negrecip(X) pi(mark(X)) = 1X + 4 >= 1X + 4 = pi(X) pi(active(X)) = 1X + 4 >= 1X + 4 = pi(X) plus(mark(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = plus(X1,X2) plus(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = plus(X1,X2) plus(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = plus(X1,X2) plus(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = plus(X1,X2) times(mark(X1),X2) = X1 + X2 >= X1 + X2 = times(X1,X2) times(X1,mark(X2)) = X1 + X2 >= X1 + X2 = times(X1,X2) times(active(X1),X2) = X1 + X2 >= X1 + X2 = times(X1,X2) times(X1,active(X2)) = X1 + X2 >= X1 + X2 = times(X1,X2) square(mark(X)) = X >= X = square(X) square(active(X)) = X >= X = square(X) problem: DPs: mark#(square(X)) -> active#(square(mark(X))) active#(square(X)) -> mark#(times(X,X)) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(pi(X)) -> active#(pi(mark(X))) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) mark#(from(X)) -> mark#(X) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Restore Modifier: DPs: mark#(square(X)) -> active#(square(mark(X))) active#(square(X)) -> mark#(times(X,X)) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(pi(X)) -> active#(pi(mark(X))) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) mark#(from(X)) -> mark#(X) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) SCC Processor: #sccs: 1 #rules: 25 #arcs: 455/676 DPs: mark#(square(X)) -> active#(square(mark(X))) active#(square(X)) -> mark#(times(X,X)) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) mark#(from(X)) -> mark#(X) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Arctic Interpretation Processor: dimension: 1 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) interpretation: [mark](x0) = x0 + 0, [square](x0) = 4x0 + 4, [posrecip](x0) = x0, [active](x0) = x0 + 0, [cons](x0, x1) = x0 + x1 + 0, [active#](x0) = x0 + 0, [0] = 0, [rcons](x0, x1) = x0 + x1, [from](x0) = 6x0 + 6, [rnil] = 0, [mark#](x0) = x0 + 0, [times](x0, x1) = x0 + 1x1 + 1, [pi](x0) = 3x0 + 6, [negrecip](x0) = x0 + 0, [2ndsneg](x0, x1) = x0 + x1 + 0, [plus](x0, x1) = x0 + x1 + 0, [2ndspos](x0, x1) = x0 + x1, [s](x0) = x0 + 0 orientation: mark#(square(X)) = 4X + 4 >= 4X + 4 = active#(square(mark(X))) active#(square(X)) = 4X + 4 >= 1X + 1 = mark#(times(X,X)) mark#(times(X1,X2)) = X1 + 1X2 + 1 >= X1 + 1X2 + 1 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = X + 1Y + 1 >= X + 1Y + 1 = mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) = X + Y + 0 >= X + Y + 0 = mark#(s(plus(X,Y))) mark#(s(X)) = X + 0 >= X + 0 = mark#(X) mark#(times(X1,X2)) = X1 + 1X2 + 1 >= X1 + 0 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(negrecip(X)) = X + 0 >= X + 0 = mark#(X) mark#(2ndsneg(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 0 >= N + Y + Z + 0 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(2ndsneg(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(posrecip(X)) = X + 0 >= X + 0 = mark#(X) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(2ndspos(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 0 >= N + Y + Z + 0 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(2ndspos(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(from(X)) = 6X + 6 >= 6X + 6 = active#(from(mark(X))) active#(from(X)) = 6X + 6 >= 6X + 6 = mark#(cons(X,from(s(X)))) mark#(from(X)) = 6X + 6 >= X + 0 = mark#(X) active#(plus(0(),Y)) = Y + 0 >= Y + 0 = mark#(Y) active(from(X)) = 6X + 6 >= 6X + 6 = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = Z + 0 >= 0 = mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 0 >= N + Y + Z + 0 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = Z + 0 >= 0 = mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 0 >= N + Y + Z + 0 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = 3X + 6 >= X + 6 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 0 >= Y + 0 = mark(Y) active(plus(s(X),Y)) = X + Y + 0 >= X + Y + 0 = mark(s(plus(X,Y))) active(times(0(),Y)) = 1Y + 1 >= 0 = mark(0()) active(times(s(X),Y)) = X + 1Y + 1 >= X + 1Y + 1 = mark(plus(Y,times(X,Y))) active(square(X)) = 4X + 4 >= 1X + 1 = mark(times(X,X)) mark(from(X)) = 6X + 6 >= 6X + 6 = active(from(mark(X))) mark(cons(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(cons(mark(X1),X2)) mark(s(X)) = X + 0 >= X + 0 = active(s(mark(X))) mark(2ndspos(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 0 >= 0 = active(0()) mark(rnil()) = 0 >= 0 = active(rnil()) mark(rcons(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) = X + 0 >= X + 0 = active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = X + 0 >= X + 0 = active(negrecip(mark(X))) mark(pi(X)) = 3X + 6 >= 3X + 6 = active(pi(mark(X))) mark(plus(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = X1 + 1X2 + 1 >= X1 + 1X2 + 1 = active(times(mark(X1),mark(X2))) mark(square(X)) = 4X + 4 >= 4X + 4 = active(square(mark(X))) from(mark(X)) = 6X + 6 >= 6X + 6 = from(X) from(active(X)) = 6X + 6 >= 6X + 6 = from(X) cons(mark(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) s(mark(X)) = X + 0 >= X + 0 = s(X) s(active(X)) = X + 0 >= X + 0 = s(X) 2ndspos(mark(X1),X2) = X1 + X2 + 0 >= X1 + X2 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 = 2ndspos(X1,X2) rcons(mark(X1),X2) = X1 + X2 + 0 >= X1 + X2 = rcons(X1,X2) rcons(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 = rcons(X1,X2) rcons(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 = rcons(X1,X2) rcons(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 = rcons(X1,X2) posrecip(mark(X)) = X + 0 >= X = posrecip(X) posrecip(active(X)) = X + 0 >= X = posrecip(X) 2ndsneg(mark(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = 2ndsneg(X1,X2) negrecip(mark(X)) = X + 0 >= X + 0 = negrecip(X) negrecip(active(X)) = X + 0 >= X + 0 = negrecip(X) pi(mark(X)) = 3X + 6 >= 3X + 6 = pi(X) pi(active(X)) = 3X + 6 >= 3X + 6 = pi(X) plus(mark(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = plus(X1,X2) plus(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = plus(X1,X2) plus(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = plus(X1,X2) plus(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = plus(X1,X2) times(mark(X1),X2) = X1 + 1X2 + 1 >= X1 + 1X2 + 1 = times(X1,X2) times(X1,mark(X2)) = X1 + 1X2 + 1 >= X1 + 1X2 + 1 = times(X1,X2) times(active(X1),X2) = X1 + 1X2 + 1 >= X1 + 1X2 + 1 = times(X1,X2) times(X1,active(X2)) = X1 + 1X2 + 1 >= X1 + 1X2 + 1 = times(X1,X2) square(mark(X)) = 4X + 4 >= 4X + 4 = square(X) square(active(X)) = 4X + 4 >= 4X + 4 = square(X) problem: DPs: mark#(square(X)) -> active#(square(mark(X))) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Restore Modifier: DPs: mark#(square(X)) -> active#(square(mark(X))) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) SCC Processor: #sccs: 1 #rules: 22 #arcs: 252/529 DPs: mark#(times(X1,X2)) -> mark#(X1) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Arctic Interpretation Processor: dimension: 1 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) interpretation: [mark](x0) = x0, [square](x0) = 1x0 + 6, [posrecip](x0) = x0 + 0, [active](x0) = x0, [cons](x0, x1) = x0 + x1, [active#](x0) = x0 + 0, [0] = 0, [rcons](x0, x1) = x0 + x1, [from](x0) = x0, [rnil] = 0, [mark#](x0) = x0 + 0, [times](x0, x1) = 1x0 + 1x1 + 6, [pi](x0) = 2, [negrecip](x0) = x0, [2ndsneg](x0, x1) = x1 + 2, [plus](x0, x1) = x0 + x1 + 6, [2ndspos](x0, x1) = x1 + 2, [s](x0) = x0 orientation: mark#(times(X1,X2)) = 1X1 + 1X2 + 6 >= X1 + 0 = mark#(X1) mark#(times(X1,X2)) = 1X1 + 1X2 + 6 >= 1X1 + 1X2 + 6 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = 1X + 1Y + 6 >= 1X + 1Y + 6 = mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) = X1 + X2 + 6 >= X1 + X2 + 6 = active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) = X + Y + 6 >= X + Y + 6 = mark#(s(plus(X,Y))) mark#(s(X)) = X + 0 >= X + 0 = mark#(X) mark#(plus(X1,X2)) = X1 + X2 + 6 >= X1 + 0 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 + 6 >= X2 + 0 = mark#(X2) mark#(negrecip(X)) = X + 0 >= X + 0 = mark#(X) mark#(2ndsneg(X1,X2)) = X2 + 2 >= X2 + 2 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) = X + Y + Z + 2 >= Y + Z + 2 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(2ndsneg(X1,X2)) = X2 + 2 >= X2 + 0 = mark#(X2) mark#(posrecip(X)) = X + 0 >= X + 0 = mark#(X) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(2ndspos(X1,X2)) = X2 + 2 >= X2 + 2 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) = X + Y + Z + 2 >= Y + Z + 2 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(2ndspos(X1,X2)) = X2 + 2 >= X2 + 0 = mark#(X2) mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(from(X)) = X + 0 >= X + 0 = active#(from(mark(X))) active#(from(X)) = X + 0 >= X + 0 = mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) = Y + 6 >= Y + 0 = mark#(Y) active(from(X)) = X >= X = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = Z + 2 >= 0 = mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) = X + Y + Z + 2 >= Y + Z + 2 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = Z + 2 >= 0 = mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) = X + Y + Z + 2 >= Y + Z + 2 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = 2 >= 2 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 6 >= Y = mark(Y) active(plus(s(X),Y)) = X + Y + 6 >= X + Y + 6 = mark(s(plus(X,Y))) active(times(0(),Y)) = 1Y + 6 >= 0 = mark(0()) active(times(s(X),Y)) = 1X + 1Y + 6 >= 1X + 1Y + 6 = mark(plus(Y,times(X,Y))) active(square(X)) = 1X + 6 >= 1X + 6 = mark(times(X,X)) mark(from(X)) = X >= X = active(from(mark(X))) mark(cons(X1,X2)) = X1 + X2 >= X1 + X2 = active(cons(mark(X1),X2)) mark(s(X)) = X >= X = active(s(mark(X))) mark(2ndspos(X1,X2)) = X2 + 2 >= X2 + 2 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 0 >= 0 = active(0()) mark(rnil()) = 0 >= 0 = active(rnil()) mark(rcons(X1,X2)) = X1 + X2 >= X1 + X2 = active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) = X + 0 >= X + 0 = active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) = X2 + 2 >= X2 + 2 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = X >= X = active(negrecip(mark(X))) mark(pi(X)) = 2 >= 2 = active(pi(mark(X))) mark(plus(X1,X2)) = X1 + X2 + 6 >= X1 + X2 + 6 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = 1X1 + 1X2 + 6 >= 1X1 + 1X2 + 6 = active(times(mark(X1),mark(X2))) mark(square(X)) = 1X + 6 >= 1X + 6 = active(square(mark(X))) from(mark(X)) = X >= X = from(X) from(active(X)) = X >= X = from(X) cons(mark(X1),X2) = X1 + X2 >= X1 + X2 = cons(X1,X2) cons(X1,mark(X2)) = X1 + X2 >= X1 + X2 = cons(X1,X2) cons(active(X1),X2) = X1 + X2 >= X1 + X2 = cons(X1,X2) cons(X1,active(X2)) = X1 + X2 >= X1 + X2 = cons(X1,X2) s(mark(X)) = X >= X = s(X) s(active(X)) = X >= X = s(X) 2ndspos(mark(X1),X2) = X2 + 2 >= X2 + 2 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = X2 + 2 >= X2 + 2 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = X2 + 2 >= X2 + 2 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = X2 + 2 >= X2 + 2 = 2ndspos(X1,X2) rcons(mark(X1),X2) = X1 + X2 >= X1 + X2 = rcons(X1,X2) rcons(X1,mark(X2)) = X1 + X2 >= X1 + X2 = rcons(X1,X2) rcons(active(X1),X2) = X1 + X2 >= X1 + X2 = rcons(X1,X2) rcons(X1,active(X2)) = X1 + X2 >= X1 + X2 = rcons(X1,X2) posrecip(mark(X)) = X + 0 >= X + 0 = posrecip(X) posrecip(active(X)) = X + 0 >= X + 0 = posrecip(X) 2ndsneg(mark(X1),X2) = X2 + 2 >= X2 + 2 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = X2 + 2 >= X2 + 2 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = X2 + 2 >= X2 + 2 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = X2 + 2 >= X2 + 2 = 2ndsneg(X1,X2) negrecip(mark(X)) = X >= X = negrecip(X) negrecip(active(X)) = X >= X = negrecip(X) pi(mark(X)) = 2 >= 2 = pi(X) pi(active(X)) = 2 >= 2 = pi(X) plus(mark(X1),X2) = X1 + X2 + 6 >= X1 + X2 + 6 = plus(X1,X2) plus(X1,mark(X2)) = X1 + X2 + 6 >= X1 + X2 + 6 = plus(X1,X2) plus(active(X1),X2) = X1 + X2 + 6 >= X1 + X2 + 6 = plus(X1,X2) plus(X1,active(X2)) = X1 + X2 + 6 >= X1 + X2 + 6 = plus(X1,X2) times(mark(X1),X2) = 1X1 + 1X2 + 6 >= 1X1 + 1X2 + 6 = times(X1,X2) times(X1,mark(X2)) = 1X1 + 1X2 + 6 >= 1X1 + 1X2 + 6 = times(X1,X2) times(active(X1),X2) = 1X1 + 1X2 + 6 >= 1X1 + 1X2 + 6 = times(X1,X2) times(X1,active(X2)) = 1X1 + 1X2 + 6 >= 1X1 + 1X2 + 6 = times(X1,X2) square(mark(X)) = 1X + 6 >= 1X + 6 = square(X) square(active(X)) = 1X + 6 >= 1X + 6 = square(X) problem: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Restore Modifier: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Arctic Interpretation Processor: dimension: 1 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) interpretation: [mark](x0) = x0, [square](x0) = x0, [posrecip](x0) = 4x0, [active](x0) = x0, [cons](x0, x1) = x0 + x1, [active#](x0) = x0 + 0, [0] = 0, [rcons](x0, x1) = x0 + x1, [from](x0) = x0, [rnil] = 0, [mark#](x0) = x0 + 0, [times](x0, x1) = x0 + x1, [pi](x0) = x0 + 4, [negrecip](x0) = 2x0, [2ndsneg](x0, x1) = x0 + 4x1 + 1, [plus](x0, x1) = x0 + x1, [2ndspos](x0, x1) = x0 + 4x1 + 1, [s](x0) = x0 orientation: mark#(times(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = X + Y + 0 >= X + Y + 0 = mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) = X + Y + 0 >= X + Y + 0 = mark#(s(plus(X,Y))) mark#(s(X)) = X + 0 >= X + 0 = mark#(X) mark#(plus(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(negrecip(X)) = 2X + 0 >= X + 0 = mark#(X) mark#(2ndsneg(X1,X2)) = X1 + 4X2 + 1 >= X1 + 4X2 + 1 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) = N + 4X + 4Y + 4Z + 1 >= N + 2Y + 4Z + 1 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(2ndsneg(X1,X2)) = X1 + 4X2 + 1 >= X2 + 0 = mark#(X2) mark#(posrecip(X)) = 4X + 0 >= X + 0 = mark#(X) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(2ndspos(X1,X2)) = X1 + 4X2 + 1 >= X1 + 4X2 + 1 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) = N + 4X + 4Y + 4Z + 1 >= N + 4Y + 4Z + 1 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(2ndspos(X1,X2)) = X1 + 4X2 + 1 >= X2 + 0 = mark#(X2) mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(from(X)) = X + 0 >= X + 0 = active#(from(mark(X))) active#(from(X)) = X + 0 >= X + 0 = mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) = Y + 0 >= Y + 0 = mark#(Y) active(from(X)) = X >= X = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = 4Z + 1 >= 0 = mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) = N + 4X + 4Y + 4Z + 1 >= N + 4Y + 4Z + 1 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = 4Z + 1 >= 0 = mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) = N + 4X + 4Y + 4Z + 1 >= N + 2Y + 4Z + 1 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = X + 4 >= X + 4 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 0 >= Y = mark(Y) active(plus(s(X),Y)) = X + Y >= X + Y = mark(s(plus(X,Y))) active(times(0(),Y)) = Y + 0 >= 0 = mark(0()) active(times(s(X),Y)) = X + Y >= X + Y = mark(plus(Y,times(X,Y))) active(square(X)) = X >= X = mark(times(X,X)) mark(from(X)) = X >= X = active(from(mark(X))) mark(cons(X1,X2)) = X1 + X2 >= X1 + X2 = active(cons(mark(X1),X2)) mark(s(X)) = X >= X = active(s(mark(X))) mark(2ndspos(X1,X2)) = X1 + 4X2 + 1 >= X1 + 4X2 + 1 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 0 >= 0 = active(0()) mark(rnil()) = 0 >= 0 = active(rnil()) mark(rcons(X1,X2)) = X1 + X2 >= X1 + X2 = active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) = 4X >= 4X = active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) = X1 + 4X2 + 1 >= X1 + 4X2 + 1 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = 2X >= 2X = active(negrecip(mark(X))) mark(pi(X)) = X + 4 >= X + 4 = active(pi(mark(X))) mark(plus(X1,X2)) = X1 + X2 >= X1 + X2 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = X1 + X2 >= X1 + X2 = active(times(mark(X1),mark(X2))) mark(square(X)) = X >= X = active(square(mark(X))) from(mark(X)) = X >= X = from(X) from(active(X)) = X >= X = from(X) cons(mark(X1),X2) = X1 + X2 >= X1 + X2 = cons(X1,X2) cons(X1,mark(X2)) = X1 + X2 >= X1 + X2 = cons(X1,X2) cons(active(X1),X2) = X1 + X2 >= X1 + X2 = cons(X1,X2) cons(X1,active(X2)) = X1 + X2 >= X1 + X2 = cons(X1,X2) s(mark(X)) = X >= X = s(X) s(active(X)) = X >= X = s(X) 2ndspos(mark(X1),X2) = X1 + 4X2 + 1 >= X1 + 4X2 + 1 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = X1 + 4X2 + 1 >= X1 + 4X2 + 1 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = X1 + 4X2 + 1 >= X1 + 4X2 + 1 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = X1 + 4X2 + 1 >= X1 + 4X2 + 1 = 2ndspos(X1,X2) rcons(mark(X1),X2) = X1 + X2 >= X1 + X2 = rcons(X1,X2) rcons(X1,mark(X2)) = X1 + X2 >= X1 + X2 = rcons(X1,X2) rcons(active(X1),X2) = X1 + X2 >= X1 + X2 = rcons(X1,X2) rcons(X1,active(X2)) = X1 + X2 >= X1 + X2 = rcons(X1,X2) posrecip(mark(X)) = 4X >= 4X = posrecip(X) posrecip(active(X)) = 4X >= 4X = posrecip(X) 2ndsneg(mark(X1),X2) = X1 + 4X2 + 1 >= X1 + 4X2 + 1 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = X1 + 4X2 + 1 >= X1 + 4X2 + 1 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = X1 + 4X2 + 1 >= X1 + 4X2 + 1 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = X1 + 4X2 + 1 >= X1 + 4X2 + 1 = 2ndsneg(X1,X2) negrecip(mark(X)) = 2X >= 2X = negrecip(X) negrecip(active(X)) = 2X >= 2X = negrecip(X) pi(mark(X)) = X + 4 >= X + 4 = pi(X) pi(active(X)) = X + 4 >= X + 4 = pi(X) plus(mark(X1),X2) = X1 + X2 >= X1 + X2 = plus(X1,X2) plus(X1,mark(X2)) = X1 + X2 >= X1 + X2 = plus(X1,X2) plus(active(X1),X2) = X1 + X2 >= X1 + X2 = plus(X1,X2) plus(X1,active(X2)) = X1 + X2 >= X1 + X2 = plus(X1,X2) times(mark(X1),X2) = X1 + X2 >= X1 + X2 = times(X1,X2) times(X1,mark(X2)) = X1 + X2 >= X1 + X2 = times(X1,X2) times(active(X1),X2) = X1 + X2 >= X1 + X2 = times(X1,X2) times(X1,active(X2)) = X1 + X2 >= X1 + X2 = times(X1,X2) square(mark(X)) = X >= X = square(X) square(active(X)) = X >= X = square(X) problem: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Restore Modifier: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Arctic Interpretation Processor: dimension: 1 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) interpretation: [mark](x0) = x0, [square](x0) = 6x0 + 1, [posrecip](x0) = x0, [active](x0) = x0, [cons](x0, x1) = x0 + x1 + 0, [active#](x0) = x0 + 0, [0] = 4, [rcons](x0, x1) = x0 + x1 + 0, [from](x0) = x0 + 0, [rnil] = 3, [mark#](x0) = x0 + 0, [times](x0, x1) = x0 + 5x1 + 1, [pi](x0) = 5x0 + 5, [negrecip](x0) = x0, [2ndsneg](x0, x1) = x0 + x1, [plus](x0, x1) = 2x0 + x1 + 1, [2ndspos](x0, x1) = x0 + x1, [s](x0) = x0 orientation: mark#(times(X1,X2)) = X1 + 5X2 + 1 >= X1 + 5X2 + 1 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = X + 5Y + 1 >= X + 5Y + 1 = mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) = 2X1 + X2 + 1 >= 2X1 + X2 + 1 = active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) = 2X + Y + 1 >= 2X + Y + 1 = mark#(s(plus(X,Y))) mark#(s(X)) = X + 0 >= X + 0 = mark#(X) mark#(plus(X1,X2)) = 2X1 + X2 + 1 >= X1 + 0 = mark#(X1) mark#(plus(X1,X2)) = 2X1 + X2 + 1 >= X2 + 0 = mark#(X2) mark#(negrecip(X)) = X + 0 >= X + 0 = mark#(X) mark#(2ndsneg(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 0 >= N + Y + Z + 0 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(posrecip(X)) = X + 0 >= X + 0 = mark#(X) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(2ndspos(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 0 >= N + Y + Z + 0 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(from(X)) = X + 0 >= X + 0 = active#(from(mark(X))) active#(from(X)) = X + 0 >= X + 0 = mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) = Y + 6 >= Y + 0 = mark#(Y) active(from(X)) = X + 0 >= X + 0 = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = Z + 4 >= 3 = mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 0 >= N + Y + Z + 0 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = Z + 4 >= 3 = mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 0 >= N + Y + Z + 0 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = 5X + 5 >= X + 4 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 6 >= Y = mark(Y) active(plus(s(X),Y)) = 2X + Y + 1 >= 2X + Y + 1 = mark(s(plus(X,Y))) active(times(0(),Y)) = 5Y + 4 >= 4 = mark(0()) active(times(s(X),Y)) = X + 5Y + 1 >= X + 5Y + 1 = mark(plus(Y,times(X,Y))) active(square(X)) = 6X + 1 >= 5X + 1 = mark(times(X,X)) mark(from(X)) = X + 0 >= X + 0 = active(from(mark(X))) mark(cons(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(cons(mark(X1),X2)) mark(s(X)) = X >= X = active(s(mark(X))) mark(2ndspos(X1,X2)) = X1 + X2 >= X1 + X2 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 4 >= 4 = active(0()) mark(rnil()) = 3 >= 3 = active(rnil()) mark(rcons(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) = X >= X = active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) = X1 + X2 >= X1 + X2 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = X >= X = active(negrecip(mark(X))) mark(pi(X)) = 5X + 5 >= 5X + 5 = active(pi(mark(X))) mark(plus(X1,X2)) = 2X1 + X2 + 1 >= 2X1 + X2 + 1 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = X1 + 5X2 + 1 >= X1 + 5X2 + 1 = active(times(mark(X1),mark(X2))) mark(square(X)) = 6X + 1 >= 6X + 1 = active(square(mark(X))) from(mark(X)) = X + 0 >= X + 0 = from(X) from(active(X)) = X + 0 >= X + 0 = from(X) cons(mark(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) s(mark(X)) = X >= X = s(X) s(active(X)) = X >= X = s(X) 2ndspos(mark(X1),X2) = X1 + X2 >= X1 + X2 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = X1 + X2 >= X1 + X2 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = X1 + X2 >= X1 + X2 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = X1 + X2 >= X1 + X2 = 2ndspos(X1,X2) rcons(mark(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = rcons(X1,X2) rcons(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = rcons(X1,X2) rcons(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = rcons(X1,X2) rcons(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = rcons(X1,X2) posrecip(mark(X)) = X >= X = posrecip(X) posrecip(active(X)) = X >= X = posrecip(X) 2ndsneg(mark(X1),X2) = X1 + X2 >= X1 + X2 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = X1 + X2 >= X1 + X2 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = X1 + X2 >= X1 + X2 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = X1 + X2 >= X1 + X2 = 2ndsneg(X1,X2) negrecip(mark(X)) = X >= X = negrecip(X) negrecip(active(X)) = X >= X = negrecip(X) pi(mark(X)) = 5X + 5 >= 5X + 5 = pi(X) pi(active(X)) = 5X + 5 >= 5X + 5 = pi(X) plus(mark(X1),X2) = 2X1 + X2 + 1 >= 2X1 + X2 + 1 = plus(X1,X2) plus(X1,mark(X2)) = 2X1 + X2 + 1 >= 2X1 + X2 + 1 = plus(X1,X2) plus(active(X1),X2) = 2X1 + X2 + 1 >= 2X1 + X2 + 1 = plus(X1,X2) plus(X1,active(X2)) = 2X1 + X2 + 1 >= 2X1 + X2 + 1 = plus(X1,X2) times(mark(X1),X2) = X1 + 5X2 + 1 >= X1 + 5X2 + 1 = times(X1,X2) times(X1,mark(X2)) = X1 + 5X2 + 1 >= X1 + 5X2 + 1 = times(X1,X2) times(active(X1),X2) = X1 + 5X2 + 1 >= X1 + 5X2 + 1 = times(X1,X2) times(X1,active(X2)) = X1 + 5X2 + 1 >= X1 + 5X2 + 1 = times(X1,X2) square(mark(X)) = 6X + 1 >= 6X + 1 = square(X) square(active(X)) = 6X + 1 >= 6X + 1 = square(X) problem: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Restore Modifier: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Arctic Interpretation Processor: dimension: 1 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) interpretation: [mark](x0) = x0, [square](x0) = x0 + 0, [posrecip](x0) = x0, [active](x0) = x0, [cons](x0, x1) = x0 + x1 + 1, [active#](x0) = x0, [0] = 0, [rcons](x0, x1) = 1x0 + x1 + 2, [from](x0) = x0 + 2, [rnil] = 0, [mark#](x0) = x0, [times](x0, x1) = x0, [pi](x0) = x0 + 4, [negrecip](x0) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1x1 + 0, [plus](x0, x1) = x1, [2ndspos](x0, x1) = x0 + 1x1, [s](x0) = x0 orientation: mark#(times(X1,X2)) = X1 >= X1 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = X >= X = mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) = X2 >= X2 = active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) = Y >= Y = mark#(s(plus(X,Y))) mark#(s(X)) = X >= X = mark#(X) mark#(plus(X1,X2)) = X2 >= X2 = mark#(X2) mark#(negrecip(X)) = X + 1 >= X = mark#(X) mark#(2ndsneg(X1,X2)) = X1 + 1X2 + 0 >= X1 + 1X2 + 0 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) = N + 1X + 1Y + 1Z + 2 >= N + 1Y + 1Z + 2 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = 1X1 + X2 + 2 >= X1 = mark#(X1) mark#(posrecip(X)) = X >= X = mark#(X) mark#(rcons(X1,X2)) = 1X1 + X2 + 2 >= X2 = mark#(X2) mark#(2ndspos(X1,X2)) = X1 + 1X2 >= X1 + 1X2 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) = N + 1X + 1Y + 1Z + 2 >= N + 1Y + 1Z + 2 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(cons(X1,X2)) = X1 + X2 + 1 >= X1 = mark#(X1) mark#(from(X)) = X + 2 >= X + 2 = active#(from(mark(X))) active#(from(X)) = X + 2 >= X + 2 = mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) = Y >= Y = mark#(Y) active(from(X)) = X + 2 >= X + 2 = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = 1Z + 0 >= 0 = mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) = N + 1X + 1Y + 1Z + 2 >= N + 1Y + 1Z + 2 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = 1Z + 0 >= 0 = mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) = N + 1X + 1Y + 1Z + 2 >= N + 1Y + 1Z + 2 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = X + 4 >= X + 3 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y >= Y = mark(Y) active(plus(s(X),Y)) = Y >= Y = mark(s(plus(X,Y))) active(times(0(),Y)) = 0 >= 0 = mark(0()) active(times(s(X),Y)) = X >= X = mark(plus(Y,times(X,Y))) active(square(X)) = X + 0 >= X = mark(times(X,X)) mark(from(X)) = X + 2 >= X + 2 = active(from(mark(X))) mark(cons(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = active(cons(mark(X1),X2)) mark(s(X)) = X >= X = active(s(mark(X))) mark(2ndspos(X1,X2)) = X1 + 1X2 >= X1 + 1X2 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 0 >= 0 = active(0()) mark(rnil()) = 0 >= 0 = active(rnil()) mark(rcons(X1,X2)) = 1X1 + X2 + 2 >= 1X1 + X2 + 2 = active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) = X >= X = active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) = X1 + 1X2 + 0 >= X1 + 1X2 + 0 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = X + 1 >= X + 1 = active(negrecip(mark(X))) mark(pi(X)) = X + 4 >= X + 4 = active(pi(mark(X))) mark(plus(X1,X2)) = X2 >= X2 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = X1 >= X1 = active(times(mark(X1),mark(X2))) mark(square(X)) = X + 0 >= X + 0 = active(square(mark(X))) from(mark(X)) = X + 2 >= X + 2 = from(X) from(active(X)) = X + 2 >= X + 2 = from(X) cons(mark(X1),X2) = X1 + X2 + 1 >= X1 + X2 + 1 = cons(X1,X2) cons(X1,mark(X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = cons(X1,X2) cons(active(X1),X2) = X1 + X2 + 1 >= X1 + X2 + 1 = cons(X1,X2) cons(X1,active(X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = cons(X1,X2) s(mark(X)) = X >= X = s(X) s(active(X)) = X >= X = s(X) 2ndspos(mark(X1),X2) = X1 + 1X2 >= X1 + 1X2 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = X1 + 1X2 >= X1 + 1X2 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = X1 + 1X2 >= X1 + 1X2 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = X1 + 1X2 >= X1 + 1X2 = 2ndspos(X1,X2) rcons(mark(X1),X2) = 1X1 + X2 + 2 >= 1X1 + X2 + 2 = rcons(X1,X2) rcons(X1,mark(X2)) = 1X1 + X2 + 2 >= 1X1 + X2 + 2 = rcons(X1,X2) rcons(active(X1),X2) = 1X1 + X2 + 2 >= 1X1 + X2 + 2 = rcons(X1,X2) rcons(X1,active(X2)) = 1X1 + X2 + 2 >= 1X1 + X2 + 2 = rcons(X1,X2) posrecip(mark(X)) = X >= X = posrecip(X) posrecip(active(X)) = X >= X = posrecip(X) 2ndsneg(mark(X1),X2) = X1 + 1X2 + 0 >= X1 + 1X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = X1 + 1X2 + 0 >= X1 + 1X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = X1 + 1X2 + 0 >= X1 + 1X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = X1 + 1X2 + 0 >= X1 + 1X2 + 0 = 2ndsneg(X1,X2) negrecip(mark(X)) = X + 1 >= X + 1 = negrecip(X) negrecip(active(X)) = X + 1 >= X + 1 = negrecip(X) pi(mark(X)) = X + 4 >= X + 4 = pi(X) pi(active(X)) = X + 4 >= X + 4 = pi(X) plus(mark(X1),X2) = X2 >= X2 = plus(X1,X2) plus(X1,mark(X2)) = X2 >= X2 = plus(X1,X2) plus(active(X1),X2) = X2 >= X2 = plus(X1,X2) plus(X1,active(X2)) = X2 >= X2 = plus(X1,X2) times(mark(X1),X2) = X1 >= X1 = times(X1,X2) times(X1,mark(X2)) = X1 >= X1 = times(X1,X2) times(active(X1),X2) = X1 >= X1 = times(X1,X2) times(X1,active(X2)) = X1 >= X1 = times(X1,X2) square(mark(X)) = X + 0 >= X + 0 = square(X) square(active(X)) = X + 0 >= X + 0 = square(X) problem: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Restore Modifier: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) KBO Processor: argument filtering: pi(from) = [0] pi(active) = 0 pi(s) = 0 pi(cons) = 0 pi(mark) = 0 pi(0) = [] pi(2ndspos) = 0 pi(rnil) = [] pi(posrecip) = 0 pi(2ndsneg) = 0 pi(rcons) = 1 pi(negrecip) = 0 pi(pi) = 0 pi(plus) = 1 pi(times) = 0 pi(square) = [0] pi(active#) = 0 pi(mark#) = 0 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) weight function: w0 = 1 w(square) = w(rnil) = w(0) = w(from) = 1 w(mark#) = w(active#) = w(times) = w(plus) = w( pi) = w(negrecip) = w(rcons) = w(2ndsneg) = w( posrecip) = w(2ndspos) = w(mark) = w(cons) = w( s) = w(active) = 0 precedence: 0 > posrecip > rnil > negrecip > plus > rcons > cons > 2ndsneg > square > mark# > times > active# > from > active > s > mark > pi > 2ndspos problem: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Restore Modifier: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) SCC Processor: #sccs: 1 #rules: 15 #arcs: 207/256 DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(cons(X1,X2)) -> mark#(X1) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) KBO Processor: argument filtering: pi(from) = 0 pi(active) = 0 pi(s) = 0 pi(cons) = 0 pi(mark) = 0 pi(0) = [] pi(2ndspos) = 0 pi(rnil) = [] pi(posrecip) = [0] pi(2ndsneg) = 0 pi(rcons) = 1 pi(negrecip) = [0] pi(pi) = [0] pi(plus) = 1 pi(times) = 0 pi(square) = 0 pi(active#) = 0 pi(mark#) = 0 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) weight function: w0 = 1 w(square) = w(pi) = w(negrecip) = w(posrecip) = w( rnil) = w(0) = w(cons) = 1 w(mark#) = w(active#) = w(times) = w(plus) = w( rcons) = w(2ndsneg) = w(2ndspos) = w(mark) = w( s) = w(active) = w(from) = 0 precedence: posrecip > pi > mark > negrecip > 0 > rcons > times > 2ndsneg > 2ndspos > s > active > rnil > cons > from > square > plus > active# > mark# problem: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(cons(X1,X2)) -> mark#(X1) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Restore Modifier: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(cons(X1,X2)) -> mark#(X1) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) KBO Processor: argument filtering: pi(from) = [0] pi(active) = 0 pi(s) = 0 pi(cons) = [0] pi(mark) = 0 pi(0) = [] pi(2ndspos) = 0 pi(rnil) = [] pi(posrecip) = 0 pi(2ndsneg) = 0 pi(rcons) = 1 pi(negrecip) = [] pi(pi) = 0 pi(plus) = 1 pi(times) = 0 pi(square) = 0 pi(active#) = 0 pi(mark#) = 0 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) weight function: w0 = 1 w(negrecip) = w(rnil) = w(0) = w(cons) = w( from) = 1 w(mark#) = w(active#) = w(square) = w(times) = w( plus) = w(pi) = w(rcons) = w(2ndsneg) = w( posrecip) = w(2ndspos) = w(mark) = w(s) = w( active) = 0 precedence: active# > mark# > 0 > rnil > 2ndsneg > plus > from > mark > negrecip > s > times > active > posrecip > pi > square > rcons > cons > 2ndspos problem: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Restore Modifier: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(plus(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) LPO Processor: argument filtering: pi(from) = 0 pi(active) = 0 pi(s) = [0] pi(cons) = 0 pi(mark) = 0 pi(0) = [] pi(2ndspos) = 0 pi(rnil) = [] pi(posrecip) = 0 pi(2ndsneg) = 0 pi(rcons) = 1 pi(negrecip) = [] pi(pi) = 0 pi(plus) = [0,1] pi(times) = [0,1] pi(square) = [0] pi(active#) = 0 pi(mark#) = 0 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) precedence: square > times > 0 > plus > mark# ~ active# ~ pi ~ negrecip ~ rcons ~ 2ndsneg ~ posrecip ~ rnil ~ 2ndspos ~ mark ~ cons ~ s ~ active ~ from problem: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Restore Modifier: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) SCC Processor: #sccs: 1 #rules: 1 #arcs: 80/25 DPs: mark#(rcons(X1,X2)) -> mark#(X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Size-Change Termination Processor: DPs: TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) The DP: mark#(rcons(X1,X2)) -> mark#(X2) has the edges: 0 > 0 Qed DPs: cons#(mark(X1),X2) -> cons#(X1,X2) cons#(X1,mark(X2)) -> cons#(X1,X2) cons#(active(X1),X2) -> cons#(X1,X2) cons#(X1,active(X2)) -> cons#(X1,X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(cons#) = 0 problem: DPs: cons#(X1,mark(X2)) -> cons#(X1,X2) cons#(X1,active(X2)) -> cons#(X1,X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(cons#) = 1 problem: DPs: TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Qed DPs: s#(mark(X)) -> s#(X) s#(active(X)) -> s#(X) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(s#) = 0 problem: DPs: TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Qed DPs: from#(mark(X)) -> from#(X) from#(active(X)) -> from#(X) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(from#) = 0 problem: DPs: TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Qed DPs: 2ndsneg#(mark(X1),X2) -> 2ndsneg#(X1,X2) 2ndsneg#(X1,mark(X2)) -> 2ndsneg#(X1,X2) 2ndsneg#(active(X1),X2) -> 2ndsneg#(X1,X2) 2ndsneg#(X1,active(X2)) -> 2ndsneg#(X1,X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(2ndsneg#) = 0 problem: DPs: 2ndsneg#(X1,mark(X2)) -> 2ndsneg#(X1,X2) 2ndsneg#(X1,active(X2)) -> 2ndsneg#(X1,X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(2ndsneg#) = 1 problem: DPs: TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Qed DPs: posrecip#(mark(X)) -> posrecip#(X) posrecip#(active(X)) -> posrecip#(X) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(posrecip#) = 0 problem: DPs: TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Qed DPs: rcons#(mark(X1),X2) -> rcons#(X1,X2) rcons#(X1,mark(X2)) -> rcons#(X1,X2) rcons#(active(X1),X2) -> rcons#(X1,X2) rcons#(X1,active(X2)) -> rcons#(X1,X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(rcons#) = 0 problem: DPs: rcons#(X1,mark(X2)) -> rcons#(X1,X2) rcons#(X1,active(X2)) -> rcons#(X1,X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(rcons#) = 1 problem: DPs: TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Qed DPs: 2ndspos#(mark(X1),X2) -> 2ndspos#(X1,X2) 2ndspos#(X1,mark(X2)) -> 2ndspos#(X1,X2) 2ndspos#(active(X1),X2) -> 2ndspos#(X1,X2) 2ndspos#(X1,active(X2)) -> 2ndspos#(X1,X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(2ndspos#) = 0 problem: DPs: 2ndspos#(X1,mark(X2)) -> 2ndspos#(X1,X2) 2ndspos#(X1,active(X2)) -> 2ndspos#(X1,X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(2ndspos#) = 1 problem: DPs: TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Qed DPs: negrecip#(mark(X)) -> negrecip#(X) negrecip#(active(X)) -> negrecip#(X) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(negrecip#) = 0 problem: DPs: TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Qed DPs: plus#(mark(X1),X2) -> plus#(X1,X2) plus#(X1,mark(X2)) -> plus#(X1,X2) plus#(active(X1),X2) -> plus#(X1,X2) plus#(X1,active(X2)) -> plus#(X1,X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(plus#) = 0 problem: DPs: plus#(X1,mark(X2)) -> plus#(X1,X2) plus#(X1,active(X2)) -> plus#(X1,X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(plus#) = 1 problem: DPs: TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Qed DPs: times#(mark(X1),X2) -> times#(X1,X2) times#(X1,mark(X2)) -> times#(X1,X2) times#(active(X1),X2) -> times#(X1,X2) times#(X1,active(X2)) -> times#(X1,X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(times#) = 0 problem: DPs: times#(X1,mark(X2)) -> times#(X1,X2) times#(X1,active(X2)) -> times#(X1,X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(times#) = 1 problem: DPs: TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Qed DPs: pi#(mark(X)) -> pi#(X) pi#(active(X)) -> pi#(X) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(pi#) = 0 problem: DPs: TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Qed DPs: square#(mark(X)) -> square#(X) square#(active(X)) -> square#(X) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Subterm Criterion Processor: simple projection: pi(square#) = 0 problem: DPs: TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) -> mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) -> mark(2ndspos(X,from(0()))) active(plus(0(),Y)) -> mark(Y) active(plus(s(X),Y)) -> mark(s(plus(X,Y))) active(times(0(),Y)) -> mark(0()) active(times(s(X),Y)) -> mark(plus(Y,times(X,Y))) active(square(X)) -> mark(times(X,X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1,X2)) -> active(2ndspos(mark(X1),mark(X2))) mark(0()) -> active(0()) mark(rnil()) -> active(rnil()) mark(rcons(X1,X2)) -> active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) -> active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1,X2)) -> active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) -> active(times(mark(X1),mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(X) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) 2ndspos(mark(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) -> 2ndspos(X1,X2) 2ndspos(active(X1),X2) -> 2ndspos(X1,X2) 2ndspos(X1,active(X2)) -> 2ndspos(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Qed