MAYBE 0.08/0.20 MAYBE 0.17/0.20 0.17/0.20 Problem: 0.17/0.20 p(0()) -> 0() 0.17/0.20 p(s(x)) -> x 0.17/0.20 plus(x,0()) -> x 0.17/0.20 plus(0(),y) -> y 0.17/0.20 plus(s(x),y) -> s(plus(x,y)) 0.17/0.20 plus(s(x),y) -> s(plus(p(s(x)),y)) 0.17/0.20 plus(x,s(y)) -> s(plus(x,p(s(y)))) 0.17/0.20 times(0(),y) -> 0() 0.17/0.20 times(s(0()),y) -> y 0.17/0.20 times(s(x),y) -> plus(y,times(x,y)) 0.17/0.20 div(0(),y) -> 0() 0.17/0.20 div(x,y) -> quot(x,y,y) 0.17/0.20 quot(zero(y),s(y),z) -> 0() 0.17/0.20 quot(s(x),s(y),z) -> quot(x,y,z) 0.17/0.20 quot(x,0(),s(z)) -> s(div(x,s(z))) 0.17/0.20 div(div(x,y),z) -> div(x,times(zero(y),z)) 0.17/0.20 eq(0(),0()) -> true() 0.17/0.20 eq(s(x),0()) -> false() 0.17/0.20 eq(0(),s(y)) -> false() 0.17/0.20 eq(s(x),s(y)) -> eq(x,y) 0.17/0.20 divides(y,x) -> eq(x,times(div(x,y),y)) 0.17/0.20 prime(s(s(x))) -> pr(s(s(x)),s(x)) 0.17/0.20 pr(x,s(0())) -> true() 0.17/0.20 pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) 0.17/0.20 if(true(),x,y) -> false() 0.17/0.20 if(false(),x,y) -> pr(x,y) 0.17/0.20 zero(div(x,x)) -> x 0.17/0.20 zero(divides(x,x)) -> x 0.17/0.20 zero(times(x,x)) -> x 0.17/0.20 zero(quot(x,x,x)) -> x 0.17/0.20 zero(s(x)) -> if(eq(x,s(0())),plus(zero(0()),0()),s(plus(0(),zero(0())))) 0.17/0.20 0.17/0.20 Proof: 0.17/0.20 Open 0.17/0.20 EOF