YES Problem: f(a,empty()) -> g(a,empty()) f(a,cons(x,k)) -> f(cons(x,a),k) g(empty(),d) -> d g(cons(x,k),d) -> g(k,cons(x,d)) Proof: DP Processor: DPs: f#(a,empty()) -> g#(a,empty()) f#(a,cons(x,k)) -> f#(cons(x,a),k) g#(cons(x,k),d) -> g#(k,cons(x,d)) TRS: f(a,empty()) -> g(a,empty()) f(a,cons(x,k)) -> f(cons(x,a),k) g(empty(),d) -> d g(cons(x,k),d) -> g(k,cons(x,d)) Usable Rule Processor: DPs: f#(a,empty()) -> g#(a,empty()) f#(a,cons(x,k)) -> f#(cons(x,a),k) g#(cons(x,k),d) -> g#(k,cons(x,d)) TRS: Matrix Interpretation Processor: dim=4 usable rules: interpretation: [g#](x0, x1) = [0 0 1 1]x0 + [0 0 1 0]x1, [f#](x0, x1) = [0 0 1 1]x0 + [1 1 1 1]x1, [0 0 1 0] [1 1 0 1] [1] [1 0 1 0] [0 1 1 1] [0] [cons](x0, x1) = [1 0 0 1]x0 + [0 0 1 0]x1 + [0] [1 1 0 1] [0 0 0 1] [1], [0] [0] [empty] = [0] [1] orientation: f#(a,empty()) = [0 0 1 1]a + [1] >= [0 0 1 1]a = g#(a,empty()) f#(a,cons(x,k)) = [0 0 1 1]a + [1 2 2 3]k + [3 1 2 2]x + [2] >= [0 0 1 1]a + [1 1 1 1]k + [2 1 0 2]x + [1] = f#(cons(x,a),k) g#(cons(x,k),d) = [0 0 1 0]d + [0 0 1 1]k + [2 1 0 2]x + [1] >= [0 0 1 0]d + [0 0 1 1]k + [1 0 0 1]x = g#(k,cons(x,d)) problem: DPs: TRS: Qed