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: Complexity Transformation Processor: strict: 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)) weak: Matrix Interpretation Processor: dimension: 1 max_matrix: 1 interpretation: [true] = 0, [false] = 0, [lessleaves](x0, x1) = x0 + x1, [cons](x0, x1) = x0 + x1, [concat](x0, x1) = x0 + x1 + 4, [leaf] = 0 orientation: concat(leaf(),Y) = Y + 4 >= Y = Y concat(cons(U,V),Y) = U + V + Y + 4 >= U + V + Y + 4 = cons(U,concat(V,Y)) lessleaves(X,leaf()) = X >= 0 = false() lessleaves(leaf(),cons(W,Z)) = W + Z >= 0 = true() lessleaves(cons(U,V),cons(W,Z)) = U + V + W + Z >= U + V + W + Z + 8 = lessleaves(concat(U,V),concat(W,Z)) problem: strict: 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)) weak: concat(leaf(),Y) -> Y Matrix Interpretation Processor: dimension: 1 max_matrix: 1 interpretation: [true] = 0, [false] = 0, [lessleaves](x0, x1) = x0 + x1, [cons](x0, x1) = x0 + x1 + 2, [concat](x0, x1) = x0 + x1, [leaf] = 0 orientation: concat(cons(U,V),Y) = U + V + Y + 2 >= U + V + Y + 2 = cons(U,concat(V,Y)) lessleaves(X,leaf()) = X >= 0 = false() lessleaves(leaf(),cons(W,Z)) = W + Z + 2 >= 0 = true() lessleaves(cons(U,V),cons(W,Z)) = U + V + W + Z + 4 >= U + V + W + Z = lessleaves(concat(U,V),concat(W,Z)) concat(leaf(),Y) = Y >= Y = Y problem: strict: concat(cons(U,V),Y) -> cons(U,concat(V,Y)) lessleaves(X,leaf()) -> false() weak: lessleaves(leaf(),cons(W,Z)) -> true() lessleaves(cons(U,V),cons(W,Z)) -> lessleaves(concat(U,V),concat(W,Z)) concat(leaf(),Y) -> Y Matrix Interpretation Processor: dimension: 1 max_matrix: 1 interpretation: [true] = 13, [false] = 0, [lessleaves](x0, x1) = x0 + x1 + 12, [cons](x0, x1) = x0 + x1, [concat](x0, x1) = x0 + x1, [leaf] = 1 orientation: concat(cons(U,V),Y) = U + V + Y >= U + V + Y = cons(U,concat(V,Y)) lessleaves(X,leaf()) = X + 13 >= 0 = false() lessleaves(leaf(),cons(W,Z)) = W + Z + 13 >= 13 = true() lessleaves(cons(U,V),cons(W,Z)) = U + V + W + Z + 12 >= U + V + W + Z + 12 = lessleaves(concat(U,V),concat(W,Z)) concat(leaf(),Y) = Y + 1 >= Y = Y problem: strict: concat(cons(U,V),Y) -> cons(U,concat(V,Y)) weak: lessleaves(X,leaf()) -> false() lessleaves(leaf(),cons(W,Z)) -> true() lessleaves(cons(U,V),cons(W,Z)) -> lessleaves(concat(U,V),concat(W,Z)) concat(leaf(),Y) -> Y Bounds Processor: bound: 1 enrichment: match automaton: final states: {6,5} transitions: cons1(2,12) -> 8,12 cons1(4,8) -> 8,5 cons1(4,10) -> 8,5 cons1(4,12) -> 8,12 cons1(1,8) -> 8,5 cons1(1,10) -> 8,5 cons1(1,12) -> 8,12 cons1(3,8) -> 8,5 cons1(3,10) -> 8,5 cons1(3,12) -> 8,12 cons1(2,8) -> 8,5 cons1(2,10) -> 8,5 concat1(2,12) -> 8* concat1(3,1) -> 8* concat1(3,3) -> 8* concat1(4,2) -> 8* concat1(4,4) -> 8* concat1(4,8) -> 12* concat1(4,10) -> 12* concat1(4,12) -> 8* concat1(1,2) -> 8* concat1(1,4) -> 8* concat1(1,8) -> 12* concat1(1,10) -> 12* concat1(1,12) -> 8* concat1(2,1) -> 8* concat1(2,3) -> 10* concat1(3,2) -> 8* concat1(3,4) -> 8* concat1(3,8) -> 12* concat1(3,10) -> 12* concat1(3,12) -> 12* concat1(4,1) -> 8* concat1(4,3) -> 10* concat1(1,1) -> 8* concat1(1,3) -> 8* concat1(2,2) -> 8* concat1(2,4) -> 8* concat1(2,8) -> 12* concat1(2,10) -> 12* lessleaves1(8,8) -> 6* lessleaves1(8,12) -> 6* lessleaves1(10,12) -> 6* lessleaves1(12,8) -> 6* lessleaves1(12,10) -> 6* lessleaves1(12,12) -> 6* true1() -> 6* false1() -> 6* concat0(3,1) -> 5* concat0(3,3) -> 5* concat0(4,2) -> 5* concat0(4,4) -> 5* concat0(1,2) -> 5* concat0(1,4) -> 5* concat0(2,1) -> 5* concat0(2,3) -> 5* concat0(3,2) -> 5* concat0(3,4) -> 5* concat0(4,1) -> 5* concat0(4,3) -> 5* concat0(1,1) -> 5* concat0(1,3) -> 5* concat0(2,2) -> 5* concat0(2,4) -> 5* cons0(3,1) -> 1* cons0(3,3) -> 1* cons0(4,2) -> 1* cons0(4,4) -> 1* cons0(1,2) -> 1* cons0(1,4) -> 1* cons0(2,1) -> 1* cons0(2,3) -> 1* cons0(3,2) -> 1* cons0(3,4) -> 1* cons0(4,1) -> 1* cons0(4,3) -> 1* cons0(1,1) -> 1* cons0(1,3) -> 1* cons0(2,2) -> 1* cons0(2,4) -> 1* lessleaves0(3,1) -> 6* lessleaves0(3,3) -> 6* lessleaves0(4,2) -> 6* lessleaves0(4,4) -> 6* lessleaves0(5,5) -> 6* lessleaves0(1,2) -> 6* lessleaves0(1,4) -> 6* lessleaves0(2,1) -> 6* lessleaves0(2,3) -> 6* lessleaves0(3,2) -> 6* lessleaves0(3,4) -> 6* lessleaves0(4,1) -> 6* lessleaves0(4,3) -> 6* lessleaves0(1,1) -> 6* lessleaves0(1,3) -> 6* lessleaves0(2,2) -> 6* lessleaves0(2,4) -> 6* leaf0() -> 2* false0() -> 6,3 true0() -> 6,4 1 -> 5,8 2 -> 5,8 3 -> 10,5 4 -> 5,8 8 -> 12* 10 -> 12* 12 -> 8* problem: strict: weak: 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)) concat(leaf(),Y) -> Y Qed