YES(O(1),O(n^2)) 25.11/17.09 YES(O(1),O(n^2)) 25.11/17.09 25.11/17.09 We are left with following problem, upon which TcT provides the 25.11/17.09 certificate YES(O(1),O(n^2)). 25.11/17.09 25.11/17.09 Strict Trs: 25.11/17.09 { a__f(X1, X2) -> f(X1, X2) 25.11/17.09 , a__f(g(X), Y) -> a__f(mark(X), f(g(X), Y)) 25.11/17.09 , mark(g(X)) -> g(mark(X)) 25.11/17.09 , mark(f(X1, X2)) -> a__f(mark(X1), X2) } 25.11/17.09 Obligation: 25.11/17.09 innermost runtime complexity 25.11/17.09 Answer: 25.11/17.09 YES(O(1),O(n^2)) 25.11/17.09 25.11/17.09 The weightgap principle applies (using the following nonconstant 25.11/17.09 growth matrix-interpretation) 25.11/17.09 25.11/17.09 The following argument positions are usable: 25.11/17.09 Uargs(a__f) = {1}, Uargs(g) = {1} 25.11/17.09 25.11/17.09 TcT has computed the following matrix interpretation satisfying 25.11/17.09 not(EDA) and not(IDA(1)). 25.11/17.09 25.11/17.09 [a__f](x1, x2) = [1] x1 + [4] 25.11/17.09 25.11/17.09 [g](x1) = [1] x1 + [0] 25.11/17.09 25.11/17.09 [mark](x1) = [0] 25.11/17.09 25.11/17.09 [f](x1, x2) = [1] x1 + [3] 25.11/17.09 25.11/17.09 The order satisfies the following ordering constraints: 25.11/17.09 25.11/17.09 [a__f(X1, X2)] = [1] X1 + [4] 25.11/17.09 > [1] X1 + [3] 25.11/17.09 = [f(X1, X2)] 25.11/17.09 25.11/17.09 [a__f(g(X), Y)] = [1] X + [4] 25.11/17.09 >= [4] 25.11/17.09 = [a__f(mark(X), f(g(X), Y))] 25.11/17.09 25.11/17.09 [mark(g(X))] = [0] 25.11/17.09 >= [0] 25.11/17.09 = [g(mark(X))] 25.11/17.09 25.11/17.09 [mark(f(X1, X2))] = [0] 25.11/17.09 ? [4] 25.11/17.09 = [a__f(mark(X1), X2)] 25.11/17.09 25.11/17.09 25.11/17.09 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 25.11/17.09 25.11/17.09 We are left with following problem, upon which TcT provides the 25.11/17.09 certificate YES(O(1),O(n^2)). 25.11/17.09 25.11/17.09 Strict Trs: 25.11/17.09 { a__f(g(X), Y) -> a__f(mark(X), f(g(X), Y)) 25.11/17.09 , mark(g(X)) -> g(mark(X)) 25.11/17.09 , mark(f(X1, X2)) -> a__f(mark(X1), X2) } 25.11/17.09 Weak Trs: { a__f(X1, X2) -> f(X1, X2) } 25.11/17.09 Obligation: 25.11/17.09 innermost runtime complexity 25.11/17.09 Answer: 25.11/17.09 YES(O(1),O(n^2)) 25.11/17.09 25.11/17.09 The weightgap principle applies (using the following nonconstant 25.11/17.09 growth matrix-interpretation) 25.11/17.09 25.11/17.09 The following argument positions are usable: 25.11/17.09 Uargs(a__f) = {1}, Uargs(g) = {1} 25.11/17.09 25.11/17.09 TcT has computed the following matrix interpretation satisfying 25.11/17.09 not(EDA) and not(IDA(1)). 25.11/17.09 25.11/17.09 [a__f](x1, x2) = [1] x1 + [0] 25.11/17.09 25.11/17.09 [g](x1) = [1] x1 + [4] 25.11/17.09 25.11/17.09 [mark](x1) = [0] 25.11/17.09 25.11/17.09 [f](x1, x2) = [1] x1 + [0] 25.11/17.09 25.11/17.09 The order satisfies the following ordering constraints: 25.11/17.09 25.11/17.09 [a__f(X1, X2)] = [1] X1 + [0] 25.11/17.09 >= [1] X1 + [0] 25.11/17.09 = [f(X1, X2)] 25.11/17.09 25.11/17.09 [a__f(g(X), Y)] = [1] X + [4] 25.11/17.09 > [0] 25.11/17.09 = [a__f(mark(X), f(g(X), Y))] 25.11/17.09 25.11/17.09 [mark(g(X))] = [0] 25.11/17.09 ? [4] 25.11/17.09 = [g(mark(X))] 25.11/17.09 25.11/17.09 [mark(f(X1, X2))] = [0] 25.11/17.09 >= [0] 25.11/17.09 = [a__f(mark(X1), X2)] 25.11/17.09 25.11/17.09 25.11/17.09 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 25.11/17.09 25.11/17.09 We are left with following problem, upon which TcT provides the 25.11/17.09 certificate YES(O(1),O(n^2)). 25.11/17.09 25.11/17.09 Strict Trs: 25.11/17.09 { mark(g(X)) -> g(mark(X)) 25.11/17.09 , mark(f(X1, X2)) -> a__f(mark(X1), X2) } 25.11/17.09 Weak Trs: 25.11/17.09 { a__f(X1, X2) -> f(X1, X2) 25.11/17.09 , a__f(g(X), Y) -> a__f(mark(X), f(g(X), Y)) } 25.11/17.09 Obligation: 25.11/17.09 innermost runtime complexity 25.11/17.09 Answer: 25.11/17.09 YES(O(1),O(n^2)) 25.11/17.09 25.11/17.09 We use the processor 'matrix interpretation of dimension 2' to 25.11/17.09 orient following rules strictly. 25.11/17.09 25.11/17.09 Trs: { mark(f(X1, X2)) -> a__f(mark(X1), X2) } 25.11/17.09 25.11/17.09 The induced complexity on above rules (modulo remaining rules) is 25.11/17.09 YES(?,O(n^2)) . These rules are moved into the corresponding weak 25.11/17.09 component(s). 25.11/17.09 25.11/17.09 Sub-proof: 25.11/17.09 ---------- 25.11/17.09 The following argument positions are usable: 25.11/17.09 Uargs(a__f) = {1}, Uargs(g) = {1} 25.11/17.09 25.11/17.09 TcT has computed the following constructor-based matrix 25.11/17.09 interpretation satisfying not(EDA). 25.11/17.09 25.11/17.09 [a__f](x1, x2) = [1 0] x1 + [0] 25.11/17.09 [0 1] [4] 25.11/17.09 25.11/17.09 [g](x1) = [1 4] x1 + [4] 25.11/17.09 [0 1] [0] 25.11/17.09 25.11/17.09 [mark](x1) = [1 2] x1 + [0] 25.11/17.09 [0 1] [0] 25.11/17.09 25.11/17.09 [f](x1, x2) = [1 0] x1 + [0] 25.11/17.09 [0 1] [4] 25.11/17.09 25.11/17.09 The order satisfies the following ordering constraints: 25.11/17.09 25.11/17.09 [a__f(X1, X2)] = [1 0] X1 + [0] 25.11/17.09 [0 1] [4] 25.11/17.09 >= [1 0] X1 + [0] 25.11/17.09 [0 1] [4] 25.11/17.09 = [f(X1, X2)] 25.11/17.09 25.11/17.09 [a__f(g(X), Y)] = [1 4] X + [4] 25.11/17.09 [0 1] [4] 25.11/17.09 > [1 2] X + [0] 25.11/17.09 [0 1] [4] 25.11/17.09 = [a__f(mark(X), f(g(X), Y))] 25.11/17.09 25.11/17.09 [mark(g(X))] = [1 6] X + [4] 25.11/17.09 [0 1] [0] 25.11/17.09 >= [1 6] X + [4] 25.11/17.09 [0 1] [0] 25.11/17.09 = [g(mark(X))] 25.11/17.09 25.11/17.09 [mark(f(X1, X2))] = [1 2] X1 + [8] 25.11/17.09 [0 1] [4] 25.11/17.09 > [1 2] X1 + [0] 25.11/17.09 [0 1] [4] 25.11/17.09 = [a__f(mark(X1), X2)] 25.11/17.09 25.11/17.09 25.11/17.09 We return to the main proof. 25.11/17.09 25.11/17.09 We are left with following problem, upon which TcT provides the 25.11/17.09 certificate YES(O(1),O(n^2)). 25.11/17.09 25.11/17.09 Strict Trs: { mark(g(X)) -> g(mark(X)) } 25.11/17.09 Weak Trs: 25.11/17.09 { a__f(X1, X2) -> f(X1, X2) 25.11/17.09 , a__f(g(X), Y) -> a__f(mark(X), f(g(X), Y)) 25.11/17.09 , mark(f(X1, X2)) -> a__f(mark(X1), X2) } 25.11/17.09 Obligation: 25.11/17.09 innermost runtime complexity 25.11/17.09 Answer: 25.11/17.09 YES(O(1),O(n^2)) 25.11/17.09 25.11/17.09 We use the processor 'matrix interpretation of dimension 2' to 25.11/17.09 orient following rules strictly. 25.11/17.09 25.11/17.09 Trs: { mark(g(X)) -> g(mark(X)) } 25.11/17.09 25.11/17.09 The induced complexity on above rules (modulo remaining rules) is 25.11/17.09 YES(?,O(n^2)) . These rules are moved into the corresponding weak 25.11/17.09 component(s). 25.11/17.09 25.11/17.09 Sub-proof: 25.11/17.09 ---------- 25.11/17.09 The following argument positions are usable: 25.11/17.09 Uargs(a__f) = {1}, Uargs(g) = {1} 25.11/17.09 25.11/17.09 TcT has computed the following constructor-based matrix 25.11/17.09 interpretation satisfying not(EDA). 25.11/17.09 25.11/17.09 [a__f](x1, x2) = [1 2] x1 + [0] 25.11/17.09 [0 1] [0] 25.11/17.09 25.11/17.09 [g](x1) = [1 6] x1 + [2] 25.11/17.09 [0 1] [1] 25.11/17.09 25.11/17.09 [mark](x1) = [1 2] x1 + [0] 25.11/17.09 [0 1] [0] 25.11/17.09 25.11/17.09 [f](x1, x2) = [1 2] x1 + [0] 25.11/17.09 [0 1] [0] 25.11/17.09 25.11/17.09 The order satisfies the following ordering constraints: 25.11/17.09 25.11/17.09 [a__f(X1, X2)] = [1 2] X1 + [0] 25.11/17.09 [0 1] [0] 25.11/17.09 >= [1 2] X1 + [0] 25.11/17.09 [0 1] [0] 25.11/17.09 = [f(X1, X2)] 25.11/17.09 25.11/17.09 [a__f(g(X), Y)] = [1 8] X + [4] 25.11/17.09 [0 1] [1] 25.11/17.09 > [1 4] X + [0] 25.11/17.09 [0 1] [0] 25.11/17.09 = [a__f(mark(X), f(g(X), Y))] 25.11/17.09 25.11/17.09 [mark(g(X))] = [1 8] X + [4] 25.11/17.09 [0 1] [1] 25.11/17.09 > [1 8] X + [2] 25.11/17.09 [0 1] [1] 25.11/17.09 = [g(mark(X))] 25.11/17.09 25.11/17.09 [mark(f(X1, X2))] = [1 4] X1 + [0] 25.11/17.09 [0 1] [0] 25.11/17.09 >= [1 4] X1 + [0] 25.11/17.09 [0 1] [0] 25.11/17.09 = [a__f(mark(X1), X2)] 25.11/17.09 25.11/17.09 25.11/17.09 We return to the main proof. 25.11/17.09 25.11/17.09 We are left with following problem, upon which TcT provides the 25.11/17.09 certificate YES(O(1),O(1)). 25.11/17.09 25.11/17.09 Weak Trs: 25.11/17.09 { a__f(X1, X2) -> f(X1, X2) 25.11/17.09 , a__f(g(X), Y) -> a__f(mark(X), f(g(X), Y)) 25.11/17.09 , mark(g(X)) -> g(mark(X)) 25.11/17.09 , mark(f(X1, X2)) -> a__f(mark(X1), X2) } 25.11/17.09 Obligation: 25.11/17.09 innermost runtime complexity 25.11/17.09 Answer: 25.11/17.09 YES(O(1),O(1)) 25.11/17.09 25.11/17.09 Empty rules are trivially bounded 25.11/17.09 25.11/17.09 Hurray, we answered YES(O(1),O(n^2)) 25.11/17.09 EOF