MAYBE Problem: div(x,s(y)) -> d(x,s(y),0()) d(x,s(y),z) -> cond(ge(x,z),x,y,z) cond(true(),x,y,z) -> s(d(x,s(y),plus(s(y),z))) cond(false(),x,y,z) -> 0() ge(u,0()) -> true() ge(0(),s(v)) -> false() ge(s(u),s(v)) -> ge(u,v) plus(n,0()) -> n plus(n,s(m)) -> s(plus(n,m)) Proof: DP Processor: DPs: div#(x,s(y)) -> d#(x,s(y),0()) d#(x,s(y),z) -> ge#(x,z) d#(x,s(y),z) -> cond#(ge(x,z),x,y,z) cond#(true(),x,y,z) -> plus#(s(y),z) cond#(true(),x,y,z) -> d#(x,s(y),plus(s(y),z)) ge#(s(u),s(v)) -> ge#(u,v) plus#(n,s(m)) -> plus#(n,m) TRS: div(x,s(y)) -> d(x,s(y),0()) d(x,s(y),z) -> cond(ge(x,z),x,y,z) cond(true(),x,y,z) -> s(d(x,s(y),plus(s(y),z))) cond(false(),x,y,z) -> 0() ge(u,0()) -> true() ge(0(),s(v)) -> false() ge(s(u),s(v)) -> ge(u,v) plus(n,0()) -> n plus(n,s(m)) -> s(plus(n,m)) Usable Rule Processor: DPs: div#(x,s(y)) -> d#(x,s(y),0()) d#(x,s(y),z) -> ge#(x,z) d#(x,s(y),z) -> cond#(ge(x,z),x,y,z) cond#(true(),x,y,z) -> plus#(s(y),z) cond#(true(),x,y,z) -> d#(x,s(y),plus(s(y),z)) ge#(s(u),s(v)) -> ge#(u,v) plus#(n,s(m)) -> plus#(n,m) TRS: ge(u,0()) -> true() ge(0(),s(v)) -> false() ge(s(u),s(v)) -> ge(u,v) plus(n,0()) -> n plus(n,s(m)) -> s(plus(n,m)) Open