MAYBE 0.08/0.19 MAYBE 0.08/0.19 0.08/0.19 Problem: 0.08/0.19 lcm(x,y) -> lcmIter(x,y,0(),times(x,y)) 0.08/0.19 lcmIter(x,y,z,u) -> if(or(ge(0(),x),ge(z,u)),x,y,z,u) 0.08/0.19 if(true(),x,y,z,u) -> z 0.08/0.19 if(false(),x,y,z,u) -> if2(divisible(z,y),x,y,z,u) 0.08/0.19 if2(true(),x,y,z,u) -> z 0.08/0.19 if2(false(),x,y,z,u) -> lcmIter(x,y,plus(x,z),u) 0.08/0.19 plus(0(),y) -> y 0.08/0.19 plus(s(x),y) -> s(plus(x,y)) 0.08/0.19 times(x,y) -> ifTimes(ge(0(),x),x,y) 0.08/0.19 ifTimes(true(),x,y) -> 0() 0.08/0.19 ifTimes(false(),x,y) -> plus(y,times(y,p(x))) 0.08/0.19 p(s(x)) -> x 0.08/0.19 p(0()) -> s(s(0())) 0.08/0.19 ge(x,0()) -> true() 0.08/0.19 ge(0(),s(y)) -> false() 0.08/0.19 ge(s(x),s(y)) -> ge(x,y) 0.08/0.19 or(true(),y) -> true() 0.08/0.19 or(false(),y) -> y 0.08/0.19 divisible(0(),s(y)) -> true() 0.08/0.19 divisible(s(x),s(y)) -> div(s(x),s(y),s(y)) 0.08/0.19 div(x,y,0()) -> divisible(x,y) 0.08/0.19 div(0(),y,s(z)) -> false() 0.08/0.19 div(s(x),y,s(z)) -> div(x,y,z) 0.08/0.19 a() -> b() 0.08/0.19 a() -> c() 0.08/0.19 0.08/0.19 Proof: 0.08/0.19 Open 0.08/0.19 EOF