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] [1] [prefix](x0) = [0 0 0]x0 + [0] [0 0 0] [0], [1 0 0] [1 0 0] [1] [zWadr](x0, x1) = [0 0 0]x0 + [0 0 0]x1 + [0] [0 0 1] [0 0 1] [0], [1 0 0] [1] [from](x0) = [0 0 0]x0 + [0] [0 0 0] [0], [1 0 0] [cons](x0) = [0 0 0]x0 [0 0 0] , [1 0 0] [1 1 1] [1] [app](x0, x1) = [0 0 1]x0 + [1 1 1]x1 + [0] [0 0 1] [1 1 1] [0], [0] [nil] = [0] [1] orientation: [1 1 1] [1] app(nil(),YS) = [1 1 1]YS + [1] >= YS = YS [1 1 1] [1] [1 0 0] [1 1 1] [1] [1 0 0] app(cons(X),YS) = [0 0 0]X + [1 1 1]YS + [0] >= [0 0 0]X = cons(X) [0 0 0] [1 1 1] [0] [0 0 0] [1 0 0] [1] [1 0 0] from(X) = [0 0 0]X + [0] >= [0 0 0]X = cons(X) [0 0 0] [0] [0 0 0] [1 0 0] [1] [0] zWadr(nil(),YS) = [0 0 0]YS + [0] >= [0] = nil() [0 0 1] [1] [1] [1 0 0] [1] [0] zWadr(XS,nil()) = [0 0 0]XS + [0] >= [0] = nil() [0 0 1] [1] [1] [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] [1] [0] prefix(L) = [0 0 0]L + [0] >= [0] = cons(nil()) [0 0 0] [0] [0] problem: zWadr(cons(X),cons(Y)) -> cons(app(Y,cons(X))) Matrix Interpretation Processor: dim=3 interpretation: [1 0 0] [1 0 1] [zWadr](x0, x1) = [0 0 0]x0 + [0 0 0]x1 [0 0 0] [0 0 1] , [1 0 0] [0] [cons](x0) = [0 0 0]x0 + [0] [0 0 0] [1], [1 0 0] [1 0 0] [app](x0, x1) = [0 0 0]x0 + [0 0 0]x1 [0 0 0] [0 0 0] orientation: [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 + [0] >= [0 0 0]X + [0 0 0]Y + [0] = cons(app(Y,cons(X))) [0 0 0] [0 0 0] [1] [0 0 0] [0 0 0] [1] problem: Qed