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