(STRATEGY INNERMOST) (VAR u v x y) (DATATYPES A = µX.< true, 0, false, s(X) >) (SIGNATURES diff :: [A x A] -> A cond1 :: [A x A x A] -> A cond2 :: [A x A x A] -> A gt :: [A x A] -> A equal :: [A x A] -> A) (RULES diff(x,y) -> cond1(equal(x,y) ,x ,y) cond1(true(),x,y) -> 0() cond1(false(),x,y) -> cond2(gt(x ,y) ,x ,y) cond2(true(),x,y) -> s(diff(x ,s(y))) cond2(false(),x,y) -> s(diff(s(x),y)) gt(0(),v) -> false() gt(s(u),0()) -> true() gt(s(u),s(v)) -> gt(u,v) equal(0(),0()) -> true() equal(s(x),0()) -> false() equal(0(),s(y)) -> false() equal(s(x),s(y)) -> equal(x,y))