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