YES Problem: ++(nil(),y) -> y ++(x,nil()) -> x ++(.(x,y),z) -> .(x,++(y,z)) ++(++(x,y),z) -> ++(x,++(y,z)) Proof: DP Processor: DPs: ++#(.(x,y),z) -> ++#(y,z) ++#(++(x,y),z) -> ++#(y,z) ++#(++(x,y),z) -> ++#(x,++(y,z)) TRS: ++(nil(),y) -> y ++(x,nil()) -> x ++(.(x,y),z) -> .(x,++(y,z)) ++(++(x,y),z) -> ++(x,++(y,z)) Matrix Interpretation Processor: dim=1 interpretation: [++#](x0, x1) = x0, [.](x0, x1) = x1 + 1, [++](x0, x1) = 2x0 + x1 + 5, [nil] = 0 orientation: ++#(.(x,y),z) = y + 1 >= y = ++#(y,z) ++#(++(x,y),z) = 2x + y + 5 >= y = ++#(y,z) ++#(++(x,y),z) = 2x + y + 5 >= x = ++#(x,++(y,z)) ++(nil(),y) = y + 5 >= y = y ++(x,nil()) = 2x + 5 >= x = x ++(.(x,y),z) = 2y + z + 7 >= 2y + z + 6 = .(x,++(y,z)) ++(++(x,y),z) = 4x + 2y + z + 15 >= 2x + 2y + z + 10 = ++(x,++(y,z)) problem: DPs: TRS: ++(nil(),y) -> y ++(x,nil()) -> x ++(.(x,y),z) -> .(x,++(y,z)) ++(++(x,y),z) -> ++(x,++(y,z)) Qed