(STRATEGY INNERMOST) (VAR b x y) (DATATYPES A = µX.< 0, s(X), true, false, logZeroError, g, h >) (SIGNATURES half :: [A] -> A le :: [A x A] -> A inc :: [A] -> A logarithm :: [A] -> A logIter :: [A x A] -> A if :: [A x A x A x A] -> A f :: [] -> A) (RULES half(0()) -> 0() half(s(0())) -> 0() half(s(s(x))) -> s(half(x)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) inc(s(x)) -> s(inc(x)) inc(0()) -> s(0()) logarithm(x) -> logIter(x,0()) logIter(x,y) -> if(le(s(0()),x) ,le(s(s(0())),x) ,half(x) ,inc(y)) if(false(),b,x,y) -> logZeroError() if(true(),false(),x,s(y)) -> y if(true(),true(),x,y) -> logIter(x,y) f() -> g() f() -> h())