MAYBE Problem: lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) plus(x,0()) -> x plus(x,s(y)) -> s(plus(x,y)) quot(x,s(y)) -> help(x,s(y),0()) help(x,s(y),c) -> if(lt(c,x),x,s(y),c) if(true(),x,s(y),c) -> s(help(x,s(y),plus(c,s(y)))) if(false(),x,s(y),c) -> 0() Proof: DP Processor: DPs: lt#(s(x),s(y)) -> lt#(x,y) plus#(x,s(y)) -> plus#(x,y) quot#(x,s(y)) -> help#(x,s(y),0()) help#(x,s(y),c) -> lt#(c,x) help#(x,s(y),c) -> if#(lt(c,x),x,s(y),c) if#(true(),x,s(y),c) -> plus#(c,s(y)) if#(true(),x,s(y),c) -> help#(x,s(y),plus(c,s(y))) TRS: lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) plus(x,0()) -> x plus(x,s(y)) -> s(plus(x,y)) quot(x,s(y)) -> help(x,s(y),0()) help(x,s(y),c) -> if(lt(c,x),x,s(y),c) if(true(),x,s(y),c) -> s(help(x,s(y),plus(c,s(y)))) if(false(),x,s(y),c) -> 0() TDG Processor: DPs: lt#(s(x),s(y)) -> lt#(x,y) plus#(x,s(y)) -> plus#(x,y) quot#(x,s(y)) -> help#(x,s(y),0()) help#(x,s(y),c) -> lt#(c,x) help#(x,s(y),c) -> if#(lt(c,x),x,s(y),c) if#(true(),x,s(y),c) -> plus#(c,s(y)) if#(true(),x,s(y),c) -> help#(x,s(y),plus(c,s(y))) TRS: lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) plus(x,0()) -> x plus(x,s(y)) -> s(plus(x,y)) quot(x,s(y)) -> help(x,s(y),0()) help(x,s(y),c) -> if(lt(c,x),x,s(y),c) if(true(),x,s(y),c) -> s(help(x,s(y),plus(c,s(y)))) if(false(),x,s(y),c) -> 0() graph: if#(true(),x,s(y),c) -> help#(x,s(y),plus(c,s(y))) -> help#(x,s(y),c) -> if#(lt(c,x),x,s(y),c) if#(true(),x,s(y),c) -> help#(x,s(y),plus(c,s(y))) -> help#(x,s(y),c) -> lt#(c,x) if#(true(),x,s(y),c) -> plus#(c,s(y)) -> plus#(x,s(y)) -> plus#(x,y) help#(x,s(y),c) -> if#(lt(c,x),x,s(y),c) -> if#(true(),x,s(y),c) -> help#(x,s(y),plus(c,s(y))) help#(x,s(y),c) -> if#(lt(c,x),x,s(y),c) -> if#(true(),x,s(y),c) -> plus#(c,s(y)) help#(x,s(y),c) -> lt#(c,x) -> lt#(s(x),s(y)) -> lt#(x,y) quot#(x,s(y)) -> help#(x,s(y),0()) -> help#(x,s(y),c) -> if#(lt(c,x),x,s(y),c) quot#(x,s(y)) -> help#(x,s(y),0()) -> help#(x,s(y),c) -> lt#(c,x) plus#(x,s(y)) -> plus#(x,y) -> plus#(x,s(y)) -> plus#(x,y) lt#(s(x),s(y)) -> lt#(x,y) -> lt#(s(x),s(y)) -> lt#(x,y) SCC Processor: #sccs: 3 #rules: 4 #arcs: 10/49 DPs: if#(true(),x,s(y),c) -> help#(x,s(y),plus(c,s(y))) help#(x,s(y),c) -> if#(lt(c,x),x,s(y),c) TRS: lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) plus(x,0()) -> x plus(x,s(y)) -> s(plus(x,y)) quot(x,s(y)) -> help(x,s(y),0()) help(x,s(y),c) -> if(lt(c,x),x,s(y),c) if(true(),x,s(y),c) -> s(help(x,s(y),plus(c,s(y)))) if(false(),x,s(y),c) -> 0() Open DPs: plus#(x,s(y)) -> plus#(x,y) TRS: lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) plus(x,0()) -> x plus(x,s(y)) -> s(plus(x,y)) quot(x,s(y)) -> help(x,s(y),0()) help(x,s(y),c) -> if(lt(c,x),x,s(y),c) if(true(),x,s(y),c) -> s(help(x,s(y),plus(c,s(y)))) if(false(),x,s(y),c) -> 0() Subterm Criterion Processor: simple projection: pi(plus#) = 1 problem: DPs: TRS: lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) plus(x,0()) -> x plus(x,s(y)) -> s(plus(x,y)) quot(x,s(y)) -> help(x,s(y),0()) help(x,s(y),c) -> if(lt(c,x),x,s(y),c) if(true(),x,s(y),c) -> s(help(x,s(y),plus(c,s(y)))) if(false(),x,s(y),c) -> 0() Qed DPs: lt#(s(x),s(y)) -> lt#(x,y) TRS: lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) plus(x,0()) -> x plus(x,s(y)) -> s(plus(x,y)) quot(x,s(y)) -> help(x,s(y),0()) help(x,s(y),c) -> if(lt(c,x),x,s(y),c) if(true(),x,s(y),c) -> s(help(x,s(y),plus(c,s(y)))) if(false(),x,s(y),c) -> 0() Subterm Criterion Processor: simple projection: pi(lt#) = 1 problem: DPs: TRS: lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) plus(x,0()) -> x plus(x,s(y)) -> s(plus(x,y)) quot(x,s(y)) -> help(x,s(y),0()) help(x,s(y),c) -> if(lt(c,x),x,s(y),c) if(true(),x,s(y),c) -> s(help(x,s(y),plus(c,s(y)))) if(false(),x,s(y),c) -> 0() Qed