(STRATEGY INNERMOST) (VAR k l x y z) (DATATYPES A = µX.< 0, s(X), nil, cons(X, X) >) (SIGNATURES minus :: [A x A] -> A quot :: [A x A] -> A plus :: [A x A] -> A app :: [A x A] -> A sum :: [A] -> A) (RULES minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) minus(minus(x,y),z) -> minus(x ,plus(y,z)) app(nil(),k) -> k app(l,nil()) -> l app(cons(x,l),k) -> cons(x ,app(l,k)) sum(cons(x,nil())) -> cons(x ,nil()) sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l ,sum(cons(x,cons(y,k))))))