YES Problem: from(X) -> cons(X,n__from(n__s(X))) sel(0(),cons(X,Y)) -> X sel(s(X),cons(Y,Z)) -> sel(X,activate(Z)) 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: sel#(s(X),cons(Y,Z)) -> activate#(Z) sel#(s(X),cons(Y,Z)) -> sel#(X,activate(Z)) 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))) sel(0(),cons(X,Y)) -> X sel(s(X),cons(Y,Z)) -> sel(X,activate(Z)) 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: sel#(s(X),cons(Y,Z)) -> activate#(Z) sel#(s(X),cons(Y,Z)) -> sel#(X,activate(Z)) 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=2 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]x0, [activate#](x0) = [1 0]x0, [sel#](x0, x1) = [2 0]x0 + [0 1]x1 + [1], [from#](x0) = [1 0]x0, [1 0] [0] [activate](x0) = [1 3]x0 + [2], [1 0] [1] [s](x0) = [2 0]x0 + [0], [0 0] [1] [cons](x0, x1) = [1 3]x1 + [1], [1 0] [1] [n__from](x0) = [0 0]x0 + [0], [1 0] [1] [n__s](x0) = [2 0]x0 + [0], [1 0] [1] [from](x0) = [1 0]x0 + [3] orientation: sel#(s(X),cons(Y,Z)) = [2 0]X + [1 3]Z + [4] >= [1 0]Z = activate#(Z) sel#(s(X),cons(Y,Z)) = [2 0]X + [1 3]Z + [4] >= [2 0]X + [1 3]Z + [3] = sel#(X,activate(Z)) activate#(n__from(X)) = [1 0]X + [1] >= [1 0]X = activate#(X) activate#(n__from(X)) = [1 0]X + [1] >= [1 0]X = from#(activate(X)) activate#(n__s(X)) = [1 0]X + [1] >= [1 0]X = activate#(X) activate#(n__s(X)) = [1 0]X + [1] >= [1 0]X = s#(activate(X)) [1 0] [1] [1 0] [1] activate(n__from(X)) = [1 0]X + [3] >= [1 0]X + [3] = from(activate(X)) [1 0] [1] [1 0] [1] activate(n__s(X)) = [7 0]X + [3] >= [2 0]X + [0] = s(activate(X)) [1 0] [0] activate(X) = [1 3]X + [2] >= X = X [1 0] [1] [0 0] [1] from(X) = [1 0]X + [3] >= [1 0]X + [3] = cons(X,n__from(n__s(X))) [1 0] [1] [1 0] [1] from(X) = [1 0]X + [3] >= [0 0]X + [0] = n__from(X) [1 0] [1] [1 0] [1] s(X) = [2 0]X + [0] >= [2 0]X + [0] = n__s(X) 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