YES(O(1),O(n^1)) 0.00/0.80 YES(O(1),O(n^1)) 0.00/0.80 0.00/0.80 We are left with following problem, upon which TcT provides the 0.00/0.80 certificate YES(O(1),O(n^1)). 0.00/0.80 0.00/0.80 Strict Trs: 0.00/0.80 { first(X1, X2) -> n__first(X1, X2) 0.00/0.80 , first(0(), X) -> nil() 0.00/0.80 , first(s(X), cons(Y, Z)) -> cons(Y, n__first(X, activate(Z))) 0.00/0.80 , activate(X) -> X 0.00/0.80 , activate(n__first(X1, X2)) -> first(X1, X2) 0.00/0.80 , activate(n__from(X)) -> from(X) 0.00/0.80 , from(X) -> cons(X, n__from(s(X))) 0.00/0.80 , from(X) -> n__from(X) } 0.00/0.80 Obligation: 0.00/0.80 runtime complexity 0.00/0.80 Answer: 0.00/0.80 YES(O(1),O(n^1)) 0.00/0.80 0.00/0.80 The weightgap principle applies (using the following nonconstant 0.00/0.80 growth matrix-interpretation) 0.00/0.80 0.00/0.80 The following argument positions are usable: 0.00/0.80 Uargs(cons) = {2}, Uargs(n__first) = {2} 0.00/0.80 0.00/0.80 TcT has computed the following matrix interpretation satisfying 0.00/0.80 not(EDA) and not(IDA(1)). 0.00/0.80 0.00/0.80 [first](x1, x2) = [1] x2 + [0] 0.00/0.80 0.00/0.80 [0] = [7] 0.00/0.80 0.00/0.80 [nil] = [7] 0.00/0.80 0.00/0.80 [s](x1) = [0] 0.00/0.80 0.00/0.80 [cons](x1, x2) = [1] x2 + [0] 0.00/0.80 0.00/0.80 [n__first](x1, x2) = [1] x2 + [0] 0.00/0.80 0.00/0.80 [activate](x1) = [1] x1 + [0] 0.00/0.80 0.00/0.80 [from](x1) = [1] x1 + [5] 0.00/0.80 0.00/0.80 [n__from](x1) = [1] x1 + [0] 0.00/0.80 0.00/0.80 The order satisfies the following ordering constraints: 0.00/0.80 0.00/0.80 [first(X1, X2)] = [1] X2 + [0] 0.00/0.80 >= [1] X2 + [0] 0.00/0.80 = [n__first(X1, X2)] 0.00/0.80 0.00/0.80 [first(0(), X)] = [1] X + [0] 0.00/0.80 ? [7] 0.00/0.80 = [nil()] 0.00/0.80 0.00/0.80 [first(s(X), cons(Y, Z))] = [1] Z + [0] 0.00/0.80 >= [1] Z + [0] 0.00/0.80 = [cons(Y, n__first(X, activate(Z)))] 0.00/0.80 0.00/0.80 [activate(X)] = [1] X + [0] 0.00/0.80 >= [1] X + [0] 0.00/0.80 = [X] 0.00/0.80 0.00/0.80 [activate(n__first(X1, X2))] = [1] X2 + [0] 0.00/0.80 >= [1] X2 + [0] 0.00/0.80 = [first(X1, X2)] 0.00/0.80 0.00/0.80 [activate(n__from(X))] = [1] X + [0] 0.00/0.80 ? [1] X + [5] 0.00/0.80 = [from(X)] 0.00/0.80 0.00/0.80 [from(X)] = [1] X + [5] 0.00/0.80 > [0] 0.00/0.80 = [cons(X, n__from(s(X)))] 0.00/0.80 0.00/0.80 [from(X)] = [1] X + [5] 0.00/0.80 > [1] X + [0] 0.00/0.80 = [n__from(X)] 0.00/0.80 0.00/0.80 0.00/0.80 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 0.00/0.80 0.00/0.80 We are left with following problem, upon which TcT provides the 0.00/0.80 certificate YES(O(1),O(n^1)). 0.00/0.80 0.00/0.80 Strict Trs: 0.00/0.80 { first(X1, X2) -> n__first(X1, X2) 0.00/0.80 , first(0(), X) -> nil() 0.00/0.80 , first(s(X), cons(Y, Z)) -> cons(Y, n__first(X, activate(Z))) 0.00/0.80 , activate(X) -> X 0.00/0.80 , activate(n__first(X1, X2)) -> first(X1, X2) 0.00/0.80 , activate(n__from(X)) -> from(X) } 0.00/0.80 Weak Trs: 0.00/0.80 { from(X) -> cons(X, n__from(s(X))) 0.00/0.80 , from(X) -> n__from(X) } 0.00/0.80 Obligation: 0.00/0.80 runtime complexity 0.00/0.80 Answer: 0.00/0.80 YES(O(1),O(n^1)) 0.00/0.80 0.00/0.80 The weightgap principle applies (using the following nonconstant 0.00/0.80 growth matrix-interpretation) 0.00/0.80 0.00/0.80 The following argument positions are usable: 0.00/0.80 Uargs(cons) = {2}, Uargs(n__first) = {2} 0.00/0.80 0.00/0.80 TcT has computed the following matrix interpretation satisfying 0.00/0.80 not(EDA) and not(IDA(1)). 0.00/0.80 0.00/0.80 [first](x1, x2) = [1] x2 + [1] 0.00/0.80 0.00/0.80 [0] = [7] 0.00/0.80 0.00/0.80 [nil] = [0] 0.00/0.80 0.00/0.80 [s](x1) = [0] 0.00/0.80 0.00/0.80 [cons](x1, x2) = [1] x2 + [0] 0.00/0.80 0.00/0.80 [n__first](x1, x2) = [1] x2 + [0] 0.00/0.80 0.00/0.80 [activate](x1) = [1] x1 + [0] 0.00/0.80 0.00/0.80 [from](x1) = [1] x1 + [5] 0.00/0.80 0.00/0.80 [n__from](x1) = [1] x1 + [0] 0.00/0.80 0.00/0.80 The order satisfies the following ordering constraints: 0.00/0.80 0.00/0.80 [first(X1, X2)] = [1] X2 + [1] 0.00/0.80 > [1] X2 + [0] 0.00/0.80 = [n__first(X1, X2)] 0.00/0.80 0.00/0.80 [first(0(), X)] = [1] X + [1] 0.00/0.80 > [0] 0.00/0.80 = [nil()] 0.00/0.80 0.00/0.80 [first(s(X), cons(Y, Z))] = [1] Z + [1] 0.00/0.80 > [1] Z + [0] 0.00/0.80 = [cons(Y, n__first(X, activate(Z)))] 0.00/0.80 0.00/0.80 [activate(X)] = [1] X + [0] 0.00/0.80 >= [1] X + [0] 0.00/0.80 = [X] 0.00/0.80 0.00/0.80 [activate(n__first(X1, X2))] = [1] X2 + [0] 0.00/0.80 ? [1] X2 + [1] 0.00/0.80 = [first(X1, X2)] 0.00/0.80 0.00/0.80 [activate(n__from(X))] = [1] X + [0] 0.00/0.80 ? [1] X + [5] 0.00/0.80 = [from(X)] 0.00/0.80 0.00/0.80 [from(X)] = [1] X + [5] 0.00/0.80 > [0] 0.00/0.80 = [cons(X, n__from(s(X)))] 0.00/0.80 0.00/0.80 [from(X)] = [1] X + [5] 0.00/0.80 > [1] X + [0] 0.00/0.80 = [n__from(X)] 0.00/0.80 0.00/0.80 0.00/0.80 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 0.00/0.80 0.00/0.80 We are left with following problem, upon which TcT provides the 0.00/0.80 certificate YES(O(1),O(n^1)). 0.00/0.80 0.00/0.80 Strict Trs: 0.00/0.80 { activate(X) -> X 0.00/0.80 , activate(n__first(X1, X2)) -> first(X1, X2) 0.00/0.80 , activate(n__from(X)) -> from(X) } 0.00/0.80 Weak Trs: 0.00/0.80 { first(X1, X2) -> n__first(X1, X2) 0.00/0.80 , first(0(), X) -> nil() 0.00/0.80 , first(s(X), cons(Y, Z)) -> cons(Y, n__first(X, activate(Z))) 0.00/0.80 , from(X) -> cons(X, n__from(s(X))) 0.00/0.80 , from(X) -> n__from(X) } 0.00/0.80 Obligation: 0.00/0.80 runtime complexity 0.00/0.80 Answer: 0.00/0.80 YES(O(1),O(n^1)) 0.00/0.80 0.00/0.80 The weightgap principle applies (using the following nonconstant 0.00/0.80 growth matrix-interpretation) 0.00/0.80 0.00/0.80 The following argument positions are usable: 0.00/0.80 Uargs(cons) = {2}, Uargs(n__first) = {2} 0.00/0.80 0.00/0.80 TcT has computed the following matrix interpretation satisfying 0.00/0.80 not(EDA) and not(IDA(1)). 0.00/0.80 0.00/0.80 [first](x1, x2) = [1] x1 + [1] x2 + [4] 0.00/0.80 0.00/0.80 [0] = [7] 0.00/0.80 0.00/0.80 [nil] = [3] 0.00/0.80 0.00/0.80 [s](x1) = [1] x1 + [4] 0.00/0.80 0.00/0.80 [cons](x1, x2) = [1] x2 + [0] 0.00/0.80 0.00/0.80 [n__first](x1, x2) = [1] x1 + [1] x2 + [0] 0.00/0.80 0.00/0.80 [activate](x1) = [1] x1 + [4] 0.00/0.80 0.00/0.80 [from](x1) = [5] 0.00/0.80 0.00/0.80 [n__from](x1) = [0] 0.00/0.80 0.00/0.80 The order satisfies the following ordering constraints: 0.00/0.80 0.00/0.80 [first(X1, X2)] = [1] X1 + [1] X2 + [4] 0.00/0.80 > [1] X1 + [1] X2 + [0] 0.00/0.80 = [n__first(X1, X2)] 0.00/0.80 0.00/0.80 [first(0(), X)] = [1] X + [11] 0.00/0.80 > [3] 0.00/0.80 = [nil()] 0.00/0.80 0.00/0.80 [first(s(X), cons(Y, Z))] = [1] X + [1] Z + [8] 0.00/0.80 > [1] X + [1] Z + [4] 0.00/0.80 = [cons(Y, n__first(X, activate(Z)))] 0.00/0.80 0.00/0.80 [activate(X)] = [1] X + [4] 0.00/0.80 > [1] X + [0] 0.00/0.80 = [X] 0.00/0.80 0.00/0.80 [activate(n__first(X1, X2))] = [1] X1 + [1] X2 + [4] 0.00/0.80 >= [1] X1 + [1] X2 + [4] 0.00/0.80 = [first(X1, X2)] 0.00/0.80 0.00/0.80 [activate(n__from(X))] = [4] 0.00/0.80 ? [5] 0.00/0.80 = [from(X)] 0.00/0.80 0.00/0.80 [from(X)] = [5] 0.00/0.80 > [0] 0.00/0.80 = [cons(X, n__from(s(X)))] 0.00/0.80 0.00/0.80 [from(X)] = [5] 0.00/0.80 > [0] 0.00/0.80 = [n__from(X)] 0.00/0.80 0.00/0.80 0.00/0.80 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 0.00/0.80 0.00/0.80 We are left with following problem, upon which TcT provides the 0.00/0.80 certificate YES(O(1),O(n^1)). 0.00/0.80 0.00/0.80 Strict Trs: 0.00/0.80 { activate(n__first(X1, X2)) -> first(X1, X2) 0.00/0.80 , activate(n__from(X)) -> from(X) } 0.00/0.80 Weak Trs: 0.00/0.80 { first(X1, X2) -> n__first(X1, X2) 0.00/0.80 , first(0(), X) -> nil() 0.00/0.80 , first(s(X), cons(Y, Z)) -> cons(Y, n__first(X, activate(Z))) 0.00/0.80 , activate(X) -> X 0.00/0.80 , from(X) -> cons(X, n__from(s(X))) 0.00/0.80 , from(X) -> n__from(X) } 0.00/0.80 Obligation: 0.00/0.80 runtime complexity 0.00/0.80 Answer: 0.00/0.80 YES(O(1),O(n^1)) 0.00/0.80 0.00/0.80 The weightgap principle applies (using the following nonconstant 0.00/0.80 growth matrix-interpretation) 0.00/0.80 0.00/0.80 The following argument positions are usable: 0.00/0.80 Uargs(cons) = {2}, Uargs(n__first) = {2} 0.00/0.80 0.00/0.80 TcT has computed the following matrix interpretation satisfying 0.00/0.80 not(EDA) and not(IDA(1)). 0.00/0.80 0.00/0.80 [first](x1, x2) = [1] x1 + [1] x2 + [0] 0.00/0.80 0.00/0.80 [0] = [7] 0.00/0.80 0.00/0.80 [nil] = [7] 0.00/0.80 0.00/0.80 [s](x1) = [1] x1 + [1] 0.00/0.80 0.00/0.80 [cons](x1, x2) = [1] x2 + [0] 0.00/0.80 0.00/0.80 [n__first](x1, x2) = [1] x1 + [1] x2 + [0] 0.00/0.80 0.00/0.80 [activate](x1) = [1] x1 + [1] 0.00/0.80 0.00/0.80 [from](x1) = [0] 0.00/0.80 0.00/0.80 [n__from](x1) = [0] 0.00/0.80 0.00/0.80 The order satisfies the following ordering constraints: 0.00/0.80 0.00/0.80 [first(X1, X2)] = [1] X1 + [1] X2 + [0] 0.00/0.80 >= [1] X1 + [1] X2 + [0] 0.00/0.80 = [n__first(X1, X2)] 0.00/0.80 0.00/0.80 [first(0(), X)] = [1] X + [7] 0.00/0.80 >= [7] 0.00/0.80 = [nil()] 0.00/0.80 0.00/0.80 [first(s(X), cons(Y, Z))] = [1] X + [1] Z + [1] 0.00/0.80 >= [1] X + [1] Z + [1] 0.00/0.80 = [cons(Y, n__first(X, activate(Z)))] 0.00/0.80 0.00/0.80 [activate(X)] = [1] X + [1] 0.00/0.80 > [1] X + [0] 0.00/0.80 = [X] 0.00/0.80 0.00/0.80 [activate(n__first(X1, X2))] = [1] X1 + [1] X2 + [1] 0.00/0.80 > [1] X1 + [1] X2 + [0] 0.00/0.80 = [first(X1, X2)] 0.00/0.80 0.00/0.80 [activate(n__from(X))] = [1] 0.00/0.80 > [0] 0.00/0.80 = [from(X)] 0.00/0.80 0.00/0.80 [from(X)] = [0] 0.00/0.80 >= [0] 0.00/0.80 = [cons(X, n__from(s(X)))] 0.00/0.80 0.00/0.80 [from(X)] = [0] 0.00/0.80 >= [0] 0.00/0.80 = [n__from(X)] 0.00/0.80 0.00/0.80 0.00/0.80 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 0.00/0.80 0.00/0.80 We are left with following problem, upon which TcT provides the 0.00/0.80 certificate YES(O(1),O(1)). 0.00/0.80 0.00/0.80 Weak Trs: 0.00/0.80 { first(X1, X2) -> n__first(X1, X2) 0.00/0.80 , first(0(), X) -> nil() 0.00/0.80 , first(s(X), cons(Y, Z)) -> cons(Y, n__first(X, activate(Z))) 0.00/0.80 , activate(X) -> X 0.00/0.80 , activate(n__first(X1, X2)) -> first(X1, X2) 0.00/0.80 , activate(n__from(X)) -> from(X) 0.00/0.80 , from(X) -> cons(X, n__from(s(X))) 0.00/0.80 , from(X) -> n__from(X) } 0.00/0.80 Obligation: 0.00/0.80 runtime complexity 0.00/0.80 Answer: 0.00/0.80 YES(O(1),O(1)) 0.00/0.80 0.00/0.80 Empty rules are trivially bounded 0.00/0.80 0.00/0.80 Hurray, we answered YES(O(1),O(n^1)) 0.00/0.81 EOF