YES Problem: rev(ls) -> r1(ls,empty()) r1(empty(),a) -> a r1(cons(x,k),a) -> r1(k,cons(x,a)) Proof: Matrix Interpretation Processor: dim=1 interpretation: [cons](x0, x1) = 2x0 + x1 + 1, [r1](x0, x1) = 3x0 + 2x1, [empty] = 0, [rev](x0) = 4x0 orientation: rev(ls) = 4ls >= 3ls = r1(ls,empty()) r1(empty(),a) = 2a >= a = a r1(cons(x,k),a) = 2a + 3k + 6x + 3 >= 2a + 3k + 4x + 2 = r1(k,cons(x,a)) problem: rev(ls) -> r1(ls,empty()) r1(empty(),a) -> a Matrix Interpretation Processor: dim=3 interpretation: [1 0 1] [r1](x0, x1) = [0 0 0]x0 + x1 [0 0 0] , [0] [empty] = [0] [1], [1 1 1] [0] [rev](x0) = [0 0 0]x0 + [0] [0 0 1] [1] orientation: [1 1 1] [0] [1 0 1] [0] rev(ls) = [0 0 0]ls + [0] >= [0 0 0]ls + [0] = r1(ls,empty()) [0 0 1] [1] [0 0 0] [1] [1] r1(empty(),a) = a + [0] >= a = a [0] problem: rev(ls) -> r1(ls,empty()) Matrix Interpretation Processor: dim=3 interpretation: [1 0 0] [1 0 0] [r1](x0, x1) = [0 0 0]x0 + [0 0 0]x1 [0 0 0] [0 0 0] , [0] [empty] = [0] [0], [1 0 0] [1] [rev](x0) = [0 0 0]x0 + [0] [0 0 0] [0] orientation: [1 0 0] [1] [1 0 0] rev(ls) = [0 0 0]ls + [0] >= [0 0 0]ls = r1(ls,empty()) [0 0 0] [0] [0 0 0] problem: Qed