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)) Restore Modifier: 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)) SCC Processor: #sccs: 1 #rules: 3 #arcs: 9/9 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: dimension: 1 interpretation: [++#](x0, x1) = x0 + x1 + 1, [.](x0, x1) = x1 + 1, [++](x0, x1) = x0 + x1, [nil] = 0 orientation: ++#(.(x,y),z) = y + z + 2 >= y + z + 1 = ++#(y,z) ++#(++(x,y),z) = x + y + z + 1 >= y + z + 1 = ++#(y,z) ++#(++(x,y),z) = x + y + z + 1 >= x + y + z + 1 = ++#(x,++(y,z)) ++(nil(),y) = y >= y = y ++(x,nil()) = x >= x = x ++(.(x,y),z) = y + z + 1 >= y + z + 1 = .(x,++(y,z)) ++(++(x,y),z) = x + y + z >= x + y + z = ++(x,++(y,z)) problem: DPs: ++#(++(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: dimension: 1 interpretation: [++#](x0, x1) = x0, [.](x0, x1) = 1, [++](x0, x1) = x0 + x1 + 1, [nil] = 0 orientation: ++#(++(x,y),z) = x + y + 1 >= y = ++#(y,z) ++#(++(x,y),z) = x + y + 1 >= x = ++#(x,++(y,z)) ++(nil(),y) = y + 1 >= y = y ++(x,nil()) = x + 1 >= x = x ++(.(x,y),z) = z + 2 >= 1 = .(x,++(y,z)) ++(++(x,y),z) = x + y + z + 2 >= x + y + z + 2 = ++(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