YES Problem: concat(leaf(),Y) -> Y concat(cons(U,V),Y) -> cons(U,concat(V,Y)) lessleaves(X,leaf()) -> false() lessleaves(leaf(),cons(W,Z)) -> true() lessleaves(cons(U,V),cons(W,Z)) -> lessleaves(concat(U,V),concat(W,Z)) Proof: Matrix Interpretation Processor: dim=3 interpretation: [0] [true] = [0] [0], [0] [false] = [0] [0], [1 0 0] [1 0 0] [lessleaves](x0, x1) = [0 0 0]x0 + [0 0 0]x1 [0 0 0] [0 0 0] , [1 1 1] [1 0 0] [0] [cons](x0, x1) = [0 0 0]x0 + [0 1 0]x1 + [1] [0 0 0] [0 1 0] [0], [1 1 0] [1 0 0] [concat](x0, x1) = [0 1 0]x0 + [1 1 0]x1 [0 0 1] [1 1 1] , [0] [leaf] = [1] [0] orientation: [1 0 0] [1] concat(leaf(),Y) = [1 1 0]Y + [1] >= Y = Y [1 1 1] [0] [1 1 1] [1 1 0] [1 0 0] [1] [1 1 1] [1 1 0] [1 0 0] [0] concat(cons(U,V),Y) = [0 0 0]U + [0 1 0]V + [1 1 0]Y + [1] >= [0 0 0]U + [0 1 0]V + [1 1 0]Y + [1] = cons(U,concat(V,Y)) [0 0 0] [0 1 0] [1 1 1] [0] [0 0 0] [0 1 0] [1 1 0] [0] [1 0 0] [0] lessleaves(X,leaf()) = [0 0 0]X >= [0] = false() [0 0 0] [0] [1 1 1] [1 0 0] [0] lessleaves(leaf(),cons(W,Z)) = [0 0 0]W + [0 0 0]Z >= [0] = true() [0 0 0] [0 0 0] [0] [1 1 1] [1 0 0] [1 1 1] [1 0 0] [1 1 0] [1 0 0] [1 1 0] [1 0 0] lessleaves(cons(U,V),cons(W,Z)) = [0 0 0]U + [0 0 0]V + [0 0 0]W + [0 0 0]Z >= [0 0 0]U + [0 0 0]V + [0 0 0]W + [0 0 0]Z = lessleaves(concat(U,V),concat(W,Z)) [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: lessleaves(X,leaf()) -> false() lessleaves(leaf(),cons(W,Z)) -> true() lessleaves(cons(U,V),cons(W,Z)) -> lessleaves(concat(U,V),concat(W,Z)) Matrix Interpretation Processor: dim=1 interpretation: [true] = 0, [false] = 0, [lessleaves](x0, x1) = 4x0 + 2x1 + 4, [cons](x0, x1) = 6x0 + x1 + 2, [concat](x0, x1) = 4x0 + x1 + 2, [leaf] = 1 orientation: lessleaves(X,leaf()) = 4X + 6 >= 0 = false() lessleaves(leaf(),cons(W,Z)) = 12W + 2Z + 12 >= 0 = true() lessleaves(cons(U,V),cons(W,Z)) = 24U + 4V + 12W + 2Z + 16 >= 16U + 4V + 8W + 2Z + 16 = lessleaves(concat(U,V),concat(W,Z)) problem: lessleaves(cons(U,V),cons(W,Z)) -> lessleaves(concat(U,V),concat(W,Z)) Matrix Interpretation Processor: dim=3 interpretation: [1 0 1] [1 1 1] [lessleaves](x0, x1) = [0 0 0]x0 + [0 0 0]x1 [1 0 1] [0 0 0] , [1 0 0] [1 0 1] [0] [cons](x0, x1) = [0 0 0]x0 + [0 0 0]x1 + [1] [0 0 0] [0 0 0] [0], [1 0 0] [1 0 0] [concat](x0, x1) = [0 0 0]x0 + [0 0 0]x1 [0 0 0] [0 0 1] orientation: [1 0 0] [1 0 1] [1 0 0] [1 0 1] [1] [1 0 0] [1 0 1] [1 0 0] [1 0 1] lessleaves(cons(U,V),cons(W,Z)) = [0 0 0]U + [0 0 0]V + [0 0 0]W + [0 0 0]Z + [0] >= [0 0 0]U + [0 0 0]V + [0 0 0]W + [0 0 0]Z = lessleaves(concat(U,V),concat(W,Z)) [1 0 0] [1 0 1] [0 0 0] [0 0 0] [0] [1 0 0] [1 0 1] [0 0 0] [0 0 0] problem: Qed