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 + 0, [active#](x0) = x0 + 0, [square](x0) = 4x0 + 4, [times](x0, x1) = x0 + x1 + 0, [plus](x0, x1) = x0 + x1 + 0, [pi](x0) = x0, [negrecip](x0) = x0, [rcons](x0, x1) = x0 + x1 + 0, [2ndsneg](x0, x1) = x0 + x1, [posrecip](x0) = x0 + 0, [rnil] = 0, [2ndspos](x0, x1) = x0 + x1, [0] = 0, [mark](x0) = x0 + 0, [cons](x0, x1) = x0 + x1, [s](x0) = x0, [active](x0) = x0 + 0, [from](x0) = x0 + 0 orientation: mark#(square(X)) = 4X + 4 >= X + 0 = mark#(X) mark#(square(X)) = 4X + 4 >= 4X + 4 = active#(square(mark(X))) active#(square(X)) = 4X + 4 >= 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#(times(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) 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)) = X + 0 >= X + 0 = active#(pi(mark(X))) active#(pi(X)) = X + 0 >= 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#(pi(X)) = X + 0 >= X + 0 = mark#(X) 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 >= 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#(2ndspos(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) 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)) = X + 0 >= X + 0 = 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)) = 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)) = 4X + 4 >= X + 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 + 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)) = X + 0 >= X + 0 = 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 + 0 >= X1 + X2 + 0 = active(times(mark(X1),mark(X2))) mark(square(X)) = 4X + 4 >= 4X + 4 = 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 = cons(X1,X2) cons(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 = cons(X1,X2) cons(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 = cons(X1,X2) cons(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 = cons(X1,X2) s(mark(X)) = X + 0 >= X = s(X) s(active(X)) = X + 0 >= X = 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 + 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) = X1 + X2 + 0 >= X1 + X2 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 = 2ndsneg(X1,X2) negrecip(mark(X)) = X + 0 >= X = negrecip(X) negrecip(active(X)) = X + 0 >= X = negrecip(X) pi(mark(X)) = X + 0 >= X = pi(X) pi(active(X)) = X + 0 >= X = 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 + 0 >= X1 + X2 + 0 = times(X1,X2) times(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = times(X1,X2) times(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = times(X1,X2) times(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = 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#(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) 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#(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) SCC Processor: #sccs: 1 #rules: 29 #arcs: 455/900 DPs: mark#(times(X1,X2)) -> mark#(X2) 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#(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, [active#](x0) = x0, [square](x0) = 5x0 + 5, [times](x0, x1) = x0 + 1x1, [plus](x0, x1) = x0 + x1, [pi](x0) = x0 + 5, [negrecip](x0) = x0 + 4, [rcons](x0, x1) = x0 + x1, [2ndsneg](x0, x1) = x0 + x1 + 5, [posrecip](x0) = x0 + 0, [rnil] = 3, [2ndspos](x0, x1) = x0 + x1 + 5, [0] = 5, [mark](x0) = x0, [cons](x0, x1) = x0 + x1, [s](x0) = x0, [active](x0) = x0, [from](x0) = x0 orientation: mark#(times(X1,X2)) = X1 + 1X2 >= X2 = mark#(X2) mark#(times(X1,X2)) = X1 + 1X2 >= X1 + 1X2 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = X + 1Y >= X + 1Y = 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 + 1X2 >= X1 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 >= X1 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 >= X2 = mark#(X2) mark#(pi(X)) = X + 5 >= X + 5 = active#(pi(mark(X))) active#(pi(X)) = X + 5 >= X + 5 = mark#(2ndspos(X,from(0()))) mark#(2ndspos(X1,X2)) = X1 + X2 + 5 >= X1 + X2 + 5 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 5 >= N + Y + Z + 5 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 >= X1 = mark#(X1) mark#(pi(X)) = X + 5 >= X = mark#(X) mark#(negrecip(X)) = X + 4 >= X = mark#(X) mark#(2ndsneg(X1,X2)) = X1 + X2 + 5 >= X1 + X2 + 5 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 5 >= N + Y + Z + 5 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 >= X2 = mark#(X2) mark#(2ndsneg(X1,X2)) = X1 + X2 + 5 >= X1 = mark#(X1) mark#(2ndsneg(X1,X2)) = X1 + X2 + 5 >= X2 = mark#(X2) mark#(posrecip(X)) = X + 0 >= X = mark#(X) mark#(2ndspos(X1,X2)) = X1 + X2 + 5 >= X1 = mark#(X1) mark#(2ndspos(X1,X2)) = X1 + X2 + 5 >= X2 = mark#(X2) mark#(cons(X1,X2)) = X1 + X2 >= X1 = mark#(X1) mark#(from(X)) = X >= X = active#(from(mark(X))) active#(from(X)) = X >= X = mark#(cons(X,from(s(X)))) mark#(from(X)) = X >= X = mark#(X) active#(plus(0(),Y)) = Y + 5 >= Y = mark#(Y) active(from(X)) = X >= X = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = Z + 5 >= 3 = mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 5 >= N + Y + Z + 5 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = Z + 5 >= 3 = mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) = N + X + Y + Z + 5 >= N + Y + Z + 5 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = X + 5 >= X + 5 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 5 >= Y = mark(Y) active(plus(s(X),Y)) = X + Y >= X + Y = mark(s(plus(X,Y))) active(times(0(),Y)) = 1Y + 5 >= 5 = mark(0()) active(times(s(X),Y)) = X + 1Y >= X + 1Y = mark(plus(Y,times(X,Y))) active(square(X)) = 5X + 5 >= 1X = 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 + X2 + 5 >= X1 + X2 + 5 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 5 >= 5 = active(0()) mark(rnil()) = 3 >= 3 = 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 + 5 >= X1 + X2 + 5 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = X + 4 >= X + 4 = active(negrecip(mark(X))) mark(pi(X)) = X + 5 >= X + 5 = active(pi(mark(X))) mark(plus(X1,X2)) = X1 + X2 >= X1 + X2 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = X1 + 1X2 >= X1 + 1X2 = active(times(mark(X1),mark(X2))) mark(square(X)) = 5X + 5 >= 5X + 5 = 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 + X2 + 5 >= X1 + X2 + 5 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = X1 + X2 + 5 >= X1 + X2 + 5 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = X1 + X2 + 5 >= X1 + X2 + 5 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = X1 + X2 + 5 >= X1 + X2 + 5 = 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 + 5 >= X1 + X2 + 5 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = X1 + X2 + 5 >= X1 + X2 + 5 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = X1 + X2 + 5 >= X1 + X2 + 5 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = X1 + X2 + 5 >= X1 + X2 + 5 = 2ndsneg(X1,X2) negrecip(mark(X)) = X + 4 >= X + 4 = negrecip(X) negrecip(active(X)) = X + 4 >= X + 4 = negrecip(X) pi(mark(X)) = X + 5 >= X + 5 = pi(X) pi(active(X)) = X + 5 >= X + 5 = 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 + 1X2 >= X1 + 1X2 = times(X1,X2) times(X1,mark(X2)) = X1 + 1X2 >= X1 + 1X2 = times(X1,X2) times(active(X1),X2) = X1 + 1X2 >= X1 + 1X2 = times(X1,X2) times(X1,active(X2)) = X1 + 1X2 >= X1 + 1X2 = times(X1,X2) square(mark(X)) = 5X + 5 >= 5X + 5 = square(X) square(active(X)) = 5X + 5 >= 5X + 5 = 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#(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#(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) 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#(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#(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 + 0, [active#](x0) = x0 + 0, [square](x0) = 3x0 + 0, [times](x0, x1) = x0 + 3x1, [plus](x0, x1) = x0 + x1, [pi](x0) = 5x0 + 4, [negrecip](x0) = x0 + 0, [rcons](x0, x1) = x0 + x1 + 0, [2ndsneg](x0, x1) = x0 + x1 + 0, [posrecip](x0) = x0 + 0, [rnil] = 0, [2ndspos](x0, x1) = x0 + x1 + 0, [0] = 0, [mark](x0) = x0, [cons](x0, x1) = x0 + x1, [s](x0) = x0, [active](x0) = x0, [from](x0) = x0 orientation: mark#(times(X1,X2)) = X1 + 3X2 + 0 >= X1 + 3X2 + 0 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = X + 3Y + 0 >= X + 3Y + 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 + 3X2 + 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)) = 5X + 4 >= 5X + 4 = active#(pi(mark(X))) active#(pi(X)) = 5X + 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#(pi(X)) = 5X + 4 >= X + 0 = mark#(X) 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 >= 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#(2ndspos(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) 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 >= X = 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)) = 5X + 4 >= X + 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)) = 3Y + 0 >= 0 = mark(0()) active(times(s(X),Y)) = X + 3Y >= X + 3Y = mark(plus(Y,times(X,Y))) active(square(X)) = 3X + 0 >= 3X = 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 + 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)) = 5X + 4 >= 5X + 4 = active(pi(mark(X))) mark(plus(X1,X2)) = X1 + X2 >= X1 + X2 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = X1 + 3X2 >= X1 + 3X2 = active(times(mark(X1),mark(X2))) mark(square(X)) = 3X + 0 >= 3X + 0 = 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 + X2 + 0 >= X1 + X2 + 0 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = X1 + X2 + 0 >= X1 + 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) = 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)) = 5X + 4 >= 5X + 4 = pi(X) pi(active(X)) = 5X + 4 >= 5X + 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 + 3X2 >= X1 + 3X2 = times(X1,X2) times(X1,mark(X2)) = X1 + 3X2 >= X1 + 3X2 = times(X1,X2) times(active(X1),X2) = X1 + 3X2 >= X1 + 3X2 = times(X1,X2) times(X1,active(X2)) = X1 + 3X2 >= X1 + 3X2 = times(X1,X2) square(mark(X)) = 3X + 0 >= 3X + 0 = square(X) square(active(X)) = 3X + 0 >= 3X + 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#(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#(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) 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#(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#(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) SCC Processor: #sccs: 1 #rules: 25 #arcs: 393/676 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#(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#(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, [active#](x0) = x0, [square](x0) = 4x0, [times](x0, x1) = 4x0 + 3x1, [plus](x0, x1) = x0 + x1, [pi](x0) = x0 + 6, [negrecip](x0) = x0, [rcons](x0, x1) = x0 + x1 + 0, [2ndsneg](x0, x1) = x0 + x1 + 0, [posrecip](x0) = x0, [rnil] = 0, [2ndspos](x0, x1) = x0 + x1 + 0, [0] = 0, [mark](x0) = x0, [cons](x0, x1) = x0 + x1 + 0, [s](x0) = x0 + 0, [active](x0) = x0, [from](x0) = 6x0 + 6 orientation: mark#(times(X1,X2)) = 4X1 + 3X2 >= X1 = mark#(X1) mark#(times(X1,X2)) = 4X1 + 3X2 >= 4X1 + 3X2 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = 4X + 3Y + 4 >= 4X + 3Y = 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 + 0 >= X + Y + 0 = mark#(s(plus(X,Y))) mark#(s(X)) = X + 0 >= X = mark#(X) mark#(plus(X1,X2)) = X1 + X2 >= X1 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 >= X2 = mark#(X2) mark#(negrecip(X)) = X >= X = 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 = mark#(X1) mark#(2ndsneg(X1,X2)) = X1 + X2 + 0 >= X1 = mark#(X1) mark#(2ndsneg(X1,X2)) = X1 + X2 + 0 >= X2 = mark#(X2) mark#(posrecip(X)) = X >= X = mark#(X) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X2 = 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 >= X1 = mark#(X1) mark#(2ndspos(X1,X2)) = X1 + X2 + 0 >= X2 = mark#(X2) mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 = 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 = mark#(X) active#(plus(0(),Y)) = Y + 0 >= Y = 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)) = X + 6 >= X + 6 = 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)) = 3Y + 4 >= 0 = mark(0()) active(times(s(X),Y)) = 4X + 3Y + 4 >= 4X + 3Y = mark(plus(Y,times(X,Y))) active(square(X)) = 4X >= 4X = 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 >= X = active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = X >= X = active(negrecip(mark(X))) mark(pi(X)) = X + 6 >= X + 6 = active(pi(mark(X))) mark(plus(X1,X2)) = X1 + X2 >= X1 + X2 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = 4X1 + 3X2 >= 4X1 + 3X2 = active(times(mark(X1),mark(X2))) mark(square(X)) = 4X >= 4X = 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 + 0 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = X1 + X2 + 0 >= X1 + 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 >= X = posrecip(X) posrecip(active(X)) = X >= 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 >= X = negrecip(X) negrecip(active(X)) = X >= X = negrecip(X) pi(mark(X)) = X + 6 >= X + 6 = pi(X) pi(active(X)) = X + 6 >= X + 6 = 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) = 4X1 + 3X2 >= 4X1 + 3X2 = times(X1,X2) times(X1,mark(X2)) = 4X1 + 3X2 >= 4X1 + 3X2 = times(X1,X2) times(active(X1),X2) = 4X1 + 3X2 >= 4X1 + 3X2 = times(X1,X2) times(X1,active(X2)) = 4X1 + 3X2 >= 4X1 + 3X2 = times(X1,X2) square(mark(X)) = 4X >= 4X = square(X) square(active(X)) = 4X >= 4X = 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#(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#(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)))) 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#(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#(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)))) 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, [active#](x0) = x0, [square](x0) = 2x0 + 3, [times](x0, x1) = x0 + 2x1, [plus](x0, x1) = x0 + x1 + 0, [pi](x0) = 6x0 + 6, [negrecip](x0) = 1x0, [rcons](x0, x1) = 1x0 + x1, [2ndsneg](x0, x1) = x0 + 2x1, [posrecip](x0) = 1x0 + 3, [rnil] = 0, [2ndspos](x0, x1) = x0 + 2x1 + 4, [0] = 0, [mark](x0) = x0, [cons](x0, x1) = x0 + x1, [s](x0) = x0 + 4, [active](x0) = x0, [from](x0) = x0 + 4 orientation: mark#(times(X1,X2)) = X1 + 2X2 + 0 >= X1 + 2X2 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = X + 2Y + 4 >= X + 2Y + 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 + 4 >= X + Y + 4 = mark#(s(plus(X,Y))) mark#(s(X)) = X + 4 >= 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)) = 1X + 0 >= X + 0 = mark#(X) mark#(2ndsneg(X1,X2)) = X1 + 2X2 + 0 >= X1 + 2X2 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) = N + 2X + 2Y + 2Z + 4 >= N + 2Y + 2Z + 4 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = 1X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(2ndsneg(X1,X2)) = X1 + 2X2 + 0 >= X1 + 0 = mark#(X1) mark#(2ndsneg(X1,X2)) = X1 + 2X2 + 0 >= X2 + 0 = mark#(X2) mark#(posrecip(X)) = 1X + 3 >= X + 0 = mark#(X) mark#(rcons(X1,X2)) = 1X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(2ndspos(X1,X2)) = X1 + 2X2 + 4 >= X1 + 2X2 + 4 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) = N + 2X + 2Y + 2Z + 4 >= N + 2Y + 2Z + 4 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(2ndspos(X1,X2)) = X1 + 2X2 + 4 >= X1 + 0 = mark#(X1) mark#(2ndspos(X1,X2)) = X1 + 2X2 + 4 >= X2 + 0 = mark#(X2) mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(from(X)) = X + 4 >= X + 4 = active#(from(mark(X))) active#(from(X)) = X + 4 >= X + 4 = mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) = Y + 0 >= Y + 0 = mark#(Y) active(from(X)) = X + 4 >= X + 4 = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = 2Z + 4 >= 0 = mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) = N + 2X + 2Y + 2Z + 4 >= N + 2Y + 2Z + 4 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = 2Z + 0 >= 0 = mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) = N + 2X + 2Y + 2Z + 4 >= N + 2Y + 2Z + 4 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = 6X + 6 >= X + 6 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 0 >= Y = mark(Y) active(plus(s(X),Y)) = X + Y + 4 >= X + Y + 4 = mark(s(plus(X,Y))) active(times(0(),Y)) = 2Y + 0 >= 0 = mark(0()) active(times(s(X),Y)) = X + 2Y + 4 >= X + 2Y + 0 = mark(plus(Y,times(X,Y))) active(square(X)) = 2X + 3 >= 2X = mark(times(X,X)) mark(from(X)) = X + 4 >= X + 4 = active(from(mark(X))) mark(cons(X1,X2)) = X1 + X2 >= X1 + X2 = active(cons(mark(X1),X2)) mark(s(X)) = X + 4 >= X + 4 = active(s(mark(X))) mark(2ndspos(X1,X2)) = X1 + 2X2 + 4 >= X1 + 2X2 + 4 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 0 >= 0 = active(0()) mark(rnil()) = 0 >= 0 = active(rnil()) mark(rcons(X1,X2)) = 1X1 + X2 >= 1X1 + X2 = active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) = 1X + 3 >= 1X + 3 = active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) = X1 + 2X2 >= X1 + 2X2 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = 1X >= 1X = active(negrecip(mark(X))) mark(pi(X)) = 6X + 6 >= 6X + 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 + 2X2 >= X1 + 2X2 = active(times(mark(X1),mark(X2))) mark(square(X)) = 2X + 3 >= 2X + 3 = active(square(mark(X))) from(mark(X)) = X + 4 >= X + 4 = from(X) from(active(X)) = X + 4 >= X + 4 = 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 + 4 >= X + 4 = s(X) s(active(X)) = X + 4 >= X + 4 = s(X) 2ndspos(mark(X1),X2) = X1 + 2X2 + 4 >= X1 + 2X2 + 4 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = X1 + 2X2 + 4 >= X1 + 2X2 + 4 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = X1 + 2X2 + 4 >= X1 + 2X2 + 4 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = X1 + 2X2 + 4 >= X1 + 2X2 + 4 = 2ndspos(X1,X2) rcons(mark(X1),X2) = 1X1 + X2 >= 1X1 + X2 = rcons(X1,X2) rcons(X1,mark(X2)) = 1X1 + X2 >= 1X1 + X2 = rcons(X1,X2) rcons(active(X1),X2) = 1X1 + X2 >= 1X1 + X2 = rcons(X1,X2) rcons(X1,active(X2)) = 1X1 + X2 >= 1X1 + X2 = rcons(X1,X2) posrecip(mark(X)) = 1X + 3 >= 1X + 3 = posrecip(X) posrecip(active(X)) = 1X + 3 >= 1X + 3 = posrecip(X) 2ndsneg(mark(X1),X2) = X1 + 2X2 >= X1 + 2X2 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = X1 + 2X2 >= X1 + 2X2 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = X1 + 2X2 >= X1 + 2X2 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = X1 + 2X2 >= X1 + 2X2 = 2ndsneg(X1,X2) negrecip(mark(X)) = 1X >= 1X = negrecip(X) negrecip(active(X)) = 1X >= 1X = negrecip(X) pi(mark(X)) = 6X + 6 >= 6X + 6 = pi(X) pi(active(X)) = 6X + 6 >= 6X + 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 + 2X2 >= X1 + 2X2 = times(X1,X2) times(X1,mark(X2)) = X1 + 2X2 >= X1 + 2X2 = times(X1,X2) times(active(X1),X2) = X1 + 2X2 >= X1 + 2X2 = times(X1,X2) times(X1,active(X2)) = X1 + 2X2 >= X1 + 2X2 = times(X1,X2) square(mark(X)) = 2X + 3 >= 2X + 3 = square(X) square(active(X)) = 2X + 3 >= 2X + 3 = 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#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) 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#(X1) 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#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) 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#(X1) 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 + 2, [active#](x0) = x0 + 2, [square](x0) = 2x0 + 3, [times](x0, x1) = 2x0 + 1x1 + 2, [plus](x0, x1) = x0 + x1 + 0, [pi](x0) = 5x0 + 6, [negrecip](x0) = x0, [rcons](x0, x1) = x0 + x1 + 0, [2ndsneg](x0, x1) = 4x0 + 4x1 + 4, [posrecip](x0) = x0, [rnil] = 4, [2ndspos](x0, x1) = 4x0 + 4x1 + 4, [0] = 0, [mark](x0) = x0 + 0, [cons](x0, x1) = x0 + x1 + 0, [s](x0) = x0, [active](x0) = x0 + 0, [from](x0) = 2x0 + 2 orientation: mark#(times(X1,X2)) = 2X1 + 1X2 + 2 >= 2X1 + 1X2 + 2 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = 2X + 1Y + 2 >= 2X + 1Y + 2 = mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) = X1 + X2 + 2 >= X1 + X2 + 2 = active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) = X + Y + 2 >= X + Y + 2 = mark#(s(plus(X,Y))) mark#(s(X)) = X + 2 >= X + 2 = mark#(X) mark#(plus(X1,X2)) = X1 + X2 + 2 >= X1 + 2 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 + 2 >= X2 + 2 = mark#(X2) mark#(negrecip(X)) = X + 2 >= X + 2 = mark#(X) mark#(2ndsneg(X1,X2)) = 4X1 + 4X2 + 4 >= 4X1 + 4X2 + 4 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) = 4N + 4X + 4Y + 4Z + 4 >= 4N + Y + 4Z + 4 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 + 2 >= X1 + 2 = mark#(X1) mark#(2ndsneg(X1,X2)) = 4X1 + 4X2 + 4 >= X1 + 2 = mark#(X1) mark#(2ndsneg(X1,X2)) = 4X1 + 4X2 + 4 >= X2 + 2 = mark#(X2) mark#(rcons(X1,X2)) = X1 + X2 + 2 >= X2 + 2 = mark#(X2) mark#(2ndspos(X1,X2)) = 4X1 + 4X2 + 4 >= 4X1 + 4X2 + 4 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) = 4N + 4X + 4Y + 4Z + 4 >= 4N + Y + 4Z + 4 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(2ndspos(X1,X2)) = 4X1 + 4X2 + 4 >= X1 + 2 = mark#(X1) mark#(cons(X1,X2)) = X1 + X2 + 2 >= X1 + 2 = mark#(X1) mark#(from(X)) = 2X + 2 >= 2X + 2 = active#(from(mark(X))) active#(from(X)) = 2X + 2 >= 2X + 2 = mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) = Y + 2 >= Y + 2 = mark#(Y) active(from(X)) = 2X + 2 >= 2X + 2 = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = 4Z + 4 >= 4 = mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) = 4N + 4X + 4Y + 4Z + 4 >= 4N + Y + 4Z + 4 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = 4Z + 4 >= 4 = mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) = 4N + 4X + 4Y + 4Z + 4 >= 4N + Y + 4Z + 4 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = 5X + 6 >= 4X + 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 + 2 >= 0 = mark(0()) active(times(s(X),Y)) = 2X + 1Y + 2 >= 2X + 1Y + 2 = mark(plus(Y,times(X,Y))) active(square(X)) = 2X + 3 >= 2X + 2 = mark(times(X,X)) mark(from(X)) = 2X + 2 >= 2X + 2 = 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)) = 4X1 + 4X2 + 4 >= 4X1 + 4X2 + 4 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 0 >= 0 = active(0()) mark(rnil()) = 4 >= 4 = 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)) = 4X1 + 4X2 + 4 >= 4X1 + 4X2 + 4 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = X + 0 >= X + 0 = active(negrecip(mark(X))) mark(pi(X)) = 5X + 6 >= 5X + 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)) = 2X1 + 1X2 + 2 >= 2X1 + 1X2 + 2 = active(times(mark(X1),mark(X2))) mark(square(X)) = 2X + 3 >= 2X + 3 = active(square(mark(X))) from(mark(X)) = 2X + 2 >= 2X + 2 = from(X) from(active(X)) = 2X + 2 >= 2X + 2 = 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 = s(X) s(active(X)) = X + 0 >= X = s(X) 2ndspos(mark(X1),X2) = 4X1 + 4X2 + 4 >= 4X1 + 4X2 + 4 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = 4X1 + 4X2 + 4 >= 4X1 + 4X2 + 4 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = 4X1 + 4X2 + 4 >= 4X1 + 4X2 + 4 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = 4X1 + 4X2 + 4 >= 4X1 + 4X2 + 4 = 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 = posrecip(X) posrecip(active(X)) = X + 0 >= X = posrecip(X) 2ndsneg(mark(X1),X2) = 4X1 + 4X2 + 4 >= 4X1 + 4X2 + 4 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = 4X1 + 4X2 + 4 >= 4X1 + 4X2 + 4 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = 4X1 + 4X2 + 4 >= 4X1 + 4X2 + 4 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = 4X1 + 4X2 + 4 >= 4X1 + 4X2 + 4 = 2ndsneg(X1,X2) negrecip(mark(X)) = X + 0 >= X = negrecip(X) negrecip(active(X)) = X + 0 >= X = negrecip(X) pi(mark(X)) = 5X + 6 >= 5X + 6 = pi(X) pi(active(X)) = 5X + 6 >= 5X + 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) = 2X1 + 1X2 + 2 >= 2X1 + 1X2 + 2 = times(X1,X2) times(X1,mark(X2)) = 2X1 + 1X2 + 2 >= 2X1 + 1X2 + 2 = times(X1,X2) times(active(X1),X2) = 2X1 + 1X2 + 2 >= 2X1 + 1X2 + 2 = times(X1,X2) times(X1,active(X2)) = 2X1 + 1X2 + 2 >= 2X1 + 1X2 + 2 = times(X1,X2) square(mark(X)) = 2X + 3 >= 2X + 3 = square(X) square(active(X)) = 2X + 3 >= 2X + 3 = 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#(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#(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 + 0, [active#](x0) = x0 + 0, [square](x0) = 4x0 + 6, [times](x0, x1) = 2x0 + 2x1 + 2, [plus](x0, x1) = 1x0 + x1 + 1, [pi](x0) = 1, [negrecip](x0) = x0, [rcons](x0, x1) = x0 + x1, [2ndsneg](x0, x1) = x1 + 0, [posrecip](x0) = x0 + 0, [rnil] = 0, [2ndspos](x0, x1) = x1, [0] = 1, [mark](x0) = x0 + 0, [cons](x0, x1) = x0 + x1 + 0, [s](x0) = x0 + 0, [active](x0) = x0 + 0, [from](x0) = x0 + 0 orientation: mark#(times(X1,X2)) = 2X1 + 2X2 + 2 >= 2X1 + 2X2 + 2 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = 2X + 2Y + 2 >= 2X + 2Y + 2 = mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) = 1X1 + X2 + 1 >= 1X1 + X2 + 1 = active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) = 1X + Y + 1 >= 1X + Y + 1 = mark#(s(plus(X,Y))) mark#(s(X)) = X + 0 >= X + 0 = mark#(X) mark#(plus(X1,X2)) = 1X1 + X2 + 1 >= X1 + 0 = mark#(X1) mark#(plus(X1,X2)) = 1X1 + X2 + 1 >= X2 + 0 = mark#(X2) mark#(negrecip(X)) = X + 0 >= X + 0 = mark#(X) mark#(2ndsneg(X1,X2)) = X2 + 0 >= X2 + 0 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) = X + Y + Z + 0 >= Y + Z + 0 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(2ndspos(X1,X2)) = X2 + 0 >= X2 + 0 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) = X + Y + Z + 0 >= 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 + 2 >= 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)))) = X + Y + Z + 0 >= 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)))) = X + Y + Z + 0 >= Y + Z + 0 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = 1 >= 1 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 2 >= Y + 0 = mark(Y) active(plus(s(X),Y)) = 1X + Y + 1 >= 1X + Y + 1 = mark(s(plus(X,Y))) active(times(0(),Y)) = 2Y + 3 >= 1 = mark(0()) active(times(s(X),Y)) = 2X + 2Y + 2 >= 2X + 2Y + 2 = mark(plus(Y,times(X,Y))) active(square(X)) = 4X + 6 >= 2X + 2 = 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 + 0 >= X + 0 = active(s(mark(X))) mark(2ndspos(X1,X2)) = X2 + 0 >= X2 + 0 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 1 >= 1 = 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)) = X2 + 0 >= X2 + 0 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = X + 0 >= X + 0 = active(negrecip(mark(X))) mark(pi(X)) = 1 >= 1 = active(pi(mark(X))) mark(plus(X1,X2)) = 1X1 + X2 + 1 >= 1X1 + X2 + 1 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = 2X1 + 2X2 + 2 >= 2X1 + 2X2 + 2 = active(times(mark(X1),mark(X2))) mark(square(X)) = 4X + 6 >= 4X + 6 = 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 + 0 >= X + 0 = s(X) s(active(X)) = X + 0 >= X + 0 = s(X) 2ndspos(mark(X1),X2) = X2 >= X2 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = X2 + 0 >= X2 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = X2 >= X2 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = X2 + 0 >= 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 + 0 = posrecip(X) posrecip(active(X)) = X + 0 >= X + 0 = posrecip(X) 2ndsneg(mark(X1),X2) = X2 + 0 >= X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = X2 + 0 >= X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = X2 + 0 >= X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = X2 + 0 >= X2 + 0 = 2ndsneg(X1,X2) negrecip(mark(X)) = X + 0 >= X = negrecip(X) negrecip(active(X)) = X + 0 >= X = negrecip(X) pi(mark(X)) = 1 >= 1 = pi(X) pi(active(X)) = 1 >= 1 = pi(X) plus(mark(X1),X2) = 1X1 + X2 + 1 >= 1X1 + X2 + 1 = plus(X1,X2) plus(X1,mark(X2)) = 1X1 + X2 + 1 >= 1X1 + X2 + 1 = plus(X1,X2) plus(active(X1),X2) = 1X1 + X2 + 1 >= 1X1 + X2 + 1 = plus(X1,X2) plus(X1,active(X2)) = 1X1 + X2 + 1 >= 1X1 + X2 + 1 = plus(X1,X2) times(mark(X1),X2) = 2X1 + 2X2 + 2 >= 2X1 + 2X2 + 2 = times(X1,X2) times(X1,mark(X2)) = 2X1 + 2X2 + 2 >= 2X1 + 2X2 + 2 = times(X1,X2) times(active(X1),X2) = 2X1 + 2X2 + 2 >= 2X1 + 2X2 + 2 = times(X1,X2) times(X1,active(X2)) = 2X1 + 2X2 + 2 >= 2X1 + 2X2 + 2 = times(X1,X2) square(mark(X)) = 4X + 6 >= 4X + 6 = square(X) square(active(X)) = 4X + 6 >= 4X + 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#(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#(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#(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, [active#](x0) = x0, [square](x0) = 4x0 + 0, [times](x0, x1) = 1x0 + 3x1, [plus](x0, x1) = x1, [pi](x0) = 6x0 + 2, [negrecip](x0) = 1x0 + 0, [rcons](x0, x1) = x0 + x1 + 0, [2ndsneg](x0, x1) = 6x0 + 2x1 + 0, [posrecip](x0) = 0, [rnil] = 3, [2ndspos](x0, x1) = 6x0 + 2x1 + 0, [0] = 0, [mark](x0) = x0, [cons](x0, x1) = x0 + x1, [s](x0) = x0, [active](x0) = x0, [from](x0) = x0 orientation: mark#(times(X1,X2)) = 1X1 + 3X2 >= 1X1 + 3X2 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = 1X + 3Y >= 1X + 3Y = 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)) = 1X + 0 >= X = mark#(X) mark#(2ndsneg(X1,X2)) = 6X1 + 2X2 + 0 >= 6X1 + 2X2 + 0 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,cons(Y,Z)))) = 6N + 2X + 2Y + 2Z + 0 >= 6N + 1Y + 2Z + 0 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X1 = mark#(X1) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X2 = mark#(X2) mark#(2ndspos(X1,X2)) = 6X1 + 2X2 + 0 >= 6X1 + 2X2 + 0 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,cons(Y,Z)))) = 6N + 2X + 2Y + 2Z + 0 >= 6N + 2Z + 0 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(cons(X1,X2)) = X1 + X2 >= X1 = mark#(X1) mark#(from(X)) = X >= X = active#(from(mark(X))) active#(from(X)) = X >= X = mark#(cons(X,from(s(X)))) active#(plus(0(),Y)) = Y >= Y = mark#(Y) active(from(X)) = X >= X = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = 2Z + 6 >= 3 = mark(rnil()) active(2ndspos(s(N),cons(X,cons(Y,Z)))) = 6N + 2X + 2Y + 2Z + 0 >= 6N + 2Z + 0 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = 2Z + 6 >= 3 = mark(rnil()) active(2ndsneg(s(N),cons(X,cons(Y,Z)))) = 6N + 2X + 2Y + 2Z + 0 >= 6N + 1Y + 2Z + 0 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = 6X + 2 >= 6X + 2 = 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)) = 3Y + 1 >= 0 = mark(0()) active(times(s(X),Y)) = 1X + 3Y >= 1X + 3Y = mark(plus(Y,times(X,Y))) active(square(X)) = 4X + 0 >= 3X = 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)) = 6X1 + 2X2 + 0 >= 6X1 + 2X2 + 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)) = 0 >= 0 = active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) = 6X1 + 2X2 + 0 >= 6X1 + 2X2 + 0 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = 1X + 0 >= 1X + 0 = active(negrecip(mark(X))) mark(pi(X)) = 6X + 2 >= 6X + 2 = active(pi(mark(X))) mark(plus(X1,X2)) = X2 >= X2 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = 1X1 + 3X2 >= 1X1 + 3X2 = active(times(mark(X1),mark(X2))) mark(square(X)) = 4X + 0 >= 4X + 0 = 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) = 6X1 + 2X2 + 0 >= 6X1 + 2X2 + 0 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = 6X1 + 2X2 + 0 >= 6X1 + 2X2 + 0 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = 6X1 + 2X2 + 0 >= 6X1 + 2X2 + 0 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = 6X1 + 2X2 + 0 >= 6X1 + 2X2 + 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)) = 0 >= 0 = posrecip(X) posrecip(active(X)) = 0 >= 0 = posrecip(X) 2ndsneg(mark(X1),X2) = 6X1 + 2X2 + 0 >= 6X1 + 2X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = 6X1 + 2X2 + 0 >= 6X1 + 2X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = 6X1 + 2X2 + 0 >= 6X1 + 2X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = 6X1 + 2X2 + 0 >= 6X1 + 2X2 + 0 = 2ndsneg(X1,X2) negrecip(mark(X)) = 1X + 0 >= 1X + 0 = negrecip(X) negrecip(active(X)) = 1X + 0 >= 1X + 0 = negrecip(X) pi(mark(X)) = 6X + 2 >= 6X + 2 = pi(X) pi(active(X)) = 6X + 2 >= 6X + 2 = 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) = 1X1 + 3X2 >= 1X1 + 3X2 = times(X1,X2) times(X1,mark(X2)) = 1X1 + 3X2 >= 1X1 + 3X2 = times(X1,X2) times(active(X1),X2) = 1X1 + 3X2 >= 1X1 + 3X2 = times(X1,X2) times(X1,active(X2)) = 1X1 + 3X2 >= 1X1 + 3X2 = times(X1,X2) square(mark(X)) = 4X + 0 >= 4X + 0 = square(X) square(active(X)) = 4X + 0 >= 4X + 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#(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#(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#(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#(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) 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) = [] pi(2ndsneg) = 0 pi(rcons) = [0,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 ~ pi > 0 > plus > s > 2ndspos > mark# ~ active# ~ negrecip ~ rcons ~ 2ndsneg ~ posrecip ~ rnil ~ mark ~ cons ~ 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#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(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) 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#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(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) SCC Processor: #sccs: 1 #rules: 3 #arcs: 300/49 DPs: mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(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) 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) = [] 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(active#) = w(square) = w(pi) = w(negrecip) = w( posrecip) = w(rnil) = w(0) = w(from) = 1 w(mark#) = w(times) = w(plus) = w(rcons) = w( 2ndsneg) = w(2ndspos) = w(mark) = w(cons) = w( s) = w(active) = 0 precedence: s > 2ndsneg > times > pi > square > 2ndspos > rcons > 0 > cons > mark > posrecip > negrecip > active# > rnil > plus > active > mark# > from problem: DPs: mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(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) Restore Modifier: DPs: mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(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) SCC Processor: #sccs: 1 #rules: 1 #arcs: 4/4 DPs: mark#(cons(X1,X2)) -> mark#(X1) 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#(cons(X1,X2)) -> mark#(X1) 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