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