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