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: CDG 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: graph: g#(cons(x,k),d) -> g#(k,cons(x,d)) -> g#(cons(x,k),d) -> g#(k,cons(x,d)) f#(a,cons(x,k)) -> f#(cons(x,a),k) -> f#(a,empty()) -> g#(a,empty()) f#(a,cons(x,k)) -> f#(cons(x,a),k) -> f#(a,cons(x,k)) -> f#(cons(x,a),k) f#(a,empty()) -> g#(a,empty()) -> g#(cons(x,k),d) -> g#(k,cons(x,d)) Restore Modifier: 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)) SCC Processor: #sccs: 2 #rules: 2 #arcs: 4/9 DPs: f#(a,cons(x,k)) -> f#(cons(x,a),k) 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)) Matrix Interpretation Processor: dimension: 1 interpretation: [f#](x0, x1) = x1, [cons](x0, x1) = x0 + x1 + 1, [g](x0, x1) = x0 + x1, [f](x0, x1) = x0 + x1, [empty] = 0 orientation: f#(a,cons(x,k)) = k + x + 1 >= k = f#(cons(x,a),k) f(a,empty()) = a >= a = g(a,empty()) f(a,cons(x,k)) = a + k + x + 1 >= a + k + x + 1 = f(cons(x,a),k) g(empty(),d) = d >= d = d g(cons(x,k),d) = d + k + x + 1 >= d + k + x + 1 = g(k,cons(x,d)) problem: DPs: 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)) Qed DPs: 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)) Matrix Interpretation Processor: dimension: 1 interpretation: [g#](x0, x1) = x0, [cons](x0, x1) = x1 + 1, [g](x0, x1) = x0 + x1, [f](x0, x1) = x0 + x1, [empty] = 0 orientation: g#(cons(x,k),d) = k + 1 >= k = g#(k,cons(x,d)) f(a,empty()) = a >= a = g(a,empty()) f(a,cons(x,k)) = a + k + 1 >= a + k + 1 = f(cons(x,a),k) g(empty(),d) = d >= d = d g(cons(x,k),d) = d + k + 1 >= d + k + 1 = g(k,cons(x,d)) problem: DPs: 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)) Qed