YES Problem: app(nil(),k) -> k app(l,nil()) -> l app(cons(x,l),k) -> cons(x,app(l,k)) sum(cons(x,nil())) -> cons(x,nil()) sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) Proof: Matrix Interpretation Processor: dim=1 interpretation: [plus](x0, x1) = x0 + x1, [app](x0, x1) = 2x0 + x1 + 1, [sum](x0) = x0, [0] = 2, [nil] = 0, [s](x0) = x0 + 4, [cons](x0, x1) = x0 + x1 orientation: app(nil(),k) = k + 1 >= k = k app(l,nil()) = 2l + 1 >= l = l app(cons(x,l),k) = k + 2l + 2x + 1 >= k + 2l + x + 1 = cons(x,app(l,k)) sum(cons(x,nil())) = x >= x = cons(x,nil()) sum(cons(x,cons(y,l))) = l + x + y >= l + x + y = sum(cons(plus(x,y),l)) sum(app(l,cons(x,cons(y,k)))) = k + 2l + x + y + 1 >= k + 2l + x + y + 1 = sum(app(l,sum(cons(x,cons(y,k))))) plus(0(),y) = y + 2 >= y = y plus(s(x),y) = x + y + 4 >= x + y + 4 = s(plus(x,y)) problem: app(cons(x,l),k) -> cons(x,app(l,k)) sum(cons(x,nil())) -> cons(x,nil()) sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) plus(s(x),y) -> s(plus(x,y)) Matrix Interpretation Processor: dim=1 interpretation: [plus](x0, x1) = x0 + x1, [app](x0, x1) = x0 + x1, [sum](x0) = x0, [nil] = 6, [s](x0) = x0, [cons](x0, x1) = 2x0 + x1 + 2 orientation: app(cons(x,l),k) = k + l + 2x + 2 >= k + l + 2x + 2 = cons(x,app(l,k)) sum(cons(x,nil())) = 2x + 8 >= 2x + 8 = cons(x,nil()) sum(cons(x,cons(y,l))) = l + 2x + 2y + 4 >= l + 2x + 2y + 2 = sum(cons(plus(x,y),l)) sum(app(l,cons(x,cons(y,k)))) = k + l + 2x + 2y + 4 >= k + l + 2x + 2y + 4 = sum(app(l,sum(cons(x,cons(y,k))))) plus(s(x),y) = x + y >= x + y = s(plus(x,y)) problem: app(cons(x,l),k) -> cons(x,app(l,k)) sum(cons(x,nil())) -> cons(x,nil()) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) plus(s(x),y) -> s(plus(x,y)) Matrix Interpretation Processor: dim=1 interpretation: [plus](x0, x1) = 4x0 + 2x1 + 2, [app](x0, x1) = x0 + x1, [sum](x0) = x0, [nil] = 0, [s](x0) = x0 + 4, [cons](x0, x1) = 4x0 + x1 orientation: app(cons(x,l),k) = k + l + 4x >= k + l + 4x = cons(x,app(l,k)) sum(cons(x,nil())) = 4x >= 4x = cons(x,nil()) sum(app(l,cons(x,cons(y,k)))) = k + l + 4x + 4y >= k + l + 4x + 4y = sum(app(l,sum(cons(x,cons(y,k))))) plus(s(x),y) = 4x + 2y + 18 >= 4x + 2y + 6 = s(plus(x,y)) problem: app(cons(x,l),k) -> cons(x,app(l,k)) sum(cons(x,nil())) -> cons(x,nil()) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) Matrix Interpretation Processor: dim=3 interpretation: [1 1 1] [1 1 0] [0] [app](x0, x1) = [0 1 0]x0 + [0 0 0]x1 + [1] [0 0 1] [0 0 0] [0], [1 0 0] [0] [sum](x0) = [0 0 0]x0 + [1] [0 0 1] [0], [0] [nil] = [0] [0], [1 0 1] [1 0 0] [0] [cons](x0, x1) = [0 0 0]x0 + [0 1 1]x1 + [0] [0 0 0] [0 0 0] [1] orientation: [1 1 0] [1 1 1] [1 0 1] [1] [1 1 0] [1 1 1] [1 0 1] [0] app(cons(x,l),k) = [0 0 0]k + [0 1 1]l + [0 0 0]x + [1] >= [0 0 0]k + [0 1 1]l + [0 0 0]x + [1] = cons(x,app(l,k)) [0 0 0] [0 0 0] [0 0 0] [1] [0 0 0] [0 0 0] [0 0 0] [1] [1 0 1] [0] [1 0 1] [0] sum(cons(x,nil())) = [0 0 0]x + [1] >= [0 0 0]x + [0] = cons(x,nil()) [0 0 0] [1] [0 0 0] [1] [1 1 1] [1 1 1] [1 0 1] [1 0 1] [1] [1 0 0] [1 1 1] [1 0 1] [1 0 1] [1] sum(app(l,cons(x,cons(y,k)))) = [0 0 0]k + [0 0 0]l + [0 0 0]x + [0 0 0]y + [1] >= [0 0 0]k + [0 0 0]l + [0 0 0]x + [0 0 0]y + [1] = sum(app(l,sum(cons(x,cons(y,k))))) [0 0 0] [0 0 1] [0 0 0] [0 0 0] [0] [0 0 0] [0 0 1] [0 0 0] [0 0 0] [0] problem: sum(cons(x,nil())) -> cons(x,nil()) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) Matrix Interpretation Processor: dim=3 interpretation: [1 0 1] [1 0 0] [1] [app](x0, x1) = [0 0 0]x0 + [0 0 0]x1 + [0] [0 0 0] [0 0 0] [1], [1 1 0] [sum](x0) = [0 1 0]x0 [0 1 0] , [0] [nil] = [0] [1], [1 1 0] [1 1 0] [cons](x0, x1) = [0 0 0]x0 + [0 0 1]x1 [0 0 0] [0 0 0] orientation: [1 1 0] [1] [1 1 0] [0] sum(cons(x,nil())) = [0 0 0]x + [1] >= [0 0 0]x + [1] = cons(x,nil()) [0 0 0] [1] [0 0 0] [0] [1 1 1] [1 0 1] [1 1 0] [1 1 0] [1] [1 1 1] [1 0 1] [1 1 0] [1 1 0] [1] sum(app(l,cons(x,cons(y,k)))) = [0 0 0]k + [0 0 0]l + [0 0 0]x + [0 0 0]y + [0] >= [0 0 0]k + [0 0 0]l + [0 0 0]x + [0 0 0]y + [0] = sum(app(l,sum(cons(x,cons(y,k))))) [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0] problem: sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) Matrix Interpretation Processor: dim=3 interpretation: [1 0 0] [1 0 1] [app](x0, x1) = [0 0 0]x0 + [0 0 0]x1 [0 0 0] [0 0 0] , [1 0 0] [sum](x0) = [0 0 0]x0 [0 0 0] , [1 0 0] [1 0 0] [0] [cons](x0, x1) = [0 0 0]x0 + [0 0 0]x1 + [0] [0 0 0] [0 0 0] [1] orientation: [1 0 0] [1 0 0] [1 0 0] [1 0 0] [1] [1 0 0] [1 0 0] [1 0 0] [1 0 0] sum(app(l,cons(x,cons(y,k)))) = [0 0 0]k + [0 0 0]l + [0 0 0]x + [0 0 0]y + [0] >= [0 0 0]k + [0 0 0]l + [0 0 0]x + [0 0 0]y = sum(app(l,sum(cons(x,cons(y,k))))) [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] problem: Qed