YES TRS: { from(X) -> cons(X, n__from(s(X))), from(X) -> n__from(X), 2ndspos(s(N), cons(X, Z)) -> 2ndspos(s(N), cons2(X, activate(Z))), 2ndspos(s(N), cons2(X, cons(Y, Z))) -> rcons(posrecip(Y), 2ndsneg(N, activate(Z))), 2ndspos(0(), Z) -> rnil(), activate(X) -> X, activate(n__from(X)) -> from(X), 2ndsneg(s(N), cons(X, Z)) -> 2ndsneg(s(N), cons2(X, activate(Z))), 2ndsneg(s(N), cons2(X, cons(Y, Z))) -> rcons(negrecip(Y), 2ndspos(N, activate(Z))), 2ndsneg(0(), Z) -> rnil(), pi(X) -> 2ndspos(X, from(0())), plus(s(X), Y) -> s(plus(X, Y)), plus(0(), Y) -> Y, times(s(X), Y) -> plus(Y, times(X, Y)), times(0(), Y) -> 0(), square(X) -> times(X, X)} DP: Strict: { 2ndspos#(s(N), cons(X, Z)) -> 2ndspos#(s(N), cons2(X, activate(Z))), 2ndspos#(s(N), cons(X, Z)) -> activate#(Z), 2ndspos#(s(N), cons2(X, cons(Y, Z))) -> activate#(Z), 2ndspos#(s(N), cons2(X, cons(Y, Z))) -> 2ndsneg#(N, activate(Z)), activate#(n__from(X)) -> from#(X), 2ndsneg#(s(N), cons(X, Z)) -> activate#(Z), 2ndsneg#(s(N), cons(X, Z)) -> 2ndsneg#(s(N), cons2(X, activate(Z))), 2ndsneg#(s(N), cons2(X, cons(Y, Z))) -> 2ndspos#(N, activate(Z)), 2ndsneg#(s(N), cons2(X, cons(Y, Z))) -> activate#(Z), pi#(X) -> from#(0()), pi#(X) -> 2ndspos#(X, from(0())), plus#(s(X), Y) -> plus#(X, Y), times#(s(X), Y) -> plus#(Y, times(X, Y)), times#(s(X), Y) -> times#(X, Y), square#(X) -> times#(X, X)} Weak: { from(X) -> cons(X, n__from(s(X))), from(X) -> n__from(X), 2ndspos(s(N), cons(X, Z)) -> 2ndspos(s(N), cons2(X, activate(Z))), 2ndspos(s(N), cons2(X, cons(Y, Z))) -> rcons(posrecip(Y), 2ndsneg(N, activate(Z))), 2ndspos(0(), Z) -> rnil(), activate(X) -> X, activate(n__from(X)) -> from(X), 2ndsneg(s(N), cons(X, Z)) -> 2ndsneg(s(N), cons2(X, activate(Z))), 2ndsneg(s(N), cons2(X, cons(Y, Z))) -> rcons(negrecip(Y), 2ndspos(N, activate(Z))), 2ndsneg(0(), Z) -> rnil(), pi(X) -> 2ndspos(X, from(0())), plus(s(X), Y) -> s(plus(X, Y)), plus(0(), Y) -> Y, times(s(X), Y) -> plus(Y, times(X, Y)), times(0(), Y) -> 0(), square(X) -> times(X, X)} EDG: {(pi#(X) -> 2ndspos#(X, from(0())), 2ndspos#(s(N), cons2(X, cons(Y, Z))) -> 2ndsneg#(N, activate(Z))) (pi#(X) -> 2ndspos#(X, from(0())), 2ndspos#(s(N), cons2(X, cons(Y, Z))) -> activate#(Z)) (pi#(X) -> 2ndspos#(X, from(0())), 2ndspos#(s(N), cons(X, Z)) -> activate#(Z)) (pi#(X) -> 2ndspos#(X, from(0())), 2ndspos#(s(N), cons(X, Z)) -> 2ndspos#(s(N), cons2(X, activate(Z)))) (2ndsneg#(s(N), cons2(X, cons(Y, Z))) -> 2ndspos#(N, activate(Z)), 2ndspos#(s(N), cons2(X, cons(Y, Z))) -> 2ndsneg#(N, activate(Z))) (2ndsneg#(s(N), cons2(X, cons(Y, Z))) -> 2ndspos#(N, activate(Z)), 2ndspos#(s(N), cons2(X, cons(Y, Z))) -> activate#(Z)) (2ndsneg#(s(N), cons2(X, cons(Y, Z))) -> 2ndspos#(N, activate(Z)), 2ndspos#(s(N), cons(X, Z)) -> activate#(Z)) (2ndsneg#(s(N), cons2(X, cons(Y, Z))) -> 2ndspos#(N, activate(Z)), 2ndspos#(s(N), cons(X, Z)) -> 2ndspos#(s(N), cons2(X, activate(Z)))) (2ndspos#(s(N), cons(X, Z)) -> 2ndspos#(s(N), cons2(X, activate(Z))), 2ndspos#(s(N), cons2(X, cons(Y, Z))) -> 2ndsneg#(N, activate(Z))) (2ndspos#(s(N), cons(X, Z)) -> 2ndspos#(s(N), cons2(X, activate(Z))), 2ndspos#(s(N), cons2(X, cons(Y, Z))) -> activate#(Z)) (times#(s(X), Y) -> times#(X, Y), times#(s(X), Y) -> times#(X, Y)) (times#(s(X), Y) -> times#(X, Y), times#(s(X), Y) -> plus#(Y, times(X, Y))) (2ndspos#(s(N), cons2(X, cons(Y, Z))) -> activate#(Z), activate#(n__from(X)) -> from#(X)) (2ndsneg#(s(N), cons2(X, cons(Y, Z))) -> activate#(Z), activate#(n__from(X)) -> from#(X)) (square#(X) -> times#(X, X), times#(s(X), Y) -> plus#(Y, times(X, Y))) (square#(X) -> times#(X, X), times#(s(X), Y) -> times#(X, Y)) (2ndsneg#(s(N), cons(X, Z)) -> activate#(Z), activate#(n__from(X)) -> from#(X)) (2ndspos#(s(N), cons(X, Z)) -> activate#(Z), activate#(n__from(X)) -> from#(X)) (plus#(s(X), Y) -> plus#(X, Y), plus#(s(X), Y) -> plus#(X, Y)) (2ndsneg#(s(N), cons(X, Z)) -> 2ndsneg#(s(N), cons2(X, activate(Z))), 2ndsneg#(s(N), cons2(X, cons(Y, Z))) -> 2ndspos#(N, activate(Z))) (2ndsneg#(s(N), cons(X, Z)) -> 2ndsneg#(s(N), cons2(X, activate(Z))), 2ndsneg#(s(N), cons2(X, cons(Y, Z))) -> activate#(Z)) (2ndspos#(s(N), cons2(X, cons(Y, Z))) -> 2ndsneg#(N, activate(Z)), 2ndsneg#(s(N), cons(X, Z)) -> activate#(Z)) (2ndspos#(s(N), cons2(X, cons(Y, Z))) -> 2ndsneg#(N, activate(Z)), 2ndsneg#(s(N), cons(X, Z)) -> 2ndsneg#(s(N), cons2(X, activate(Z)))) (2ndspos#(s(N), cons2(X, cons(Y, Z))) -> 2ndsneg#(N, activate(Z)), 2ndsneg#(s(N), cons2(X, cons(Y, Z))) -> 2ndspos#(N, activate(Z))) (2ndspos#(s(N), cons2(X, cons(Y, Z))) -> 2ndsneg#(N, activate(Z)), 2ndsneg#(s(N), cons2(X, cons(Y, Z))) -> activate#(Z)) (times#(s(X), Y) -> plus#(Y, times(X, Y)), plus#(s(X), Y) -> plus#(X, Y))} SCCS: Scc: {times#(s(X), Y) -> times#(X, Y)} Scc: {plus#(s(X), Y) -> plus#(X, Y)} Scc: { 2ndspos#(s(N), cons(X, Z)) -> 2ndspos#(s(N), cons2(X, activate(Z))), 2ndspos#(s(N), cons2(X, cons(Y, Z))) -> 2ndsneg#(N, activate(Z)), 2ndsneg#(s(N), cons(X, Z)) -> 2ndsneg#(s(N), cons2(X, activate(Z))), 2ndsneg#(s(N), cons2(X, cons(Y, Z))) -> 2ndspos#(N, activate(Z))} SCC: Strict: {times#(s(X), Y) -> times#(X, Y)} Weak: { from(X) -> cons(X, n__from(s(X))), from(X) -> n__from(X), 2ndspos(s(N), cons(X, Z)) -> 2ndspos(s(N), cons2(X, activate(Z))), 2ndspos(s(N), cons2(X, cons(Y, Z))) -> rcons(posrecip(Y), 2ndsneg(N, activate(Z))), 2ndspos(0(), Z) -> rnil(), activate(X) -> X, activate(n__from(X)) -> from(X), 2ndsneg(s(N), cons(X, Z)) -> 2ndsneg(s(N), cons2(X, activate(Z))), 2ndsneg(s(N), cons2(X, cons(Y, Z))) -> rcons(negrecip(Y), 2ndspos(N, activate(Z))), 2ndsneg(0(), Z) -> rnil(), pi(X) -> 2ndspos(X, from(0())), plus(s(X), Y) -> s(plus(X, Y)), plus(0(), Y) -> Y, times(s(X), Y) -> plus(Y, times(X, Y)), times(0(), Y) -> 0(), square(X) -> times(X, X)} SPSC: Simple Projection: pi(times#) = 0 Strict: {} Qed SCC: Strict: {plus#(s(X), Y) -> plus#(X, Y)} Weak: { from(X) -> cons(X, n__from(s(X))), from(X) -> n__from(X), 2ndspos(s(N), cons(X, Z)) -> 2ndspos(s(N), cons2(X, activate(Z))), 2ndspos(s(N), cons2(X, cons(Y, Z))) -> rcons(posrecip(Y), 2ndsneg(N, activate(Z))), 2ndspos(0(), Z) -> rnil(), activate(X) -> X, activate(n__from(X)) -> from(X), 2ndsneg(s(N), cons(X, Z)) -> 2ndsneg(s(N), cons2(X, activate(Z))), 2ndsneg(s(N), cons2(X, cons(Y, Z))) -> rcons(negrecip(Y), 2ndspos(N, activate(Z))), 2ndsneg(0(), Z) -> rnil(), pi(X) -> 2ndspos(X, from(0())), plus(s(X), Y) -> s(plus(X, Y)), plus(0(), Y) -> Y, times(s(X), Y) -> plus(Y, times(X, Y)), times(0(), Y) -> 0(), square(X) -> times(X, X)} SPSC: Simple Projection: pi(plus#) = 0 Strict: {} Qed SCC: Strict: { 2ndspos#(s(N), cons(X, Z)) -> 2ndspos#(s(N), cons2(X, activate(Z))), 2ndspos#(s(N), cons2(X, cons(Y, Z))) -> 2ndsneg#(N, activate(Z)), 2ndsneg#(s(N), cons(X, Z)) -> 2ndsneg#(s(N), cons2(X, activate(Z))), 2ndsneg#(s(N), cons2(X, cons(Y, Z))) -> 2ndspos#(N, activate(Z))} Weak: { from(X) -> cons(X, n__from(s(X))), from(X) -> n__from(X), 2ndspos(s(N), cons(X, Z)) -> 2ndspos(s(N), cons2(X, activate(Z))), 2ndspos(s(N), cons2(X, cons(Y, Z))) -> rcons(posrecip(Y), 2ndsneg(N, activate(Z))), 2ndspos(0(), Z) -> rnil(), activate(X) -> X, activate(n__from(X)) -> from(X), 2ndsneg(s(N), cons(X, Z)) -> 2ndsneg(s(N), cons2(X, activate(Z))), 2ndsneg(s(N), cons2(X, cons(Y, Z))) -> rcons(negrecip(Y), 2ndspos(N, activate(Z))), 2ndsneg(0(), Z) -> rnil(), pi(X) -> 2ndspos(X, from(0())), plus(s(X), Y) -> s(plus(X, Y)), plus(0(), Y) -> Y, times(s(X), Y) -> plus(Y, times(X, Y)), times(0(), Y) -> 0(), square(X) -> times(X, X)} SPSC: Simple Projection: pi(2ndsneg#) = 0, pi(2ndspos#) = 0 Strict: { 2ndspos#(s(N), cons(X, Z)) -> 2ndspos#(s(N), cons2(X, activate(Z))), 2ndspos#(s(N), cons2(X, cons(Y, Z))) -> 2ndsneg#(N, activate(Z)), 2ndsneg#(s(N), cons(X, Z)) -> 2ndsneg#(s(N), cons2(X, activate(Z)))} EDG: {(2ndspos#(s(N), cons2(X, cons(Y, Z))) -> 2ndsneg#(N, activate(Z)), 2ndsneg#(s(N), cons(X, Z)) -> 2ndsneg#(s(N), cons2(X, activate(Z)))) (2ndspos#(s(N), cons(X, Z)) -> 2ndspos#(s(N), cons2(X, activate(Z))), 2ndspos#(s(N), cons2(X, cons(Y, Z))) -> 2ndsneg#(N, activate(Z)))} SCCS: Qed