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