MAYBE Problem: ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) div(x,y) -> ify(ge(y,s(0())),x,y) ify(false(),x,y) -> divByZeroError() ify(true(),x,y) -> if(ge(x,y),x,y) if(false(),x,y) -> 0() if(true(),x,y) -> s(div(minus(x,y),y)) Proof: DP Processor: DPs: ge#(s(x),s(y)) -> ge#(x,y) minus#(s(x),s(y)) -> minus#(x,y) div#(x,y) -> ge#(y,s(0())) div#(x,y) -> ify#(ge(y,s(0())),x,y) ify#(true(),x,y) -> ge#(x,y) ify#(true(),x,y) -> if#(ge(x,y),x,y) if#(true(),x,y) -> minus#(x,y) if#(true(),x,y) -> div#(minus(x,y),y) TRS: ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) div(x,y) -> ify(ge(y,s(0())),x,y) ify(false(),x,y) -> divByZeroError() ify(true(),x,y) -> if(ge(x,y),x,y) if(false(),x,y) -> 0() if(true(),x,y) -> s(div(minus(x,y),y)) TDG Processor: DPs: ge#(s(x),s(y)) -> ge#(x,y) minus#(s(x),s(y)) -> minus#(x,y) div#(x,y) -> ge#(y,s(0())) div#(x,y) -> ify#(ge(y,s(0())),x,y) ify#(true(),x,y) -> ge#(x,y) ify#(true(),x,y) -> if#(ge(x,y),x,y) if#(true(),x,y) -> minus#(x,y) if#(true(),x,y) -> div#(minus(x,y),y) TRS: ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) div(x,y) -> ify(ge(y,s(0())),x,y) ify(false(),x,y) -> divByZeroError() ify(true(),x,y) -> if(ge(x,y),x,y) if(false(),x,y) -> 0() if(true(),x,y) -> s(div(minus(x,y),y)) graph: if#(true(),x,y) -> div#(minus(x,y),y) -> div#(x,y) -> ify#(ge(y,s(0())),x,y) if#(true(),x,y) -> div#(minus(x,y),y) -> div#(x,y) -> ge#(y,s(0())) if#(true(),x,y) -> minus#(x,y) -> minus#(s(x),s(y)) -> minus#(x,y) ify#(true(),x,y) -> if#(ge(x,y),x,y) -> if#(true(),x,y) -> div#(minus(x,y),y) ify#(true(),x,y) -> if#(ge(x,y),x,y) -> if#(true(),x,y) -> minus#(x,y) ify#(true(),x,y) -> ge#(x,y) -> ge#(s(x),s(y)) -> ge#(x,y) div#(x,y) -> ify#(ge(y,s(0())),x,y) -> ify#(true(),x,y) -> if#(ge(x,y),x,y) div#(x,y) -> ify#(ge(y,s(0())),x,y) -> ify#(true(),x,y) -> ge#(x,y) div#(x,y) -> ge#(y,s(0())) -> ge#(s(x),s(y)) -> ge#(x,y) minus#(s(x),s(y)) -> minus#(x,y) -> minus#(s(x),s(y)) -> minus#(x,y) ge#(s(x),s(y)) -> ge#(x,y) -> ge#(s(x),s(y)) -> ge#(x,y) SCC Processor: #sccs: 3 #rules: 5 #arcs: 11/64 DPs: if#(true(),x,y) -> div#(minus(x,y),y) div#(x,y) -> ify#(ge(y,s(0())),x,y) ify#(true(),x,y) -> if#(ge(x,y),x,y) TRS: ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) div(x,y) -> ify(ge(y,s(0())),x,y) ify(false(),x,y) -> divByZeroError() ify(true(),x,y) -> if(ge(x,y),x,y) if(false(),x,y) -> 0() if(true(),x,y) -> s(div(minus(x,y),y)) Open DPs: minus#(s(x),s(y)) -> minus#(x,y) TRS: ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) div(x,y) -> ify(ge(y,s(0())),x,y) ify(false(),x,y) -> divByZeroError() ify(true(),x,y) -> if(ge(x,y),x,y) if(false(),x,y) -> 0() if(true(),x,y) -> s(div(minus(x,y),y)) Subterm Criterion Processor: simple projection: pi(minus#) = 1 problem: DPs: TRS: ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) div(x,y) -> ify(ge(y,s(0())),x,y) ify(false(),x,y) -> divByZeroError() ify(true(),x,y) -> if(ge(x,y),x,y) if(false(),x,y) -> 0() if(true(),x,y) -> s(div(minus(x,y),y)) Qed DPs: ge#(s(x),s(y)) -> ge#(x,y) TRS: ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) div(x,y) -> ify(ge(y,s(0())),x,y) ify(false(),x,y) -> divByZeroError() ify(true(),x,y) -> if(ge(x,y),x,y) if(false(),x,y) -> 0() if(true(),x,y) -> s(div(minus(x,y),y)) Subterm Criterion Processor: simple projection: pi(ge#) = 1 problem: DPs: TRS: ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) div(x,y) -> ify(ge(y,s(0())),x,y) ify(false(),x,y) -> divByZeroError() ify(true(),x,y) -> if(ge(x,y),x,y) if(false(),x,y) -> 0() if(true(),x,y) -> s(div(minus(x,y),y)) Qed