YES Problem: app(nil(),YS) -> YS app(cons(X),YS) -> cons(X) from(X) -> cons(X) zWadr(nil(),YS) -> nil() zWadr(XS,nil()) -> nil() zWadr(cons(X),cons(Y)) -> cons(app(Y,cons(X))) prefix(L) -> cons(nil()) Proof: Matrix Interpretation Processor: dim=3 interpretation: [1 0 0] [prefix](x0) = [0 0 0]x0 [0 0 0] , [1 0 0] [1 0 0] [1] [zWadr](x0, x1) = [0 0 0]x0 + [0 0 0]x1 + [0] [0 0 0] [0 0 0] [0], [1 0 0] [from](x0) = [0 0 0]x0 [0 0 0] , [1 0 0] [cons](x0) = [0 0 0]x0 [0 0 0] , [1 0 0] [1] [app](x0, x1) = [0 0 0]x0 + x1 + [0] [0 0 0] [0], [0] [nil] = [0] [0] orientation: [1] app(nil(),YS) = YS + [0] >= YS = YS [0] [1 0 0] [1] [1 0 0] app(cons(X),YS) = [0 0 0]X + YS + [0] >= [0 0 0]X = cons(X) [0 0 0] [0] [0 0 0] [1 0 0] [1 0 0] from(X) = [0 0 0]X >= [0 0 0]X = cons(X) [0 0 0] [0 0 0] [1 0 0] [1] [0] zWadr(nil(),YS) = [0 0 0]YS + [0] >= [0] = nil() [0 0 0] [0] [0] [1 0 0] [1] [0] zWadr(XS,nil()) = [0 0 0]XS + [0] >= [0] = nil() [0 0 0] [0] [0] [1 0 0] [1 0 0] [1] [1 0 0] [1 0 0] [1] zWadr(cons(X),cons(Y)) = [0 0 0]X + [0 0 0]Y + [0] >= [0 0 0]X + [0 0 0]Y + [0] = cons(app(Y,cons(X))) [0 0 0] [0 0 0] [0] [0 0 0] [0 0 0] [0] [1 0 0] [0] prefix(L) = [0 0 0]L >= [0] = cons(nil()) [0 0 0] [0] problem: from(X) -> cons(X) zWadr(cons(X),cons(Y)) -> cons(app(Y,cons(X))) prefix(L) -> cons(nil()) Matrix Interpretation Processor: dim=3 interpretation: [1 0 0] [0] [prefix](x0) = [0 0 0]x0 + [1] [0 0 0] [0], [1 0 0] [1 0 0] [1] [zWadr](x0, x1) = [0 0 0]x0 + [0 0 0]x1 + [1] [0 0 0] [0 0 0] [0], [1 0 0] [0] [from](x0) = [0 0 0]x0 + [1] [0 0 0] [0], [1 0 0] [0] [cons](x0) = [0 0 0]x0 + [1] [0 0 0] [0], [1 0 0] [1 0 0] [app](x0, x1) = [0 0 0]x0 + [0 0 0]x1 [0 0 0] [0 1 0] , [0] [nil] = [0] [0] orientation: [1 0 0] [0] [1 0 0] [0] from(X) = [0 0 0]X + [1] >= [0 0 0]X + [1] = cons(X) [0 0 0] [0] [0 0 0] [0] [1 0 0] [1 0 0] [1] [1 0 0] [1 0 0] [0] zWadr(cons(X),cons(Y)) = [0 0 0]X + [0 0 0]Y + [1] >= [0 0 0]X + [0 0 0]Y + [1] = cons(app(Y,cons(X))) [0 0 0] [0 0 0] [0] [0 0 0] [0 0 0] [0] [1 0 0] [0] [0] prefix(L) = [0 0 0]L + [1] >= [1] = cons(nil()) [0 0 0] [0] [0] problem: from(X) -> cons(X) prefix(L) -> cons(nil()) Matrix Interpretation Processor: dim=3 interpretation: [1 0 0] [1] [prefix](x0) = [0 0 0]x0 + [0] [0 0 0] [0], [1 0 0] [from](x0) = [0 0 0]x0 [0 0 0] , [1 0 0] [cons](x0) = [0 0 0]x0 [0 0 0] , [0] [nil] = [0] [0] orientation: [1 0 0] [1 0 0] from(X) = [0 0 0]X >= [0 0 0]X = cons(X) [0 0 0] [0 0 0] [1 0 0] [1] [0] prefix(L) = [0 0 0]L + [0] >= [0] = cons(nil()) [0 0 0] [0] [0] problem: from(X) -> cons(X) Matrix Interpretation Processor: dim=3 interpretation: [1 0 0] [1] [from](x0) = [0 0 0]x0 + [0] [0 0 1] [0], [1 0 0] [cons](x0) = [0 0 0]x0 [0 0 0] orientation: [1 0 0] [1] [1 0 0] from(X) = [0 0 0]X + [0] >= [0 0 0]X = cons(X) [0 0 1] [0] [0 0 0] problem: Qed