YES Problem: a__2nd(cons(X,cons(Y,Z))) -> mark(Y) a__from(X) -> cons(mark(X),from(s(X))) mark(2nd(X)) -> a__2nd(mark(X)) mark(from(X)) -> a__from(mark(X)) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) a__2nd(X) -> 2nd(X) a__from(X) -> from(X) Proof: DP Processor: DPs: a__2nd#(cons(X,cons(Y,Z))) -> mark#(Y) a__from#(X) -> mark#(X) mark#(2nd(X)) -> mark#(X) mark#(2nd(X)) -> a__2nd#(mark(X)) mark#(from(X)) -> mark#(X) mark#(from(X)) -> a__from#(mark(X)) mark#(cons(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) TRS: a__2nd(cons(X,cons(Y,Z))) -> mark(Y) a__from(X) -> cons(mark(X),from(s(X))) mark(2nd(X)) -> a__2nd(mark(X)) mark(from(X)) -> a__from(mark(X)) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) a__2nd(X) -> 2nd(X) a__from(X) -> from(X) Matrix Interpretation Processor: dim=1 usable rules: a__2nd(cons(X,cons(Y,Z))) -> mark(Y) a__from(X) -> cons(mark(X),from(s(X))) mark(2nd(X)) -> a__2nd(mark(X)) mark(from(X)) -> a__from(mark(X)) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) a__2nd(X) -> 2nd(X) a__from(X) -> from(X) interpretation: [a__from#](x0) = x0 + 1/2, [mark#](x0) = x0, [a__2nd#](x0) = 2x0 + 1/2, [2nd](x0) = 2x0 + 3/2, [from](x0) = 2x0 + 3, [s](x0) = x0 + 1/2, [a__from](x0) = 2x0 + 3, [mark](x0) = x0, [a__2nd](x0) = 2x0 + 3/2, [cons](x0, x1) = x0 + 1/2x1 + 1 orientation: a__2nd#(cons(X,cons(Y,Z))) = 2X + Y + 1/2Z + 7/2 >= Y = mark#(Y) a__from#(X) = X + 1/2 >= X = mark#(X) mark#(2nd(X)) = 2X + 3/2 >= X = mark#(X) mark#(2nd(X)) = 2X + 3/2 >= 2X + 1/2 = a__2nd#(mark(X)) mark#(from(X)) = 2X + 3 >= X = mark#(X) mark#(from(X)) = 2X + 3 >= X + 1/2 = a__from#(mark(X)) mark#(cons(X1,X2)) = X1 + 1/2X2 + 1 >= X1 = mark#(X1) mark#(s(X)) = X + 1/2 >= X = mark#(X) a__2nd(cons(X,cons(Y,Z))) = 2X + Y + 1/2Z + 9/2 >= Y = mark(Y) a__from(X) = 2X + 3 >= 2X + 3 = cons(mark(X),from(s(X))) mark(2nd(X)) = 2X + 3/2 >= 2X + 3/2 = a__2nd(mark(X)) mark(from(X)) = 2X + 3 >= 2X + 3 = a__from(mark(X)) mark(cons(X1,X2)) = X1 + 1/2X2 + 1 >= X1 + 1/2X2 + 1 = cons(mark(X1),X2) mark(s(X)) = X + 1/2 >= X + 1/2 = s(mark(X)) a__2nd(X) = 2X + 3/2 >= 2X + 3/2 = 2nd(X) a__from(X) = 2X + 3 >= 2X + 3 = from(X) problem: DPs: TRS: a__2nd(cons(X,cons(Y,Z))) -> mark(Y) a__from(X) -> cons(mark(X),from(s(X))) mark(2nd(X)) -> a__2nd(mark(X)) mark(from(X)) -> a__from(mark(X)) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) a__2nd(X) -> 2nd(X) a__from(X) -> from(X) Qed