YES Problem: from(X) -> cons(X,n__from(s(X))) head(cons(X,XS)) -> X 2nd(cons(X,XS)) -> head(activate(XS)) take(0(),XS) -> nil() take(s(N),cons(X,XS)) -> cons(X,n__take(N,activate(XS))) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,activate(XS)) from(X) -> n__from(X) take(X1,X2) -> n__take(X1,X2) activate(n__from(X)) -> from(X) activate(n__take(X1,X2)) -> take(X1,X2) activate(X) -> X Proof: DP Processor: DPs: 2nd#(cons(X,XS)) -> activate#(XS) 2nd#(cons(X,XS)) -> head#(activate(XS)) take#(s(N),cons(X,XS)) -> activate#(XS) sel#(s(N),cons(X,XS)) -> activate#(XS) sel#(s(N),cons(X,XS)) -> sel#(N,activate(XS)) activate#(n__from(X)) -> from#(X) activate#(n__take(X1,X2)) -> take#(X1,X2) TRS: from(X) -> cons(X,n__from(s(X))) head(cons(X,XS)) -> X 2nd(cons(X,XS)) -> head(activate(XS)) take(0(),XS) -> nil() take(s(N),cons(X,XS)) -> cons(X,n__take(N,activate(XS))) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,activate(XS)) from(X) -> n__from(X) take(X1,X2) -> n__take(X1,X2) activate(n__from(X)) -> from(X) activate(n__take(X1,X2)) -> take(X1,X2) activate(X) -> X Usable Rule Processor: DPs: 2nd#(cons(X,XS)) -> activate#(XS) 2nd#(cons(X,XS)) -> head#(activate(XS)) take#(s(N),cons(X,XS)) -> activate#(XS) sel#(s(N),cons(X,XS)) -> activate#(XS) sel#(s(N),cons(X,XS)) -> sel#(N,activate(XS)) activate#(n__from(X)) -> from#(X) activate#(n__take(X1,X2)) -> take#(X1,X2) TRS: activate(n__from(X)) -> from(X) activate(n__take(X1,X2)) -> take(X1,X2) activate(X) -> X from(X) -> cons(X,n__from(s(X))) from(X) -> n__from(X) take(0(),XS) -> nil() take(s(N),cons(X,XS)) -> cons(X,n__take(N,activate(XS))) take(X1,X2) -> n__take(X1,X2) Matrix Interpretation Processor: dim=1 usable rules: activate(n__from(X)) -> from(X) activate(n__take(X1,X2)) -> take(X1,X2) activate(X) -> X from(X) -> cons(X,n__from(s(X))) from(X) -> n__from(X) take(0(),XS) -> nil() take(s(N),cons(X,XS)) -> cons(X,n__take(N,activate(XS))) take(X1,X2) -> n__take(X1,X2) interpretation: [sel#](x0, x1) = x0 + 4x1, [take#](x0, x1) = x1 + 4, [activate#](x0) = x0 + 4, [2nd#](x0) = 4x0 + 5, [head#](x0) = 4x0 + 4, [from#](x0) = 0, [n__take](x0, x1) = 4x1 + 1, [nil] = 0, [take](x0, x1) = 4x1 + 4, [0] = 0, [activate](x0) = x0 + 3, [cons](x0, x1) = x1 + 3, [n__from](x0) = 0, [s](x0) = x0 + 4, [from](x0) = 3 orientation: 2nd#(cons(X,XS)) = 4XS + 17 >= XS + 4 = activate#(XS) 2nd#(cons(X,XS)) = 4XS + 17 >= 4XS + 16 = head#(activate(XS)) take#(s(N),cons(X,XS)) = XS + 7 >= XS + 4 = activate#(XS) sel#(s(N),cons(X,XS)) = N + 4XS + 16 >= XS + 4 = activate#(XS) sel#(s(N),cons(X,XS)) = N + 4XS + 16 >= N + 4XS + 12 = sel#(N,activate(XS)) activate#(n__from(X)) = 4 >= 0 = from#(X) activate#(n__take(X1,X2)) = 4X2 + 5 >= X2 + 4 = take#(X1,X2) activate(n__from(X)) = 3 >= 3 = from(X) activate(n__take(X1,X2)) = 4X2 + 4 >= 4X2 + 4 = take(X1,X2) activate(X) = X + 3 >= X = X from(X) = 3 >= 3 = cons(X,n__from(s(X))) from(X) = 3 >= 0 = n__from(X) take(0(),XS) = 4XS + 4 >= 0 = nil() take(s(N),cons(X,XS)) = 4XS + 16 >= 4XS + 16 = cons(X,n__take(N,activate(XS))) take(X1,X2) = 4X2 + 4 >= 4X2 + 1 = n__take(X1,X2) problem: DPs: TRS: activate(n__from(X)) -> from(X) activate(n__take(X1,X2)) -> take(X1,X2) activate(X) -> X from(X) -> cons(X,n__from(s(X))) from(X) -> n__from(X) take(0(),XS) -> nil() take(s(N),cons(X,XS)) -> cons(X,n__take(N,activate(XS))) take(X1,X2) -> n__take(X1,X2) Qed