YES Problem: from(X) -> cons(X,n__from(n__s(X))) after(0(),XS) -> XS after(s(N),cons(X,XS)) -> after(N,activate(XS)) from(X) -> n__from(X) s(X) -> n__s(X) activate(n__from(X)) -> from(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Proof: DP Processor: DPs: after#(s(N),cons(X,XS)) -> activate#(XS) after#(s(N),cons(X,XS)) -> after#(N,activate(XS)) activate#(n__from(X)) -> activate#(X) activate#(n__from(X)) -> from#(activate(X)) activate#(n__s(X)) -> activate#(X) activate#(n__s(X)) -> s#(activate(X)) TRS: from(X) -> cons(X,n__from(n__s(X))) after(0(),XS) -> XS after(s(N),cons(X,XS)) -> after(N,activate(XS)) from(X) -> n__from(X) s(X) -> n__s(X) activate(n__from(X)) -> from(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Usable Rule Processor: DPs: after#(s(N),cons(X,XS)) -> activate#(XS) after#(s(N),cons(X,XS)) -> after#(N,activate(XS)) activate#(n__from(X)) -> activate#(X) activate#(n__from(X)) -> from#(activate(X)) activate#(n__s(X)) -> activate#(X) activate#(n__s(X)) -> s#(activate(X)) TRS: activate(n__from(X)) -> from(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X from(X) -> cons(X,n__from(n__s(X))) from(X) -> n__from(X) s(X) -> n__s(X) Matrix Interpretation Processor: dim=3 usable rules: activate(n__from(X)) -> from(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X from(X) -> cons(X,n__from(n__s(X))) from(X) -> n__from(X) s(X) -> n__s(X) interpretation: [s#](x0) = [1 0 0]x0 + [1], [activate#](x0) = [1 0 1]x0 + [1], [after#](x0, x1) = [1 1 0]x0 + [0 1 1]x1 + [1], [from#](x0) = [1 0 0]x0, [1 0 0] [0] [activate](x0) = [1 1 0]x0 + [1] [0 0 1] [0], [1 0 0] [1] [s](x0) = [1 1 0]x0 + [1] [0 0 1] [0], [1 0 0] [0 0 0] [cons](x0, x1) = [0 0 0]x0 + [1 0 0]x1 [0 0 0] [0 1 1] , [1 0 0] [0] [n__from](x0) = [0 0 0]x0 + [0] [0 0 1] [1], [1 0 0] [1] [n__s](x0) = [1 1 0]x0 + [0] [0 0 1] [0], [1 0 0] [0] [from](x0) = [1 0 0]x0 + [1] [0 0 1] [1] orientation: after#(s(N),cons(X,XS)) = [2 1 0]N + [1 1 1]XS + [3] >= [1 0 1]XS + [1] = activate#(XS) after#(s(N),cons(X,XS)) = [2 1 0]N + [1 1 1]XS + [3] >= [1 1 0]N + [1 1 1]XS + [2] = after#(N,activate(XS)) activate#(n__from(X)) = [1 0 1]X + [2] >= [1 0 1]X + [1] = activate#(X) activate#(n__from(X)) = [1 0 1]X + [2] >= [1 0 0]X = from#(activate(X)) activate#(n__s(X)) = [1 0 1]X + [2] >= [1 0 1]X + [1] = activate#(X) activate#(n__s(X)) = [1 0 1]X + [2] >= [1 0 0]X + [1] = s#(activate(X)) [1 0 0] [0] [1 0 0] [0] activate(n__from(X)) = [1 0 0]X + [1] >= [1 0 0]X + [1] = from(activate(X)) [0 0 1] [1] [0 0 1] [1] [1 0 0] [1] [1 0 0] [1] activate(n__s(X)) = [2 1 0]X + [2] >= [2 1 0]X + [2] = s(activate(X)) [0 0 1] [0] [0 0 1] [0] [1 0 0] [0] activate(X) = [1 1 0]X + [1] >= X = X [0 0 1] [0] [1 0 0] [0] [1 0 0] [0] from(X) = [1 0 0]X + [1] >= [1 0 0]X + [1] = cons(X,n__from(n__s(X))) [0 0 1] [1] [0 0 1] [1] [1 0 0] [0] [1 0 0] [0] from(X) = [1 0 0]X + [1] >= [0 0 0]X + [0] = n__from(X) [0 0 1] [1] [0 0 1] [1] [1 0 0] [1] [1 0 0] [1] s(X) = [1 1 0]X + [1] >= [1 1 0]X + [0] = n__s(X) [0 0 1] [0] [0 0 1] [0] problem: DPs: TRS: activate(n__from(X)) -> from(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X from(X) -> cons(X,n__from(n__s(X))) from(X) -> n__from(X) s(X) -> n__s(X) Qed