MAYBE 0.08/0.18 MAYBE 0.08/0.18 0.08/0.18 Problem: 0.08/0.18 plus(0(),x) -> x 0.08/0.18 plus(s(x),y) -> s(plus(x,y)) 0.08/0.18 times(0(),y) -> 0() 0.08/0.18 times(s(x),y) -> plus(y,times(x,y)) 0.08/0.18 exp(x,0()) -> s(0()) 0.08/0.18 exp(x,s(y)) -> times(x,exp(x,y)) 0.08/0.18 ge(x,0()) -> true() 0.08/0.18 ge(0(),s(x)) -> false() 0.08/0.18 ge(s(x),s(y)) -> ge(x,y) 0.08/0.18 tower(x,y) -> towerIter(0(),x,y,s(0())) 0.08/0.18 towerIter(c,x,y,z) -> help(ge(c,x),c,x,y,z) 0.08/0.18 help(true(),c,x,y,z) -> z 0.08/0.18 help(false(),c,x,y,z) -> towerIter(s(c),x,y,exp(y,z)) 0.08/0.18 0.08/0.18 Proof: 0.08/0.18 Open 0.08/0.19 EOF