Problem: active(f(a(),X,X)) -> mark(f(X,b(),b())) active(b()) -> mark(a()) mark(f(X1,X2,X3)) -> active(f(X1,mark(X2),X3)) mark(a()) -> active(a()) mark(b()) -> active(b()) f(mark(X1),X2,X3) -> f(X1,X2,X3) f(X1,mark(X2),X3) -> f(X1,X2,X3) f(X1,X2,mark(X3)) -> f(X1,X2,X3) f(active(X1),X2,X3) -> f(X1,X2,X3) f(X1,active(X2),X3) -> f(X1,X2,X3) f(X1,X2,active(X3)) -> f(X1,X2,X3) Proof: Complexity Transformation Processor: strict: active(f(a(),X,X)) -> mark(f(X,b(),b())) active(b()) -> mark(a()) mark(f(X1,X2,X3)) -> active(f(X1,mark(X2),X3)) mark(a()) -> active(a()) mark(b()) -> active(b()) f(mark(X1),X2,X3) -> f(X1,X2,X3) f(X1,mark(X2),X3) -> f(X1,X2,X3) f(X1,X2,mark(X3)) -> f(X1,X2,X3) f(active(X1),X2,X3) -> f(X1,X2,X3) f(X1,active(X2),X3) -> f(X1,X2,X3) f(X1,X2,active(X3)) -> f(X1,X2,X3) weak: Matrix Interpretation Processor: dimension: 1 max_matrix: 1 interpretation: [mark](x0) = x0 + 4, [b] = 4, [active](x0) = x0 + 5, [f](x0, x1, x2) = x0 + x1 + x2 + 8, [a] = 12 orientation: active(f(a(),X,X)) = 2X + 25 >= X + 20 = mark(f(X,b(),b())) active(b()) = 9 >= 16 = mark(a()) mark(f(X1,X2,X3)) = X1 + X2 + X3 + 12 >= X1 + X2 + X3 + 17 = active(f(X1,mark(X2),X3)) mark(a()) = 16 >= 17 = active(a()) mark(b()) = 8 >= 9 = active(b()) f(mark(X1),X2,X3) = X1 + X2 + X3 + 12 >= X1 + X2 + X3 + 8 = f(X1,X2,X3) f(X1,mark(X2),X3) = X1 + X2 + X3 + 12 >= X1 + X2 + X3 + 8 = f(X1,X2,X3) f(X1,X2,mark(X3)) = X1 + X2 + X3 + 12 >= X1 + X2 + X3 + 8 = f(X1,X2,X3) f(active(X1),X2,X3) = X1 + X2 + X3 + 13 >= X1 + X2 + X3 + 8 = f(X1,X2,X3) f(X1,active(X2),X3) = X1 + X2 + X3 + 13 >= X1 + X2 + X3 + 8 = f(X1,X2,X3) f(X1,X2,active(X3)) = X1 + X2 + X3 + 13 >= X1 + X2 + X3 + 8 = f(X1,X2,X3) problem: strict: active(b()) -> mark(a()) mark(f(X1,X2,X3)) -> active(f(X1,mark(X2),X3)) mark(a()) -> active(a()) mark(b()) -> active(b()) weak: active(f(a(),X,X)) -> mark(f(X,b(),b())) f(mark(X1),X2,X3) -> f(X1,X2,X3) f(X1,mark(X2),X3) -> f(X1,X2,X3) f(X1,X2,mark(X3)) -> f(X1,X2,X3) f(active(X1),X2,X3) -> f(X1,X2,X3) f(X1,active(X2),X3) -> f(X1,X2,X3) f(X1,X2,active(X3)) -> f(X1,X2,X3) Matrix Interpretation Processor: dimension: 1 max_matrix: 1 interpretation: [mark](x0) = x0, [b] = 5, [active](x0) = x0 + 8, [f](x0, x1, x2) = x0 + x1 + x2, [a] = 8 orientation: active(b()) = 13 >= 8 = mark(a()) mark(f(X1,X2,X3)) = X1 + X2 + X3 >= X1 + X2 + X3 + 8 = active(f(X1,mark(X2),X3)) mark(a()) = 8 >= 16 = active(a()) mark(b()) = 5 >= 13 = active(b()) active(f(a(),X,X)) = 2X + 16 >= X + 10 = mark(f(X,b(),b())) f(mark(X1),X2,X3) = X1 + X2 + X3 >= X1 + X2 + X3 = f(X1,X2,X3) f(X1,mark(X2),X3) = X1 + X2 + X3 >= X1 + X2 + X3 = f(X1,X2,X3) f(X1,X2,mark(X3)) = X1 + X2 + X3 >= X1 + X2 + X3 = f(X1,X2,X3) f(active(X1),X2,X3) = X1 + X2 + X3 + 8 >= X1 + X2 + X3 = f(X1,X2,X3) f(X1,active(X2),X3) = X1 + X2 + X3 + 8 >= X1 + X2 + X3 = f(X1,X2,X3) f(X1,X2,active(X3)) = X1 + X2 + X3 + 8 >= X1 + X2 + X3 = f(X1,X2,X3) problem: strict: mark(f(X1,X2,X3)) -> active(f(X1,mark(X2),X3)) mark(a()) -> active(a()) mark(b()) -> active(b()) weak: active(b()) -> mark(a()) active(f(a(),X,X)) -> mark(f(X,b(),b())) f(mark(X1),X2,X3) -> f(X1,X2,X3) f(X1,mark(X2),X3) -> f(X1,X2,X3) f(X1,X2,mark(X3)) -> f(X1,X2,X3) f(active(X1),X2,X3) -> f(X1,X2,X3) f(X1,active(X2),X3) -> f(X1,X2,X3) f(X1,X2,active(X3)) -> f(X1,X2,X3) Splitting Processor: strict: mark(b()) -> active(b()) weak: active(b()) -> mark(a()) active(f(a(),X,X)) -> mark(f(X,b(),b())) f(mark(X1),X2,X3) -> f(X1,X2,X3) f(X1,mark(X2),X3) -> f(X1,X2,X3) f(X1,X2,mark(X3)) -> f(X1,X2,X3) f(active(X1),X2,X3) -> f(X1,X2,X3) f(X1,active(X2),X3) -> f(X1,X2,X3) f(X1,X2,active(X3)) -> f(X1,X2,X3) mark(f(X1,X2,X3)) -> active(f(X1,mark(X2),X3)) mark(a()) -> active(a()) Bounds Processor: bound: 0 enrichment: match automaton: final states: {11,5,4,3} transitions: mark0(2) -> 3* mark0(1) -> 11*,4,3 f0(1,1,1) -> 5* f0(2,2,1) -> 5* f0(1,1,2) -> 5* f0(2,2,2) -> 5* f0(1,2,1) -> 5* f0(2,1,1) -> 5* f0(1,2,2) -> 5* f0(2,1,2) -> 5* active0(2) -> 11*,3,4 active0(1) -> 11*,3,4 a0() -> 1* b0() -> 2* problem: strict: mark(a()) -> active(a()) weak: mark(f(X1,X2,X3)) -> active(f(X1,mark(X2),X3)) mark(b()) -> active(b()) active(b()) -> mark(a()) active(f(a(),X,X)) -> mark(f(X,b(),b())) f(mark(X1),X2,X3) -> f(X1,X2,X3) f(X1,mark(X2),X3) -> f(X1,X2,X3) f(X1,X2,mark(X3)) -> f(X1,X2,X3) f(active(X1),X2,X3) -> f(X1,X2,X3) f(X1,active(X2),X3) -> f(X1,X2,X3) f(X1,X2,active(X3)) -> f(X1,X2,X3) Bounds Processor: bound: 1 enrichment: match automaton: final states: {17,12,10,5,4,3} transitions: mark0(2) -> 3* mark0(11) -> 17*,3 mark0(1) -> 17*,4,3 f0(11,1,1) -> 5* f0(1,1,1) -> 5* f0(11,11,1) -> 5* f0(1,11,1) -> 5* f0(2,2,1) -> 5* f0(11,1,2) -> 5* f0(1,1,2) -> 5* f0(11,1,11) -> 5* f0(1,1,11) -> 5* f0(11,11,2) -> 5* f0(1,11,2) -> 5* f0(11,11,11) -> 5* f0(1,11,11) -> 5* f0(2,2,2) -> 5* f0(2,2,11) -> 5* f0(11,2,1) -> 5* f0(1,2,1) -> 5* f0(2,1,1) -> 5* f0(2,11,1) -> 5* f0(11,2,2) -> 5* f0(1,2,2) -> 5* f0(11,2,11) -> 5* f0(1,2,11) -> 5* f0(2,1,2) -> 5* f0(2,1,11) -> 5* f0(2,11,2) -> 5* f0(2,11,11) -> 5* active0(2) -> 17*,3,4 active0(11) -> 17*,4 active0(1) -> 17*,4 a0() -> 1* b0() -> 2* active1(11) -> 10,17,12*,4 active1(8) -> 10*,3,9 a1() -> 11*,1,8 4 -> 17* 9 -> 3* problem: strict: weak: mark(a()) -> active(a()) mark(f(X1,X2,X3)) -> active(f(X1,mark(X2),X3)) mark(b()) -> active(b()) active(b()) -> mark(a()) active(f(a(),X,X)) -> mark(f(X,b(),b())) f(mark(X1),X2,X3) -> f(X1,X2,X3) f(X1,mark(X2),X3) -> f(X1,X2,X3) f(X1,X2,mark(X3)) -> f(X1,X2,X3) f(active(X1),X2,X3) -> f(X1,X2,X3) f(X1,active(X2),X3) -> f(X1,X2,X3) f(X1,X2,active(X3)) -> f(X1,X2,X3) Qed strict: mark(f(X1,X2,X3)) -> active(f(X1,mark(X2),X3)) mark(a()) -> active(a()) weak: mark(b()) -> active(b()) active(b()) -> mark(a()) active(f(a(),X,X)) -> mark(f(X,b(),b())) f(mark(X1),X2,X3) -> f(X1,X2,X3) f(X1,mark(X2),X3) -> f(X1,X2,X3) f(X1,X2,mark(X3)) -> f(X1,X2,X3) f(active(X1),X2,X3) -> f(X1,X2,X3) f(X1,active(X2),X3) -> f(X1,X2,X3) f(X1,X2,active(X3)) -> f(X1,X2,X3) Bounds Processor: bound: 1 enrichment: match automaton: final states: {16,15,13,5,4,3} transitions: mark0(2) -> 16*,4,3 mark0(14) -> 3* mark0(1) -> 3* f0(14,1,14) -> 5* f0(14,1,2) -> 5* f0(1,1,1) -> 5* f0(2,2,1) -> 5* f0(2,14,1) -> 5* f0(1,1,14) -> 5* f0(1,1,2) -> 5* f0(2,2,14) -> 5* f0(14,2,1) -> 5* f0(2,2,2) -> 5* f0(2,14,14) -> 5* f0(14,14,1) -> 5* f0(2,14,2) -> 5* f0(14,2,14) -> 5* f0(14,2,2) -> 5* f0(1,2,1) -> 5* f0(14,14,14) -> 5* f0(14,14,2) -> 5* f0(1,14,1) -> 5* f0(2,1,1) -> 5* f0(1,2,14) -> 5* f0(1,2,2) -> 5* f0(1,14,14) -> 5* f0(1,14,2) -> 5* f0(2,1,14) -> 5* f0(14,1,1) -> 5* f0(2,1,2) -> 5* active0(2) -> 16*,3,4 active0(14) -> 4* active0(1) -> 4* a0() -> 2* b0() -> 1* active1(2) -> 16,15*,4,3 active1(14) -> 13,15*,4 active1(6) -> 13*,3,7 a1() -> 2* b1() -> 14*,1,6 mark1(2) -> 16,15*,3,4 7 -> 3* problem: strict: weak: mark(b()) -> active(b()) active(b()) -> mark(a()) active(f(a(),X,X)) -> mark(f(X,b(),b())) f(mark(X1),X2,X3) -> f(X1,X2,X3) f(X1,mark(X2),X3) -> f(X1,X2,X3) f(X1,X2,mark(X3)) -> f(X1,X2,X3) f(active(X1),X2,X3) -> f(X1,X2,X3) f(X1,active(X2),X3) -> f(X1,X2,X3) f(X1,X2,active(X3)) -> f(X1,X2,X3) mark(f(X1,X2,X3)) -> active(f(X1,mark(X2),X3)) mark(a()) -> active(a()) Qed