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