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