MAYBE 0.08/0.18 MAYBE 0.08/0.18 0.08/0.18 Problem: 0.08/0.18 half(0()) -> 0() 0.08/0.18 half(s(0())) -> 0() 0.08/0.18 half(s(s(x))) -> s(half(x)) 0.08/0.18 inc(0()) -> 0() 0.08/0.18 inc(s(x)) -> s(inc(x)) 0.08/0.18 zero(0()) -> true() 0.08/0.18 zero(s(x)) -> false() 0.08/0.18 p(0()) -> 0() 0.08/0.18 p(s(x)) -> x 0.08/0.18 bits(x) -> bitIter(x,0()) 0.08/0.18 bitIter(x,y) -> if(zero(x),x,inc(y)) 0.08/0.18 if(true(),x,y) -> p(y) 0.08/0.18 if(false(),x,y) -> bitIter(half(x),y) 0.08/0.18 0.08/0.18 Proof: 0.08/0.18 Open 0.08/0.18 EOF