MAYBE 0.08/0.18 MAYBE 0.08/0.18 0.08/0.18 Problem: 0.08/0.18 +(x,0()) -> x 0.08/0.18 +(x,s(y)) -> s(+(x,y)) 0.08/0.18 *(x,0()) -> 0() 0.08/0.18 *(x,s(y)) -> +(*(x,y),x) 0.08/0.18 ge(x,0()) -> true() 0.08/0.18 ge(0(),s(y)) -> false() 0.08/0.18 ge(s(x),s(y)) -> ge(x,y) 0.08/0.18 -(x,0()) -> x 0.08/0.18 -(s(x),s(y)) -> -(x,y) 0.08/0.18 fact(x) -> iffact(x,ge(x,s(s(0())))) 0.08/0.18 iffact(x,true()) -> *(x,fact(-(x,s(0())))) 0.08/0.18 iffact(x,false()) -> s(0()) 0.08/0.18 0.08/0.18 Proof: 0.08/0.18 Open 0.08/0.18 EOF