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) = x0 + x1 + 4, [r1](x0, x1) = x0 + x1 + 3, [empty] = 4, [rev](x0) = 4x0 + 7 orientation: rev(ls) = 4ls + 7 >= ls + 7 = r1(ls,empty()) r1(empty(),a) = a + 7 >= a = a r1(cons(x,k),a) = a + k + x + 7 >= a + k + x + 7 = r1(k,cons(x,a)) problem: rev(ls) -> r1(ls,empty()) r1(cons(x,k),a) -> r1(k,cons(x,a)) Matrix Interpretation Processor: dim=1 interpretation: [cons](x0, x1) = x0 + x1 + 1, [r1](x0, x1) = 5x0 + 4x1, [empty] = 0, [rev](x0) = 5x0 orientation: rev(ls) = 5ls >= 5ls = r1(ls,empty()) r1(cons(x,k),a) = 4a + 5k + 5x + 5 >= 4a + 5k + 4x + 4 = r1(k,cons(x,a)) 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