(STRATEGY INNERMOST) (VAR x y) (DATATYPES A = µX.< 0, s(X), if(X, X, X), greater(X, X) >) (SIGNATURES - :: [A x A] -> A p :: [A] -> A) (RULES -(0(),y) -> 0() -(x,0()) -> x -(x,s(y)) -> if(greater(x,s(y)) ,s(-(x,p(s(y)))) ,0()) p(0()) -> 0() p(s(x)) -> x)