(STRATEGY INNERMOST) (VAR X Y) (DATATYPES A = µX.< 0, s(X), true, false >) (SIGNATURES p :: [A] -> A leq :: [A x A] -> A if :: [A x A x A] -> A diff :: [A x A] -> A) (RULES p(0()) -> 0() p(s(X)) -> X leq(0(),Y) -> true() leq(s(X),0()) -> false() leq(s(X),s(Y)) -> leq(X,Y) if(true(),X,Y) -> X if(false(),X,Y) -> Y diff(X,Y) -> if(leq(X,Y) ,0() ,s(diff(p(X),Y))))