MAYBE Problem: 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() Proof: Open