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