YES Problem: rev(nil()) -> nil() rev(rev(x)) -> x rev(++(x,y)) -> ++(rev(y),rev(x)) ++(nil(),y) -> y ++(x,nil()) -> x ++(.(x,y),z) -> .(x,++(y,z)) ++(x,++(y,z)) -> ++(++(x,y),z) make(x) -> .(x,nil()) Proof: Matrix Interpretation Processor: dim=1 interpretation: [make](x0) = 6x0 + 4, [.](x0, x1) = 4x0 + x1 + 2, [++](x0, x1) = x0 + x1 + 6, [rev](x0) = 4x0, [nil] = 2 orientation: rev(nil()) = 8 >= 2 = nil() rev(rev(x)) = 16x >= x = x rev(++(x,y)) = 4x + 4y + 24 >= 4x + 4y + 6 = ++(rev(y),rev(x)) ++(nil(),y) = y + 8 >= y = y ++(x,nil()) = x + 8 >= x = x ++(.(x,y),z) = 4x + y + z + 8 >= 4x + y + z + 8 = .(x,++(y,z)) ++(x,++(y,z)) = x + y + z + 12 >= x + y + z + 12 = ++(++(x,y),z) make(x) = 6x + 4 >= 4x + 4 = .(x,nil()) problem: rev(rev(x)) -> x ++(.(x,y),z) -> .(x,++(y,z)) ++(x,++(y,z)) -> ++(++(x,y),z) make(x) -> .(x,nil()) Matrix Interpretation Processor: dim=1 interpretation: [make](x0) = 5x0 + 7, [.](x0, x1) = 4x0 + x1 + 1, [++](x0, x1) = x0 + x1, [rev](x0) = x0 + 4, [nil] = 5 orientation: rev(rev(x)) = x + 8 >= x = x ++(.(x,y),z) = 4x + y + z + 1 >= 4x + y + z + 1 = .(x,++(y,z)) ++(x,++(y,z)) = x + y + z >= x + y + z = ++(++(x,y),z) make(x) = 5x + 7 >= 4x + 6 = .(x,nil()) problem: ++(.(x,y),z) -> .(x,++(y,z)) ++(x,++(y,z)) -> ++(++(x,y),z) Matrix Interpretation Processor: dim=1 interpretation: [.](x0, x1) = x0 + x1 + 1, [++](x0, x1) = x0 + 4x1 + 3 orientation: ++(.(x,y),z) = x + y + 4z + 4 >= x + y + 4z + 4 = .(x,++(y,z)) ++(x,++(y,z)) = x + 4y + 16z + 15 >= x + 4y + 4z + 6 = ++(++(x,y),z) problem: ++(.(x,y),z) -> .(x,++(y,z)) Matrix Interpretation Processor: dim=1 interpretation: [.](x0, x1) = 5x0 + x1 + 1, [++](x0, x1) = 5x0 + x1 + 1 orientation: ++(.(x,y),z) = 25x + 5y + z + 6 >= 5x + 5y + z + 2 = .(x,++(y,z)) problem: Qed