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