MAYBE 0.08/0.17 MAYBE 0.08/0.17 0.08/0.17 Problem: 0.08/0.17 plus(0(),x) -> x 0.08/0.17 plus(s(x),y) -> s(plus(x,y)) 0.08/0.17 times(0(),y) -> 0() 0.08/0.17 times(s(x),y) -> plus(y,times(x,y)) 0.08/0.17 p(s(x)) -> x 0.08/0.17 p(0()) -> 0() 0.08/0.17 minus(x,0()) -> x 0.08/0.17 minus(0(),x) -> 0() 0.08/0.17 minus(x,s(y)) -> p(minus(x,y)) 0.08/0.17 isZero(0()) -> true() 0.08/0.17 isZero(s(x)) -> false() 0.08/0.17 facIter(x,y) -> if(isZero(x),minus(x,s(0())),y,times(y,x)) 0.08/0.17 if(true(),x,y,z) -> y 0.08/0.17 if(false(),x,y,z) -> facIter(x,z) 0.08/0.17 factorial(x) -> facIter(x,s(0())) 0.08/0.17 0.08/0.17 Proof: 0.08/0.17 Open 0.08/0.18 EOF