YES Problem: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> cons2#(X,Z) active#(2ndspos(s(N),cons(X,Z))) -> 2ndspos#(s(N),cons2(X,Z)) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> 2ndsneg#(N,Z) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> posrecip#(Y) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> rcons#(posrecip(Y),2ndsneg(N,Z)) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndsneg(0(),Z)) -> mark#(rnil()) active#(2ndsneg(s(N),cons(X,Z))) -> cons2#(X,Z) active#(2ndsneg(s(N),cons(X,Z))) -> 2ndsneg#(s(N),cons2(X,Z)) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) -> 2ndspos#(N,Z) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) -> negrecip#(Y) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) -> rcons#(negrecip(Y),2ndspos(N,Z)) active#(2ndsneg(s(N),cons2(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#(cons2(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> cons2#(X1,mark(X2)) mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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) cons2#(mark(X1),X2) -> cons2#(X1,X2) cons2#(X1,mark(X2)) -> cons2#(X1,X2) cons2#(active(X1),X2) -> cons2#(X1,X2) cons2#(X1,active(X2)) -> cons2#(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> cons2#(X,Z) active#(2ndspos(s(N),cons(X,Z))) -> 2ndspos#(s(N),cons2(X,Z)) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> 2ndsneg#(N,Z) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> posrecip#(Y) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> rcons#(posrecip(Y),2ndsneg(N,Z)) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndsneg(0(),Z)) -> mark#(rnil()) active#(2ndsneg(s(N),cons(X,Z))) -> cons2#(X,Z) active#(2ndsneg(s(N),cons(X,Z))) -> 2ndsneg#(s(N),cons2(X,Z)) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) -> 2ndspos#(N,Z) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) -> negrecip#(Y) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) -> rcons#(negrecip(Y),2ndspos(N,Z)) active#(2ndsneg(s(N),cons2(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#(cons2(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> cons2#(X1,mark(X2)) mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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) cons2#(mark(X1),X2) -> cons2#(X1,X2) cons2#(X1,mark(X2)) -> cons2#(X1,X2) cons2#(active(X1),X2) -> cons2#(X1,X2) cons2#(X1,active(X2)) -> cons2#(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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: 14 #rules: 86 #arcs: 2165/14161 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,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(0()) -> active#(0()) active#(2ndsneg(0(),Z)) -> mark#(rnil()) mark#(rnil()) -> active#(rnil()) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) mark#(cons2(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) active#(pi(X)) -> mark#(2ndspos(X,from(0()))) mark#(posrecip(X)) -> mark#(X) mark#(posrecip(X)) -> active#(posrecip(mark(X))) active#(plus(0(),Y)) -> mark#(Y) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(negrecip(X)) -> mark#(X) mark#(negrecip(X)) -> active#(negrecip(mark(X))) active#(times(0(),Y)) -> mark#(0()) mark#(pi(X)) -> mark#(X) mark#(pi(X)) -> active#(pi(mark(X))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(square(X)) -> mark#(times(X,X)) 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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(0()) -> active#(0()) active#(2ndsneg(0(),Z)) -> mark#(rnil()) mark#(rnil()) -> active#(rnil()) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) mark#(cons2(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X1) mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) active#(pi(X)) -> mark#(2ndspos(X,from(0()))) mark#(posrecip(X)) -> mark#(X) mark#(posrecip(X)) -> active#(posrecip(mark(X))) active#(plus(0(),Y)) -> mark#(Y) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(negrecip(X)) -> mark#(X) mark#(negrecip(X)) -> active#(negrecip(mark(X))) active#(times(0(),Y)) -> mark#(0()) mark#(pi(X)) -> mark#(X) mark#(pi(X)) -> active#(pi(mark(X))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(square(X)) -> mark#(times(X,X)) 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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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#(cons2(X1,X2)) -> mark#(X2) mark#(square(X)) -> mark#(X) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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#(cons2(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X2) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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#(cons2(X1,X2)) -> mark#(X2) mark#(times(X1,X2)) -> mark#(X1) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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#(cons2(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X2) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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#(cons2(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X1) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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#(cons2(X1,X2)) -> mark#(X2) mark#(pi(X)) -> mark#(X) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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#(cons2(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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#(cons2(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X2) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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#(cons2(X1,X2)) -> mark#(X2) mark#(rcons(X1,X2)) -> mark#(X1) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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#(cons2(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X2) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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#(cons2(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X1) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) -> active#(2ndsneg(s(N),cons2(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#(cons2(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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#(cons2(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> mark#(X) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> active#(from(mark(X))) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> mark#(X) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> active#(s(mark(X))) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> mark#(X1) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(0()) -> active#(0()) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(rnil()) -> active#(rnil()) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(cons2(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> mark#(X1) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(posrecip(X)) -> mark#(X) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(posrecip(X)) -> active#(posrecip(mark(X))) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(negrecip(X)) -> mark#(X) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(negrecip(X)) -> active#(negrecip(mark(X))) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(pi(X)) -> mark#(X) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(pi(X)) -> active#(pi(mark(X))) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> mark#(X1) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> mark#(X1) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(cons2(X1,X2)) -> mark#(X2) -> mark#(square(X)) -> mark#(X) mark#(cons2(X1,X2)) -> mark#(X2) -> 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#(cons2(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X2) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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#(cons2(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> mark#(X1) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) -> active#(2ndspos(s(N),cons2(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#(cons2(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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#(cons2(X1,X2)) -> mark#(X2) mark#(s(X)) -> mark#(X) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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#(cons2(X1,X2)) -> mark#(X2) mark#(from(X)) -> mark#(X) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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#(cons2(X1,X2)) -> mark#(X2) active#(plus(0(),Y)) -> mark#(Y) -> mark#(cons2(X1,X2)) -> active#(cons2(X1,mark(X2))) 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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) -> mark#(rcons(X1,X2)) -> mark#(X2) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) -> mark#(rcons(X1,X2)) -> mark#(X1) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) -> mark#(2ndsneg(X1,X2)) -> mark#(X2) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) -> mark#(2ndsneg(X1,X2)) -> mark#(X1) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) -> mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndspos(0(),Z)) -> mark#(rnil()) -> mark#(rnil()) -> active#(rnil()) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) -> mark#(rcons(X1,X2)) -> mark#(X2) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) -> mark#(rcons(X1,X2)) -> mark#(X1) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) -> mark#(rcons(X1,X2)) -> active#(rcons(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) -> mark#(2ndspos(X1,X2)) -> mark#(X2) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) -> mark#(2ndspos(X1,X2)) -> mark#(X1) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) -> mark#(2ndspos(X1,X2)) -> active#(2ndspos(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: 35 #arcs: 668/2116 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),cons2(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),cons2(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#(cons2(X1,X2)) -> mark#(X2) 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#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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, [times](x0, x1) = x0 + 2x1 + 0, [cons2](x0, x1) = x1 + 0, [active](x0) = x0, [cons](x0, x1) = x0 + x1 + 0, [square](x0) = 2x0 + 0, [mark#](x0) = x0 + 0, [active#](x0) = x0 + 0, [0] = 0, [2ndsneg](x0, x1) = 4x0 + x1 + 0, [from](x0) = x0 + 0, [rnil] = 4, [plus](x0, x1) = x0 + x1 + 0, [negrecip](x0) = x0 + 0, [rcons](x0, x1) = x0 + x1 + 0, [posrecip](x0) = x0, [pi](x0) = 4x0 + 1, [2ndspos](x0, x1) = 4x0 + x1 + 0, [s](x0) = x0 orientation: mark#(square(X)) = 2X + 0 >= X + 0 = mark#(X) mark#(square(X)) = 2X + 0 >= 2X + 0 = active#(square(mark(X))) active#(square(X)) = 2X + 0 >= 2X + 0 = mark#(times(X,X)) mark#(times(X1,X2)) = X1 + 2X2 + 0 >= X1 + 2X2 + 0 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = X + 2Y + 0 >= 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 + 0 >= X + Y + 0 = mark#(s(plus(X,Y))) mark#(s(X)) = X + 0 >= X + 0 = mark#(X) mark#(times(X1,X2)) = X1 + 2X2 + 0 >= X1 + 0 = mark#(X1) mark#(times(X1,X2)) = X1 + 2X2 + 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)) = 4X + 1 >= 4X + 1 = active#(pi(mark(X))) active#(pi(X)) = 4X + 1 >= 4X + 0 = mark#(2ndspos(X,from(0()))) mark#(2ndspos(X1,X2)) = 4X1 + X2 + 0 >= 4X1 + X2 + 0 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) = 4N + Y + Z + 0 >= 4N + Y + Z + 0 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(pi(X)) = 4X + 1 >= X + 0 = mark#(X) mark#(negrecip(X)) = X + 0 >= X + 0 = mark#(X) mark#(2ndsneg(X1,X2)) = 4X1 + X2 + 0 >= 4X1 + X2 + 0 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) = 4N + Y + Z + 0 >= 4N + 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)) = 4X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(2ndsneg(X1,X2)) = 4X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(posrecip(X)) = X + 0 >= X + 0 = mark#(X) mark#(cons2(X1,X2)) = X2 + 0 >= X2 + 0 = mark#(X2) mark#(2ndspos(X1,X2)) = 4X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(2ndspos(X1,X2)) = 4X1 + 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#(2ndsneg(s(N),cons(X,Z))) = 4N + X + Z + 0 >= 4N + Z + 0 = mark#(2ndsneg(s(N),cons2(X,Z))) active#(2ndspos(s(N),cons(X,Z))) = 4N + X + Z + 0 >= 4N + Z + 0 = mark#(2ndspos(s(N),cons2(X,Z))) 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 + 4 >= 4 = mark(rnil()) active(2ndspos(s(N),cons(X,Z))) = 4N + X + Z + 0 >= 4N + Z + 0 = mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) = 4N + Y + Z + 0 >= 4N + Y + Z + 0 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = Z + 4 >= 4 = mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) = 4N + X + Z + 0 >= 4N + Z + 0 = mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(X,cons(Y,Z)))) = 4N + Y + Z + 0 >= 4N + Y + Z + 0 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = 4X + 1 >= 4X + 0 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 0 >= Y = mark(Y) active(plus(s(X),Y)) = X + Y + 0 >= X + Y + 0 = mark(s(plus(X,Y))) active(times(0(),Y)) = 2Y + 0 >= 0 = mark(0()) active(times(s(X),Y)) = X + 2Y + 0 >= X + 2Y + 0 = mark(plus(Y,times(X,Y))) active(square(X)) = 2X + 0 >= 2X + 0 = mark(times(X,X)) mark(from(X)) = X + 0 >= X + 0 = active(from(mark(X))) mark(cons(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(cons(mark(X1),X2)) mark(s(X)) = X >= X = active(s(mark(X))) mark(2ndspos(X1,X2)) = 4X1 + X2 + 0 >= 4X1 + X2 + 0 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 0 >= 0 = active(0()) mark(rnil()) = 4 >= 4 = active(rnil()) mark(cons2(X1,X2)) = X2 + 0 >= X2 + 0 = active(cons2(X1,mark(X2))) 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)) = 4X1 + X2 + 0 >= 4X1 + X2 + 0 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = X + 0 >= X + 0 = active(negrecip(mark(X))) mark(pi(X)) = 4X + 1 >= 4X + 1 = 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 + 0 >= X1 + 2X2 + 0 = active(times(mark(X1),mark(X2))) mark(square(X)) = 2X + 0 >= 2X + 0 = active(square(mark(X))) from(mark(X)) = X + 0 >= X + 0 = from(X) from(active(X)) = X + 0 >= X + 0 = from(X) cons(mark(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) s(mark(X)) = X >= X = s(X) s(active(X)) = X >= X = s(X) 2ndspos(mark(X1),X2) = 4X1 + X2 + 0 >= 4X1 + X2 + 0 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = 4X1 + X2 + 0 >= 4X1 + X2 + 0 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = 4X1 + X2 + 0 >= 4X1 + X2 + 0 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = 4X1 + X2 + 0 >= 4X1 + X2 + 0 = 2ndspos(X1,X2) cons2(mark(X1),X2) = X2 + 0 >= X2 + 0 = cons2(X1,X2) cons2(X1,mark(X2)) = X2 + 0 >= X2 + 0 = cons2(X1,X2) cons2(active(X1),X2) = X2 + 0 >= X2 + 0 = cons2(X1,X2) cons2(X1,active(X2)) = X2 + 0 >= X2 + 0 = cons2(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) = 4X1 + X2 + 0 >= 4X1 + X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = 4X1 + X2 + 0 >= 4X1 + X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = 4X1 + X2 + 0 >= 4X1 + X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = 4X1 + X2 + 0 >= 4X1 + 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)) = 4X + 1 >= 4X + 1 = pi(X) pi(active(X)) = 4X + 1 >= 4X + 1 = 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 + 0 >= X1 + 2X2 + 0 = times(X1,X2) times(X1,mark(X2)) = X1 + 2X2 + 0 >= X1 + 2X2 + 0 = times(X1,X2) times(active(X1),X2) = X1 + 2X2 + 0 >= X1 + 2X2 + 0 = times(X1,X2) times(X1,active(X2)) = X1 + 2X2 + 0 >= X1 + 2X2 + 0 = times(X1,X2) square(mark(X)) = 2X + 0 >= 2X + 0 = square(X) square(active(X)) = 2X + 0 >= 2X + 0 = square(X) problem: 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),cons2(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),cons2(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#(cons2(X1,X2)) -> mark#(X2) 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#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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)) -> 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),cons2(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),cons2(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#(cons2(X1,X2)) -> mark#(X2) 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#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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, [times](x0, x1) = x0 + 1x1 + 0, [cons2](x0, x1) = x0 + x1 + 0, [active](x0) = x0, [cons](x0, x1) = x0 + x1 + 0, [square](x0) = 2x0 + 0, [mark#](x0) = x0 + 0, [active#](x0) = x0 + 0, [0] = 2, [2ndsneg](x0, x1) = 1x0 + 2x1 + 0, [from](x0) = 2x0 + 4, [rnil] = 0, [plus](x0, x1) = x0 + x1 + 0, [negrecip](x0) = x0, [rcons](x0, x1) = 2x0 + x1 + 0, [posrecip](x0) = x0 + 0, [pi](x0) = 2x0 + 6, [2ndspos](x0, x1) = 1x0 + 2x1, [s](x0) = x0 orientation: mark#(square(X)) = 2X + 0 >= X + 0 = mark#(X) mark#(square(X)) = 2X + 0 >= 2X + 0 = active#(square(mark(X))) active#(square(X)) = 2X + 0 >= 1X + 0 = mark#(times(X,X)) mark#(times(X1,X2)) = X1 + 1X2 + 0 >= X1 + 1X2 + 0 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = X + 1Y + 0 >= X + 1Y + 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 + 1X2 + 0 >= X1 + 0 = mark#(X1) mark#(times(X1,X2)) = X1 + 1X2 + 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)) = 2X + 6 >= 2X + 6 = active#(pi(mark(X))) active#(pi(X)) = 2X + 6 >= 1X + 6 = mark#(2ndspos(X,from(0()))) mark#(2ndspos(X1,X2)) = 1X1 + 2X2 + 0 >= 1X1 + 2X2 + 0 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) = 1N + 2X + 2Y + 2Z + 2 >= 1N + 2Y + 2Z + 2 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(rcons(X1,X2)) = 2X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(negrecip(X)) = X + 0 >= X + 0 = mark#(X) mark#(2ndsneg(X1,X2)) = 1X1 + 2X2 + 0 >= 1X1 + 2X2 + 0 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) = 1N + 2X + 2Y + 2Z + 2 >= 1N + 2Y + 2Z + 0 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = 2X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(2ndsneg(X1,X2)) = 1X1 + 2X2 + 0 >= X1 + 0 = mark#(X1) mark#(2ndsneg(X1,X2)) = 1X1 + 2X2 + 0 >= X2 + 0 = mark#(X2) mark#(posrecip(X)) = X + 0 >= X + 0 = mark#(X) mark#(cons2(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(2ndspos(X1,X2)) = 1X1 + 2X2 + 0 >= X1 + 0 = mark#(X1) mark#(2ndspos(X1,X2)) = 1X1 + 2X2 + 0 >= X2 + 0 = mark#(X2) mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(from(X)) = 2X + 4 >= 2X + 4 = active#(from(mark(X))) active#(from(X)) = 2X + 4 >= 2X + 4 = mark#(cons(X,from(s(X)))) mark#(from(X)) = 2X + 4 >= X + 0 = mark#(X) active#(2ndsneg(s(N),cons(X,Z))) = 1N + 2X + 2Z + 2 >= 1N + 2X + 2Z + 2 = mark#(2ndsneg(s(N),cons2(X,Z))) active#(2ndspos(s(N),cons(X,Z))) = 1N + 2X + 2Z + 2 >= 1N + 2X + 2Z + 2 = mark#(2ndspos(s(N),cons2(X,Z))) active#(plus(0(),Y)) = Y + 2 >= Y + 0 = mark#(Y) active(from(X)) = 2X + 4 >= 2X + 4 = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = 2Z + 3 >= 0 = mark(rnil()) active(2ndspos(s(N),cons(X,Z))) = 1N + 2X + 2Z + 2 >= 1N + 2X + 2Z + 2 = mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) = 1N + 2X + 2Y + 2Z + 2 >= 1N + 2Y + 2Z + 2 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = 2Z + 3 >= 0 = mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) = 1N + 2X + 2Z + 2 >= 1N + 2X + 2Z + 2 = mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(X,cons(Y,Z)))) = 1N + 2X + 2Y + 2Z + 2 >= 1N + 2Y + 2Z + 0 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = 2X + 6 >= 1X + 6 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 2 >= Y = mark(Y) active(plus(s(X),Y)) = X + Y + 0 >= X + Y + 0 = mark(s(plus(X,Y))) active(times(0(),Y)) = 1Y + 2 >= 2 = mark(0()) active(times(s(X),Y)) = X + 1Y + 0 >= X + 1Y + 0 = mark(plus(Y,times(X,Y))) active(square(X)) = 2X + 0 >= 1X + 0 = mark(times(X,X)) mark(from(X)) = 2X + 4 >= 2X + 4 = active(from(mark(X))) mark(cons(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(cons(mark(X1),X2)) mark(s(X)) = X >= X = active(s(mark(X))) mark(2ndspos(X1,X2)) = 1X1 + 2X2 >= 1X1 + 2X2 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 2 >= 2 = active(0()) mark(rnil()) = 0 >= 0 = active(rnil()) mark(cons2(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(cons2(X1,mark(X2))) mark(rcons(X1,X2)) = 2X1 + X2 + 0 >= 2X1 + X2 + 0 = active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) = X + 0 >= X + 0 = active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) = 1X1 + 2X2 + 0 >= 1X1 + 2X2 + 0 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = X >= X = active(negrecip(mark(X))) mark(pi(X)) = 2X + 6 >= 2X + 6 = active(pi(mark(X))) mark(plus(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = X1 + 1X2 + 0 >= X1 + 1X2 + 0 = active(times(mark(X1),mark(X2))) mark(square(X)) = 2X + 0 >= 2X + 0 = active(square(mark(X))) from(mark(X)) = 2X + 4 >= 2X + 4 = from(X) from(active(X)) = 2X + 4 >= 2X + 4 = from(X) cons(mark(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) s(mark(X)) = X >= X = s(X) s(active(X)) = X >= X = s(X) 2ndspos(mark(X1),X2) = 1X1 + 2X2 >= 1X1 + 2X2 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = 1X1 + 2X2 >= 1X1 + 2X2 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = 1X1 + 2X2 >= 1X1 + 2X2 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = 1X1 + 2X2 >= 1X1 + 2X2 = 2ndspos(X1,X2) cons2(mark(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = cons2(X1,X2) cons2(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons2(X1,X2) cons2(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = cons2(X1,X2) cons2(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons2(X1,X2) rcons(mark(X1),X2) = 2X1 + X2 + 0 >= 2X1 + X2 + 0 = rcons(X1,X2) rcons(X1,mark(X2)) = 2X1 + X2 + 0 >= 2X1 + X2 + 0 = rcons(X1,X2) rcons(active(X1),X2) = 2X1 + X2 + 0 >= 2X1 + X2 + 0 = rcons(X1,X2) rcons(X1,active(X2)) = 2X1 + X2 + 0 >= 2X1 + 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) = 1X1 + 2X2 + 0 >= 1X1 + 2X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = 1X1 + 2X2 + 0 >= 1X1 + 2X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = 1X1 + 2X2 + 0 >= 1X1 + 2X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = 1X1 + 2X2 + 0 >= 1X1 + 2X2 + 0 = 2ndsneg(X1,X2) negrecip(mark(X)) = X >= X = negrecip(X) negrecip(active(X)) = X >= X = negrecip(X) pi(mark(X)) = 2X + 6 >= 2X + 6 = pi(X) pi(active(X)) = 2X + 6 >= 2X + 6 = pi(X) plus(mark(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = plus(X1,X2) plus(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = plus(X1,X2) plus(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = plus(X1,X2) plus(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = plus(X1,X2) times(mark(X1),X2) = X1 + 1X2 + 0 >= X1 + 1X2 + 0 = times(X1,X2) times(X1,mark(X2)) = X1 + 1X2 + 0 >= X1 + 1X2 + 0 = times(X1,X2) times(active(X1),X2) = X1 + 1X2 + 0 >= X1 + 1X2 + 0 = times(X1,X2) times(X1,active(X2)) = X1 + 1X2 + 0 >= X1 + 1X2 + 0 = times(X1,X2) square(mark(X)) = 2X + 0 >= 2X + 0 = square(X) square(active(X)) = 2X + 0 >= 2X + 0 = square(X) problem: 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),cons2(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),cons2(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#(cons2(X1,X2)) -> mark#(X2) 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#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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)) -> 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),cons2(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),cons2(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#(cons2(X1,X2)) -> mark#(X2) 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#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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, [times](x0, x1) = x0 + 4x1, [cons2](x0, x1) = x1 + 0, [active](x0) = x0, [cons](x0, x1) = x0 + x1 + 0, [square](x0) = 4x0, [mark#](x0) = x0, [active#](x0) = x0, [0] = 0, [2ndsneg](x0, x1) = 1x0 + x1 + 0, [from](x0) = 6x0 + 0, [rnil] = 1, [plus](x0, x1) = x0 + x1, [negrecip](x0) = x0 + 0, [rcons](x0, x1) = x0 + x1, [posrecip](x0) = x0 + 0, [pi](x0) = 1x0 + 6, [2ndspos](x0, x1) = 1x0 + x1 + 0, [s](x0) = x0 orientation: mark#(square(X)) = 4X >= X = mark#(X) mark#(square(X)) = 4X >= 4X = active#(square(mark(X))) active#(square(X)) = 4X >= 4X = mark#(times(X,X)) mark#(times(X1,X2)) = X1 + 4X2 >= X1 + 4X2 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = X + 4Y >= X + 4Y = mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) = X1 + X2 >= X1 + X2 = active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) = X + Y >= X + Y = mark#(s(plus(X,Y))) mark#(s(X)) = X >= X = mark#(X) mark#(times(X1,X2)) = X1 + 4X2 >= X1 = mark#(X1) mark#(times(X1,X2)) = X1 + 4X2 >= X2 = mark#(X2) mark#(plus(X1,X2)) = X1 + X2 >= X1 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 >= X2 = mark#(X2) mark#(pi(X)) = 1X + 6 >= 1X + 6 = active#(pi(mark(X))) active#(pi(X)) = 1X + 6 >= 1X + 6 = mark#(2ndspos(X,from(0()))) mark#(2ndspos(X1,X2)) = 1X1 + X2 + 0 >= 1X1 + X2 + 0 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) = 1N + Y + Z + 0 >= 1N + Y + Z + 0 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 >= X1 = mark#(X1) mark#(negrecip(X)) = X + 0 >= X = mark#(X) mark#(2ndsneg(X1,X2)) = 1X1 + X2 + 0 >= 1X1 + X2 + 0 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) = 1N + Y + Z + 0 >= 1N + Y + Z + 0 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 >= X2 = mark#(X2) mark#(2ndsneg(X1,X2)) = 1X1 + X2 + 0 >= X1 = mark#(X1) mark#(2ndsneg(X1,X2)) = 1X1 + X2 + 0 >= X2 = mark#(X2) mark#(posrecip(X)) = X + 0 >= X = mark#(X) mark#(cons2(X1,X2)) = X2 + 0 >= X2 = mark#(X2) mark#(2ndspos(X1,X2)) = 1X1 + X2 + 0 >= X1 = mark#(X1) mark#(2ndspos(X1,X2)) = 1X1 + X2 + 0 >= X2 = mark#(X2) mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 = mark#(X1) mark#(from(X)) = 6X + 0 >= 6X + 0 = active#(from(mark(X))) active#(from(X)) = 6X + 0 >= 6X + 0 = mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) = 1N + X + Z + 0 >= 1N + Z + 0 = mark#(2ndsneg(s(N),cons2(X,Z))) active#(2ndspos(s(N),cons(X,Z))) = 1N + X + Z + 0 >= 1N + Z + 0 = mark#(2ndspos(s(N),cons2(X,Z))) active#(plus(0(),Y)) = Y + 0 >= Y = mark#(Y) active(from(X)) = 6X + 0 >= 6X + 0 = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = Z + 1 >= 1 = mark(rnil()) active(2ndspos(s(N),cons(X,Z))) = 1N + X + Z + 0 >= 1N + Z + 0 = mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) = 1N + Y + Z + 0 >= 1N + Y + Z + 0 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = Z + 1 >= 1 = mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) = 1N + X + Z + 0 >= 1N + Z + 0 = mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(X,cons(Y,Z)))) = 1N + Y + Z + 0 >= 1N + Y + Z + 0 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = 1X + 6 >= 1X + 6 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 0 >= Y = mark(Y) active(plus(s(X),Y)) = X + Y >= X + Y = mark(s(plus(X,Y))) active(times(0(),Y)) = 4Y + 0 >= 0 = mark(0()) active(times(s(X),Y)) = X + 4Y >= X + 4Y = mark(plus(Y,times(X,Y))) active(square(X)) = 4X >= 4X = mark(times(X,X)) mark(from(X)) = 6X + 0 >= 6X + 0 = active(from(mark(X))) mark(cons(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(cons(mark(X1),X2)) mark(s(X)) = X >= X = active(s(mark(X))) mark(2ndspos(X1,X2)) = 1X1 + X2 + 0 >= 1X1 + X2 + 0 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 0 >= 0 = active(0()) mark(rnil()) = 1 >= 1 = active(rnil()) mark(cons2(X1,X2)) = X2 + 0 >= X2 + 0 = active(cons2(X1,mark(X2))) 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)) = 1X1 + X2 + 0 >= 1X1 + X2 + 0 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = X + 0 >= X + 0 = active(negrecip(mark(X))) mark(pi(X)) = 1X + 6 >= 1X + 6 = active(pi(mark(X))) mark(plus(X1,X2)) = X1 + X2 >= X1 + X2 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = X1 + 4X2 >= X1 + 4X2 = active(times(mark(X1),mark(X2))) mark(square(X)) = 4X >= 4X = active(square(mark(X))) from(mark(X)) = 6X + 0 >= 6X + 0 = from(X) from(active(X)) = 6X + 0 >= 6X + 0 = from(X) cons(mark(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(X1,mark(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(active(X1),X2) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) cons(X1,active(X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(X1,X2) s(mark(X)) = X >= X = s(X) s(active(X)) = X >= X = s(X) 2ndspos(mark(X1),X2) = 1X1 + X2 + 0 >= 1X1 + X2 + 0 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = 1X1 + X2 + 0 >= 1X1 + X2 + 0 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = 1X1 + X2 + 0 >= 1X1 + X2 + 0 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = 1X1 + X2 + 0 >= 1X1 + X2 + 0 = 2ndspos(X1,X2) cons2(mark(X1),X2) = X2 + 0 >= X2 + 0 = cons2(X1,X2) cons2(X1,mark(X2)) = X2 + 0 >= X2 + 0 = cons2(X1,X2) cons2(active(X1),X2) = X2 + 0 >= X2 + 0 = cons2(X1,X2) cons2(X1,active(X2)) = X2 + 0 >= X2 + 0 = cons2(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) = 1X1 + X2 + 0 >= 1X1 + X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = 1X1 + X2 + 0 >= 1X1 + X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = 1X1 + X2 + 0 >= 1X1 + X2 + 0 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = 1X1 + X2 + 0 >= 1X1 + 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)) = 1X + 6 >= 1X + 6 = pi(X) pi(active(X)) = 1X + 6 >= 1X + 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) = X1 + 4X2 >= X1 + 4X2 = times(X1,X2) times(X1,mark(X2)) = X1 + 4X2 >= X1 + 4X2 = times(X1,X2) times(active(X1),X2) = X1 + 4X2 >= X1 + 4X2 = times(X1,X2) times(X1,active(X2)) = X1 + 4X2 >= X1 + 4X2 = times(X1,X2) square(mark(X)) = 4X >= 4X = square(X) square(active(X)) = 4X >= 4X = square(X) problem: DPs: mark#(square(X)) -> active#(square(mark(X))) active#(square(X)) -> mark#(times(X,X)) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(pi(X)) -> active#(pi(mark(X))) active#(pi(X)) -> mark#(2ndspos(X,from(0()))) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(cons2(X1,X2)) -> mark#(X2) 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#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Restore Modifier: DPs: mark#(square(X)) -> active#(square(mark(X))) active#(square(X)) -> mark#(times(X,X)) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(pi(X)) -> active#(pi(mark(X))) active#(pi(X)) -> mark#(2ndspos(X,from(0()))) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(cons2(X1,X2)) -> mark#(X2) 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#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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, [times](x0, x1) = x0 + x1, [cons2](x0, x1) = x1, [active](x0) = x0, [cons](x0, x1) = x0 + x1, [square](x0) = x0 + 6, [mark#](x0) = x0, [active#](x0) = x0, [0] = 4, [2ndsneg](x0, x1) = x0 + x1 + 0, [from](x0) = x0, [rnil] = 1, [plus](x0, x1) = x0 + x1, [negrecip](x0) = x0 + 0, [rcons](x0, x1) = x0 + x1 + 0, [posrecip](x0) = x0 + 0, [pi](x0) = 2x0 + 6, [2ndspos](x0, x1) = x0 + x1 + 0, [s](x0) = x0 orientation: mark#(square(X)) = X + 6 >= X + 6 = active#(square(mark(X))) active#(square(X)) = X + 6 >= X = mark#(times(X,X)) mark#(times(X1,X2)) = X1 + X2 >= X1 + X2 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = X + Y >= X + Y = 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 + X2 >= X1 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 >= X1 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 >= X2 = mark#(X2) mark#(pi(X)) = 2X + 6 >= 2X + 6 = active#(pi(mark(X))) active#(pi(X)) = 2X + 6 >= X + 4 = 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),cons2(X,cons(Y,Z)))) = N + Y + Z + 0 >= N + Y + Z + 0 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X1 = mark#(X1) mark#(negrecip(X)) = X + 0 >= X = mark#(X) mark#(2ndsneg(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) = N + Y + Z + 0 >= N + Y + Z + 0 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X2 = mark#(X2) mark#(2ndsneg(X1,X2)) = X1 + X2 + 0 >= X2 = mark#(X2) mark#(posrecip(X)) = X + 0 >= X = mark#(X) mark#(cons2(X1,X2)) = X2 >= X2 = mark#(X2) mark#(2ndspos(X1,X2)) = X1 + X2 + 0 >= 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)))) active#(2ndsneg(s(N),cons(X,Z))) = N + X + Z + 0 >= N + Z + 0 = mark#(2ndsneg(s(N),cons2(X,Z))) active#(2ndspos(s(N),cons(X,Z))) = N + X + Z + 0 >= N + Z + 0 = mark#(2ndspos(s(N),cons2(X,Z))) active#(plus(0(),Y)) = Y + 4 >= Y = mark#(Y) active(from(X)) = X >= X = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = Z + 4 >= 1 = mark(rnil()) active(2ndspos(s(N),cons(X,Z))) = N + X + Z + 0 >= N + Z + 0 = mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) = N + Y + Z + 0 >= N + Y + Z + 0 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = Z + 4 >= 1 = mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) = N + X + Z + 0 >= N + Z + 0 = mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(X,cons(Y,Z)))) = N + Y + Z + 0 >= N + Y + Z + 0 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = 2X + 6 >= X + 4 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 4 >= Y = mark(Y) active(plus(s(X),Y)) = X + Y >= X + Y = mark(s(plus(X,Y))) active(times(0(),Y)) = Y + 4 >= 4 = mark(0()) active(times(s(X),Y)) = X + Y >= X + Y = mark(plus(Y,times(X,Y))) active(square(X)) = X + 6 >= X = mark(times(X,X)) mark(from(X)) = X >= X = active(from(mark(X))) mark(cons(X1,X2)) = X1 + X2 >= X1 + X2 = active(cons(mark(X1),X2)) mark(s(X)) = X >= X = active(s(mark(X))) mark(2ndspos(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 4 >= 4 = active(0()) mark(rnil()) = 1 >= 1 = active(rnil()) mark(cons2(X1,X2)) = X2 >= X2 = active(cons2(X1,mark(X2))) 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)) = 2X + 6 >= 2X + 6 = active(pi(mark(X))) mark(plus(X1,X2)) = X1 + X2 >= X1 + X2 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = X1 + X2 >= X1 + X2 = active(times(mark(X1),mark(X2))) mark(square(X)) = X + 6 >= X + 6 = active(square(mark(X))) from(mark(X)) = X >= X = from(X) from(active(X)) = X >= X = from(X) cons(mark(X1),X2) = X1 + X2 >= X1 + X2 = cons(X1,X2) cons(X1,mark(X2)) = X1 + X2 >= X1 + X2 = cons(X1,X2) cons(active(X1),X2) = X1 + X2 >= X1 + X2 = cons(X1,X2) cons(X1,active(X2)) = X1 + X2 >= X1 + X2 = cons(X1,X2) s(mark(X)) = X >= X = s(X) s(active(X)) = X >= X = s(X) 2ndspos(mark(X1),X2) = 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) cons2(mark(X1),X2) = X2 >= X2 = cons2(X1,X2) cons2(X1,mark(X2)) = X2 >= X2 = cons2(X1,X2) cons2(active(X1),X2) = X2 >= X2 = cons2(X1,X2) cons2(X1,active(X2)) = X2 >= X2 = cons2(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)) = 2X + 6 >= 2X + 6 = pi(X) pi(active(X)) = 2X + 6 >= 2X + 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) = X1 + X2 >= X1 + X2 = times(X1,X2) times(X1,mark(X2)) = X1 + X2 >= X1 + X2 = times(X1,X2) times(active(X1),X2) = X1 + X2 >= X1 + X2 = times(X1,X2) times(X1,active(X2)) = X1 + X2 >= X1 + X2 = times(X1,X2) square(mark(X)) = X + 6 >= X + 6 = square(X) square(active(X)) = X + 6 >= X + 6 = square(X) problem: DPs: mark#(square(X)) -> active#(square(mark(X))) active#(square(X)) -> mark#(times(X,X)) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(pi(X)) -> active#(pi(mark(X))) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(cons2(X1,X2)) -> mark#(X2) 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#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Restore Modifier: DPs: mark#(square(X)) -> active#(square(mark(X))) active#(square(X)) -> mark#(times(X,X)) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(pi(X)) -> active#(pi(mark(X))) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(cons2(X1,X2)) -> mark#(X2) 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#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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: 27 #arcs: 506/784 DPs: mark#(square(X)) -> active#(square(mark(X))) active#(square(X)) -> mark#(times(X,X)) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(times(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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, [times](x0, x1) = 1x0 + 3x1 + 4, [cons2](x0, x1) = x1 + 0, [active](x0) = x0 + 0, [cons](x0, x1) = x0 + x1 + 0, [square](x0) = 4x0 + 4, [mark#](x0) = x0, [active#](x0) = x0 + 0, [0] = 0, [2ndsneg](x0, x1) = x0 + x1 + 0, [from](x0) = x0 + 0, [rnil] = 0, [plus](x0, x1) = x0 + x1 + 0, [negrecip](x0) = x0 + 0, [rcons](x0, x1) = x0 + x1 + 0, [posrecip](x0) = x0 + 0, [pi](x0) = x0 + 1, [2ndspos](x0, x1) = x0 + x1 + 0, [s](x0) = x0 + 0 orientation: mark#(square(X)) = 4X + 4 >= 4X + 4 = active#(square(mark(X))) active#(square(X)) = 4X + 4 >= 3X + 4 = mark#(times(X,X)) mark#(times(X1,X2)) = 1X1 + 3X2 + 4 >= 1X1 + 3X2 + 4 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = 1X + 3Y + 4 >= 1X + 3Y + 4 = 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 = mark#(X) mark#(times(X1,X2)) = 1X1 + 3X2 + 4 >= X1 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 + 0 >= X1 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 + 0 >= X2 = mark#(X2) mark#(negrecip(X)) = X + 0 >= X = mark#(X) mark#(2ndsneg(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) = N + 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 >= X2 = mark#(X2) mark#(posrecip(X)) = X + 0 >= X = mark#(X) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X2 = mark#(X2) mark#(cons2(X1,X2)) = 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),cons2(X,cons(Y,Z)))) = N + Y + Z + 0 >= N + Y + Z + 0 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) = N + X + Z + 0 >= N + Z + 0 = mark#(2ndspos(s(N),cons2(X,Z))) mark#(2ndspos(X1,X2)) = X1 + X2 + 0 >= X2 = mark#(X2) mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 = mark#(X1) mark#(from(X)) = X + 0 >= X + 0 = active#(from(mark(X))) active#(from(X)) = X + 0 >= X + 0 = mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) = N + X + Z + 0 >= N + Z + 0 = mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) = Y + 0 >= Y = mark#(Y) active(from(X)) = X + 0 >= X + 0 = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = Z + 0 >= 0 = mark(rnil()) active(2ndspos(s(N),cons(X,Z))) = N + X + Z + 0 >= N + Z + 0 = mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) = N + 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,Z))) = N + X + Z + 0 >= N + Z + 0 = mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(X,cons(Y,Z)))) = N + Y + Z + 0 >= N + Y + Z + 0 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = X + 1 >= 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)) = 3Y + 4 >= 0 = mark(0()) active(times(s(X),Y)) = 1X + 3Y + 4 >= 1X + 3Y + 4 = mark(plus(Y,times(X,Y))) active(square(X)) = 4X + 4 >= 3X + 4 = 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(cons2(X1,X2)) = X2 + 0 >= X2 + 0 = active(cons2(X1,mark(X2))) 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 + 1 >= X + 1 = active(pi(mark(X))) mark(plus(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = 1X1 + 3X2 + 4 >= 1X1 + 3X2 + 4 = 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 + 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) cons2(mark(X1),X2) = X2 + 0 >= X2 + 0 = cons2(X1,X2) cons2(X1,mark(X2)) = X2 + 0 >= X2 + 0 = cons2(X1,X2) cons2(active(X1),X2) = X2 + 0 >= X2 + 0 = cons2(X1,X2) cons2(X1,active(X2)) = X2 + 0 >= X2 + 0 = cons2(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)) = X + 1 >= X + 1 = pi(X) pi(active(X)) = X + 1 >= X + 1 = 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) = 1X1 + 3X2 + 4 >= 1X1 + 3X2 + 4 = times(X1,X2) times(X1,mark(X2)) = 1X1 + 3X2 + 4 >= 1X1 + 3X2 + 4 = times(X1,X2) times(active(X1),X2) = 1X1 + 3X2 + 4 >= 1X1 + 3X2 + 4 = times(X1,X2) times(X1,active(X2)) = 1X1 + 3X2 + 4 >= 1X1 + 3X2 + 4 = 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))) 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#(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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Restore Modifier: DPs: mark#(square(X)) -> active#(square(mark(X))) active#(square(X)) -> mark#(times(X,X)) mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) -> mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) -> mark#(s(plus(X,Y))) mark#(s(X)) -> mark#(X) mark#(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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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, [times](x0, x1) = x0 + 5x1 + 0, [cons2](x0, x1) = x1, [active](x0) = x0, [cons](x0, x1) = x0 + x1, [square](x0) = 6x0 + 4, [mark#](x0) = x0 + 0, [active#](x0) = x0 + 0, [0] = 1, [2ndsneg](x0, x1) = x0 + x1 + 0, [from](x0) = 1x0, [rnil] = 0, [plus](x0, x1) = x0 + x1, [negrecip](x0) = x0, [rcons](x0, x1) = x0 + x1 + 0, [posrecip](x0) = x0 + 0, [pi](x0) = x0 + 2, [2ndspos](x0, x1) = x0 + x1 + 0, [s](x0) = x0 orientation: mark#(square(X)) = 6X + 4 >= 6X + 4 = active#(square(mark(X))) active#(square(X)) = 6X + 4 >= 5X + 0 = mark#(times(X,X)) mark#(times(X1,X2)) = X1 + 5X2 + 0 >= X1 + 5X2 + 0 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = X + 5Y + 0 >= X + 5Y + 0 = mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) = X + Y + 0 >= X + Y + 0 = mark#(s(plus(X,Y))) mark#(s(X)) = X + 0 >= X + 0 = mark#(X) mark#(plus(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(plus(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(negrecip(X)) = 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),cons2(X,cons(Y,Z)))) = N + Y + Z + 0 >= N + Y + Z + 0 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(2ndsneg(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(posrecip(X)) = X + 0 >= X + 0 = mark#(X) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(cons2(X1,X2)) = X2 + 0 >= X2 + 0 = mark#(X2) mark#(2ndspos(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) = N + Y + Z + 0 >= N + Y + Z + 0 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) = N + X + Z + 0 >= N + Z + 0 = mark#(2ndspos(s(N),cons2(X,Z))) mark#(2ndspos(X1,X2)) = X1 + X2 + 0 >= X2 + 0 = mark#(X2) mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(from(X)) = 1X + 0 >= 1X + 0 = active#(from(mark(X))) active#(from(X)) = 1X + 0 >= 1X + 0 = mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) = N + X + Z + 0 >= N + Z + 0 = mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) = Y + 1 >= Y + 0 = mark#(Y) active(from(X)) = 1X >= 1X = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = Z + 1 >= 0 = mark(rnil()) active(2ndspos(s(N),cons(X,Z))) = N + X + Z + 0 >= N + Z + 0 = mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) = N + Y + Z + 0 >= N + Y + Z + 0 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = Z + 1 >= 0 = mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) = N + X + Z + 0 >= N + Z + 0 = mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(X,cons(Y,Z)))) = N + Y + Z + 0 >= N + Y + Z + 0 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = X + 2 >= X + 2 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 1 >= Y = mark(Y) active(plus(s(X),Y)) = X + Y >= X + Y = mark(s(plus(X,Y))) active(times(0(),Y)) = 5Y + 1 >= 1 = mark(0()) active(times(s(X),Y)) = X + 5Y + 0 >= X + 5Y + 0 = mark(plus(Y,times(X,Y))) active(square(X)) = 6X + 4 >= 5X + 0 = mark(times(X,X)) mark(from(X)) = 1X >= 1X = 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()) = 1 >= 1 = active(0()) mark(rnil()) = 0 >= 0 = active(rnil()) mark(cons2(X1,X2)) = X2 >= X2 = active(cons2(X1,mark(X2))) 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 >= X = active(negrecip(mark(X))) mark(pi(X)) = X + 2 >= X + 2 = active(pi(mark(X))) mark(plus(X1,X2)) = X1 + X2 >= X1 + X2 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = X1 + 5X2 + 0 >= X1 + 5X2 + 0 = active(times(mark(X1),mark(X2))) mark(square(X)) = 6X + 4 >= 6X + 4 = active(square(mark(X))) from(mark(X)) = 1X >= 1X = from(X) from(active(X)) = 1X >= 1X = 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) cons2(mark(X1),X2) = X2 >= X2 = cons2(X1,X2) cons2(X1,mark(X2)) = X2 >= X2 = cons2(X1,X2) cons2(active(X1),X2) = X2 >= X2 = cons2(X1,X2) cons2(X1,active(X2)) = X2 >= X2 = cons2(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 >= X = negrecip(X) negrecip(active(X)) = X >= X = negrecip(X) pi(mark(X)) = X + 2 >= X + 2 = pi(X) pi(active(X)) = X + 2 >= X + 2 = 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 + 5X2 + 0 >= X1 + 5X2 + 0 = times(X1,X2) times(X1,mark(X2)) = X1 + 5X2 + 0 >= X1 + 5X2 + 0 = times(X1,X2) times(active(X1),X2) = X1 + 5X2 + 0 >= X1 + 5X2 + 0 = times(X1,X2) times(X1,active(X2)) = X1 + 5X2 + 0 >= X1 + 5X2 + 0 = times(X1,X2) square(mark(X)) = 6X + 4 >= 6X + 4 = square(X) square(active(X)) = 6X + 4 >= 6X + 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#(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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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#(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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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: 24 #arcs: 258/625 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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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, [times](x0, x1) = x0 + 3x1 + 4, [cons2](x0, x1) = x1 + 0, [active](x0) = x0, [cons](x0, x1) = x0 + x1, [square](x0) = 4x0 + 6, [mark#](x0) = x0, [active#](x0) = x0, [0] = 4, [2ndsneg](x0, x1) = x0 + x1 + 0, [from](x0) = x0, [rnil] = 4, [plus](x0, x1) = 3x0 + x1, [negrecip](x0) = x0 + 0, [rcons](x0, x1) = x0 + x1 + 0, [posrecip](x0) = x0 + 0, [pi](x0) = 5x0 + 4, [2ndspos](x0, x1) = x0 + x1 + 0, [s](x0) = x0 orientation: mark#(times(X1,X2)) = X1 + 3X2 + 4 >= X1 + 3X2 + 4 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = X + 3Y + 4 >= X + 3Y + 4 = mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) = 3X1 + X2 >= 3X1 + X2 = active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) = 3X + Y >= 3X + Y = mark#(s(plus(X,Y))) mark#(s(X)) = X >= X = mark#(X) mark#(plus(X1,X2)) = 3X1 + X2 >= X1 = mark#(X1) mark#(plus(X1,X2)) = 3X1 + X2 >= X2 = mark#(X2) mark#(negrecip(X)) = X + 0 >= X = mark#(X) mark#(2ndsneg(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) = N + 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 >= X2 = mark#(X2) mark#(posrecip(X)) = X + 0 >= X = mark#(X) mark#(rcons(X1,X2)) = X1 + X2 + 0 >= X2 = mark#(X2) mark#(cons2(X1,X2)) = 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),cons2(X,cons(Y,Z)))) = N + Y + Z + 0 >= N + Y + Z + 0 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) = N + X + Z + 0 >= N + Z + 0 = mark#(2ndspos(s(N),cons2(X,Z))) mark#(2ndspos(X1,X2)) = X1 + X2 + 0 >= 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)))) active#(2ndsneg(s(N),cons(X,Z))) = N + X + Z + 0 >= N + Z + 0 = mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) = Y + 7 >= Y = mark#(Y) active(from(X)) = X >= X = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = Z + 4 >= 4 = mark(rnil()) active(2ndspos(s(N),cons(X,Z))) = N + X + Z + 0 >= N + Z + 0 = mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) = N + Y + Z + 0 >= N + Y + Z + 0 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = Z + 4 >= 4 = mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) = N + X + Z + 0 >= N + Z + 0 = mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(X,cons(Y,Z)))) = N + Y + Z + 0 >= N + Y + Z + 0 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = 5X + 4 >= X + 4 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 7 >= Y = mark(Y) active(plus(s(X),Y)) = 3X + Y >= 3X + Y = mark(s(plus(X,Y))) active(times(0(),Y)) = 3Y + 4 >= 4 = mark(0()) active(times(s(X),Y)) = X + 3Y + 4 >= X + 3Y + 4 = mark(plus(Y,times(X,Y))) active(square(X)) = 4X + 6 >= 3X + 4 = 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()) = 4 >= 4 = active(0()) mark(rnil()) = 4 >= 4 = active(rnil()) mark(cons2(X1,X2)) = X2 + 0 >= X2 + 0 = active(cons2(X1,mark(X2))) 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)) = 3X1 + X2 >= 3X1 + X2 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = X1 + 3X2 + 4 >= X1 + 3X2 + 4 = active(times(mark(X1),mark(X2))) mark(square(X)) = 4X + 6 >= 4X + 6 = active(square(mark(X))) from(mark(X)) = X >= X = from(X) from(active(X)) = X >= X = from(X) cons(mark(X1),X2) = X1 + X2 >= X1 + X2 = cons(X1,X2) cons(X1,mark(X2)) = X1 + X2 >= X1 + X2 = cons(X1,X2) cons(active(X1),X2) = X1 + X2 >= X1 + X2 = cons(X1,X2) cons(X1,active(X2)) = X1 + X2 >= X1 + X2 = cons(X1,X2) s(mark(X)) = X >= X = s(X) s(active(X)) = X >= X = s(X) 2ndspos(mark(X1),X2) = 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) cons2(mark(X1),X2) = X2 + 0 >= X2 + 0 = cons2(X1,X2) cons2(X1,mark(X2)) = X2 + 0 >= X2 + 0 = cons2(X1,X2) cons2(active(X1),X2) = X2 + 0 >= X2 + 0 = cons2(X1,X2) cons2(X1,active(X2)) = X2 + 0 >= X2 + 0 = cons2(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) = 3X1 + X2 >= 3X1 + X2 = plus(X1,X2) plus(X1,mark(X2)) = 3X1 + X2 >= 3X1 + X2 = plus(X1,X2) plus(active(X1),X2) = 3X1 + X2 >= 3X1 + X2 = plus(X1,X2) plus(X1,active(X2)) = 3X1 + X2 >= 3X1 + X2 = plus(X1,X2) times(mark(X1),X2) = X1 + 3X2 + 4 >= X1 + 3X2 + 4 = times(X1,X2) times(X1,mark(X2)) = X1 + 3X2 + 4 >= X1 + 3X2 + 4 = times(X1,X2) times(active(X1),X2) = X1 + 3X2 + 4 >= X1 + 3X2 + 4 = times(X1,X2) times(X1,active(X2)) = X1 + 3X2 + 4 >= X1 + 3X2 + 4 = 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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X1) mark#(2ndsneg(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(2ndspos(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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, [times](x0, x1) = 5x0 + 5x1 + 5, [cons2](x0, x1) = x1 + 0, [active](x0) = x0, [cons](x0, x1) = x0 + x1, [square](x0) = 6x0 + 5, [mark#](x0) = x0 + 0, [active#](x0) = x0 + 0, [0] = 0, [2ndsneg](x0, x1) = x0 + 4x1 + 4, [from](x0) = x0, [rnil] = 0, [plus](x0, x1) = 4x0 + x1 + 1, [negrecip](x0) = x0 + 0, [rcons](x0, x1) = 1x0 + x1 + 1, [posrecip](x0) = 3x0 + 0, [pi](x0) = 3x0 + 4, [2ndspos](x0, x1) = x0 + 4x1 + 4, [s](x0) = x0 orientation: mark#(times(X1,X2)) = 5X1 + 5X2 + 5 >= 5X1 + 5X2 + 5 = active#(times(mark(X1),mark(X2))) active#(times(s(X),Y)) = 5X + 5Y + 5 >= 5X + 5Y + 5 = mark#(plus(Y,times(X,Y))) mark#(plus(X1,X2)) = 4X1 + X2 + 1 >= 4X1 + X2 + 1 = active#(plus(mark(X1),mark(X2))) active#(plus(s(X),Y)) = 4X + Y + 1 >= 4X + Y + 1 = mark#(s(plus(X,Y))) mark#(s(X)) = X + 0 >= X + 0 = mark#(X) mark#(plus(X1,X2)) = 4X1 + X2 + 1 >= X2 + 0 = mark#(X2) mark#(negrecip(X)) = X + 0 >= X + 0 = mark#(X) mark#(2ndsneg(X1,X2)) = X1 + 4X2 + 4 >= X1 + 4X2 + 4 = active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) = N + 4Y + 4Z + 4 >= N + 1Y + 4Z + 4 = mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) = 1X1 + X2 + 1 >= X1 + 0 = mark#(X1) mark#(2ndsneg(X1,X2)) = X1 + 4X2 + 4 >= X2 + 0 = mark#(X2) mark#(posrecip(X)) = 3X + 0 >= X + 0 = mark#(X) mark#(rcons(X1,X2)) = 1X1 + X2 + 1 >= X2 + 0 = mark#(X2) mark#(cons2(X1,X2)) = X2 + 0 >= X2 + 0 = mark#(X2) mark#(2ndspos(X1,X2)) = X1 + 4X2 + 4 >= X1 + 4X2 + 4 = active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) = N + 4Y + 4Z + 4 >= N + 4Y + 4Z + 4 = mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) = N + 4X + 4Z + 4 >= N + 4Z + 4 = mark#(2ndspos(s(N),cons2(X,Z))) mark#(2ndspos(X1,X2)) = X1 + 4X2 + 4 >= X2 + 0 = mark#(X2) mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(from(X)) = X + 0 >= X + 0 = active#(from(mark(X))) active#(from(X)) = X + 0 >= X + 0 = mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) = N + 4X + 4Z + 4 >= N + 4Z + 4 = mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) = Y + 4 >= Y + 0 = mark#(Y) active(from(X)) = X >= X = mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) = 4Z + 4 >= 0 = mark(rnil()) active(2ndspos(s(N),cons(X,Z))) = N + 4X + 4Z + 4 >= N + 4Z + 4 = mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) = N + 4Y + 4Z + 4 >= N + 4Y + 4Z + 4 = mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) = 4Z + 4 >= 0 = mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) = N + 4X + 4Z + 4 >= N + 4Z + 4 = mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(X,cons(Y,Z)))) = N + 4Y + 4Z + 4 >= N + 1Y + 4Z + 4 = mark(rcons(negrecip(Y),2ndspos(N,Z))) active(pi(X)) = 3X + 4 >= X + 4 = mark(2ndspos(X,from(0()))) active(plus(0(),Y)) = Y + 4 >= Y = mark(Y) active(plus(s(X),Y)) = 4X + Y + 1 >= 4X + Y + 1 = mark(s(plus(X,Y))) active(times(0(),Y)) = 5Y + 5 >= 0 = mark(0()) active(times(s(X),Y)) = 5X + 5Y + 5 >= 5X + 5Y + 5 = mark(plus(Y,times(X,Y))) active(square(X)) = 6X + 5 >= 5X + 5 = mark(times(X,X)) mark(from(X)) = X >= X = active(from(mark(X))) mark(cons(X1,X2)) = X1 + X2 >= X1 + X2 = active(cons(mark(X1),X2)) mark(s(X)) = X >= X = active(s(mark(X))) mark(2ndspos(X1,X2)) = X1 + 4X2 + 4 >= X1 + 4X2 + 4 = active(2ndspos(mark(X1),mark(X2))) mark(0()) = 0 >= 0 = active(0()) mark(rnil()) = 0 >= 0 = active(rnil()) mark(cons2(X1,X2)) = X2 + 0 >= X2 + 0 = active(cons2(X1,mark(X2))) mark(rcons(X1,X2)) = 1X1 + X2 + 1 >= 1X1 + X2 + 1 = active(rcons(mark(X1),mark(X2))) mark(posrecip(X)) = 3X + 0 >= 3X + 0 = active(posrecip(mark(X))) mark(2ndsneg(X1,X2)) = X1 + 4X2 + 4 >= X1 + 4X2 + 4 = active(2ndsneg(mark(X1),mark(X2))) mark(negrecip(X)) = X + 0 >= X + 0 = active(negrecip(mark(X))) mark(pi(X)) = 3X + 4 >= 3X + 4 = active(pi(mark(X))) mark(plus(X1,X2)) = 4X1 + X2 + 1 >= 4X1 + X2 + 1 = active(plus(mark(X1),mark(X2))) mark(times(X1,X2)) = 5X1 + 5X2 + 5 >= 5X1 + 5X2 + 5 = active(times(mark(X1),mark(X2))) mark(square(X)) = 6X + 5 >= 6X + 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 + 4X2 + 4 >= X1 + 4X2 + 4 = 2ndspos(X1,X2) 2ndspos(X1,mark(X2)) = X1 + 4X2 + 4 >= X1 + 4X2 + 4 = 2ndspos(X1,X2) 2ndspos(active(X1),X2) = X1 + 4X2 + 4 >= X1 + 4X2 + 4 = 2ndspos(X1,X2) 2ndspos(X1,active(X2)) = X1 + 4X2 + 4 >= X1 + 4X2 + 4 = 2ndspos(X1,X2) cons2(mark(X1),X2) = X2 + 0 >= X2 + 0 = cons2(X1,X2) cons2(X1,mark(X2)) = X2 + 0 >= X2 + 0 = cons2(X1,X2) cons2(active(X1),X2) = X2 + 0 >= X2 + 0 = cons2(X1,X2) cons2(X1,active(X2)) = X2 + 0 >= X2 + 0 = cons2(X1,X2) rcons(mark(X1),X2) = 1X1 + X2 + 1 >= 1X1 + X2 + 1 = rcons(X1,X2) rcons(X1,mark(X2)) = 1X1 + X2 + 1 >= 1X1 + X2 + 1 = rcons(X1,X2) rcons(active(X1),X2) = 1X1 + X2 + 1 >= 1X1 + X2 + 1 = rcons(X1,X2) rcons(X1,active(X2)) = 1X1 + X2 + 1 >= 1X1 + X2 + 1 = rcons(X1,X2) posrecip(mark(X)) = 3X + 0 >= 3X + 0 = posrecip(X) posrecip(active(X)) = 3X + 0 >= 3X + 0 = posrecip(X) 2ndsneg(mark(X1),X2) = X1 + 4X2 + 4 >= X1 + 4X2 + 4 = 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) = X1 + 4X2 + 4 >= X1 + 4X2 + 4 = 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) = X1 + 4X2 + 4 >= X1 + 4X2 + 4 = 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) = X1 + 4X2 + 4 >= X1 + 4X2 + 4 = 2ndsneg(X1,X2) negrecip(mark(X)) = X + 0 >= X + 0 = negrecip(X) negrecip(active(X)) = X + 0 >= X + 0 = negrecip(X) pi(mark(X)) = 3X + 4 >= 3X + 4 = pi(X) pi(active(X)) = 3X + 4 >= 3X + 4 = pi(X) plus(mark(X1),X2) = 4X1 + X2 + 1 >= 4X1 + X2 + 1 = plus(X1,X2) plus(X1,mark(X2)) = 4X1 + X2 + 1 >= 4X1 + X2 + 1 = plus(X1,X2) plus(active(X1),X2) = 4X1 + X2 + 1 >= 4X1 + X2 + 1 = plus(X1,X2) plus(X1,active(X2)) = 4X1 + X2 + 1 >= 4X1 + X2 + 1 = plus(X1,X2) times(mark(X1),X2) = 5X1 + 5X2 + 5 >= 5X1 + 5X2 + 5 = times(X1,X2) times(X1,mark(X2)) = 5X1 + 5X2 + 5 >= 5X1 + 5X2 + 5 = times(X1,X2) times(active(X1),X2) = 5X1 + 5X2 + 5 >= 5X1 + 5X2 + 5 = times(X1,X2) times(X1,active(X2)) = 5X1 + 5X2 + 5 >= 5X1 + 5X2 + 5 = times(X1,X2) square(mark(X)) = 6X + 5 >= 6X + 5 = square(X) square(active(X)) = 6X + 5 >= 6X + 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#(plus(X1,X2)) -> mark#(X2) mark#(negrecip(X)) -> mark#(X) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(cons2(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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(cons2) = [0,1] pi(posrecip) = 0 pi(2ndsneg) = 0 pi(rcons) = 1 pi(negrecip) = 0 pi(pi) = [0] pi(plus) = 1 pi(times) = 0 pi(square) = 0 pi(active#) = 0 pi(mark#) = 0 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) weight function: w0 = 1 w(square) = w(pi) = w(rnil) = w(0) = 1 w(mark#) = w(active#) = w(times) = w(plus) = w( negrecip) = w(rcons) = w(2ndsneg) = w(posrecip) = w( cons2) = w(2ndspos) = w(mark) = w(cons) = w( s) = w(active) = w(from) = 0 precedence: mark# > times > posrecip > square > rcons > s > cons > mark > 2ndspos > active > cons2 > from > negrecip > pi > active# > plus > 0 > rnil > 2ndsneg 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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(from(X)) -> mark#(cons(X,from(s(X)))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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(cons2) = [] pi(posrecip) = 0 pi(2ndsneg) = 0 pi(rcons) = 1 pi(negrecip) = 0 pi(pi) = 0 pi(plus) = 1 pi(times) = 0 pi(square) = 0 pi(active#) = 0 pi(mark#) = 0 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) weight function: w0 = 1 w(square) = w(negrecip) = w(cons2) = w(rnil) = w( 0) = w(from) = 1 w(mark#) = w(active#) = w(times) = w(plus) = w( pi) = w(rcons) = w(2ndsneg) = w(posrecip) = w( 2ndspos) = w(mark) = w(cons) = w(s) = w(active) = 0 precedence: rcons > square > 0 > plus > 2ndspos > posrecip > pi > times > mark > from > negrecip > cons2 > active# > rnil > mark# > active > cons > s > 2ndsneg 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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(posrecip(X)) -> mark#(X) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> active#(from(mark(X))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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: 17 #arcs: 213/324 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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(cons(X1,X2)) -> mark#(X1) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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(cons2) = [] pi(posrecip) = 0 pi(2ndsneg) = 0 pi(rcons) = 1 pi(negrecip) = [0] pi(pi) = 0 pi(plus) = 1 pi(times) = 0 pi(square) = 0 pi(active#) = 0 pi(mark#) = 0 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) weight function: w0 = 1 w(negrecip) = w(cons2) = w(rnil) = w(0) = 1 w(mark#) = w(active#) = w(square) = w( times) = w(plus) = w(pi) = w(rcons) = w( 2ndsneg) = w(posrecip) = w(2ndspos) = w( mark) = w(cons) = w(s) = w(active) = w( from) = 0 precedence: posrecip > cons2 > pi > rcons > negrecip > mark > from > s > square > 0 > 2ndspos > cons > active > times > active# > plus > mark# > 2ndsneg > rnil 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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(cons(X1,X2)) -> mark#(X1) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) mark#(cons(X1,X2)) -> mark#(X1) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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(cons2) = 1 pi(posrecip) = 0 pi(2ndsneg) = 0 pi(rcons) = 1 pi(negrecip) = 0 pi(pi) = 0 pi(plus) = 1 pi(times) = 0 pi(square) = 0 pi(active#) = 0 pi(mark#) = 0 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) weight function: w0 = 1 w(negrecip) = w(rnil) = w(0) = w(cons) = w( from) = 1 w(mark#) = w(active#) = w(square) = w( times) = w(plus) = w(pi) = w(rcons) = w( 2ndsneg) = w(posrecip) = w(cons2) = w( 2ndspos) = w(mark) = w(s) = w(active) = 0 precedence: 0 > mark > square > pi > 2ndspos > rnil > active > mark# > from > rcons > times > cons > negrecip > cons2 > 2ndsneg > plus > active# > s > posrecip 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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(posrecip(X)) -> mark#(X) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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) = 1 pi(mark) = 0 pi(0) = [] pi(2ndspos) = 0 pi(rnil) = [] pi(cons2) = 1 pi(posrecip) = [0] pi(2ndsneg) = 0 pi(rcons) = 1 pi(negrecip) = 0 pi(pi) = 0 pi(plus) = 1 pi(times) = 0 pi(square) = 0 pi(active#) = 0 pi(mark#) = 0 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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(posrecip) = w(rnil) = w(0) = 1 w(mark#) = w(active#) = w(square) = w( times) = w(plus) = w(pi) = w(negrecip) = w( rcons) = w(2ndsneg) = w(cons2) = w( 2ndspos) = w(mark) = w(cons) = w(s) = w( active) = w(from) = 0 precedence: from > negrecip > rcons > cons2 > square > 0 > active# > pi > 2ndsneg > posrecip > plus > active > s > mark > mark# > 2ndspos > times > rnil > cons 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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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),cons2(X,cons(Y,Z)))) -> mark#(rcons(negrecip(Y),2ndspos(N,Z))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark#(rcons(posrecip(Y),2ndsneg(N,Z))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) active#(plus(0(),Y)) -> mark#(Y) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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(cons2) = 0 pi(posrecip) = 0 pi(2ndsneg) = 0 pi(rcons) = 1 pi(negrecip) = [] pi(pi) = [0] pi(plus) = [0,1] pi(times) = [0,1] pi(square) = [0] pi(active#) = 0 pi(mark#) = 0 usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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: 0 > square > times > plus > mark# ~ active# ~ pi ~ negrecip ~ rcons ~ 2ndsneg ~ posrecip ~ cons2 ~ rnil ~ 2ndspos ~ mark ~ cons ~ s ~ active ~ from problem: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Restore Modifier: DPs: mark#(times(X1,X2)) -> active#(times(mark(X1),mark(X2))) mark#(plus(X1,X2)) -> active#(plus(mark(X1),mark(X2))) mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) mark#(rcons(X1,X2)) -> mark#(X2) mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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: 3 #rules: 5 #arcs: 84/49 DPs: mark#(rcons(X1,X2)) -> mark#(X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) The DP: mark#(rcons(X1,X2)) -> mark#(X2) has the edges: 0 > 0 Qed DPs: mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) active#(2ndspos(s(N),cons(X,Z))) -> mark#(2ndspos(s(N),cons2(X,Z))) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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) = [] pi(active) = 0 pi(s) = 0 pi(cons) = [] pi(mark) = 0 pi(0) = [] pi(2ndspos) = [0,1] pi(rnil) = [] pi(cons2) = [] pi(posrecip) = [] pi(2ndsneg) = [0,1] pi(rcons) = [] pi(negrecip) = [] pi(pi) = [0] pi(plus) = 1 pi(times) = [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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(X1,X2) rcons(mark(X1),X2) -> rcons(X1,X2) rcons(X1,mark(X2)) -> rcons(X1,X2) rcons(active(X1),X2) -> rcons(X1,X2) rcons(X1,active(X2)) -> rcons(X1,X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,mark(X2)) -> 2ndsneg(X1,X2) 2ndsneg(active(X1),X2) -> 2ndsneg(X1,X2) 2ndsneg(X1,active(X2)) -> 2ndsneg(X1,X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1),X2) -> plus(X1,X2) plus(X1,mark(X2)) -> plus(X1,X2) plus(active(X1),X2) -> plus(X1,X2) plus(X1,active(X2)) -> plus(X1,X2) times(mark(X1),X2) -> times(X1,X2) times(X1,mark(X2)) -> times(X1,X2) times(active(X1),X2) -> times(X1,X2) times(X1,active(X2)) -> times(X1,X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) weight function: w0 = 1 w(square) = w(times) = w(pi) = w( negrecip) = w(rcons) = w(posrecip) = w( cons2) = w(rnil) = w(0) = w(cons) = w( from) = 1 w(mark#) = w(active#) = w(plus) = w( 2ndsneg) = w(2ndspos) = w(mark) = w( s) = w(active) = 0 precedence: from > cons > cons2 > 2ndsneg > mark > negrecip > pi > mark# > active > rnil > plus > 0 > rcons > square > 2ndspos > s > active# > times > posrecip problem: DPs: mark#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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#(2ndspos(X1,X2)) -> active#(2ndspos(mark(X1),mark(X2))) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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: 0 #rules: 0 #arcs: 2/1 DPs: mark#(2ndsneg(X1,X2)) -> active#(2ndsneg(mark(X1),mark(X2))) active#(2ndsneg(s(N),cons(X,Z))) -> mark#(2ndsneg(s(N),cons2(X,Z))) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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(cons2) = [] pi(posrecip) = [] pi(2ndsneg) = [1] pi(rcons) = [] pi(negrecip) = 0 pi(pi) = [0] pi(plus) = 1 pi(times) = 0 pi(square) = 0 pi(active#) = [0] pi(mark#) = [0] usable rules: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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(mark#) = w(active#) = w(pi) = w( negrecip) = w(rcons) = w(2ndsneg) = w( posrecip) = w(cons2) = w(rnil) = w( 2ndspos) = w(0) = w(cons) = w( from) = 1 w(square) = w(times) = w(plus) = w( mark) = w(s) = w(active) = 0 precedence: square > plus > pi > negrecip > active > times > rnil > mark# > mark > active# > 2ndsneg > 0 > posrecip > from > cons > 2ndspos > rcons > cons2 > s problem: DPs: TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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: 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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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: cons2#(mark(X1),X2) -> cons2#(X1,X2) cons2#(X1,mark(X2)) -> cons2#(X1,X2) cons2#(active(X1),X2) -> cons2#(X1,X2) cons2#(X1,active(X2)) -> cons2#(X1,X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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(cons2#) = 0 problem: DPs: cons2#(X1,mark(X2)) -> cons2#(X1,X2) cons2#(X1,active(X2)) -> cons2#(X1,X2) TRS: active(from(X)) -> mark(cons(X,from(s(X)))) active(2ndspos(0(),Z)) -> mark(rnil()) active(2ndspos(s(N),cons(X,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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(cons2#) = 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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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,Z))) -> mark(2ndspos(s(N),cons2(X,Z))) active(2ndspos(s(N),cons2(X,cons(Y,Z)))) -> mark(rcons(posrecip(Y),2ndsneg(N,Z))) active(2ndsneg(0(),Z)) -> mark(rnil()) active(2ndsneg(s(N),cons(X,Z))) -> mark(2ndsneg(s(N),cons2(X,Z))) active(2ndsneg(s(N),cons2(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(cons2(X1,X2)) -> active(cons2(X1,mark(X2))) 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) cons2(mark(X1),X2) -> cons2(X1,X2) cons2(X1,mark(X2)) -> cons2(X1,X2) cons2(active(X1),X2) -> cons2(X1,X2) cons2(X1,active(X2)) -> cons2(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