YES(O(1),O(n^2)) 166.19/60.08 YES(O(1),O(n^2)) 166.19/60.08 166.19/60.08 We are left with following problem, upon which TcT provides the 166.19/60.08 certificate YES(O(1),O(n^2)). 166.19/60.08 166.19/60.08 Strict Trs: 166.19/60.08 { active(f(X)) -> mark(g(h(f(X)))) 166.19/60.08 , f(active(X)) -> f(X) 166.19/60.08 , f(mark(X)) -> f(X) 166.19/60.08 , mark(f(X)) -> active(f(mark(X))) 166.19/60.08 , mark(g(X)) -> active(g(X)) 166.19/60.08 , mark(h(X)) -> active(h(mark(X))) 166.19/60.08 , g(active(X)) -> g(X) 166.19/60.08 , g(mark(X)) -> g(X) 166.19/60.08 , h(active(X)) -> h(X) 166.19/60.08 , h(mark(X)) -> h(X) } 166.19/60.08 Obligation: 166.19/60.08 derivational complexity 166.19/60.08 Answer: 166.19/60.08 YES(O(1),O(n^2)) 166.19/60.08 166.19/60.08 The weightgap principle applies (using the following nonconstant 166.19/60.08 growth matrix-interpretation) 166.19/60.08 166.19/60.08 TcT has computed the following triangular matrix interpretation. 166.19/60.08 Note that the diagonal of the component-wise maxima of 166.19/60.08 interpretation-entries contains no more than 1 non-zero entries. 166.19/60.08 166.19/60.08 [active](x1) = [1] x1 + [0] 166.19/60.08 166.19/60.08 [f](x1) = [1] x1 + [0] 166.19/60.08 166.19/60.08 [mark](x1) = [1] x1 + [1] 166.19/60.08 166.19/60.08 [g](x1) = [1] x1 + [0] 166.19/60.08 166.19/60.08 [h](x1) = [1] x1 + [0] 166.19/60.08 166.19/60.08 The order satisfies the following ordering constraints: 166.19/60.08 166.19/60.08 [active(f(X))] = [1] X + [0] 166.19/60.08 ? [1] X + [1] 166.19/60.08 = [mark(g(h(f(X))))] 166.19/60.08 166.19/60.08 [f(active(X))] = [1] X + [0] 166.19/60.08 >= [1] X + [0] 166.19/60.08 = [f(X)] 166.19/60.08 166.19/60.08 [f(mark(X))] = [1] X + [1] 166.19/60.08 > [1] X + [0] 166.19/60.08 = [f(X)] 166.19/60.08 166.19/60.08 [mark(f(X))] = [1] X + [1] 166.19/60.08 >= [1] X + [1] 166.19/60.08 = [active(f(mark(X)))] 166.19/60.08 166.19/60.08 [mark(g(X))] = [1] X + [1] 166.19/60.08 > [1] X + [0] 166.19/60.08 = [active(g(X))] 166.19/60.08 166.19/60.08 [mark(h(X))] = [1] X + [1] 166.19/60.08 >= [1] X + [1] 166.19/60.08 = [active(h(mark(X)))] 166.19/60.08 166.19/60.08 [g(active(X))] = [1] X + [0] 166.19/60.08 >= [1] X + [0] 166.19/60.08 = [g(X)] 166.19/60.08 166.19/60.08 [g(mark(X))] = [1] X + [1] 166.19/60.08 > [1] X + [0] 166.19/60.08 = [g(X)] 166.19/60.08 166.19/60.08 [h(active(X))] = [1] X + [0] 166.19/60.08 >= [1] X + [0] 166.19/60.08 = [h(X)] 166.19/60.08 166.19/60.08 [h(mark(X))] = [1] X + [1] 166.19/60.08 > [1] X + [0] 166.19/60.08 = [h(X)] 166.19/60.08 166.19/60.08 166.19/60.08 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 166.19/60.08 166.19/60.08 We are left with following problem, upon which TcT provides the 166.19/60.08 certificate YES(O(1),O(n^2)). 166.19/60.08 166.19/60.08 Strict Trs: 166.19/60.08 { active(f(X)) -> mark(g(h(f(X)))) 166.19/60.08 , f(active(X)) -> f(X) 166.19/60.08 , mark(f(X)) -> active(f(mark(X))) 166.19/60.08 , mark(h(X)) -> active(h(mark(X))) 166.19/60.08 , g(active(X)) -> g(X) 166.19/60.08 , h(active(X)) -> h(X) } 166.19/60.08 Weak Trs: 166.19/60.08 { f(mark(X)) -> f(X) 166.19/60.08 , mark(g(X)) -> active(g(X)) 166.19/60.08 , g(mark(X)) -> g(X) 166.19/60.08 , h(mark(X)) -> h(X) } 166.19/60.08 Obligation: 166.19/60.08 derivational complexity 166.19/60.08 Answer: 166.19/60.08 YES(O(1),O(n^2)) 166.19/60.08 166.19/60.08 The weightgap principle applies (using the following nonconstant 166.19/60.08 growth matrix-interpretation) 166.19/60.08 166.19/60.08 TcT has computed the following triangular matrix interpretation. 166.19/60.08 Note that the diagonal of the component-wise maxima of 166.19/60.08 interpretation-entries contains no more than 1 non-zero entries. 166.19/60.08 166.19/60.08 [active](x1) = [1] x1 + [1] 166.19/60.08 166.19/60.08 [f](x1) = [1] x1 + [0] 166.19/60.08 166.19/60.08 [mark](x1) = [1] x1 + [2] 166.19/60.08 166.19/60.08 [g](x1) = [1] x1 + [0] 166.19/60.08 166.19/60.08 [h](x1) = [1] x1 + [2] 166.19/60.08 166.19/60.08 The order satisfies the following ordering constraints: 166.19/60.08 166.19/60.08 [active(f(X))] = [1] X + [1] 166.19/60.08 ? [1] X + [4] 166.19/60.08 = [mark(g(h(f(X))))] 166.19/60.08 166.19/60.08 [f(active(X))] = [1] X + [1] 166.19/60.08 > [1] X + [0] 166.19/60.08 = [f(X)] 166.19/60.08 166.19/60.08 [f(mark(X))] = [1] X + [2] 166.19/60.08 > [1] X + [0] 166.19/60.08 = [f(X)] 166.19/60.08 166.19/60.08 [mark(f(X))] = [1] X + [2] 166.19/60.08 ? [1] X + [3] 166.19/60.08 = [active(f(mark(X)))] 166.19/60.08 166.19/60.08 [mark(g(X))] = [1] X + [2] 166.19/60.08 > [1] X + [1] 166.19/60.08 = [active(g(X))] 166.19/60.08 166.19/60.08 [mark(h(X))] = [1] X + [4] 166.19/60.08 ? [1] X + [5] 166.19/60.08 = [active(h(mark(X)))] 166.19/60.08 166.19/60.08 [g(active(X))] = [1] X + [1] 166.19/60.08 > [1] X + [0] 166.19/60.08 = [g(X)] 166.19/60.08 166.19/60.08 [g(mark(X))] = [1] X + [2] 166.19/60.08 > [1] X + [0] 166.19/60.08 = [g(X)] 166.19/60.08 166.19/60.08 [h(active(X))] = [1] X + [3] 166.19/60.08 > [1] X + [2] 166.19/60.08 = [h(X)] 166.19/60.08 166.19/60.08 [h(mark(X))] = [1] X + [4] 166.19/60.08 > [1] X + [2] 166.19/60.08 = [h(X)] 166.19/60.08 166.19/60.08 166.19/60.08 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 166.19/60.08 166.19/60.08 We are left with following problem, upon which TcT provides the 166.19/60.08 certificate YES(O(1),O(n^2)). 166.19/60.08 166.19/60.08 Strict Trs: 166.19/60.08 { active(f(X)) -> mark(g(h(f(X)))) 166.19/60.08 , mark(f(X)) -> active(f(mark(X))) 166.19/60.08 , mark(h(X)) -> active(h(mark(X))) } 166.19/60.08 Weak Trs: 166.19/60.08 { f(active(X)) -> f(X) 166.19/60.08 , f(mark(X)) -> f(X) 166.19/60.08 , mark(g(X)) -> active(g(X)) 166.19/60.08 , g(active(X)) -> g(X) 166.19/60.08 , g(mark(X)) -> g(X) 166.19/60.08 , h(active(X)) -> h(X) 166.19/60.08 , h(mark(X)) -> h(X) } 166.19/60.08 Obligation: 166.19/60.08 derivational complexity 166.19/60.08 Answer: 166.19/60.08 YES(O(1),O(n^2)) 166.19/60.08 166.19/60.08 We use the processor 'matrix interpretation of dimension 2' to 166.19/60.08 orient following rules strictly. 166.19/60.08 166.19/60.08 Trs: { mark(f(X)) -> active(f(mark(X))) } 166.19/60.08 166.19/60.08 The induced complexity on above rules (modulo remaining rules) is 166.19/60.08 YES(?,O(n^2)) . These rules are moved into the corresponding weak 166.19/60.08 component(s). 166.19/60.08 166.19/60.08 Sub-proof: 166.19/60.08 ---------- 166.19/60.08 TcT has computed the following triangular matrix interpretation. 166.19/60.08 166.19/60.08 [active](x1) = [1 0] x1 + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 166.19/60.08 [f](x1) = [1 0] x1 + [0] 166.19/60.08 [0 1] [1] 166.19/60.08 166.19/60.08 [mark](x1) = [1 1] x1 + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 166.19/60.08 [g](x1) = [1 0] x1 + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 166.19/60.08 [h](x1) = [1 0] x1 + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 166.19/60.08 The order satisfies the following ordering constraints: 166.19/60.08 166.19/60.08 [active(f(X))] = [1 0] X + [0] 166.19/60.08 [0 1] [1] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 = [mark(g(h(f(X))))] 166.19/60.08 166.19/60.08 [f(active(X))] = [1 0] X + [0] 166.19/60.08 [0 1] [1] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 1] [1] 166.19/60.08 = [f(X)] 166.19/60.08 166.19/60.08 [f(mark(X))] = [1 1] X + [0] 166.19/60.08 [0 1] [1] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 1] [1] 166.19/60.08 = [f(X)] 166.19/60.08 166.19/60.08 [mark(f(X))] = [1 1] X + [1] 166.19/60.08 [0 1] [1] 166.19/60.08 > [1 1] X + [0] 166.19/60.08 [0 1] [1] 166.19/60.08 = [active(f(mark(X)))] 166.19/60.08 166.19/60.08 [mark(g(X))] = [1 0] X + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 = [active(g(X))] 166.19/60.08 166.19/60.08 [mark(h(X))] = [1 1] X + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 >= [1 1] X + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 = [active(h(mark(X)))] 166.19/60.08 166.19/60.08 [g(active(X))] = [1 0] X + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 = [g(X)] 166.19/60.08 166.19/60.08 [g(mark(X))] = [1 1] X + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 = [g(X)] 166.19/60.08 166.19/60.08 [h(active(X))] = [1 0] X + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 = [h(X)] 166.19/60.08 166.19/60.08 [h(mark(X))] = [1 1] X + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 = [h(X)] 166.19/60.08 166.19/60.08 166.19/60.08 We return to the main proof. 166.19/60.08 166.19/60.08 We are left with following problem, upon which TcT provides the 166.19/60.08 certificate YES(O(1),O(n^2)). 166.19/60.08 166.19/60.08 Strict Trs: 166.19/60.08 { active(f(X)) -> mark(g(h(f(X)))) 166.19/60.08 , mark(h(X)) -> active(h(mark(X))) } 166.19/60.08 Weak Trs: 166.19/60.08 { f(active(X)) -> f(X) 166.19/60.08 , f(mark(X)) -> f(X) 166.19/60.08 , mark(f(X)) -> active(f(mark(X))) 166.19/60.08 , mark(g(X)) -> active(g(X)) 166.19/60.08 , g(active(X)) -> g(X) 166.19/60.08 , g(mark(X)) -> g(X) 166.19/60.08 , h(active(X)) -> h(X) 166.19/60.08 , h(mark(X)) -> h(X) } 166.19/60.08 Obligation: 166.19/60.08 derivational complexity 166.19/60.08 Answer: 166.19/60.08 YES(O(1),O(n^2)) 166.19/60.08 166.19/60.08 We use the processor 'matrix interpretation of dimension 2' to 166.19/60.08 orient following rules strictly. 166.19/60.08 166.19/60.08 Trs: { mark(h(X)) -> active(h(mark(X))) } 166.19/60.08 166.19/60.08 The induced complexity on above rules (modulo remaining rules) is 166.19/60.08 YES(?,O(n^2)) . These rules are moved into the corresponding weak 166.19/60.08 component(s). 166.19/60.08 166.19/60.08 Sub-proof: 166.19/60.08 ---------- 166.19/60.08 TcT has computed the following triangular matrix interpretation. 166.19/60.08 166.19/60.08 [active](x1) = [1 0] x1 + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 166.19/60.08 [f](x1) = [1 0] x1 + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 166.19/60.08 [mark](x1) = [1 1] x1 + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 166.19/60.08 [g](x1) = [1 0] x1 + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 166.19/60.08 [h](x1) = [1 0] x1 + [0] 166.19/60.08 [0 1] [1] 166.19/60.08 166.19/60.08 The order satisfies the following ordering constraints: 166.19/60.08 166.19/60.08 [active(f(X))] = [1 0] X + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 = [mark(g(h(f(X))))] 166.19/60.08 166.19/60.08 [f(active(X))] = [1 0] X + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 = [f(X)] 166.19/60.08 166.19/60.08 [f(mark(X))] = [1 1] X + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 = [f(X)] 166.19/60.08 166.19/60.08 [mark(f(X))] = [1 1] X + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 >= [1 1] X + [0] 166.19/60.08 [0 1] [0] 166.19/60.08 = [active(f(mark(X)))] 166.19/60.08 166.19/60.08 [mark(g(X))] = [1 0] X + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 = [active(g(X))] 166.19/60.08 166.19/60.08 [mark(h(X))] = [1 1] X + [1] 166.19/60.08 [0 1] [1] 166.19/60.08 > [1 1] X + [0] 166.19/60.08 [0 1] [1] 166.19/60.08 = [active(h(mark(X)))] 166.19/60.08 166.19/60.08 [g(active(X))] = [1 0] X + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 = [g(X)] 166.19/60.08 166.19/60.08 [g(mark(X))] = [1 1] X + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 0] [0] 166.19/60.08 = [g(X)] 166.19/60.08 166.19/60.08 [h(active(X))] = [1 0] X + [0] 166.19/60.08 [0 1] [1] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 1] [1] 166.19/60.08 = [h(X)] 166.19/60.08 166.19/60.08 [h(mark(X))] = [1 1] X + [0] 166.19/60.08 [0 1] [1] 166.19/60.08 >= [1 0] X + [0] 166.19/60.08 [0 1] [1] 166.19/60.08 = [h(X)] 166.19/60.08 166.19/60.08 166.19/60.08 We return to the main proof. 166.19/60.08 166.19/60.08 We are left with following problem, upon which TcT provides the 166.19/60.08 certificate YES(O(1),O(n^2)). 166.19/60.08 166.19/60.08 Strict Trs: { active(f(X)) -> mark(g(h(f(X)))) } 166.19/60.08 Weak Trs: 166.19/60.08 { f(active(X)) -> f(X) 166.19/60.08 , f(mark(X)) -> f(X) 166.19/60.08 , mark(f(X)) -> active(f(mark(X))) 166.19/60.08 , mark(g(X)) -> active(g(X)) 166.19/60.08 , mark(h(X)) -> active(h(mark(X))) 166.19/60.08 , g(active(X)) -> g(X) 166.19/60.08 , g(mark(X)) -> g(X) 166.19/60.08 , h(active(X)) -> h(X) 166.19/60.08 , h(mark(X)) -> h(X) } 166.19/60.08 Obligation: 166.19/60.08 derivational complexity 166.19/60.08 Answer: 166.19/60.08 YES(O(1),O(n^2)) 166.19/60.08 166.19/60.08 We use the processor 'matrix interpretation of dimension 4' to 166.19/60.08 orient following rules strictly. 166.19/60.08 166.19/60.08 Trs: { active(f(X)) -> mark(g(h(f(X)))) } 166.19/60.08 166.19/60.08 The induced complexity on above rules (modulo remaining rules) is 166.19/60.08 YES(?,O(n^2)) . These rules are moved into the corresponding weak 166.19/60.08 component(s). 166.19/60.08 166.19/60.08 Sub-proof: 166.19/60.08 ---------- 166.19/60.08 TcT has computed the following triangular matrix interpretation. 166.19/60.08 Note that the diagonal of the component-wise maxima of 166.19/60.08 interpretation-entries contains no more than 2 non-zero entries. 166.19/60.08 166.19/60.08 [1 0 1 0] [0] 166.19/60.08 [active](x1) = [0 1 1 0] x1 + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 166.19/60.08 [1 0 0 0] [0] 166.19/60.08 [f](x1) = [0 1 1 0] x1 + [1] 166.19/60.08 [0 0 0 0] [1] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 166.19/60.08 [1 1 0 0] [0] 166.19/60.08 [mark](x1) = [0 1 1 0] x1 + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 166.19/60.08 [1 0 0 0] [0] 166.19/60.08 [g](x1) = [0 0 0 0] x1 + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 166.19/60.08 [1 0 0 0] [0] 166.19/60.08 [h](x1) = [0 1 1 0] x1 + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 166.19/60.08 The order satisfies the following ordering constraints: 166.19/60.08 166.19/60.08 [active(f(X))] = [1 0 0 0] [1] 166.19/60.08 [0 1 1 0] X + [2] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 > [1 0 0 0] [0] 166.19/60.08 [0 0 0 0] X + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 = [mark(g(h(f(X))))] 166.19/60.08 166.19/60.08 [f(active(X))] = [1 0 1 0] [0] 166.19/60.08 [0 1 1 0] X + [1] 166.19/60.08 [0 0 0 0] [1] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 >= [1 0 0 0] [0] 166.19/60.08 [0 1 1 0] X + [1] 166.19/60.08 [0 0 0 0] [1] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 = [f(X)] 166.19/60.08 166.19/60.08 [f(mark(X))] = [1 1 0 0] [0] 166.19/60.08 [0 1 1 0] X + [1] 166.19/60.08 [0 0 0 0] [1] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 >= [1 0 0 0] [0] 166.19/60.08 [0 1 1 0] X + [1] 166.19/60.08 [0 0 0 0] [1] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 = [f(X)] 166.19/60.08 166.19/60.08 [mark(f(X))] = [1 1 1 0] [1] 166.19/60.08 [0 1 1 0] X + [2] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 >= [1 1 0 0] [1] 166.19/60.08 [0 1 1 0] X + [2] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 = [active(f(mark(X)))] 166.19/60.08 166.19/60.08 [mark(g(X))] = [1 0 0 0] [0] 166.19/60.08 [0 0 0 0] X + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 >= [1 0 0 0] [0] 166.19/60.08 [0 0 0 0] X + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 = [active(g(X))] 166.19/60.08 166.19/60.08 [mark(h(X))] = [1 1 1 0] [0] 166.19/60.08 [0 1 1 0] X + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 >= [1 1 0 0] [0] 166.19/60.08 [0 1 1 0] X + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 = [active(h(mark(X)))] 166.19/60.08 166.19/60.08 [g(active(X))] = [1 0 1 0] [0] 166.19/60.08 [0 0 0 0] X + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 >= [1 0 0 0] [0] 166.19/60.08 [0 0 0 0] X + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 = [g(X)] 166.19/60.08 166.19/60.08 [g(mark(X))] = [1 1 0 0] [0] 166.19/60.08 [0 0 0 0] X + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 >= [1 0 0 0] [0] 166.19/60.08 [0 0 0 0] X + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 = [g(X)] 166.19/60.08 166.19/60.08 [h(active(X))] = [1 0 1 0] [0] 166.19/60.08 [0 1 1 0] X + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 >= [1 0 0 0] [0] 166.19/60.08 [0 1 1 0] X + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 = [h(X)] 166.19/60.08 166.19/60.08 [h(mark(X))] = [1 1 0 0] [0] 166.19/60.08 [0 1 1 0] X + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 >= [1 0 0 0] [0] 166.19/60.08 [0 1 1 0] X + [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 [0 0 0 0] [0] 166.19/60.08 = [h(X)] 166.19/60.08 166.19/60.08 166.19/60.08 We return to the main proof. 166.19/60.08 166.19/60.08 We are left with following problem, upon which TcT provides the 166.19/60.08 certificate YES(O(1),O(1)). 166.19/60.08 166.19/60.08 Weak Trs: 166.19/60.08 { active(f(X)) -> mark(g(h(f(X)))) 166.19/60.08 , f(active(X)) -> f(X) 166.19/60.08 , f(mark(X)) -> f(X) 166.19/60.08 , mark(f(X)) -> active(f(mark(X))) 166.19/60.08 , mark(g(X)) -> active(g(X)) 166.19/60.08 , mark(h(X)) -> active(h(mark(X))) 166.19/60.08 , g(active(X)) -> g(X) 166.19/60.08 , g(mark(X)) -> g(X) 166.19/60.08 , h(active(X)) -> h(X) 166.19/60.08 , h(mark(X)) -> h(X) } 166.19/60.08 Obligation: 166.19/60.08 derivational complexity 166.19/60.08 Answer: 166.19/60.08 YES(O(1),O(1)) 166.19/60.08 166.19/60.08 Empty rules are trivially bounded 166.19/60.08 166.19/60.08 Hurray, we answered YES(O(1),O(n^2)) 166.43/60.10 EOF