YES Problem: a__2nd(cons1(X,cons(Y,Z))) -> mark(Y) a__2nd(cons(X,X1)) -> a__2nd(cons1(mark(X),mark(X1))) 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)) mark(cons1(X1,X2)) -> cons1(mark(X1),mark(X2)) a__2nd(X) -> 2nd(X) a__from(X) -> from(X) Proof: DP Processor: DPs: a__2nd#(cons1(X,cons(Y,Z))) -> mark#(Y) a__2nd#(cons(X,X1)) -> mark#(X1) a__2nd#(cons(X,X1)) -> mark#(X) a__2nd#(cons(X,X1)) -> a__2nd#(cons1(mark(X),mark(X1))) 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) mark#(cons1(X1,X2)) -> mark#(X2) mark#(cons1(X1,X2)) -> mark#(X1) TRS: a__2nd(cons1(X,cons(Y,Z))) -> mark(Y) a__2nd(cons(X,X1)) -> a__2nd(cons1(mark(X),mark(X1))) 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)) mark(cons1(X1,X2)) -> cons1(mark(X1),mark(X2)) a__2nd(X) -> 2nd(X) a__from(X) -> from(X) Matrix Interpretation Processor: dim=2 usable rules: a__2nd(cons1(X,cons(Y,Z))) -> mark(Y) a__2nd(cons(X,X1)) -> a__2nd(cons1(mark(X),mark(X1))) 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)) mark(cons1(X1,X2)) -> cons1(mark(X1),mark(X2)) a__2nd(X) -> 2nd(X) a__from(X) -> from(X) interpretation: [a__from#](x0) = [0 1]x0 + [1], [mark#](x0) = [0 1]x0, [a__2nd#](x0) = [2 2]x0, [2 2] [0] [2nd](x0) = [2 2]x0 + [1], [0 2] [3] [from](x0) = [2 1]x0 + [2], [0 0] [0] [s](x0) = [0 1]x0 + [1], [0 2] [3] [a__from](x0) = [2 1]x0 + [2], [mark](x0) = x0, [2 2] [0] [a__2nd](x0) = [2 2]x0 + [1], [0 0] [0 0] [0] [cons1](x0, x1) = [2 1]x0 + [0 1]x1 + [1], [0 0] [0 1] [0] [cons](x0, x1) = [2 1]x0 + [0 0]x1 + [2] orientation: a__2nd#(cons1(X,cons(Y,Z))) = [4 2]X + [4 2]Y + [6] >= [0 1]Y = mark#(Y) a__2nd#(cons(X,X1)) = [4 2]X + [0 2]X1 + [4] >= [0 1]X1 = mark#(X1) a__2nd#(cons(X,X1)) = [4 2]X + [0 2]X1 + [4] >= [0 1]X = mark#(X) a__2nd#(cons(X,X1)) = [4 2]X + [0 2]X1 + [4] >= [4 2]X + [0 2]X1 + [2] = a__2nd#(cons1(mark(X),mark(X1))) a__from#(X) = [0 1]X + [1] >= [0 1]X = mark#(X) mark#(2nd(X)) = [2 2]X + [1] >= [0 1]X = mark#(X) mark#(2nd(X)) = [2 2]X + [1] >= [2 2]X = a__2nd#(mark(X)) mark#(from(X)) = [2 1]X + [2] >= [0 1]X = mark#(X) mark#(from(X)) = [2 1]X + [2] >= [0 1]X + [1] = a__from#(mark(X)) mark#(cons(X1,X2)) = [2 1]X1 + [2] >= [0 1]X1 = mark#(X1) mark#(s(X)) = [0 1]X + [1] >= [0 1]X = mark#(X) mark#(cons1(X1,X2)) = [2 1]X1 + [0 1]X2 + [1] >= [0 1]X2 = mark#(X2) mark#(cons1(X1,X2)) = [2 1]X1 + [0 1]X2 + [1] >= [0 1]X1 = mark#(X1) [4 2] [4 2] [6] a__2nd(cons1(X,cons(Y,Z))) = [4 2]X + [4 2]Y + [7] >= Y = mark(Y) [4 2] [0 2] [4] [4 2] [0 2] [2] a__2nd(cons(X,X1)) = [4 2]X + [0 2]X1 + [5] >= [4 2]X + [0 2]X1 + [3] = a__2nd(cons1(mark(X),mark(X1))) [0 2] [3] [0 1] [3] a__from(X) = [2 1]X + [2] >= [2 1]X + [2] = cons(mark(X),from(s(X))) [2 2] [0] [2 2] [0] mark(2nd(X)) = [2 2]X + [1] >= [2 2]X + [1] = a__2nd(mark(X)) [0 2] [3] [0 2] [3] mark(from(X)) = [2 1]X + [2] >= [2 1]X + [2] = a__from(mark(X)) [0 0] [0 1] [0] [0 0] [0 1] [0] mark(cons(X1,X2)) = [2 1]X1 + [0 0]X2 + [2] >= [2 1]X1 + [0 0]X2 + [2] = cons(mark(X1),X2) [0 0] [0] [0 0] [0] mark(s(X)) = [0 1]X + [1] >= [0 1]X + [1] = s(mark(X)) [0 0] [0 0] [0] [0 0] [0 0] [0] mark(cons1(X1,X2)) = [2 1]X1 + [0 1]X2 + [1] >= [2 1]X1 + [0 1]X2 + [1] = cons1(mark(X1),mark(X2)) [2 2] [0] [2 2] [0] a__2nd(X) = [2 2]X + [1] >= [2 2]X + [1] = 2nd(X) [0 2] [3] [0 2] [3] a__from(X) = [2 1]X + [2] >= [2 1]X + [2] = from(X) problem: DPs: TRS: a__2nd(cons1(X,cons(Y,Z))) -> mark(Y) a__2nd(cons(X,X1)) -> a__2nd(cons1(mark(X),mark(X1))) 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)) mark(cons1(X1,X2)) -> cons1(mark(X1),mark(X2)) a__2nd(X) -> 2nd(X) a__from(X) -> from(X) Qed