(VAR N X Y Z ) (RULES 2ndspos(s(N), cons(X)) -> rcons(posrecip(Y), 2ndsneg(N, Z)) 2ndsneg(s(N), cons(X)) -> rcons(negrecip(Y), 2ndspos(N, Z)) from(X) -> cons(X) 2ndspos(0, Z) -> rnil 2ndsneg(0, Z) -> rnil pi(X) -> 2ndspos(X, from(0)) plus(0, Y) -> Y plus(s(X), Y) -> s(plus(X, Y)) times(0, Y) -> 0 times(s(X), Y) -> plus(Y, times(X, Y)) square(X) -> times(X, X) )