YES Problem: -(x,0()) -> x -(0(),s(y)) -> 0() -(s(x),s(y)) -> -(x,y) lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) if(true(),x,y) -> x if(false(),x,y) -> y div(x,0()) -> 0() div(0(),y) -> 0() div(s(x),s(y)) -> if(lt(x,y),0(),s(div(-(x,y),s(y)))) Proof: DP Processor: DPs: -#(s(x),s(y)) -> -#(x,y) lt#(s(x),s(y)) -> lt#(x,y) div#(s(x),s(y)) -> -#(x,y) div#(s(x),s(y)) -> div#(-(x,y),s(y)) div#(s(x),s(y)) -> lt#(x,y) div#(s(x),s(y)) -> if#(lt(x,y),0(),s(div(-(x,y),s(y)))) TRS: -(x,0()) -> x -(0(),s(y)) -> 0() -(s(x),s(y)) -> -(x,y) lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) if(true(),x,y) -> x if(false(),x,y) -> y div(x,0()) -> 0() div(0(),y) -> 0() div(s(x),s(y)) -> if(lt(x,y),0(),s(div(-(x,y),s(y)))) EDG Processor: DPs: -#(s(x),s(y)) -> -#(x,y) lt#(s(x),s(y)) -> lt#(x,y) div#(s(x),s(y)) -> -#(x,y) div#(s(x),s(y)) -> div#(-(x,y),s(y)) div#(s(x),s(y)) -> lt#(x,y) div#(s(x),s(y)) -> if#(lt(x,y),0(),s(div(-(x,y),s(y)))) TRS: -(x,0()) -> x -(0(),s(y)) -> 0() -(s(x),s(y)) -> -(x,y) lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) if(true(),x,y) -> x if(false(),x,y) -> y div(x,0()) -> 0() div(0(),y) -> 0() div(s(x),s(y)) -> if(lt(x,y),0(),s(div(-(x,y),s(y)))) graph: div#(s(x),s(y)) -> div#(-(x,y),s(y)) -> div#(s(x),s(y)) -> -#(x,y) div#(s(x),s(y)) -> div#(-(x,y),s(y)) -> div#(s(x),s(y)) -> div#(-(x,y),s(y)) div#(s(x),s(y)) -> div#(-(x,y),s(y)) -> div#(s(x),s(y)) -> lt#(x,y) div#(s(x),s(y)) -> div#(-(x,y),s(y)) -> div#(s(x),s(y)) -> if#(lt(x,y),0(),s(div(-(x,y),s(y)))) div#(s(x),s(y)) -> lt#(x,y) -> lt#(s(x),s(y)) -> lt#(x,y) div#(s(x),s(y)) -> -#(x,y) -> -#(s(x),s(y)) -> -#(x,y) lt#(s(x),s(y)) -> lt#(x,y) -> lt#(s(x),s(y)) -> lt#(x,y) -#(s(x),s(y)) -> -#(x,y) -> -#(s(x),s(y)) -> -#(x,y) SCC Processor: #sccs: 3 #rules: 3 #arcs: 8/36 DPs: div#(s(x),s(y)) -> div#(-(x,y),s(y)) TRS: -(x,0()) -> x -(0(),s(y)) -> 0() -(s(x),s(y)) -> -(x,y) lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) if(true(),x,y) -> x if(false(),x,y) -> y div(x,0()) -> 0() div(0(),y) -> 0() div(s(x),s(y)) -> if(lt(x,y),0(),s(div(-(x,y),s(y)))) Matrix Interpretation Processor: dimension: 1 interpretation: [div#](x0, x1) = x0, [div](x0, x1) = x0, [if](x0, x1, x2) = x1 + x2, [true] = 0, [false] = 0, [lt](x0, x1) = 0, [s](x0) = x0 + 1, [-](x0, x1) = x0, [0] = 0 orientation: div#(s(x),s(y)) = x + 1 >= x = div#(-(x,y),s(y)) -(x,0()) = x >= x = x -(0(),s(y)) = 0 >= 0 = 0() -(s(x),s(y)) = x + 1 >= x = -(x,y) lt(x,0()) = 0 >= 0 = false() lt(0(),s(y)) = 0 >= 0 = true() lt(s(x),s(y)) = 0 >= 0 = lt(x,y) if(true(),x,y) = x + y >= x = x if(false(),x,y) = x + y >= y = y div(x,0()) = x >= 0 = 0() div(0(),y) = 0 >= 0 = 0() div(s(x),s(y)) = x + 1 >= x + 1 = if(lt(x,y),0(),s(div(-(x,y),s(y)))) problem: DPs: TRS: -(x,0()) -> x -(0(),s(y)) -> 0() -(s(x),s(y)) -> -(x,y) lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) if(true(),x,y) -> x if(false(),x,y) -> y div(x,0()) -> 0() div(0(),y) -> 0() div(s(x),s(y)) -> if(lt(x,y),0(),s(div(-(x,y),s(y)))) Qed DPs: -#(s(x),s(y)) -> -#(x,y) TRS: -(x,0()) -> x -(0(),s(y)) -> 0() -(s(x),s(y)) -> -(x,y) lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) if(true(),x,y) -> x if(false(),x,y) -> y div(x,0()) -> 0() div(0(),y) -> 0() div(s(x),s(y)) -> if(lt(x,y),0(),s(div(-(x,y),s(y)))) Subterm Criterion Processor: simple projection: pi(-#) = 1 problem: DPs: TRS: -(x,0()) -> x -(0(),s(y)) -> 0() -(s(x),s(y)) -> -(x,y) lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) if(true(),x,y) -> x if(false(),x,y) -> y div(x,0()) -> 0() div(0(),y) -> 0() div(s(x),s(y)) -> if(lt(x,y),0(),s(div(-(x,y),s(y)))) Qed DPs: lt#(s(x),s(y)) -> lt#(x,y) TRS: -(x,0()) -> x -(0(),s(y)) -> 0() -(s(x),s(y)) -> -(x,y) lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) if(true(),x,y) -> x if(false(),x,y) -> y div(x,0()) -> 0() div(0(),y) -> 0() div(s(x),s(y)) -> if(lt(x,y),0(),s(div(-(x,y),s(y)))) Subterm Criterion Processor: simple projection: pi(lt#) = 1 problem: DPs: TRS: -(x,0()) -> x -(0(),s(y)) -> 0() -(s(x),s(y)) -> -(x,y) lt(x,0()) -> false() lt(0(),s(y)) -> true() lt(s(x),s(y)) -> lt(x,y) if(true(),x,y) -> x if(false(),x,y) -> y div(x,0()) -> 0() div(0(),y) -> 0() div(s(x),s(y)) -> if(lt(x,y),0(),s(div(-(x,y),s(y)))) Qed