MAYBE 572.43/297.19 MAYBE 572.43/297.19 572.43/297.19 We are left with following problem, upon which TcT provides the 572.43/297.19 certificate MAYBE. 572.43/297.19 572.43/297.19 Strict Trs: 572.43/297.19 { sel(X1, X2) -> n__sel(X1, X2) 572.43/297.19 , sel(s(X), cons(Y, Z)) -> sel(X, activate(Z)) 572.43/297.19 , sel(0(), cons(X, Z)) -> X 572.43/297.19 , s(X) -> n__s(X) 572.43/297.19 , cons(X1, X2) -> n__cons(X1, X2) 572.43/297.19 , activate(X) -> X 572.43/297.19 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.43/297.19 , activate(n__from(X)) -> from(activate(X)) 572.43/297.19 , activate(n__s(X)) -> s(activate(X)) 572.43/297.19 , activate(n__0()) -> 0() 572.43/297.19 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.43/297.19 , activate(n__nil()) -> nil() 572.43/297.19 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.43/297.19 , 0() -> n__0() 572.43/297.19 , first(X1, X2) -> n__first(X1, X2) 572.43/297.19 , first(s(X), cons(Y, Z)) -> cons(Y, n__first(X, activate(Z))) 572.43/297.19 , first(0(), Z) -> nil() 572.43/297.19 , nil() -> n__nil() 572.43/297.19 , from(X) -> cons(X, n__from(n__s(X))) 572.43/297.19 , from(X) -> n__from(X) 572.43/297.19 , sel1(s(X), cons(Y, Z)) -> sel1(X, activate(Z)) 572.43/297.19 , sel1(0(), cons(X, Z)) -> quote(X) 572.43/297.19 , quote(n__s(X)) -> s1(quote(activate(X))) 572.43/297.19 , quote(n__0()) -> 01() 572.43/297.19 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.43/297.19 , first1(s(X), cons(Y, Z)) -> 572.43/297.19 cons1(quote(Y), first1(X, activate(Z))) 572.43/297.19 , first1(0(), Z) -> nil1() 572.43/297.19 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.43/297.19 , quote1(n__cons(X, Z)) -> 572.43/297.19 cons1(quote(activate(X)), quote1(activate(Z))) 572.43/297.19 , quote1(n__nil()) -> nil1() 572.43/297.19 , unquote(01()) -> 0() 572.43/297.19 , unquote(s1(X)) -> s(unquote(X)) 572.43/297.19 , unquote1(nil1()) -> nil() 572.43/297.19 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) 572.43/297.19 , fcons(X, Z) -> cons(X, Z) } 572.43/297.19 Obligation: 572.43/297.19 innermost runtime complexity 572.43/297.19 Answer: 572.43/297.19 MAYBE 572.43/297.19 572.43/297.19 Arguments of following rules are not normal-forms: 572.43/297.19 572.43/297.19 { sel(s(X), cons(Y, Z)) -> sel(X, activate(Z)) 572.43/297.19 , sel(0(), cons(X, Z)) -> X 572.43/297.19 , first(s(X), cons(Y, Z)) -> cons(Y, n__first(X, activate(Z))) 572.43/297.19 , first(0(), Z) -> nil() 572.43/297.19 , sel1(s(X), cons(Y, Z)) -> sel1(X, activate(Z)) 572.43/297.19 , sel1(0(), cons(X, Z)) -> quote(X) 572.43/297.19 , first1(s(X), cons(Y, Z)) -> 572.43/297.19 cons1(quote(Y), first1(X, activate(Z))) 572.43/297.19 , first1(0(), Z) -> nil1() } 572.43/297.19 572.43/297.19 All above mentioned rules can be savely removed. 572.43/297.19 572.43/297.19 We are left with following problem, upon which TcT provides the 572.43/297.19 certificate MAYBE. 572.43/297.19 572.43/297.19 Strict Trs: 572.43/297.19 { sel(X1, X2) -> n__sel(X1, X2) 572.43/297.19 , s(X) -> n__s(X) 572.43/297.19 , cons(X1, X2) -> n__cons(X1, X2) 572.43/297.19 , activate(X) -> X 572.43/297.19 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.43/297.19 , activate(n__from(X)) -> from(activate(X)) 572.43/297.19 , activate(n__s(X)) -> s(activate(X)) 572.43/297.19 , activate(n__0()) -> 0() 572.43/297.19 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.43/297.19 , activate(n__nil()) -> nil() 572.43/297.19 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.43/297.19 , 0() -> n__0() 572.43/297.19 , first(X1, X2) -> n__first(X1, X2) 572.43/297.19 , nil() -> n__nil() 572.43/297.19 , from(X) -> cons(X, n__from(n__s(X))) 572.43/297.19 , from(X) -> n__from(X) 572.43/297.19 , quote(n__s(X)) -> s1(quote(activate(X))) 572.43/297.19 , quote(n__0()) -> 01() 572.43/297.19 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.43/297.19 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.43/297.19 , quote1(n__cons(X, Z)) -> 572.43/297.19 cons1(quote(activate(X)), quote1(activate(Z))) 572.43/297.19 , quote1(n__nil()) -> nil1() 572.43/297.19 , unquote(01()) -> 0() 572.43/297.19 , unquote(s1(X)) -> s(unquote(X)) 572.43/297.19 , unquote1(nil1()) -> nil() 572.43/297.19 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) 572.43/297.19 , fcons(X, Z) -> cons(X, Z) } 572.43/297.19 Obligation: 572.43/297.19 innermost runtime complexity 572.43/297.19 Answer: 572.43/297.19 MAYBE 572.43/297.19 572.43/297.19 None of the processors succeeded. 572.43/297.19 572.43/297.19 Details of failed attempt(s): 572.43/297.19 ----------------------------- 572.43/297.19 1) 'empty' failed due to the following reason: 572.43/297.19 572.43/297.19 Empty strict component of the problem is NOT empty. 572.43/297.19 572.43/297.19 2) 'Best' failed due to the following reason: 572.43/297.19 572.43/297.19 None of the processors succeeded. 572.43/297.19 572.43/297.19 Details of failed attempt(s): 572.43/297.19 ----------------------------- 572.43/297.19 1) 'With Problem ... (timeout of 297 seconds)' failed due to the 572.43/297.19 following reason: 572.43/297.19 572.43/297.19 Computation stopped due to timeout after 297.0 seconds. 572.43/297.19 572.43/297.19 2) 'Best' failed due to the following reason: 572.43/297.19 572.43/297.19 None of the processors succeeded. 572.43/297.19 572.43/297.19 Details of failed attempt(s): 572.43/297.19 ----------------------------- 572.43/297.19 1) 'With Problem ... (timeout of 148 seconds) (timeout of 297 572.43/297.19 seconds)' failed due to the following reason: 572.43/297.19 572.43/297.19 None of the processors succeeded. 572.43/297.19 572.43/297.19 Details of failed attempt(s): 572.43/297.19 ----------------------------- 572.43/297.19 1) 'empty' failed due to the following reason: 572.43/297.19 572.43/297.19 Empty strict component of the problem is NOT empty. 572.43/297.19 572.43/297.19 2) 'With Problem ...' failed due to the following reason: 572.43/297.19 572.43/297.19 None of the processors succeeded. 572.43/297.19 572.43/297.19 Details of failed attempt(s): 572.43/297.19 ----------------------------- 572.43/297.19 1) 'empty' failed due to the following reason: 572.43/297.19 572.43/297.19 Empty strict component of the problem is NOT empty. 572.43/297.19 572.43/297.19 2) 'Fastest' failed due to the following reason: 572.43/297.19 572.43/297.19 None of the processors succeeded. 572.43/297.19 572.43/297.19 Details of failed attempt(s): 572.43/297.19 ----------------------------- 572.43/297.19 1) 'With Problem ...' failed due to the following reason: 572.43/297.19 572.43/297.19 None of the processors succeeded. 572.43/297.19 572.43/297.19 Details of failed attempt(s): 572.43/297.19 ----------------------------- 572.43/297.19 1) 'empty' failed due to the following reason: 572.43/297.19 572.43/297.19 Empty strict component of the problem is NOT empty. 572.43/297.19 572.43/297.19 2) 'With Problem ...' failed due to the following reason: 572.43/297.19 572.43/297.19 The weightgap principle applies (using the following nonconstant 572.43/297.19 growth matrix-interpretation) 572.43/297.19 572.43/297.19 The following argument positions are usable: 572.43/297.19 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.43/297.19 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.43/297.19 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.43/297.19 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.43/297.19 572.43/297.19 TcT has computed the following matrix interpretation satisfying 572.43/297.19 not(EDA) and not(IDA(1)). 572.43/297.19 572.43/297.19 [sel](x1, x2) = [1 1] x1 + [1 1] x2 + [0] 572.43/297.19 [0 0] [0 0] [0] 572.43/297.19 572.43/297.19 [s](x1) = [1 0] x1 + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 572.43/297.19 [cons](x1, x2) = [1 1] x1 + [0 0] x2 + [0] 572.43/297.19 [0 0] [1 1] [0] 572.43/297.19 572.43/297.19 [activate](x1) = [1 1] x1 + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 572.43/297.19 [0] = [1] 572.43/297.19 [2] 572.43/297.19 572.43/297.19 [first](x1, x2) = [1 0] x1 + [1 1] x2 + [0] 572.43/297.19 [0 0] [0 0] [0] 572.43/297.19 572.43/297.19 [nil] = [7] 572.43/297.19 [7] 572.43/297.19 572.43/297.19 [n__first](x1, x2) = [0 0] x1 + [1 1] x2 + [0] 572.43/297.19 [1 1] [0 0] [0] 572.43/297.19 572.43/297.19 [from](x1) = [1 1] x1 + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 572.43/297.19 [n__from](x1) = [0 0] x1 + [0] 572.43/297.19 [1 1] [0] 572.43/297.19 572.43/297.19 [n__s](x1) = [0 0] x1 + [0] 572.43/297.19 [1 1] [0] 572.43/297.19 572.43/297.19 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [7] 572.43/297.19 [0 0] [0 0] [7] 572.43/297.19 572.43/297.19 [quote](x1) = [1 1] x1 + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 572.43/297.19 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [3] 572.43/297.19 [0 0] [0 0] [7] 572.43/297.19 572.43/297.19 [nil1] = [0] 572.43/297.19 [0] 572.43/297.19 572.43/297.19 [cons1](x1, x2) = [1 1] x1 + [1 0] x2 + [0] 572.43/297.19 [0 0] [0 0] [0] 572.43/297.19 572.43/297.19 [n__0] = [0] 572.43/297.19 [0] 572.43/297.19 572.43/297.19 [01] = [5] 572.43/297.19 [0] 572.43/297.19 572.43/297.19 [quote1](x1) = [1 1] x1 + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 572.43/297.19 [n__cons](x1, x2) = [1 1] x1 + [0 0] x2 + [0] 572.43/297.19 [0 0] [1 1] [0] 572.43/297.19 572.43/297.19 [n__nil] = [0] 572.43/297.19 [0] 572.43/297.19 572.43/297.19 [s1](x1) = [1 0] x1 + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 572.43/297.19 [n__sel](x1, x2) = [1 1] x1 + [1 1] x2 + [0] 572.43/297.19 [0 0] [0 0] [0] 572.43/297.19 572.43/297.19 [unquote](x1) = [0] 572.43/297.19 [0] 572.43/297.19 572.43/297.19 [unquote1](x1) = [0 0] x1 + [0] 572.43/297.19 [1 1] [0] 572.43/297.19 572.43/297.19 [fcons](x1, x2) = [1 1] x1 + [1 0] x2 + [0] 572.43/297.19 [0 0] [0 0] [0] 572.43/297.19 572.43/297.19 The order satisfies the following ordering constraints: 572.43/297.19 572.43/297.19 [sel(X1, X2)] = [1 1] X1 + [1 1] X2 + [0] 572.43/297.19 [0 0] [0 0] [0] 572.43/297.19 >= [1 1] X1 + [1 1] X2 + [0] 572.43/297.19 [0 0] [0 0] [0] 572.43/297.19 = [n__sel(X1, X2)] 572.43/297.19 572.43/297.19 [s(X)] = [1 0] X + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 ? [0 0] X + [0] 572.43/297.19 [1 1] [0] 572.43/297.19 = [n__s(X)] 572.43/297.19 572.43/297.19 [cons(X1, X2)] = [1 1] X1 + [0 0] X2 + [0] 572.43/297.19 [0 0] [1 1] [0] 572.43/297.19 >= [1 1] X1 + [0 0] X2 + [0] 572.43/297.19 [0 0] [1 1] [0] 572.43/297.19 = [n__cons(X1, X2)] 572.43/297.19 572.43/297.19 [activate(X)] = [1 1] X + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 ? [1 0] X + [0] 572.43/297.19 [0 1] [0] 572.43/297.19 = [X] 572.43/297.19 572.43/297.19 [activate(n__first(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.43/297.19 [0 0] [0 0] [0] 572.43/297.19 >= [1 1] X1 + [1 1] X2 + [0] 572.43/297.19 [0 0] [0 0] [0] 572.43/297.19 = [first(activate(X1), activate(X2))] 572.43/297.19 572.43/297.19 [activate(n__from(X))] = [1 1] X + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 >= [1 1] X + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 = [from(activate(X))] 572.43/297.19 572.43/297.19 [activate(n__s(X))] = [1 1] X + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 >= [1 1] X + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 = [s(activate(X))] 572.43/297.19 572.43/297.19 [activate(n__0())] = [0] 572.43/297.19 [0] 572.43/297.19 ? [1] 572.43/297.19 [2] 572.43/297.19 = [0()] 572.43/297.19 572.43/297.19 [activate(n__cons(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.43/297.19 [0 0] [0 0] [0] 572.43/297.19 ? [1 1] X1 + [0 0] X2 + [0] 572.43/297.19 [0 0] [1 1] [0] 572.43/297.19 = [cons(activate(X1), X2)] 572.43/297.19 572.43/297.19 [activate(n__nil())] = [0] 572.43/297.19 [0] 572.43/297.19 ? [7] 572.43/297.19 [7] 572.43/297.19 = [nil()] 572.43/297.19 572.43/297.19 [activate(n__sel(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.43/297.19 [0 0] [0 0] [0] 572.43/297.19 >= [1 1] X1 + [1 1] X2 + [0] 572.43/297.19 [0 0] [0 0] [0] 572.43/297.19 = [sel(activate(X1), activate(X2))] 572.43/297.19 572.43/297.19 [0()] = [1] 572.43/297.19 [2] 572.43/297.19 > [0] 572.43/297.19 [0] 572.43/297.19 = [n__0()] 572.43/297.19 572.43/297.19 [first(X1, X2)] = [1 0] X1 + [1 1] X2 + [0] 572.43/297.19 [0 0] [0 0] [0] 572.43/297.19 ? [0 0] X1 + [1 1] X2 + [0] 572.43/297.19 [1 1] [0 0] [0] 572.43/297.19 = [n__first(X1, X2)] 572.43/297.19 572.43/297.19 [nil()] = [7] 572.43/297.19 [7] 572.43/297.19 > [0] 572.43/297.19 [0] 572.43/297.19 = [n__nil()] 572.43/297.19 572.43/297.19 [from(X)] = [1 1] X + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 ? [1 1] X + [0] 572.43/297.19 [1 1] [0] 572.43/297.19 = [cons(X, n__from(n__s(X)))] 572.43/297.19 572.43/297.19 [from(X)] = [1 1] X + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 ? [0 0] X + [0] 572.43/297.19 [1 1] [0] 572.43/297.19 = [n__from(X)] 572.43/297.19 572.43/297.19 [quote(n__s(X))] = [1 1] X + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 >= [1 1] X + [0] 572.43/297.19 [0 0] [0] 572.43/297.19 = [s1(quote(activate(X)))] 572.43/297.19 572.43/297.19 [quote(n__0())] = [0] 572.43/297.19 [0] 572.43/297.19 ? [5] 572.43/297.19 [0] 572.43/297.19 = [01()] 572.43/297.19 572.43/297.19 [quote(n__sel(X, Z))] = [1 1] X + [1 1] Z + [0] 572.43/297.19 [0 0] [0 0] [0] 572.43/297.19 ? [1 1] X + [1 1] Z + [7] 572.43/297.19 [0 0] [0 0] [7] 572.43/297.19 = [sel1(activate(X), activate(Z))] 572.43/297.19 572.43/297.19 [quote1(n__first(X, Z))] = [1 1] X + [1 1] Z + [0] 572.43/297.19 [0 0] [0 0] [0] 572.43/297.19 ? [1 1] X + [1 1] Z + [3] 572.43/297.19 [0 0] [0 0] [7] 572.43/297.19 = [first1(activate(X), activate(Z))] 572.43/297.19 572.43/297.19 [quote1(n__cons(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 >= [1 1] X + [1 1] Z + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.20 572.62/297.20 [quote1(n__nil())] = [0] 572.62/297.20 [0] 572.62/297.20 >= [0] 572.62/297.20 [0] 572.62/297.20 = [nil1()] 572.62/297.20 572.62/297.20 [unquote(01())] = [0] 572.62/297.20 [0] 572.62/297.20 ? [1] 572.62/297.20 [2] 572.62/297.20 = [0()] 572.62/297.20 572.62/297.20 [unquote(s1(X))] = [0] 572.62/297.20 [0] 572.62/297.20 >= [0] 572.62/297.20 [0] 572.62/297.20 = [s(unquote(X))] 572.62/297.20 572.62/297.20 [unquote1(nil1())] = [0] 572.62/297.20 [0] 572.62/297.20 ? [7] 572.62/297.20 [7] 572.62/297.20 = [nil()] 572.62/297.20 572.62/297.20 [unquote1(cons1(X, Z))] = [0 0] X + [0 0] Z + [0] 572.62/297.20 [1 1] [1 0] [0] 572.62/297.20 >= [0] 572.62/297.20 [0] 572.62/297.20 = [fcons(unquote(X), unquote1(Z))] 572.62/297.20 572.62/297.20 [fcons(X, Z)] = [1 1] X + [1 0] Z + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 ? [1 1] X + [0 0] Z + [0] 572.62/297.20 [0 0] [1 1] [0] 572.62/297.20 = [cons(X, Z)] 572.62/297.20 572.62/297.20 572.62/297.20 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.20 572.62/297.20 We are left with following problem, upon which TcT provides the 572.62/297.20 certificate MAYBE. 572.62/297.20 572.62/297.20 Strict Trs: 572.62/297.20 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.20 , s(X) -> n__s(X) 572.62/297.20 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.20 , activate(X) -> X 572.62/297.20 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.20 , activate(n__from(X)) -> from(activate(X)) 572.62/297.20 , activate(n__s(X)) -> s(activate(X)) 572.62/297.20 , activate(n__0()) -> 0() 572.62/297.20 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.20 , activate(n__nil()) -> nil() 572.62/297.20 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.20 , first(X1, X2) -> n__first(X1, X2) 572.62/297.20 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.20 , from(X) -> n__from(X) 572.62/297.20 , quote(n__s(X)) -> s1(quote(activate(X))) 572.62/297.20 , quote(n__0()) -> 01() 572.62/297.20 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.20 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.62/297.20 , quote1(n__cons(X, Z)) -> 572.62/297.20 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.20 , quote1(n__nil()) -> nil1() 572.62/297.20 , unquote(01()) -> 0() 572.62/297.20 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.20 , unquote1(nil1()) -> nil() 572.62/297.20 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) 572.62/297.20 , fcons(X, Z) -> cons(X, Z) } 572.62/297.20 Weak Trs: 572.62/297.20 { 0() -> n__0() 572.62/297.20 , nil() -> n__nil() } 572.62/297.20 Obligation: 572.62/297.20 innermost runtime complexity 572.62/297.20 Answer: 572.62/297.20 MAYBE 572.62/297.20 572.62/297.20 The weightgap principle applies (using the following nonconstant 572.62/297.20 growth matrix-interpretation) 572.62/297.20 572.62/297.20 The following argument positions are usable: 572.62/297.20 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.20 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.20 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.20 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.20 572.62/297.20 TcT has computed the following matrix interpretation satisfying 572.62/297.20 not(EDA) and not(IDA(1)). 572.62/297.20 572.62/297.20 [sel](x1, x2) = [1 0] x1 + [1 1] x2 + [1] 572.62/297.20 [0 1] [0 0] [4] 572.62/297.20 572.62/297.20 [s](x1) = [1 0] x1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 572.62/297.20 [cons](x1, x2) = [1 0] x1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 572.62/297.20 [activate](x1) = [1 1] x1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 572.62/297.20 [0] = [7] 572.62/297.20 [6] 572.62/297.20 572.62/297.20 [first](x1, x2) = [1 0] x1 + [1 1] x2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 572.62/297.20 [nil] = [5] 572.62/297.20 [6] 572.62/297.20 572.62/297.20 [n__first](x1, x2) = [0 0] x1 + [1 1] x2 + [0] 572.62/297.20 [1 1] [0 0] [0] 572.62/297.20 572.62/297.20 [from](x1) = [1 0] x1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 572.62/297.20 [n__from](x1) = [0 0] x1 + [0] 572.62/297.20 [1 1] [0] 572.62/297.20 572.62/297.20 [n__s](x1) = [1 0] x1 + [0] 572.62/297.20 [0 1] [0] 572.62/297.20 572.62/297.20 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [3] 572.62/297.20 [0 0] [0 0] [7] 572.62/297.20 572.62/297.20 [quote](x1) = [1 1] x1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 572.62/297.20 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [7] 572.62/297.20 [0 0] [0 0] [7] 572.62/297.20 572.62/297.20 [nil1] = [5] 572.62/297.20 [0] 572.62/297.20 572.62/297.20 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 572.62/297.20 [n__0] = [0] 572.62/297.20 [0] 572.62/297.20 572.62/297.20 [01] = [5] 572.62/297.20 [0] 572.62/297.20 572.62/297.20 [quote1](x1) = [1 1] x1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 572.62/297.20 [n__cons](x1, x2) = [1 0] x1 + [0 0] x2 + [0] 572.62/297.20 [0 1] [1 1] [0] 572.62/297.20 572.62/297.20 [n__nil] = [0] 572.62/297.20 [0] 572.62/297.20 572.62/297.20 [s1](x1) = [1 0] x1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 572.62/297.20 [n__sel](x1, x2) = [1 0] x1 + [1 1] x2 + [0] 572.62/297.20 [0 1] [0 0] [0] 572.62/297.20 572.62/297.20 [unquote](x1) = [0] 572.62/297.20 [0] 572.62/297.20 572.62/297.20 [unquote1](x1) = [0] 572.62/297.20 [0] 572.62/297.20 572.62/297.20 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 572.62/297.20 The order satisfies the following ordering constraints: 572.62/297.20 572.62/297.20 [sel(X1, X2)] = [1 0] X1 + [1 1] X2 + [1] 572.62/297.20 [0 1] [0 0] [4] 572.62/297.20 > [1 0] X1 + [1 1] X2 + [0] 572.62/297.20 [0 1] [0 0] [0] 572.62/297.20 = [n__sel(X1, X2)] 572.62/297.20 572.62/297.20 [s(X)] = [1 0] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 ? [1 0] X + [0] 572.62/297.20 [0 1] [0] 572.62/297.20 = [n__s(X)] 572.62/297.20 572.62/297.20 [cons(X1, X2)] = [1 0] X1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 ? [1 0] X1 + [0 0] X2 + [0] 572.62/297.20 [0 1] [1 1] [0] 572.62/297.20 = [n__cons(X1, X2)] 572.62/297.20 572.62/297.20 [activate(X)] = [1 1] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 ? [1 0] X + [0] 572.62/297.20 [0 1] [0] 572.62/297.20 = [X] 572.62/297.20 572.62/297.20 [activate(n__first(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 >= [1 1] X1 + [1 1] X2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 = [first(activate(X1), activate(X2))] 572.62/297.20 572.62/297.20 [activate(n__from(X))] = [1 1] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 >= [1 1] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 = [from(activate(X))] 572.62/297.20 572.62/297.20 [activate(n__s(X))] = [1 1] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 >= [1 1] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 = [s(activate(X))] 572.62/297.20 572.62/297.20 [activate(n__0())] = [0] 572.62/297.20 [0] 572.62/297.20 ? [7] 572.62/297.20 [6] 572.62/297.20 = [0()] 572.62/297.20 572.62/297.20 [activate(n__cons(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 >= [1 1] X1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 = [cons(activate(X1), X2)] 572.62/297.20 572.62/297.20 [activate(n__nil())] = [0] 572.62/297.20 [0] 572.62/297.20 ? [5] 572.62/297.20 [6] 572.62/297.20 = [nil()] 572.62/297.20 572.62/297.20 [activate(n__sel(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 ? [1 1] X1 + [1 1] X2 + [1] 572.62/297.20 [0 0] [0 0] [4] 572.62/297.20 = [sel(activate(X1), activate(X2))] 572.62/297.20 572.62/297.20 [0()] = [7] 572.62/297.20 [6] 572.62/297.20 > [0] 572.62/297.20 [0] 572.62/297.20 = [n__0()] 572.62/297.20 572.62/297.20 [first(X1, X2)] = [1 0] X1 + [1 1] X2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 ? [0 0] X1 + [1 1] X2 + [0] 572.62/297.20 [1 1] [0 0] [0] 572.62/297.20 = [n__first(X1, X2)] 572.62/297.20 572.62/297.20 [nil()] = [5] 572.62/297.20 [6] 572.62/297.20 > [0] 572.62/297.20 [0] 572.62/297.20 = [n__nil()] 572.62/297.20 572.62/297.20 [from(X)] = [1 0] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 >= [1 0] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 = [cons(X, n__from(n__s(X)))] 572.62/297.20 572.62/297.20 [from(X)] = [1 0] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 ? [0 0] X + [0] 572.62/297.20 [1 1] [0] 572.62/297.20 = [n__from(X)] 572.62/297.20 572.62/297.20 [quote(n__s(X))] = [1 1] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 >= [1 1] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 = [s1(quote(activate(X)))] 572.62/297.20 572.62/297.20 [quote(n__0())] = [0] 572.62/297.20 [0] 572.62/297.20 ? [5] 572.62/297.20 [0] 572.62/297.20 = [01()] 572.62/297.20 572.62/297.20 [quote(n__sel(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 ? [1 1] X + [1 1] Z + [3] 572.62/297.20 [0 0] [0 0] [7] 572.62/297.20 = [sel1(activate(X), activate(Z))] 572.62/297.20 572.62/297.20 [quote1(n__first(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 ? [1 1] X + [1 1] Z + [7] 572.62/297.20 [0 0] [0 0] [7] 572.62/297.20 = [first1(activate(X), activate(Z))] 572.62/297.20 572.62/297.20 [quote1(n__cons(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 >= [1 1] X + [1 1] Z + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.20 572.62/297.20 [quote1(n__nil())] = [0] 572.62/297.20 [0] 572.62/297.20 ? [5] 572.62/297.20 [0] 572.62/297.20 = [nil1()] 572.62/297.20 572.62/297.20 [unquote(01())] = [0] 572.62/297.20 [0] 572.62/297.20 ? [7] 572.62/297.20 [6] 572.62/297.20 = [0()] 572.62/297.20 572.62/297.20 [unquote(s1(X))] = [0] 572.62/297.20 [0] 572.62/297.20 >= [0] 572.62/297.20 [0] 572.62/297.20 = [s(unquote(X))] 572.62/297.20 572.62/297.20 [unquote1(nil1())] = [0] 572.62/297.20 [0] 572.62/297.20 ? [5] 572.62/297.20 [6] 572.62/297.20 = [nil()] 572.62/297.20 572.62/297.20 [unquote1(cons1(X, Z))] = [0] 572.62/297.20 [0] 572.62/297.20 >= [0] 572.62/297.20 [0] 572.62/297.20 = [fcons(unquote(X), unquote1(Z))] 572.62/297.20 572.62/297.20 [fcons(X, Z)] = [1 0] X + [1 0] Z + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 >= [1 0] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 = [cons(X, Z)] 572.62/297.20 572.62/297.20 572.62/297.20 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.20 572.62/297.20 We are left with following problem, upon which TcT provides the 572.62/297.20 certificate MAYBE. 572.62/297.20 572.62/297.20 Strict Trs: 572.62/297.20 { s(X) -> n__s(X) 572.62/297.20 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.20 , activate(X) -> X 572.62/297.20 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.20 , activate(n__from(X)) -> from(activate(X)) 572.62/297.20 , activate(n__s(X)) -> s(activate(X)) 572.62/297.20 , activate(n__0()) -> 0() 572.62/297.20 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.20 , activate(n__nil()) -> nil() 572.62/297.20 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.20 , first(X1, X2) -> n__first(X1, X2) 572.62/297.20 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.20 , from(X) -> n__from(X) 572.62/297.20 , quote(n__s(X)) -> s1(quote(activate(X))) 572.62/297.20 , quote(n__0()) -> 01() 572.62/297.20 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.20 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.62/297.20 , quote1(n__cons(X, Z)) -> 572.62/297.20 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.20 , quote1(n__nil()) -> nil1() 572.62/297.20 , unquote(01()) -> 0() 572.62/297.20 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.20 , unquote1(nil1()) -> nil() 572.62/297.20 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) 572.62/297.20 , fcons(X, Z) -> cons(X, Z) } 572.62/297.20 Weak Trs: 572.62/297.20 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.20 , 0() -> n__0() 572.62/297.20 , nil() -> n__nil() } 572.62/297.20 Obligation: 572.62/297.20 innermost runtime complexity 572.62/297.20 Answer: 572.62/297.20 MAYBE 572.62/297.20 572.62/297.20 The weightgap principle applies (using the following nonconstant 572.62/297.20 growth matrix-interpretation) 572.62/297.20 572.62/297.20 The following argument positions are usable: 572.62/297.20 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.20 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.20 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.20 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.20 572.62/297.20 TcT has computed the following matrix interpretation satisfying 572.62/297.20 not(EDA) and not(IDA(1)). 572.62/297.20 572.62/297.20 [sel](x1, x2) = [1 1] x1 + [1 1] x2 + [4] 572.62/297.20 [0 0] [0 0] [4] 572.62/297.20 572.62/297.20 [s](x1) = [1 0] x1 + [0] 572.62/297.20 [0 1] [0] 572.62/297.20 572.62/297.20 [cons](x1, x2) = [1 0] x1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 572.62/297.20 [activate](x1) = [1 1] x1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 572.62/297.20 [0] = [7] 572.62/297.20 [6] 572.62/297.20 572.62/297.20 [first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 572.62/297.20 [nil] = [7] 572.62/297.20 [6] 572.62/297.20 572.62/297.20 [n__first](x1, x2) = [0 0] x1 + [0 0] x2 + [0] 572.62/297.20 [1 1] [1 1] [0] 572.62/297.20 572.62/297.20 [from](x1) = [1 0] x1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 572.62/297.20 [n__from](x1) = [1 0] x1 + [0] 572.62/297.20 [0 1] [0] 572.62/297.20 572.62/297.20 [n__s](x1) = [0 0] x1 + [4] 572.62/297.20 [1 1] [4] 572.62/297.20 572.62/297.20 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [3] 572.62/297.20 [0 0] [0 0] [7] 572.62/297.20 572.62/297.20 [quote](x1) = [1 1] x1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 572.62/297.20 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [3] 572.62/297.20 [0 0] [0 0] [3] 572.62/297.20 572.62/297.20 [nil1] = [5] 572.62/297.20 [0] 572.62/297.20 572.62/297.20 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 572.62/297.20 [n__0] = [0] 572.62/297.20 [0] 572.62/297.20 572.62/297.20 [01] = [5] 572.62/297.20 [0] 572.62/297.20 572.62/297.20 [quote1](x1) = [1 1] x1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 572.62/297.20 [n__cons](x1, x2) = [1 0] x1 + [0 0] x2 + [0] 572.62/297.20 [0 1] [1 1] [0] 572.62/297.20 572.62/297.20 [n__nil] = [0] 572.62/297.20 [0] 572.62/297.20 572.62/297.20 [s1](x1) = [1 0] x1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 572.62/297.20 [n__sel](x1, x2) = [1 1] x1 + [1 1] x2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 572.62/297.20 [unquote](x1) = [0] 572.62/297.20 [0] 572.62/297.20 572.62/297.20 [unquote1](x1) = [0] 572.62/297.20 [0] 572.62/297.20 572.62/297.20 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 572.62/297.20 The order satisfies the following ordering constraints: 572.62/297.20 572.62/297.20 [sel(X1, X2)] = [1 1] X1 + [1 1] X2 + [4] 572.62/297.20 [0 0] [0 0] [4] 572.62/297.20 > [1 1] X1 + [1 1] X2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 = [n__sel(X1, X2)] 572.62/297.20 572.62/297.20 [s(X)] = [1 0] X + [0] 572.62/297.20 [0 1] [0] 572.62/297.20 ? [0 0] X + [4] 572.62/297.20 [1 1] [4] 572.62/297.20 = [n__s(X)] 572.62/297.20 572.62/297.20 [cons(X1, X2)] = [1 0] X1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 ? [1 0] X1 + [0 0] X2 + [0] 572.62/297.20 [0 1] [1 1] [0] 572.62/297.20 = [n__cons(X1, X2)] 572.62/297.20 572.62/297.20 [activate(X)] = [1 1] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 ? [1 0] X + [0] 572.62/297.20 [0 1] [0] 572.62/297.20 = [X] 572.62/297.20 572.62/297.20 [activate(n__first(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 >= [1 1] X1 + [1 1] X2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 = [first(activate(X1), activate(X2))] 572.62/297.20 572.62/297.20 [activate(n__from(X))] = [1 1] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 >= [1 1] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 = [from(activate(X))] 572.62/297.20 572.62/297.20 [activate(n__s(X))] = [1 1] X + [8] 572.62/297.20 [0 0] [0] 572.62/297.20 > [1 1] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 = [s(activate(X))] 572.62/297.20 572.62/297.20 [activate(n__0())] = [0] 572.62/297.20 [0] 572.62/297.20 ? [7] 572.62/297.20 [6] 572.62/297.20 = [0()] 572.62/297.20 572.62/297.20 [activate(n__cons(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 >= [1 1] X1 + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 = [cons(activate(X1), X2)] 572.62/297.20 572.62/297.20 [activate(n__nil())] = [0] 572.62/297.20 [0] 572.62/297.20 ? [7] 572.62/297.20 [6] 572.62/297.20 = [nil()] 572.62/297.20 572.62/297.20 [activate(n__sel(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 ? [1 1] X1 + [1 1] X2 + [4] 572.62/297.20 [0 0] [0 0] [4] 572.62/297.20 = [sel(activate(X1), activate(X2))] 572.62/297.20 572.62/297.20 [0()] = [7] 572.62/297.20 [6] 572.62/297.20 > [0] 572.62/297.20 [0] 572.62/297.20 = [n__0()] 572.62/297.20 572.62/297.20 [first(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 ? [0 0] X1 + [0 0] X2 + [0] 572.62/297.20 [1 1] [1 1] [0] 572.62/297.20 = [n__first(X1, X2)] 572.62/297.20 572.62/297.20 [nil()] = [7] 572.62/297.20 [6] 572.62/297.20 > [0] 572.62/297.20 [0] 572.62/297.20 = [n__nil()] 572.62/297.20 572.62/297.20 [from(X)] = [1 0] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 >= [1 0] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 = [cons(X, n__from(n__s(X)))] 572.62/297.20 572.62/297.20 [from(X)] = [1 0] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 ? [1 0] X + [0] 572.62/297.20 [0 1] [0] 572.62/297.20 = [n__from(X)] 572.62/297.20 572.62/297.20 [quote(n__s(X))] = [1 1] X + [8] 572.62/297.20 [0 0] [0] 572.62/297.20 > [1 1] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 = [s1(quote(activate(X)))] 572.62/297.20 572.62/297.20 [quote(n__0())] = [0] 572.62/297.20 [0] 572.62/297.20 ? [5] 572.62/297.20 [0] 572.62/297.20 = [01()] 572.62/297.20 572.62/297.20 [quote(n__sel(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 ? [1 1] X + [1 1] Z + [3] 572.62/297.20 [0 0] [0 0] [7] 572.62/297.20 = [sel1(activate(X), activate(Z))] 572.62/297.20 572.62/297.20 [quote1(n__first(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 ? [1 1] X + [1 1] Z + [3] 572.62/297.20 [0 0] [0 0] [3] 572.62/297.20 = [first1(activate(X), activate(Z))] 572.62/297.20 572.62/297.20 [quote1(n__cons(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 >= [1 1] X + [1 1] Z + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.20 572.62/297.20 [quote1(n__nil())] = [0] 572.62/297.20 [0] 572.62/297.20 ? [5] 572.62/297.20 [0] 572.62/297.20 = [nil1()] 572.62/297.20 572.62/297.20 [unquote(01())] = [0] 572.62/297.20 [0] 572.62/297.20 ? [7] 572.62/297.20 [6] 572.62/297.20 = [0()] 572.62/297.20 572.62/297.20 [unquote(s1(X))] = [0] 572.62/297.20 [0] 572.62/297.20 >= [0] 572.62/297.20 [0] 572.62/297.20 = [s(unquote(X))] 572.62/297.20 572.62/297.20 [unquote1(nil1())] = [0] 572.62/297.20 [0] 572.62/297.20 ? [7] 572.62/297.20 [6] 572.62/297.20 = [nil()] 572.62/297.20 572.62/297.20 [unquote1(cons1(X, Z))] = [0] 572.62/297.20 [0] 572.62/297.20 >= [0] 572.62/297.20 [0] 572.62/297.20 = [fcons(unquote(X), unquote1(Z))] 572.62/297.20 572.62/297.20 [fcons(X, Z)] = [1 0] X + [1 0] Z + [0] 572.62/297.20 [0 0] [0 0] [0] 572.62/297.20 >= [1 0] X + [0] 572.62/297.20 [0 0] [0] 572.62/297.20 = [cons(X, Z)] 572.62/297.20 572.62/297.20 572.62/297.20 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.20 572.62/297.20 We are left with following problem, upon which TcT provides the 572.62/297.20 certificate MAYBE. 572.62/297.20 572.62/297.20 Strict Trs: 572.62/297.20 { s(X) -> n__s(X) 572.62/297.20 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.20 , activate(X) -> X 572.62/297.20 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.20 , activate(n__from(X)) -> from(activate(X)) 572.62/297.20 , activate(n__0()) -> 0() 572.62/297.20 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.20 , activate(n__nil()) -> nil() 572.62/297.20 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.20 , first(X1, X2) -> n__first(X1, X2) 572.62/297.20 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.20 , from(X) -> n__from(X) 572.62/297.20 , quote(n__0()) -> 01() 572.62/297.20 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.20 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.62/297.20 , quote1(n__cons(X, Z)) -> 572.62/297.20 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.20 , quote1(n__nil()) -> nil1() 572.62/297.20 , unquote(01()) -> 0() 572.62/297.20 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.20 , unquote1(nil1()) -> nil() 572.62/297.20 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) 572.62/297.20 , fcons(X, Z) -> cons(X, Z) } 572.62/297.21 Weak Trs: 572.62/297.21 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.21 , activate(n__s(X)) -> s(activate(X)) 572.62/297.21 , 0() -> n__0() 572.62/297.21 , nil() -> n__nil() 572.62/297.21 , quote(n__s(X)) -> s1(quote(activate(X))) } 572.62/297.21 Obligation: 572.62/297.21 innermost runtime complexity 572.62/297.21 Answer: 572.62/297.21 MAYBE 572.62/297.21 572.62/297.21 The weightgap principle applies (using the following nonconstant 572.62/297.21 growth matrix-interpretation) 572.62/297.21 572.62/297.21 The following argument positions are usable: 572.62/297.21 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.21 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.21 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.21 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.21 572.62/297.21 TcT has computed the following matrix interpretation satisfying 572.62/297.21 not(EDA) and not(IDA(1)). 572.62/297.21 572.62/297.21 [sel](x1, x2) = [1 0] x1 + [1 0] x2 + [4] 572.62/297.21 [0 0] [0 0] [4] 572.62/297.21 572.62/297.21 [s](x1) = [1 0] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [cons](x1, x2) = [1 0] x1 + [0 0] x2 + [4] 572.62/297.21 [0 0] [1 0] [4] 572.62/297.21 572.62/297.21 [activate](x1) = [1 0] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [0] = [7] 572.62/297.21 [6] 572.62/297.21 572.62/297.21 [first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 572.62/297.21 [nil] = [7] 572.62/297.21 [6] 572.62/297.21 572.62/297.21 [n__first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 572.62/297.21 [from](x1) = [1 0] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [n__from](x1) = [1 0] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [n__s](x1) = [1 0] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [3] 572.62/297.21 [0 0] [0 0] [7] 572.62/297.21 572.62/297.21 [quote](x1) = [1 0] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [3] 572.62/297.21 [0 0] [0 0] [7] 572.62/297.21 572.62/297.21 [nil1] = [5] 572.62/297.21 [0] 572.62/297.21 572.62/297.21 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 572.62/297.21 [n__0] = [0] 572.62/297.21 [0] 572.62/297.21 572.62/297.21 [01] = [5] 572.62/297.21 [0] 572.62/297.21 572.62/297.21 [quote1](x1) = [1 1] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [n__cons](x1, x2) = [1 0] x1 + [0 0] x2 + [0] 572.62/297.21 [0 0] [1 0] [0] 572.62/297.21 572.62/297.21 [n__nil] = [0] 572.62/297.21 [0] 572.62/297.21 572.62/297.21 [s1](x1) = [1 0] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [n__sel](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 572.62/297.21 [unquote](x1) = [0] 572.62/297.21 [0] 572.62/297.21 572.62/297.21 [unquote1](x1) = [0 0] x1 + [0] 572.62/297.21 [0 1] [0] 572.62/297.21 572.62/297.21 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.21 [0 0] [0 1] [0] 572.62/297.21 572.62/297.21 The order satisfies the following ordering constraints: 572.62/297.21 572.62/297.21 [sel(X1, X2)] = [1 0] X1 + [1 0] X2 + [4] 572.62/297.21 [0 0] [0 0] [4] 572.62/297.21 > [1 0] X1 + [1 0] X2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 = [n__sel(X1, X2)] 572.62/297.21 572.62/297.21 [s(X)] = [1 0] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 >= [1 0] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 = [n__s(X)] 572.62/297.21 572.62/297.21 [cons(X1, X2)] = [1 0] X1 + [0 0] X2 + [4] 572.62/297.21 [0 0] [1 0] [4] 572.62/297.21 > [1 0] X1 + [0 0] X2 + [0] 572.62/297.21 [0 0] [1 0] [0] 572.62/297.21 = [n__cons(X1, X2)] 572.62/297.21 572.62/297.21 [activate(X)] = [1 0] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 ? [1 0] X + [0] 572.62/297.21 [0 1] [0] 572.62/297.21 = [X] 572.62/297.21 572.62/297.21 [activate(n__first(X1, X2))] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 >= [1 0] X1 + [1 0] X2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 = [first(activate(X1), activate(X2))] 572.62/297.21 572.62/297.21 [activate(n__from(X))] = [1 0] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 >= [1 0] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 = [from(activate(X))] 572.62/297.21 572.62/297.21 [activate(n__s(X))] = [1 0] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 >= [1 0] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 = [s(activate(X))] 572.62/297.21 572.62/297.21 [activate(n__0())] = [0] 572.62/297.21 [0] 572.62/297.21 ? [7] 572.62/297.21 [6] 572.62/297.21 = [0()] 572.62/297.21 572.62/297.21 [activate(n__cons(X1, X2))] = [1 0] X1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 ? [1 0] X1 + [0 0] X2 + [4] 572.62/297.21 [0 0] [1 0] [4] 572.62/297.21 = [cons(activate(X1), X2)] 572.62/297.21 572.62/297.21 [activate(n__nil())] = [0] 572.62/297.21 [0] 572.62/297.21 ? [7] 572.62/297.21 [6] 572.62/297.21 = [nil()] 572.62/297.21 572.62/297.21 [activate(n__sel(X1, X2))] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 ? [1 0] X1 + [1 0] X2 + [4] 572.62/297.21 [0 0] [0 0] [4] 572.62/297.21 = [sel(activate(X1), activate(X2))] 572.62/297.21 572.62/297.21 [0()] = [7] 572.62/297.21 [6] 572.62/297.21 > [0] 572.62/297.21 [0] 572.62/297.21 = [n__0()] 572.62/297.21 572.62/297.21 [first(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 >= [1 0] X1 + [1 0] X2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 = [n__first(X1, X2)] 572.62/297.21 572.62/297.21 [nil()] = [7] 572.62/297.21 [6] 572.62/297.21 > [0] 572.62/297.21 [0] 572.62/297.21 = [n__nil()] 572.62/297.21 572.62/297.21 [from(X)] = [1 0] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 ? [1 0] X + [4] 572.62/297.21 [1 0] [4] 572.62/297.21 = [cons(X, n__from(n__s(X)))] 572.62/297.21 572.62/297.21 [from(X)] = [1 0] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 >= [1 0] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 = [n__from(X)] 572.62/297.21 572.62/297.21 [quote(n__s(X))] = [1 0] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 >= [1 0] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 = [s1(quote(activate(X)))] 572.62/297.21 572.62/297.21 [quote(n__0())] = [0] 572.62/297.21 [0] 572.62/297.21 ? [5] 572.62/297.21 [0] 572.62/297.21 = [01()] 572.62/297.21 572.62/297.21 [quote(n__sel(X, Z))] = [1 0] X + [1 0] Z + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 ? [1 0] X + [1 0] Z + [3] 572.62/297.21 [0 0] [0 0] [7] 572.62/297.21 = [sel1(activate(X), activate(Z))] 572.62/297.21 572.62/297.21 [quote1(n__first(X, Z))] = [1 0] X + [1 0] Z + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 ? [1 0] X + [1 0] Z + [3] 572.62/297.21 [0 0] [0 0] [7] 572.62/297.21 = [first1(activate(X), activate(Z))] 572.62/297.21 572.62/297.21 [quote1(n__cons(X, Z))] = [1 0] X + [1 0] Z + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 >= [1 0] X + [1 0] Z + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.21 572.62/297.21 [quote1(n__nil())] = [0] 572.62/297.21 [0] 572.62/297.21 ? [5] 572.62/297.21 [0] 572.62/297.21 = [nil1()] 572.62/297.21 572.62/297.21 [unquote(01())] = [0] 572.62/297.21 [0] 572.62/297.21 ? [7] 572.62/297.21 [6] 572.62/297.21 = [0()] 572.62/297.21 572.62/297.21 [unquote(s1(X))] = [0] 572.62/297.21 [0] 572.62/297.21 >= [0] 572.62/297.21 [0] 572.62/297.21 = [s(unquote(X))] 572.62/297.21 572.62/297.21 [unquote1(nil1())] = [0] 572.62/297.21 [0] 572.62/297.21 ? [7] 572.62/297.21 [6] 572.62/297.21 = [nil()] 572.62/297.21 572.62/297.21 [unquote1(cons1(X, Z))] = [0] 572.62/297.21 [0] 572.62/297.21 ? [0 0] Z + [0] 572.62/297.21 [0 1] [0] 572.62/297.21 = [fcons(unquote(X), unquote1(Z))] 572.62/297.21 572.62/297.21 [fcons(X, Z)] = [1 0] X + [1 0] Z + [0] 572.62/297.21 [0 0] [0 1] [0] 572.62/297.21 ? [1 0] X + [0 0] Z + [4] 572.62/297.21 [0 0] [1 0] [4] 572.62/297.21 = [cons(X, Z)] 572.62/297.21 572.62/297.21 572.62/297.21 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.21 572.62/297.21 We are left with following problem, upon which TcT provides the 572.62/297.21 certificate MAYBE. 572.62/297.21 572.62/297.21 Strict Trs: 572.62/297.21 { s(X) -> n__s(X) 572.62/297.21 , activate(X) -> X 572.62/297.21 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.21 , activate(n__from(X)) -> from(activate(X)) 572.62/297.21 , activate(n__0()) -> 0() 572.62/297.21 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.21 , activate(n__nil()) -> nil() 572.62/297.21 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.21 , first(X1, X2) -> n__first(X1, X2) 572.62/297.21 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.21 , from(X) -> n__from(X) 572.62/297.21 , quote(n__0()) -> 01() 572.62/297.21 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.21 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.62/297.21 , quote1(n__cons(X, Z)) -> 572.62/297.21 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.21 , quote1(n__nil()) -> nil1() 572.62/297.21 , unquote(01()) -> 0() 572.62/297.21 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.21 , unquote1(nil1()) -> nil() 572.62/297.21 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) 572.62/297.21 , fcons(X, Z) -> cons(X, Z) } 572.62/297.21 Weak Trs: 572.62/297.21 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.21 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.21 , activate(n__s(X)) -> s(activate(X)) 572.62/297.21 , 0() -> n__0() 572.62/297.21 , nil() -> n__nil() 572.62/297.21 , quote(n__s(X)) -> s1(quote(activate(X))) } 572.62/297.21 Obligation: 572.62/297.21 innermost runtime complexity 572.62/297.21 Answer: 572.62/297.21 MAYBE 572.62/297.21 572.62/297.21 The weightgap principle applies (using the following nonconstant 572.62/297.21 growth matrix-interpretation) 572.62/297.21 572.62/297.21 The following argument positions are usable: 572.62/297.21 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.21 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.21 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.21 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.21 572.62/297.21 TcT has computed the following matrix interpretation satisfying 572.62/297.21 not(EDA) and not(IDA(1)). 572.62/297.21 572.62/297.21 [sel](x1, x2) = [1 0] x1 + [1 0] x2 + [4] 572.62/297.21 [0 1] [0 1] [0] 572.62/297.21 572.62/297.21 [s](x1) = [1 0] x1 + [0] 572.62/297.21 [0 1] [0] 572.62/297.21 572.62/297.21 [cons](x1, x2) = [1 0] x1 + [0 0] x2 + [0] 572.62/297.21 [0 1] [1 1] [4] 572.62/297.21 572.62/297.21 [activate](x1) = [1 1] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [0] = [7] 572.62/297.21 [6] 572.62/297.21 572.62/297.21 [first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 572.62/297.21 [nil] = [7] 572.62/297.21 [6] 572.62/297.21 572.62/297.21 [n__first](x1, x2) = [0 0] x1 + [0 0] x2 + [4] 572.62/297.21 [1 1] [1 1] [0] 572.62/297.21 572.62/297.21 [from](x1) = [1 0] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [n__from](x1) = [0 0] x1 + [0] 572.62/297.21 [1 1] [0] 572.62/297.21 572.62/297.21 [n__s](x1) = [1 0] x1 + [7] 572.62/297.21 [0 1] [1] 572.62/297.21 572.62/297.21 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [7] 572.62/297.21 [0 0] [0 0] [7] 572.62/297.21 572.62/297.21 [quote](x1) = [1 1] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [7] 572.62/297.21 [0 0] [0 0] [7] 572.62/297.21 572.62/297.21 [nil1] = [5] 572.62/297.21 [0] 572.62/297.21 572.62/297.21 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 572.62/297.21 [n__0] = [0] 572.62/297.21 [0] 572.62/297.21 572.62/297.21 [01] = [5] 572.62/297.21 [0] 572.62/297.21 572.62/297.21 [quote1](x1) = [1 1] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [n__cons](x1, x2) = [1 0] x1 + [0 0] x2 + [0] 572.62/297.21 [0 1] [1 1] [0] 572.62/297.21 572.62/297.21 [n__nil] = [0] 572.62/297.21 [0] 572.62/297.21 572.62/297.21 [s1](x1) = [1 0] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [n__sel](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.21 [0 1] [0 1] [0] 572.62/297.21 572.62/297.21 [unquote](x1) = [0 0] x1 + [0] 572.62/297.21 [0 1] [0] 572.62/297.21 572.62/297.21 [unquote1](x1) = [0] 572.62/297.21 [0] 572.62/297.21 572.62/297.21 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 572.62/297.21 The order satisfies the following ordering constraints: 572.62/297.21 572.62/297.21 [sel(X1, X2)] = [1 0] X1 + [1 0] X2 + [4] 572.62/297.21 [0 1] [0 1] [0] 572.62/297.21 > [1 0] X1 + [1 0] X2 + [0] 572.62/297.21 [0 1] [0 1] [0] 572.62/297.21 = [n__sel(X1, X2)] 572.62/297.21 572.62/297.21 [s(X)] = [1 0] X + [0] 572.62/297.21 [0 1] [0] 572.62/297.21 ? [1 0] X + [7] 572.62/297.21 [0 1] [1] 572.62/297.21 = [n__s(X)] 572.62/297.21 572.62/297.21 [cons(X1, X2)] = [1 0] X1 + [0 0] X2 + [0] 572.62/297.21 [0 1] [1 1] [4] 572.62/297.21 >= [1 0] X1 + [0 0] X2 + [0] 572.62/297.21 [0 1] [1 1] [0] 572.62/297.21 = [n__cons(X1, X2)] 572.62/297.21 572.62/297.21 [activate(X)] = [1 1] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 ? [1 0] X + [0] 572.62/297.21 [0 1] [0] 572.62/297.21 = [X] 572.62/297.21 572.62/297.21 [activate(n__first(X1, X2))] = [1 1] X1 + [1 1] X2 + [4] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 > [1 1] X1 + [1 1] X2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 = [first(activate(X1), activate(X2))] 572.62/297.21 572.62/297.21 [activate(n__from(X))] = [1 1] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 >= [1 1] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 = [from(activate(X))] 572.62/297.21 572.62/297.21 [activate(n__s(X))] = [1 1] X + [8] 572.62/297.21 [0 0] [0] 572.62/297.21 > [1 1] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 = [s(activate(X))] 572.62/297.21 572.62/297.21 [activate(n__0())] = [0] 572.62/297.21 [0] 572.62/297.21 ? [7] 572.62/297.21 [6] 572.62/297.21 = [0()] 572.62/297.21 572.62/297.21 [activate(n__cons(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 ? [1 1] X1 + [0 0] X2 + [0] 572.62/297.21 [0 0] [1 1] [4] 572.62/297.21 = [cons(activate(X1), X2)] 572.62/297.21 572.62/297.21 [activate(n__nil())] = [0] 572.62/297.21 [0] 572.62/297.21 ? [7] 572.62/297.21 [6] 572.62/297.21 = [nil()] 572.62/297.21 572.62/297.21 [activate(n__sel(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 ? [1 1] X1 + [1 1] X2 + [4] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 = [sel(activate(X1), activate(X2))] 572.62/297.21 572.62/297.21 [0()] = [7] 572.62/297.21 [6] 572.62/297.21 > [0] 572.62/297.21 [0] 572.62/297.21 = [n__0()] 572.62/297.21 572.62/297.21 [first(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 ? [0 0] X1 + [0 0] X2 + [4] 572.62/297.21 [1 1] [1 1] [0] 572.62/297.21 = [n__first(X1, X2)] 572.62/297.21 572.62/297.21 [nil()] = [7] 572.62/297.21 [6] 572.62/297.21 > [0] 572.62/297.21 [0] 572.62/297.21 = [n__nil()] 572.62/297.21 572.62/297.21 [from(X)] = [1 0] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 ? [1 0] X + [0] 572.62/297.21 [1 2] [12] 572.62/297.21 = [cons(X, n__from(n__s(X)))] 572.62/297.21 572.62/297.21 [from(X)] = [1 0] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 ? [0 0] X + [0] 572.62/297.21 [1 1] [0] 572.62/297.21 = [n__from(X)] 572.62/297.21 572.62/297.21 [quote(n__s(X))] = [1 1] X + [8] 572.62/297.21 [0 0] [0] 572.62/297.21 > [1 1] X + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 = [s1(quote(activate(X)))] 572.62/297.21 572.62/297.21 [quote(n__0())] = [0] 572.62/297.21 [0] 572.62/297.21 ? [5] 572.62/297.21 [0] 572.62/297.21 = [01()] 572.62/297.21 572.62/297.21 [quote(n__sel(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 ? [1 1] X + [1 1] Z + [7] 572.62/297.21 [0 0] [0 0] [7] 572.62/297.21 = [sel1(activate(X), activate(Z))] 572.62/297.21 572.62/297.21 [quote1(n__first(X, Z))] = [1 1] X + [1 1] Z + [4] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 ? [1 1] X + [1 1] Z + [7] 572.62/297.21 [0 0] [0 0] [7] 572.62/297.21 = [first1(activate(X), activate(Z))] 572.62/297.21 572.62/297.21 [quote1(n__cons(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 >= [1 1] X + [1 1] Z + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.21 572.62/297.21 [quote1(n__nil())] = [0] 572.62/297.21 [0] 572.62/297.21 ? [5] 572.62/297.21 [0] 572.62/297.21 = [nil1()] 572.62/297.21 572.62/297.21 [unquote(01())] = [0] 572.62/297.21 [0] 572.62/297.21 ? [7] 572.62/297.21 [6] 572.62/297.21 = [0()] 572.62/297.21 572.62/297.21 [unquote(s1(X))] = [0] 572.62/297.21 [0] 572.62/297.21 ? [0 0] X + [0] 572.62/297.21 [0 1] [0] 572.62/297.21 = [s(unquote(X))] 572.62/297.21 572.62/297.21 [unquote1(nil1())] = [0] 572.62/297.21 [0] 572.62/297.21 ? [7] 572.62/297.21 [6] 572.62/297.21 = [nil()] 572.62/297.21 572.62/297.21 [unquote1(cons1(X, Z))] = [0] 572.62/297.21 [0] 572.62/297.21 >= [0] 572.62/297.21 [0] 572.62/297.21 = [fcons(unquote(X), unquote1(Z))] 572.62/297.21 572.62/297.21 [fcons(X, Z)] = [1 0] X + [1 0] Z + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 ? [1 0] X + [0 0] Z + [0] 572.62/297.21 [0 1] [1 1] [4] 572.62/297.21 = [cons(X, Z)] 572.62/297.21 572.62/297.21 572.62/297.21 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.21 572.62/297.21 We are left with following problem, upon which TcT provides the 572.62/297.21 certificate MAYBE. 572.62/297.21 572.62/297.21 Strict Trs: 572.62/297.21 { s(X) -> n__s(X) 572.62/297.21 , activate(X) -> X 572.62/297.21 , activate(n__from(X)) -> from(activate(X)) 572.62/297.21 , activate(n__0()) -> 0() 572.62/297.21 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.21 , activate(n__nil()) -> nil() 572.62/297.21 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.21 , first(X1, X2) -> n__first(X1, X2) 572.62/297.21 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.21 , from(X) -> n__from(X) 572.62/297.21 , quote(n__0()) -> 01() 572.62/297.21 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.21 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.62/297.21 , quote1(n__cons(X, Z)) -> 572.62/297.21 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.21 , quote1(n__nil()) -> nil1() 572.62/297.21 , unquote(01()) -> 0() 572.62/297.21 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.21 , unquote1(nil1()) -> nil() 572.62/297.21 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) 572.62/297.21 , fcons(X, Z) -> cons(X, Z) } 572.62/297.21 Weak Trs: 572.62/297.21 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.21 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.21 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.21 , activate(n__s(X)) -> s(activate(X)) 572.62/297.21 , 0() -> n__0() 572.62/297.21 , nil() -> n__nil() 572.62/297.21 , quote(n__s(X)) -> s1(quote(activate(X))) } 572.62/297.21 Obligation: 572.62/297.21 innermost runtime complexity 572.62/297.21 Answer: 572.62/297.21 MAYBE 572.62/297.21 572.62/297.21 The weightgap principle applies (using the following nonconstant 572.62/297.21 growth matrix-interpretation) 572.62/297.21 572.62/297.21 The following argument positions are usable: 572.62/297.21 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.21 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.21 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.21 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.21 572.62/297.21 TcT has computed the following matrix interpretation satisfying 572.62/297.21 not(EDA) and not(IDA(1)). 572.62/297.21 572.62/297.21 [sel](x1, x2) = [1 0] x1 + [1 0] x2 + [4] 572.62/297.21 [0 0] [0 0] [4] 572.62/297.21 572.62/297.21 [s](x1) = [1 0] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [cons](x1, x2) = [1 0] x1 + [0 0] x2 + [4] 572.62/297.21 [0 0] [1 0] [4] 572.62/297.21 572.62/297.21 [activate](x1) = [1 0] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [0] = [5] 572.62/297.21 [7] 572.62/297.21 572.62/297.21 [first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 572.62/297.21 [nil] = [7] 572.62/297.21 [7] 572.62/297.21 572.62/297.21 [n__first](x1, x2) = [1 0] x1 + [1 0] x2 + [4] 572.62/297.21 [0 0] [0 0] [4] 572.62/297.21 572.62/297.21 [from](x1) = [1 0] x1 + [4] 572.62/297.21 [0 0] [4] 572.62/297.21 572.62/297.21 [n__from](x1) = [1 0] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [n__s](x1) = [1 0] x1 + [4] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [3] 572.62/297.21 [0 0] [0 0] [3] 572.62/297.21 572.62/297.21 [quote](x1) = [1 0] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [7] 572.62/297.21 [0 0] [0 0] [3] 572.62/297.21 572.62/297.21 [nil1] = [5] 572.62/297.21 [0] 572.62/297.21 572.62/297.21 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.21 [0 0] [0 1] [0] 572.62/297.21 572.62/297.21 [n__0] = [0] 572.62/297.21 [0] 572.62/297.21 572.62/297.21 [01] = [5] 572.62/297.21 [0] 572.62/297.21 572.62/297.21 [quote1](x1) = [1 1] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [n__cons](x1, x2) = [1 0] x1 + [0 0] x2 + [0] 572.62/297.21 [0 0] [1 0] [0] 572.62/297.21 572.62/297.21 [n__nil] = [0] 572.62/297.21 [0] 572.62/297.21 572.62/297.21 [s1](x1) = [1 0] x1 + [0] 572.62/297.21 [0 0] [0] 572.62/297.21 572.62/297.21 [n__sel](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.21 [0 0] [0 0] [0] 572.62/297.21 572.62/297.21 [unquote](x1) = [0] 572.62/297.22 [0] 572.62/297.22 572.62/297.22 [unquote1](x1) = [0 0] x1 + [0] 572.62/297.22 [0 1] [0] 572.62/297.22 572.62/297.22 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 572.62/297.22 The order satisfies the following ordering constraints: 572.62/297.22 572.62/297.22 [sel(X1, X2)] = [1 0] X1 + [1 0] X2 + [4] 572.62/297.22 [0 0] [0 0] [4] 572.62/297.22 > [1 0] X1 + [1 0] X2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 = [n__sel(X1, X2)] 572.62/297.22 572.62/297.22 [s(X)] = [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 ? [1 0] X + [4] 572.62/297.22 [0 0] [0] 572.62/297.22 = [n__s(X)] 572.62/297.22 572.62/297.22 [cons(X1, X2)] = [1 0] X1 + [0 0] X2 + [4] 572.62/297.22 [0 0] [1 0] [4] 572.62/297.22 > [1 0] X1 + [0 0] X2 + [0] 572.62/297.22 [0 0] [1 0] [0] 572.62/297.22 = [n__cons(X1, X2)] 572.62/297.22 572.62/297.22 [activate(X)] = [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 ? [1 0] X + [0] 572.62/297.22 [0 1] [0] 572.62/297.22 = [X] 572.62/297.22 572.62/297.22 [activate(n__first(X1, X2))] = [1 0] X1 + [1 0] X2 + [4] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 > [1 0] X1 + [1 0] X2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 = [first(activate(X1), activate(X2))] 572.62/297.22 572.62/297.22 [activate(n__from(X))] = [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 ? [1 0] X + [4] 572.62/297.22 [0 0] [4] 572.62/297.22 = [from(activate(X))] 572.62/297.22 572.62/297.22 [activate(n__s(X))] = [1 0] X + [4] 572.62/297.22 [0 0] [0] 572.62/297.22 > [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 = [s(activate(X))] 572.62/297.22 572.62/297.22 [activate(n__0())] = [0] 572.62/297.22 [0] 572.62/297.22 ? [5] 572.62/297.22 [7] 572.62/297.22 = [0()] 572.62/297.22 572.62/297.22 [activate(n__cons(X1, X2))] = [1 0] X1 + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 ? [1 0] X1 + [0 0] X2 + [4] 572.62/297.22 [0 0] [1 0] [4] 572.62/297.22 = [cons(activate(X1), X2)] 572.62/297.22 572.62/297.22 [activate(n__nil())] = [0] 572.62/297.22 [0] 572.62/297.22 ? [7] 572.62/297.22 [7] 572.62/297.22 = [nil()] 572.62/297.22 572.62/297.22 [activate(n__sel(X1, X2))] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 ? [1 0] X1 + [1 0] X2 + [4] 572.62/297.22 [0 0] [0 0] [4] 572.62/297.22 = [sel(activate(X1), activate(X2))] 572.62/297.22 572.62/297.22 [0()] = [5] 572.62/297.22 [7] 572.62/297.22 > [0] 572.62/297.22 [0] 572.62/297.22 = [n__0()] 572.62/297.22 572.62/297.22 [first(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 ? [1 0] X1 + [1 0] X2 + [4] 572.62/297.22 [0 0] [0 0] [4] 572.62/297.22 = [n__first(X1, X2)] 572.62/297.22 572.62/297.22 [nil()] = [7] 572.62/297.22 [7] 572.62/297.22 > [0] 572.62/297.22 [0] 572.62/297.22 = [n__nil()] 572.62/297.22 572.62/297.22 [from(X)] = [1 0] X + [4] 572.62/297.22 [0 0] [4] 572.62/297.22 ? [1 0] X + [4] 572.62/297.22 [1 0] [8] 572.62/297.22 = [cons(X, n__from(n__s(X)))] 572.62/297.22 572.62/297.22 [from(X)] = [1 0] X + [4] 572.62/297.22 [0 0] [4] 572.62/297.22 > [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 = [n__from(X)] 572.62/297.22 572.62/297.22 [quote(n__s(X))] = [1 0] X + [4] 572.62/297.22 [0 0] [0] 572.62/297.22 > [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 = [s1(quote(activate(X)))] 572.62/297.22 572.62/297.22 [quote(n__0())] = [0] 572.62/297.22 [0] 572.62/297.22 ? [5] 572.62/297.22 [0] 572.62/297.22 = [01()] 572.62/297.22 572.62/297.22 [quote(n__sel(X, Z))] = [1 0] X + [1 0] Z + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 ? [1 0] X + [1 0] Z + [3] 572.62/297.22 [0 0] [0 0] [3] 572.62/297.22 = [sel1(activate(X), activate(Z))] 572.62/297.22 572.62/297.22 [quote1(n__first(X, Z))] = [1 0] X + [1 0] Z + [8] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 ? [1 0] X + [1 0] Z + [7] 572.62/297.22 [0 0] [0 0] [3] 572.62/297.22 = [first1(activate(X), activate(Z))] 572.62/297.22 572.62/297.22 [quote1(n__cons(X, Z))] = [1 0] X + [1 0] Z + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 >= [1 0] X + [1 0] Z + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.22 572.62/297.22 [quote1(n__nil())] = [0] 572.62/297.22 [0] 572.62/297.22 ? [5] 572.62/297.22 [0] 572.62/297.22 = [nil1()] 572.62/297.22 572.62/297.22 [unquote(01())] = [0] 572.62/297.22 [0] 572.62/297.22 ? [5] 572.62/297.22 [7] 572.62/297.22 = [0()] 572.62/297.22 572.62/297.22 [unquote(s1(X))] = [0] 572.62/297.22 [0] 572.62/297.22 >= [0] 572.62/297.22 [0] 572.62/297.22 = [s(unquote(X))] 572.62/297.22 572.62/297.22 [unquote1(nil1())] = [0] 572.62/297.22 [0] 572.62/297.22 ? [7] 572.62/297.22 [7] 572.62/297.22 = [nil()] 572.62/297.22 572.62/297.22 [unquote1(cons1(X, Z))] = [0 0] Z + [0] 572.62/297.22 [0 1] [0] 572.62/297.22 >= [0] 572.62/297.22 [0] 572.62/297.22 = [fcons(unquote(X), unquote1(Z))] 572.62/297.22 572.62/297.22 [fcons(X, Z)] = [1 0] X + [1 0] Z + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 ? [1 0] X + [0 0] Z + [4] 572.62/297.22 [0 0] [1 0] [4] 572.62/297.22 = [cons(X, Z)] 572.62/297.22 572.62/297.22 572.62/297.22 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.22 572.62/297.22 We are left with following problem, upon which TcT provides the 572.62/297.22 certificate MAYBE. 572.62/297.22 572.62/297.22 Strict Trs: 572.62/297.22 { s(X) -> n__s(X) 572.62/297.22 , activate(X) -> X 572.62/297.22 , activate(n__from(X)) -> from(activate(X)) 572.62/297.22 , activate(n__0()) -> 0() 572.62/297.22 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.22 , activate(n__nil()) -> nil() 572.62/297.22 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.22 , first(X1, X2) -> n__first(X1, X2) 572.62/297.22 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.22 , quote(n__0()) -> 01() 572.62/297.22 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.22 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.62/297.22 , quote1(n__cons(X, Z)) -> 572.62/297.22 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.22 , quote1(n__nil()) -> nil1() 572.62/297.22 , unquote(01()) -> 0() 572.62/297.22 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.22 , unquote1(nil1()) -> nil() 572.62/297.22 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) 572.62/297.22 , fcons(X, Z) -> cons(X, Z) } 572.62/297.22 Weak Trs: 572.62/297.22 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.22 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.22 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.22 , activate(n__s(X)) -> s(activate(X)) 572.62/297.22 , 0() -> n__0() 572.62/297.22 , nil() -> n__nil() 572.62/297.22 , from(X) -> n__from(X) 572.62/297.22 , quote(n__s(X)) -> s1(quote(activate(X))) } 572.62/297.22 Obligation: 572.62/297.22 innermost runtime complexity 572.62/297.22 Answer: 572.62/297.22 MAYBE 572.62/297.22 572.62/297.22 The weightgap principle applies (using the following nonconstant 572.62/297.22 growth matrix-interpretation) 572.62/297.22 572.62/297.22 The following argument positions are usable: 572.62/297.22 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.22 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.22 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.22 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.22 572.62/297.22 TcT has computed the following matrix interpretation satisfying 572.62/297.22 not(EDA) and not(IDA(1)). 572.62/297.22 572.62/297.22 [sel](x1, x2) = [1 0] x1 + [1 0] x2 + [4] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 572.62/297.22 [s](x1) = [1 0] x1 + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 572.62/297.22 [cons](x1, x2) = [1 0] x1 + [0 0] x2 + [4] 572.62/297.22 [0 0] [1 0] [4] 572.62/297.22 572.62/297.22 [activate](x1) = [1 0] x1 + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 572.62/297.22 [0] = [7] 572.62/297.22 [6] 572.62/297.22 572.62/297.22 [first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 572.62/297.22 [nil] = [5] 572.62/297.22 [6] 572.62/297.22 572.62/297.22 [n__first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.22 [0 0] [0 0] [4] 572.62/297.22 572.62/297.22 [from](x1) = [1 0] x1 + [4] 572.62/297.22 [0 0] [4] 572.62/297.22 572.62/297.22 [n__from](x1) = [1 0] x1 + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 572.62/297.22 [n__s](x1) = [1 0] x1 + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 572.62/297.22 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [7] 572.62/297.22 [0 0] [0 0] [7] 572.62/297.22 572.62/297.22 [quote](x1) = [1 0] x1 + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 572.62/297.22 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [3] 572.62/297.22 [0 0] [0 0] [3] 572.62/297.22 572.62/297.22 [nil1] = [5] 572.62/297.22 [0] 572.62/297.22 572.62/297.22 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 572.62/297.22 [n__0] = [0] 572.62/297.22 [0] 572.62/297.22 572.62/297.22 [01] = [5] 572.62/297.22 [0] 572.62/297.22 572.62/297.22 [quote1](x1) = [1 1] x1 + [0] 572.62/297.22 [0 0] [4] 572.62/297.22 572.62/297.22 [n__cons](x1, x2) = [1 0] x1 + [0 0] x2 + [0] 572.62/297.22 [0 0] [1 0] [0] 572.62/297.22 572.62/297.22 [n__nil] = [0] 572.62/297.22 [0] 572.62/297.22 572.62/297.22 [s1](x1) = [1 0] x1 + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 572.62/297.22 [n__sel](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 572.62/297.22 [unquote](x1) = [0 0] x1 + [0] 572.62/297.22 [0 1] [0] 572.62/297.22 572.62/297.22 [unquote1](x1) = [0] 572.62/297.22 [0] 572.62/297.22 572.62/297.22 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.22 [0 1] [0 0] [0] 572.62/297.22 572.62/297.22 The order satisfies the following ordering constraints: 572.62/297.22 572.62/297.22 [sel(X1, X2)] = [1 0] X1 + [1 0] X2 + [4] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 > [1 0] X1 + [1 0] X2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 = [n__sel(X1, X2)] 572.62/297.22 572.62/297.22 [s(X)] = [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 >= [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 = [n__s(X)] 572.62/297.22 572.62/297.22 [cons(X1, X2)] = [1 0] X1 + [0 0] X2 + [4] 572.62/297.22 [0 0] [1 0] [4] 572.62/297.22 > [1 0] X1 + [0 0] X2 + [0] 572.62/297.22 [0 0] [1 0] [0] 572.62/297.22 = [n__cons(X1, X2)] 572.62/297.22 572.62/297.22 [activate(X)] = [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 ? [1 0] X + [0] 572.62/297.22 [0 1] [0] 572.62/297.22 = [X] 572.62/297.22 572.62/297.22 [activate(n__first(X1, X2))] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 >= [1 0] X1 + [1 0] X2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 = [first(activate(X1), activate(X2))] 572.62/297.22 572.62/297.22 [activate(n__from(X))] = [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 ? [1 0] X + [4] 572.62/297.22 [0 0] [4] 572.62/297.22 = [from(activate(X))] 572.62/297.22 572.62/297.22 [activate(n__s(X))] = [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 >= [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 = [s(activate(X))] 572.62/297.22 572.62/297.22 [activate(n__0())] = [0] 572.62/297.22 [0] 572.62/297.22 ? [7] 572.62/297.22 [6] 572.62/297.22 = [0()] 572.62/297.22 572.62/297.22 [activate(n__cons(X1, X2))] = [1 0] X1 + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 ? [1 0] X1 + [0 0] X2 + [4] 572.62/297.22 [0 0] [1 0] [4] 572.62/297.22 = [cons(activate(X1), X2)] 572.62/297.22 572.62/297.22 [activate(n__nil())] = [0] 572.62/297.22 [0] 572.62/297.22 ? [5] 572.62/297.22 [6] 572.62/297.22 = [nil()] 572.62/297.22 572.62/297.22 [activate(n__sel(X1, X2))] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 ? [1 0] X1 + [1 0] X2 + [4] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 = [sel(activate(X1), activate(X2))] 572.62/297.22 572.62/297.22 [0()] = [7] 572.62/297.22 [6] 572.62/297.22 > [0] 572.62/297.22 [0] 572.62/297.22 = [n__0()] 572.62/297.22 572.62/297.22 [first(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 ? [1 0] X1 + [1 0] X2 + [0] 572.62/297.22 [0 0] [0 0] [4] 572.62/297.22 = [n__first(X1, X2)] 572.62/297.22 572.62/297.22 [nil()] = [5] 572.62/297.22 [6] 572.62/297.22 > [0] 572.62/297.22 [0] 572.62/297.22 = [n__nil()] 572.62/297.22 572.62/297.22 [from(X)] = [1 0] X + [4] 572.62/297.22 [0 0] [4] 572.62/297.22 ? [1 0] X + [4] 572.62/297.22 [1 0] [4] 572.62/297.22 = [cons(X, n__from(n__s(X)))] 572.62/297.22 572.62/297.22 [from(X)] = [1 0] X + [4] 572.62/297.22 [0 0] [4] 572.62/297.22 > [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 = [n__from(X)] 572.62/297.22 572.62/297.22 [quote(n__s(X))] = [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 >= [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 = [s1(quote(activate(X)))] 572.62/297.22 572.62/297.22 [quote(n__0())] = [0] 572.62/297.22 [0] 572.62/297.22 ? [5] 572.62/297.22 [0] 572.62/297.22 = [01()] 572.62/297.22 572.62/297.22 [quote(n__sel(X, Z))] = [1 0] X + [1 0] Z + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 ? [1 0] X + [1 0] Z + [7] 572.62/297.22 [0 0] [0 0] [7] 572.62/297.22 = [sel1(activate(X), activate(Z))] 572.62/297.22 572.62/297.22 [quote1(n__first(X, Z))] = [1 0] X + [1 0] Z + [4] 572.62/297.22 [0 0] [0 0] [4] 572.62/297.22 > [1 0] X + [1 0] Z + [3] 572.62/297.22 [0 0] [0 0] [3] 572.62/297.22 = [first1(activate(X), activate(Z))] 572.62/297.22 572.62/297.22 [quote1(n__cons(X, Z))] = [1 0] X + [1 0] Z + [0] 572.62/297.22 [0 0] [0 0] [4] 572.62/297.22 >= [1 0] X + [1 0] Z + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.22 572.62/297.22 [quote1(n__nil())] = [0] 572.62/297.22 [4] 572.62/297.22 ? [5] 572.62/297.22 [0] 572.62/297.22 = [nil1()] 572.62/297.22 572.62/297.22 [unquote(01())] = [0] 572.62/297.22 [0] 572.62/297.22 ? [7] 572.62/297.22 [6] 572.62/297.22 = [0()] 572.62/297.22 572.62/297.22 [unquote(s1(X))] = [0] 572.62/297.22 [0] 572.62/297.22 >= [0] 572.62/297.22 [0] 572.62/297.22 = [s(unquote(X))] 572.62/297.22 572.62/297.22 [unquote1(nil1())] = [0] 572.62/297.22 [0] 572.62/297.22 ? [5] 572.62/297.22 [6] 572.62/297.22 = [nil()] 572.62/297.22 572.62/297.22 [unquote1(cons1(X, Z))] = [0] 572.62/297.22 [0] 572.62/297.22 ? [0 0] X + [0] 572.62/297.22 [0 1] [0] 572.62/297.22 = [fcons(unquote(X), unquote1(Z))] 572.62/297.22 572.62/297.22 [fcons(X, Z)] = [1 0] X + [1 0] Z + [0] 572.62/297.22 [0 1] [0 0] [0] 572.62/297.22 ? [1 0] X + [0 0] Z + [4] 572.62/297.22 [0 0] [1 0] [4] 572.62/297.22 = [cons(X, Z)] 572.62/297.22 572.62/297.22 572.62/297.22 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.22 572.62/297.22 We are left with following problem, upon which TcT provides the 572.62/297.22 certificate MAYBE. 572.62/297.22 572.62/297.22 Strict Trs: 572.62/297.22 { s(X) -> n__s(X) 572.62/297.22 , activate(X) -> X 572.62/297.22 , activate(n__from(X)) -> from(activate(X)) 572.62/297.22 , activate(n__0()) -> 0() 572.62/297.22 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.22 , activate(n__nil()) -> nil() 572.62/297.22 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.22 , first(X1, X2) -> n__first(X1, X2) 572.62/297.22 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.22 , quote(n__0()) -> 01() 572.62/297.22 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.22 , quote1(n__cons(X, Z)) -> 572.62/297.22 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.22 , quote1(n__nil()) -> nil1() 572.62/297.22 , unquote(01()) -> 0() 572.62/297.22 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.22 , unquote1(nil1()) -> nil() 572.62/297.22 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) 572.62/297.22 , fcons(X, Z) -> cons(X, Z) } 572.62/297.22 Weak Trs: 572.62/297.22 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.22 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.22 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.22 , activate(n__s(X)) -> s(activate(X)) 572.62/297.22 , 0() -> n__0() 572.62/297.22 , nil() -> n__nil() 572.62/297.22 , from(X) -> n__from(X) 572.62/297.22 , quote(n__s(X)) -> s1(quote(activate(X))) 572.62/297.22 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) } 572.62/297.22 Obligation: 572.62/297.22 innermost runtime complexity 572.62/297.22 Answer: 572.62/297.22 MAYBE 572.62/297.22 572.62/297.22 The weightgap principle applies (using the following nonconstant 572.62/297.22 growth matrix-interpretation) 572.62/297.22 572.62/297.22 The following argument positions are usable: 572.62/297.22 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.22 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.22 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.22 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.22 572.62/297.22 TcT has computed the following matrix interpretation satisfying 572.62/297.22 not(EDA) and not(IDA(1)). 572.62/297.22 572.62/297.22 [sel](x1, x2) = [1 0] x1 + [1 1] x2 + [4] 572.62/297.22 [0 1] [0 0] [4] 572.62/297.22 572.62/297.22 [s](x1) = [1 0] x1 + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 572.62/297.22 [cons](x1, x2) = [1 0] x1 + [0 0] x2 + [4] 572.62/297.22 [0 1] [1 1] [4] 572.62/297.22 572.62/297.22 [activate](x1) = [1 1] x1 + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 572.62/297.22 [0] = [7] 572.62/297.22 [6] 572.62/297.22 572.62/297.22 [first](x1, x2) = [1 0] x1 + [1 1] x2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 572.62/297.22 [nil] = [7] 572.62/297.22 [6] 572.62/297.22 572.62/297.22 [n__first](x1, x2) = [0 0] x1 + [1 1] x2 + [4] 572.62/297.22 [1 1] [0 0] [4] 572.62/297.22 572.62/297.22 [from](x1) = [1 0] x1 + [4] 572.62/297.22 [0 1] [4] 572.62/297.22 572.62/297.22 [n__from](x1) = [1 0] x1 + [0] 572.62/297.22 [0 1] [0] 572.62/297.22 572.62/297.22 [n__s](x1) = [0 0] x1 + [4] 572.62/297.22 [1 1] [4] 572.62/297.22 572.62/297.22 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [3] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 572.62/297.22 [quote](x1) = [1 1] x1 + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 572.62/297.22 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [3] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 572.62/297.22 [nil1] = [0] 572.62/297.22 [0] 572.62/297.22 572.62/297.22 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 572.62/297.22 [n__0] = [0] 572.62/297.22 [0] 572.62/297.22 572.62/297.22 [01] = [5] 572.62/297.22 [0] 572.62/297.22 572.62/297.22 [quote1](x1) = [1 1] x1 + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 572.62/297.22 [n__cons](x1, x2) = [1 0] x1 + [0 0] x2 + [0] 572.62/297.22 [0 1] [1 1] [0] 572.62/297.22 572.62/297.22 [n__nil] = [0] 572.62/297.22 [0] 572.62/297.22 572.62/297.22 [s1](x1) = [1 0] x1 + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 572.62/297.22 [n__sel](x1, x2) = [1 0] x1 + [1 1] x2 + [4] 572.62/297.22 [0 1] [0 0] [0] 572.62/297.22 572.62/297.22 [unquote](x1) = [0] 572.62/297.22 [0] 572.62/297.22 572.62/297.22 [unquote1](x1) = [0 0] x1 + [0] 572.62/297.22 [1 1] [0] 572.62/297.22 572.62/297.22 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 572.62/297.22 The order satisfies the following ordering constraints: 572.62/297.22 572.62/297.22 [sel(X1, X2)] = [1 0] X1 + [1 1] X2 + [4] 572.62/297.22 [0 1] [0 0] [4] 572.62/297.22 >= [1 0] X1 + [1 1] X2 + [4] 572.62/297.22 [0 1] [0 0] [0] 572.62/297.22 = [n__sel(X1, X2)] 572.62/297.22 572.62/297.22 [s(X)] = [1 0] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 ? [0 0] X + [4] 572.62/297.22 [1 1] [4] 572.62/297.22 = [n__s(X)] 572.62/297.22 572.62/297.22 [cons(X1, X2)] = [1 0] X1 + [0 0] X2 + [4] 572.62/297.22 [0 1] [1 1] [4] 572.62/297.22 > [1 0] X1 + [0 0] X2 + [0] 572.62/297.22 [0 1] [1 1] [0] 572.62/297.22 = [n__cons(X1, X2)] 572.62/297.22 572.62/297.22 [activate(X)] = [1 1] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 ? [1 0] X + [0] 572.62/297.22 [0 1] [0] 572.62/297.22 = [X] 572.62/297.22 572.62/297.22 [activate(n__first(X1, X2))] = [1 1] X1 + [1 1] X2 + [8] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 > [1 1] X1 + [1 1] X2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 = [first(activate(X1), activate(X2))] 572.62/297.22 572.62/297.22 [activate(n__from(X))] = [1 1] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 ? [1 1] X + [4] 572.62/297.22 [0 0] [4] 572.62/297.22 = [from(activate(X))] 572.62/297.22 572.62/297.22 [activate(n__s(X))] = [1 1] X + [8] 572.62/297.22 [0 0] [0] 572.62/297.22 > [1 1] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 = [s(activate(X))] 572.62/297.22 572.62/297.22 [activate(n__0())] = [0] 572.62/297.22 [0] 572.62/297.22 ? [7] 572.62/297.22 [6] 572.62/297.22 = [0()] 572.62/297.22 572.62/297.22 [activate(n__cons(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 ? [1 1] X1 + [0 0] X2 + [4] 572.62/297.22 [0 0] [1 1] [4] 572.62/297.22 = [cons(activate(X1), X2)] 572.62/297.22 572.62/297.22 [activate(n__nil())] = [0] 572.62/297.22 [0] 572.62/297.22 ? [7] 572.62/297.22 [6] 572.62/297.22 = [nil()] 572.62/297.22 572.62/297.22 [activate(n__sel(X1, X2))] = [1 1] X1 + [1 1] X2 + [4] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 ? [1 1] X1 + [1 1] X2 + [4] 572.62/297.22 [0 0] [0 0] [4] 572.62/297.22 = [sel(activate(X1), activate(X2))] 572.62/297.22 572.62/297.22 [0()] = [7] 572.62/297.22 [6] 572.62/297.22 > [0] 572.62/297.22 [0] 572.62/297.22 = [n__0()] 572.62/297.22 572.62/297.22 [first(X1, X2)] = [1 0] X1 + [1 1] X2 + [0] 572.62/297.22 [0 0] [0 0] [0] 572.62/297.22 ? [0 0] X1 + [1 1] X2 + [4] 572.62/297.22 [1 1] [0 0] [4] 572.62/297.22 = [n__first(X1, X2)] 572.62/297.22 572.62/297.22 [nil()] = [7] 572.62/297.22 [6] 572.62/297.22 > [0] 572.62/297.22 [0] 572.62/297.22 = [n__nil()] 572.62/297.22 572.62/297.22 [from(X)] = [1 0] X + [4] 572.62/297.22 [0 1] [4] 572.62/297.22 ? [1 0] X + [4] 572.62/297.22 [1 2] [12] 572.62/297.22 = [cons(X, n__from(n__s(X)))] 572.62/297.22 572.62/297.22 [from(X)] = [1 0] X + [4] 572.62/297.22 [0 1] [4] 572.62/297.22 > [1 0] X + [0] 572.62/297.22 [0 1] [0] 572.62/297.22 = [n__from(X)] 572.62/297.22 572.62/297.22 [quote(n__s(X))] = [1 1] X + [8] 572.62/297.22 [0 0] [0] 572.62/297.22 > [1 1] X + [0] 572.62/297.22 [0 0] [0] 572.62/297.22 = [s1(quote(activate(X)))] 572.62/297.22 572.62/297.23 [quote(n__0())] = [0] 572.62/297.23 [0] 572.62/297.23 ? [5] 572.62/297.23 [0] 572.62/297.23 = [01()] 572.62/297.23 572.62/297.23 [quote(n__sel(X, Z))] = [1 1] X + [1 1] Z + [4] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 > [1 1] X + [1 1] Z + [3] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 = [sel1(activate(X), activate(Z))] 572.62/297.23 572.62/297.23 [quote1(n__first(X, Z))] = [1 1] X + [1 1] Z + [8] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 > [1 1] X + [1 1] Z + [3] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 = [first1(activate(X), activate(Z))] 572.62/297.23 572.62/297.23 [quote1(n__cons(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 >= [1 1] X + [1 1] Z + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.23 572.62/297.23 [quote1(n__nil())] = [0] 572.62/297.23 [0] 572.62/297.23 >= [0] 572.62/297.23 [0] 572.62/297.23 = [nil1()] 572.62/297.23 572.62/297.23 [unquote(01())] = [0] 572.62/297.23 [0] 572.62/297.23 ? [7] 572.62/297.23 [6] 572.62/297.23 = [0()] 572.62/297.23 572.62/297.23 [unquote(s1(X))] = [0] 572.62/297.23 [0] 572.62/297.23 >= [0] 572.62/297.23 [0] 572.62/297.23 = [s(unquote(X))] 572.62/297.23 572.62/297.23 [unquote1(nil1())] = [0] 572.62/297.23 [0] 572.62/297.23 ? [7] 572.62/297.23 [6] 572.62/297.23 = [nil()] 572.62/297.23 572.62/297.23 [unquote1(cons1(X, Z))] = [0 0] X + [0 0] Z + [0] 572.62/297.23 [1 0] [1 0] [0] 572.62/297.23 >= [0] 572.62/297.23 [0] 572.62/297.23 = [fcons(unquote(X), unquote1(Z))] 572.62/297.23 572.62/297.23 [fcons(X, Z)] = [1 0] X + [1 0] Z + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 ? [1 0] X + [0 0] Z + [4] 572.62/297.23 [0 1] [1 1] [4] 572.62/297.23 = [cons(X, Z)] 572.62/297.23 572.62/297.23 572.62/297.23 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.23 572.62/297.23 We are left with following problem, upon which TcT provides the 572.62/297.23 certificate MAYBE. 572.62/297.23 572.62/297.23 Strict Trs: 572.62/297.23 { s(X) -> n__s(X) 572.62/297.23 , activate(X) -> X 572.62/297.23 , activate(n__from(X)) -> from(activate(X)) 572.62/297.23 , activate(n__0()) -> 0() 572.62/297.23 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.23 , activate(n__nil()) -> nil() 572.62/297.23 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.23 , first(X1, X2) -> n__first(X1, X2) 572.62/297.23 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.23 , quote(n__0()) -> 01() 572.62/297.23 , quote1(n__cons(X, Z)) -> 572.62/297.23 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.23 , quote1(n__nil()) -> nil1() 572.62/297.23 , unquote(01()) -> 0() 572.62/297.23 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.23 , unquote1(nil1()) -> nil() 572.62/297.23 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) 572.62/297.23 , fcons(X, Z) -> cons(X, Z) } 572.62/297.23 Weak Trs: 572.62/297.23 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.23 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.23 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.23 , activate(n__s(X)) -> s(activate(X)) 572.62/297.23 , 0() -> n__0() 572.62/297.23 , nil() -> n__nil() 572.62/297.23 , from(X) -> n__from(X) 572.62/297.23 , quote(n__s(X)) -> s1(quote(activate(X))) 572.62/297.23 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.23 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) } 572.62/297.23 Obligation: 572.62/297.23 innermost runtime complexity 572.62/297.23 Answer: 572.62/297.23 MAYBE 572.62/297.23 572.62/297.23 The weightgap principle applies (using the following nonconstant 572.62/297.23 growth matrix-interpretation) 572.62/297.23 572.62/297.23 The following argument positions are usable: 572.62/297.23 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.23 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.23 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.23 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.23 572.62/297.23 TcT has computed the following matrix interpretation satisfying 572.62/297.23 not(EDA) and not(IDA(1)). 572.62/297.23 572.62/297.23 [sel](x1, x2) = [1 0] x1 + [1 0] x2 + [4] 572.62/297.23 [0 0] [0 1] [4] 572.62/297.23 572.62/297.23 [s](x1) = [1 0] x1 + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 572.62/297.23 [cons](x1, x2) = [1 0] x1 + [0 0] x2 + [4] 572.62/297.23 [0 1] [1 1] [4] 572.62/297.23 572.62/297.23 [activate](x1) = [1 0] x1 + [0] 572.62/297.23 [0 1] [0] 572.62/297.23 572.62/297.23 [0] = [5] 572.62/297.23 [6] 572.62/297.23 572.62/297.23 [first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 572.62/297.23 [nil] = [7] 572.62/297.23 [6] 572.62/297.23 572.62/297.23 [n__first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.23 [0 0] [0 0] [4] 572.62/297.23 572.62/297.23 [from](x1) = [1 0] x1 + [4] 572.62/297.23 [0 0] [4] 572.62/297.23 572.62/297.23 [n__from](x1) = [1 0] x1 + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 572.62/297.23 [n__s](x1) = [1 0] x1 + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 572.62/297.23 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.23 [0 0] [0 1] [3] 572.62/297.23 572.62/297.23 [quote](x1) = [1 0] x1 + [0] 572.62/297.23 [0 1] [0] 572.62/297.23 572.62/297.23 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [3] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 572.62/297.23 [nil1] = [5] 572.62/297.23 [0] 572.62/297.23 572.62/297.23 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 572.62/297.23 [n__0] = [0] 572.62/297.23 [0] 572.62/297.23 572.62/297.23 [01] = [5] 572.62/297.23 [0] 572.62/297.23 572.62/297.23 [quote1](x1) = [1 1] x1 + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 572.62/297.23 [n__cons](x1, x2) = [1 0] x1 + [0 0] x2 + [4] 572.62/297.23 [0 1] [1 1] [0] 572.62/297.23 572.62/297.23 [n__nil] = [0] 572.62/297.23 [0] 572.62/297.23 572.62/297.23 [s1](x1) = [1 0] x1 + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 572.62/297.23 [n__sel](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.23 [0 0] [0 1] [4] 572.62/297.23 572.62/297.23 [unquote](x1) = [0] 572.62/297.23 [0] 572.62/297.23 572.62/297.23 [unquote1](x1) = [0] 572.62/297.23 [0] 572.62/297.23 572.62/297.23 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 572.62/297.23 The order satisfies the following ordering constraints: 572.62/297.23 572.62/297.23 [sel(X1, X2)] = [1 0] X1 + [1 0] X2 + [4] 572.62/297.23 [0 0] [0 1] [4] 572.62/297.23 > [1 0] X1 + [1 0] X2 + [0] 572.62/297.23 [0 0] [0 1] [4] 572.62/297.23 = [n__sel(X1, X2)] 572.62/297.23 572.62/297.23 [s(X)] = [1 0] X + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 >= [1 0] X + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 = [n__s(X)] 572.62/297.23 572.62/297.23 [cons(X1, X2)] = [1 0] X1 + [0 0] X2 + [4] 572.62/297.23 [0 1] [1 1] [4] 572.62/297.23 >= [1 0] X1 + [0 0] X2 + [4] 572.62/297.23 [0 1] [1 1] [0] 572.62/297.23 = [n__cons(X1, X2)] 572.62/297.23 572.62/297.23 [activate(X)] = [1 0] X + [0] 572.62/297.23 [0 1] [0] 572.62/297.23 >= [1 0] X + [0] 572.62/297.23 [0 1] [0] 572.62/297.23 = [X] 572.62/297.23 572.62/297.23 [activate(n__first(X1, X2))] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.23 [0 0] [0 0] [4] 572.62/297.23 >= [1 0] X1 + [1 0] X2 + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 = [first(activate(X1), activate(X2))] 572.62/297.23 572.62/297.23 [activate(n__from(X))] = [1 0] X + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 ? [1 0] X + [4] 572.62/297.23 [0 0] [4] 572.62/297.23 = [from(activate(X))] 572.62/297.23 572.62/297.23 [activate(n__s(X))] = [1 0] X + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 >= [1 0] X + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 = [s(activate(X))] 572.62/297.23 572.62/297.23 [activate(n__0())] = [0] 572.62/297.23 [0] 572.62/297.23 ? [5] 572.62/297.23 [6] 572.62/297.23 = [0()] 572.62/297.23 572.62/297.23 [activate(n__cons(X1, X2))] = [1 0] X1 + [0 0] X2 + [4] 572.62/297.23 [0 1] [1 1] [0] 572.62/297.23 ? [1 0] X1 + [0 0] X2 + [4] 572.62/297.23 [0 1] [1 1] [4] 572.62/297.23 = [cons(activate(X1), X2)] 572.62/297.23 572.62/297.23 [activate(n__nil())] = [0] 572.62/297.23 [0] 572.62/297.23 ? [7] 572.62/297.23 [6] 572.62/297.23 = [nil()] 572.62/297.23 572.62/297.23 [activate(n__sel(X1, X2))] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.23 [0 0] [0 1] [4] 572.62/297.23 ? [1 0] X1 + [1 0] X2 + [4] 572.62/297.23 [0 0] [0 1] [4] 572.62/297.23 = [sel(activate(X1), activate(X2))] 572.62/297.23 572.62/297.23 [0()] = [5] 572.62/297.23 [6] 572.62/297.23 > [0] 572.62/297.23 [0] 572.62/297.23 = [n__0()] 572.62/297.23 572.62/297.23 [first(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 ? [1 0] X1 + [1 0] X2 + [0] 572.62/297.23 [0 0] [0 0] [4] 572.62/297.23 = [n__first(X1, X2)] 572.62/297.23 572.62/297.23 [nil()] = [7] 572.62/297.23 [6] 572.62/297.23 > [0] 572.62/297.23 [0] 572.62/297.23 = [n__nil()] 572.62/297.23 572.62/297.23 [from(X)] = [1 0] X + [4] 572.62/297.23 [0 0] [4] 572.62/297.23 ? [1 0] X + [4] 572.62/297.23 [1 1] [4] 572.62/297.23 = [cons(X, n__from(n__s(X)))] 572.62/297.23 572.62/297.23 [from(X)] = [1 0] X + [4] 572.62/297.23 [0 0] [4] 572.62/297.23 > [1 0] X + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 = [n__from(X)] 572.62/297.23 572.62/297.23 [quote(n__s(X))] = [1 0] X + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 >= [1 0] X + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 = [s1(quote(activate(X)))] 572.62/297.23 572.62/297.23 [quote(n__0())] = [0] 572.62/297.23 [0] 572.62/297.23 ? [5] 572.62/297.23 [0] 572.62/297.23 = [01()] 572.62/297.23 572.62/297.23 [quote(n__sel(X, Z))] = [1 0] X + [1 0] Z + [0] 572.62/297.23 [0 0] [0 1] [4] 572.62/297.23 >= [1 0] X + [1 0] Z + [0] 572.62/297.23 [0 0] [0 1] [3] 572.62/297.23 = [sel1(activate(X), activate(Z))] 572.62/297.23 572.62/297.23 [quote1(n__first(X, Z))] = [1 0] X + [1 0] Z + [4] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 > [1 0] X + [1 0] Z + [3] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 = [first1(activate(X), activate(Z))] 572.62/297.23 572.62/297.23 [quote1(n__cons(X, Z))] = [1 1] X + [1 1] Z + [4] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 > [1 0] X + [1 1] Z + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.23 572.62/297.23 [quote1(n__nil())] = [0] 572.62/297.23 [0] 572.62/297.23 ? [5] 572.62/297.23 [0] 572.62/297.23 = [nil1()] 572.62/297.23 572.62/297.23 [unquote(01())] = [0] 572.62/297.23 [0] 572.62/297.23 ? [5] 572.62/297.23 [6] 572.62/297.23 = [0()] 572.62/297.23 572.62/297.23 [unquote(s1(X))] = [0] 572.62/297.23 [0] 572.62/297.23 >= [0] 572.62/297.23 [0] 572.62/297.23 = [s(unquote(X))] 572.62/297.23 572.62/297.23 [unquote1(nil1())] = [0] 572.62/297.23 [0] 572.62/297.23 ? [7] 572.62/297.23 [6] 572.62/297.23 = [nil()] 572.62/297.23 572.62/297.23 [unquote1(cons1(X, Z))] = [0] 572.62/297.23 [0] 572.62/297.23 >= [0] 572.62/297.23 [0] 572.62/297.23 = [fcons(unquote(X), unquote1(Z))] 572.62/297.23 572.62/297.23 [fcons(X, Z)] = [1 0] X + [1 0] Z + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 ? [1 0] X + [0 0] Z + [4] 572.62/297.23 [0 1] [1 1] [4] 572.62/297.23 = [cons(X, Z)] 572.62/297.23 572.62/297.23 572.62/297.23 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.23 572.62/297.23 We are left with following problem, upon which TcT provides the 572.62/297.23 certificate MAYBE. 572.62/297.23 572.62/297.23 Strict Trs: 572.62/297.23 { s(X) -> n__s(X) 572.62/297.23 , activate(X) -> X 572.62/297.23 , activate(n__from(X)) -> from(activate(X)) 572.62/297.23 , activate(n__0()) -> 0() 572.62/297.23 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.23 , activate(n__nil()) -> nil() 572.62/297.23 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.23 , first(X1, X2) -> n__first(X1, X2) 572.62/297.23 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.23 , quote(n__0()) -> 01() 572.62/297.23 , quote1(n__nil()) -> nil1() 572.62/297.23 , unquote(01()) -> 0() 572.62/297.23 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.23 , unquote1(nil1()) -> nil() 572.62/297.23 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) 572.62/297.23 , fcons(X, Z) -> cons(X, Z) } 572.62/297.23 Weak Trs: 572.62/297.23 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.23 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.23 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.23 , activate(n__s(X)) -> s(activate(X)) 572.62/297.23 , 0() -> n__0() 572.62/297.23 , nil() -> n__nil() 572.62/297.23 , from(X) -> n__from(X) 572.62/297.23 , quote(n__s(X)) -> s1(quote(activate(X))) 572.62/297.23 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.23 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.62/297.23 , quote1(n__cons(X, Z)) -> 572.62/297.23 cons1(quote(activate(X)), quote1(activate(Z))) } 572.62/297.23 Obligation: 572.62/297.23 innermost runtime complexity 572.62/297.23 Answer: 572.62/297.23 MAYBE 572.62/297.23 572.62/297.23 The weightgap principle applies (using the following nonconstant 572.62/297.23 growth matrix-interpretation) 572.62/297.23 572.62/297.23 The following argument positions are usable: 572.62/297.23 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.23 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.23 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.23 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.23 572.62/297.23 TcT has computed the following matrix interpretation satisfying 572.62/297.23 not(EDA) and not(IDA(1)). 572.62/297.23 572.62/297.23 [sel](x1, x2) = [1 0] x1 + [1 0] x2 + [4] 572.62/297.23 [0 0] [0 0] [4] 572.62/297.23 572.62/297.23 [s](x1) = [1 0] x1 + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 572.62/297.23 [cons](x1, x2) = [1 0] x1 + [0 0] x2 + [7] 572.62/297.23 [0 1] [1 1] [4] 572.62/297.23 572.62/297.23 [activate](x1) = [1 0] x1 + [0] 572.62/297.23 [0 1] [4] 572.62/297.23 572.62/297.23 [0] = [7] 572.62/297.23 [6] 572.62/297.23 572.62/297.23 [first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 572.62/297.23 [nil] = [5] 572.62/297.23 [6] 572.62/297.23 572.62/297.23 [n__first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.23 [0 0] [0 0] [4] 572.62/297.23 572.62/297.23 [from](x1) = [1 0] x1 + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 572.62/297.23 [n__from](x1) = [1 0] x1 + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 572.62/297.23 [n__s](x1) = [1 0] x1 + [4] 572.62/297.23 [0 0] [4] 572.62/297.23 572.62/297.23 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 572.62/297.23 [quote](x1) = [1 0] x1 + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 572.62/297.23 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [3] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 572.62/297.23 [nil1] = [0] 572.62/297.23 [0] 572.62/297.23 572.62/297.23 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 572.62/297.23 [n__0] = [0] 572.62/297.23 [0] 572.62/297.23 572.62/297.23 [01] = [5] 572.62/297.23 [0] 572.62/297.23 572.62/297.23 [quote1](x1) = [1 1] x1 + [1] 572.62/297.23 [0 0] [0] 572.62/297.23 572.62/297.23 [n__cons](x1, x2) = [1 0] x1 + [0 0] x2 + [7] 572.62/297.23 [0 1] [1 1] [0] 572.62/297.23 572.62/297.23 [n__nil] = [0] 572.62/297.23 [0] 572.62/297.23 572.62/297.23 [s1](x1) = [1 0] x1 + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 572.62/297.23 [n__sel](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 572.62/297.23 [unquote](x1) = [0] 572.62/297.23 [0] 572.62/297.23 572.62/297.23 [unquote1](x1) = [0 0] x1 + [0] 572.62/297.23 [1 1] [0] 572.62/297.23 572.62/297.23 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 572.62/297.23 The order satisfies the following ordering constraints: 572.62/297.23 572.62/297.23 [sel(X1, X2)] = [1 0] X1 + [1 0] X2 + [4] 572.62/297.23 [0 0] [0 0] [4] 572.62/297.23 > [1 0] X1 + [1 0] X2 + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 = [n__sel(X1, X2)] 572.62/297.23 572.62/297.23 [s(X)] = [1 0] X + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 ? [1 0] X + [4] 572.62/297.23 [0 0] [4] 572.62/297.23 = [n__s(X)] 572.62/297.23 572.62/297.23 [cons(X1, X2)] = [1 0] X1 + [0 0] X2 + [7] 572.62/297.23 [0 1] [1 1] [4] 572.62/297.23 >= [1 0] X1 + [0 0] X2 + [7] 572.62/297.23 [0 1] [1 1] [0] 572.62/297.23 = [n__cons(X1, X2)] 572.62/297.23 572.62/297.23 [activate(X)] = [1 0] X + [0] 572.62/297.23 [0 1] [4] 572.62/297.23 >= [1 0] X + [0] 572.62/297.23 [0 1] [0] 572.62/297.23 = [X] 572.62/297.23 572.62/297.23 [activate(n__first(X1, X2))] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.23 [0 0] [0 0] [8] 572.62/297.23 >= [1 0] X1 + [1 0] X2 + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 = [first(activate(X1), activate(X2))] 572.62/297.23 572.62/297.23 [activate(n__from(X))] = [1 0] X + [0] 572.62/297.23 [0 0] [4] 572.62/297.23 >= [1 0] X + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 = [from(activate(X))] 572.62/297.23 572.62/297.23 [activate(n__s(X))] = [1 0] X + [4] 572.62/297.23 [0 0] [8] 572.62/297.23 > [1 0] X + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 = [s(activate(X))] 572.62/297.23 572.62/297.23 [activate(n__0())] = [0] 572.62/297.23 [4] 572.62/297.23 ? [7] 572.62/297.23 [6] 572.62/297.23 = [0()] 572.62/297.23 572.62/297.23 [activate(n__cons(X1, X2))] = [1 0] X1 + [0 0] X2 + [7] 572.62/297.23 [0 1] [1 1] [4] 572.62/297.23 ? [1 0] X1 + [0 0] X2 + [7] 572.62/297.23 [0 1] [1 1] [8] 572.62/297.23 = [cons(activate(X1), X2)] 572.62/297.23 572.62/297.23 [activate(n__nil())] = [0] 572.62/297.23 [4] 572.62/297.23 ? [5] 572.62/297.23 [6] 572.62/297.23 = [nil()] 572.62/297.23 572.62/297.23 [activate(n__sel(X1, X2))] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.23 [0 0] [0 0] [4] 572.62/297.23 ? [1 0] X1 + [1 0] X2 + [4] 572.62/297.23 [0 0] [0 0] [4] 572.62/297.23 = [sel(activate(X1), activate(X2))] 572.62/297.23 572.62/297.23 [0()] = [7] 572.62/297.23 [6] 572.62/297.23 > [0] 572.62/297.23 [0] 572.62/297.23 = [n__0()] 572.62/297.23 572.62/297.23 [first(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 ? [1 0] X1 + [1 0] X2 + [0] 572.62/297.23 [0 0] [0 0] [4] 572.62/297.23 = [n__first(X1, X2)] 572.62/297.23 572.62/297.23 [nil()] = [5] 572.62/297.23 [6] 572.62/297.23 > [0] 572.62/297.23 [0] 572.62/297.23 = [n__nil()] 572.62/297.23 572.62/297.23 [from(X)] = [1 0] X + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 ? [1 0] X + [7] 572.62/297.23 [1 1] [8] 572.62/297.23 = [cons(X, n__from(n__s(X)))] 572.62/297.23 572.62/297.23 [from(X)] = [1 0] X + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 >= [1 0] X + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 = [n__from(X)] 572.62/297.23 572.62/297.23 [quote(n__s(X))] = [1 0] X + [4] 572.62/297.23 [0 0] [0] 572.62/297.23 > [1 0] X + [0] 572.62/297.23 [0 0] [0] 572.62/297.23 = [s1(quote(activate(X)))] 572.62/297.23 572.62/297.23 [quote(n__0())] = [0] 572.62/297.23 [0] 572.62/297.23 ? [5] 572.62/297.23 [0] 572.62/297.23 = [01()] 572.62/297.23 572.62/297.23 [quote(n__sel(X, Z))] = [1 0] X + [1 0] Z + [0] 572.62/297.23 [0 0] [0 0] [0] 572.62/297.23 >= [1 0] X + [1 0] Z + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 = [sel1(activate(X), activate(Z))] 572.62/297.24 572.62/297.24 [quote1(n__first(X, Z))] = [1 0] X + [1 0] Z + [5] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 > [1 0] X + [1 0] Z + [3] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 = [first1(activate(X), activate(Z))] 572.62/297.24 572.62/297.24 [quote1(n__cons(X, Z))] = [1 1] X + [1 1] Z + [8] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 > [1 0] X + [1 1] Z + [5] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.24 572.62/297.24 [quote1(n__nil())] = [1] 572.62/297.24 [0] 572.62/297.24 > [0] 572.62/297.24 [0] 572.62/297.24 = [nil1()] 572.62/297.24 572.62/297.24 [unquote(01())] = [0] 572.62/297.24 [0] 572.62/297.24 ? [7] 572.62/297.24 [6] 572.62/297.24 = [0()] 572.62/297.24 572.62/297.24 [unquote(s1(X))] = [0] 572.62/297.24 [0] 572.62/297.24 >= [0] 572.62/297.24 [0] 572.62/297.24 = [s(unquote(X))] 572.62/297.24 572.62/297.24 [unquote1(nil1())] = [0] 572.62/297.24 [0] 572.62/297.24 ? [5] 572.62/297.24 [6] 572.62/297.24 = [nil()] 572.62/297.24 572.62/297.24 [unquote1(cons1(X, Z))] = [0 0] X + [0 0] Z + [0] 572.62/297.24 [1 0] [1 0] [0] 572.62/297.24 >= [0] 572.62/297.24 [0] 572.62/297.24 = [fcons(unquote(X), unquote1(Z))] 572.62/297.24 572.62/297.24 [fcons(X, Z)] = [1 0] X + [1 0] Z + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 ? [1 0] X + [0 0] Z + [7] 572.62/297.24 [0 1] [1 1] [4] 572.62/297.24 = [cons(X, Z)] 572.62/297.24 572.62/297.24 572.62/297.24 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.24 572.62/297.24 We are left with following problem, upon which TcT provides the 572.62/297.24 certificate MAYBE. 572.62/297.24 572.62/297.24 Strict Trs: 572.62/297.24 { s(X) -> n__s(X) 572.62/297.24 , activate(X) -> X 572.62/297.24 , activate(n__from(X)) -> from(activate(X)) 572.62/297.24 , activate(n__0()) -> 0() 572.62/297.24 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.24 , activate(n__nil()) -> nil() 572.62/297.24 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.24 , first(X1, X2) -> n__first(X1, X2) 572.62/297.24 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.24 , quote(n__0()) -> 01() 572.62/297.24 , unquote(01()) -> 0() 572.62/297.24 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.24 , unquote1(nil1()) -> nil() 572.62/297.24 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) 572.62/297.24 , fcons(X, Z) -> cons(X, Z) } 572.62/297.24 Weak Trs: 572.62/297.24 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.24 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.24 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.24 , activate(n__s(X)) -> s(activate(X)) 572.62/297.24 , 0() -> n__0() 572.62/297.24 , nil() -> n__nil() 572.62/297.24 , from(X) -> n__from(X) 572.62/297.24 , quote(n__s(X)) -> s1(quote(activate(X))) 572.62/297.24 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.24 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.62/297.24 , quote1(n__cons(X, Z)) -> 572.62/297.24 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.24 , quote1(n__nil()) -> nil1() } 572.62/297.24 Obligation: 572.62/297.24 innermost runtime complexity 572.62/297.24 Answer: 572.62/297.24 MAYBE 572.62/297.24 572.62/297.24 The weightgap principle applies (using the following nonconstant 572.62/297.24 growth matrix-interpretation) 572.62/297.24 572.62/297.24 The following argument positions are usable: 572.62/297.24 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.24 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.24 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.24 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.24 572.62/297.24 TcT has computed the following matrix interpretation satisfying 572.62/297.24 not(EDA) and not(IDA(1)). 572.62/297.24 572.62/297.24 [sel](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.24 [0 1] [0 1] [0] 572.62/297.24 572.62/297.24 [s](x1) = [1 0] x1 + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 572.62/297.24 [cons](x1, x2) = [1 0] x1 + [0 0] x2 + [4] 572.62/297.24 [0 1] [1 1] [0] 572.62/297.24 572.62/297.24 [activate](x1) = [1 1] x1 + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 572.62/297.24 [0] = [3] 572.62/297.24 [2] 572.62/297.24 572.62/297.24 [first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 572.62/297.24 [nil] = [1] 572.62/297.24 [2] 572.62/297.24 572.62/297.24 [n__first](x1, x2) = [0 0] x1 + [1 0] x2 + [0] 572.62/297.24 [1 1] [0 1] [0] 572.62/297.24 572.62/297.24 [from](x1) = [1 0] x1 + [0] 572.62/297.24 [0 1] [0] 572.62/297.24 572.62/297.24 [n__from](x1) = [1 0] x1 + [0] 572.62/297.24 [0 1] [0] 572.62/297.24 572.62/297.24 [n__s](x1) = [0 0] x1 + [0] 572.62/297.24 [1 1] [0] 572.62/297.24 572.62/297.24 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 572.62/297.24 [quote](x1) = [1 1] x1 + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 572.62/297.24 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 572.62/297.24 [nil1] = [0] 572.62/297.24 [0] 572.62/297.24 572.62/297.24 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 572.62/297.24 [n__0] = [3] 572.62/297.24 [1] 572.62/297.24 572.62/297.24 [01] = [1] 572.62/297.24 [0] 572.62/297.24 572.62/297.24 [quote1](x1) = [1 1] x1 + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 572.62/297.24 [n__cons](x1, x2) = [1 0] x1 + [0 0] x2 + [0] 572.62/297.24 [0 1] [1 1] [0] 572.62/297.24 572.62/297.24 [n__nil] = [0] 572.62/297.24 [0] 572.62/297.24 572.62/297.24 [s1](x1) = [1 0] x1 + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 572.62/297.24 [n__sel](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.24 [0 1] [0 1] [0] 572.62/297.24 572.62/297.24 [unquote](x1) = [0] 572.62/297.24 [0] 572.62/297.24 572.62/297.24 [unquote1](x1) = [0 0] x1 + [0] 572.62/297.24 [1 1] [0] 572.62/297.24 572.62/297.24 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 572.62/297.24 The order satisfies the following ordering constraints: 572.62/297.24 572.62/297.24 [sel(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.24 [0 1] [0 1] [0] 572.62/297.24 >= [1 0] X1 + [1 0] X2 + [0] 572.62/297.24 [0 1] [0 1] [0] 572.62/297.24 = [n__sel(X1, X2)] 572.62/297.24 572.62/297.24 [s(X)] = [1 0] X + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 ? [0 0] X + [0] 572.62/297.24 [1 1] [0] 572.62/297.24 = [n__s(X)] 572.62/297.24 572.62/297.24 [cons(X1, X2)] = [1 0] X1 + [0 0] X2 + [4] 572.62/297.24 [0 1] [1 1] [0] 572.62/297.24 > [1 0] X1 + [0 0] X2 + [0] 572.62/297.24 [0 1] [1 1] [0] 572.62/297.24 = [n__cons(X1, X2)] 572.62/297.24 572.62/297.24 [activate(X)] = [1 1] X + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 ? [1 0] X + [0] 572.62/297.24 [0 1] [0] 572.62/297.24 = [X] 572.62/297.24 572.62/297.24 [activate(n__first(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 >= [1 1] X1 + [1 1] X2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 = [first(activate(X1), activate(X2))] 572.62/297.24 572.62/297.24 [activate(n__from(X))] = [1 1] X + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 >= [1 1] X + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 = [from(activate(X))] 572.62/297.24 572.62/297.24 [activate(n__s(X))] = [1 1] X + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 >= [1 1] X + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 = [s(activate(X))] 572.62/297.24 572.62/297.24 [activate(n__0())] = [4] 572.62/297.24 [0] 572.62/297.24 ? [3] 572.62/297.24 [2] 572.62/297.24 = [0()] 572.62/297.24 572.62/297.24 [activate(n__cons(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 ? [1 1] X1 + [0 0] X2 + [4] 572.62/297.24 [0 0] [1 1] [0] 572.62/297.24 = [cons(activate(X1), X2)] 572.62/297.24 572.62/297.24 [activate(n__nil())] = [0] 572.62/297.24 [0] 572.62/297.24 ? [1] 572.62/297.24 [2] 572.62/297.24 = [nil()] 572.62/297.24 572.62/297.24 [activate(n__sel(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 >= [1 1] X1 + [1 1] X2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 = [sel(activate(X1), activate(X2))] 572.62/297.24 572.62/297.24 [0()] = [3] 572.62/297.24 [2] 572.62/297.24 >= [3] 572.62/297.24 [1] 572.62/297.24 = [n__0()] 572.62/297.24 572.62/297.24 [first(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 ? [0 0] X1 + [1 0] X2 + [0] 572.62/297.24 [1 1] [0 1] [0] 572.62/297.24 = [n__first(X1, X2)] 572.62/297.24 572.62/297.24 [nil()] = [1] 572.62/297.24 [2] 572.62/297.24 > [0] 572.62/297.24 [0] 572.62/297.24 = [n__nil()] 572.62/297.24 572.62/297.24 [from(X)] = [1 0] X + [0] 572.62/297.24 [0 1] [0] 572.62/297.24 ? [1 0] X + [4] 572.62/297.24 [1 2] [0] 572.62/297.24 = [cons(X, n__from(n__s(X)))] 572.62/297.24 572.62/297.24 [from(X)] = [1 0] X + [0] 572.62/297.24 [0 1] [0] 572.62/297.24 >= [1 0] X + [0] 572.62/297.24 [0 1] [0] 572.62/297.24 = [n__from(X)] 572.62/297.24 572.62/297.24 [quote(n__s(X))] = [1 1] X + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 >= [1 1] X + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 = [s1(quote(activate(X)))] 572.62/297.24 572.62/297.24 [quote(n__0())] = [4] 572.62/297.24 [0] 572.62/297.24 > [1] 572.62/297.24 [0] 572.62/297.24 = [01()] 572.62/297.24 572.62/297.24 [quote(n__sel(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 >= [1 1] X + [1 1] Z + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 = [sel1(activate(X), activate(Z))] 572.62/297.24 572.62/297.24 [quote1(n__first(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 >= [1 1] X + [1 1] Z + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 = [first1(activate(X), activate(Z))] 572.62/297.24 572.62/297.24 [quote1(n__cons(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 >= [1 1] X + [1 1] Z + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.24 572.62/297.24 [quote1(n__nil())] = [0] 572.62/297.24 [0] 572.62/297.24 >= [0] 572.62/297.24 [0] 572.62/297.24 = [nil1()] 572.62/297.24 572.62/297.24 [unquote(01())] = [0] 572.62/297.24 [0] 572.62/297.24 ? [3] 572.62/297.24 [2] 572.62/297.24 = [0()] 572.62/297.24 572.62/297.24 [unquote(s1(X))] = [0] 572.62/297.24 [0] 572.62/297.24 >= [0] 572.62/297.24 [0] 572.62/297.24 = [s(unquote(X))] 572.62/297.24 572.62/297.24 [unquote1(nil1())] = [0] 572.62/297.24 [0] 572.62/297.24 ? [1] 572.62/297.24 [2] 572.62/297.24 = [nil()] 572.62/297.24 572.62/297.24 [unquote1(cons1(X, Z))] = [0 0] X + [0 0] Z + [0] 572.62/297.24 [1 0] [1 0] [0] 572.62/297.24 >= [0] 572.62/297.24 [0] 572.62/297.24 = [fcons(unquote(X), unquote1(Z))] 572.62/297.24 572.62/297.24 [fcons(X, Z)] = [1 0] X + [1 0] Z + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 ? [1 0] X + [0 0] Z + [4] 572.62/297.24 [0 1] [1 1] [0] 572.62/297.24 = [cons(X, Z)] 572.62/297.24 572.62/297.24 572.62/297.24 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.24 572.62/297.24 We are left with following problem, upon which TcT provides the 572.62/297.24 certificate MAYBE. 572.62/297.24 572.62/297.24 Strict Trs: 572.62/297.24 { s(X) -> n__s(X) 572.62/297.24 , activate(X) -> X 572.62/297.24 , activate(n__from(X)) -> from(activate(X)) 572.62/297.24 , activate(n__0()) -> 0() 572.62/297.24 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.24 , activate(n__nil()) -> nil() 572.62/297.24 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.24 , first(X1, X2) -> n__first(X1, X2) 572.62/297.24 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.24 , unquote(01()) -> 0() 572.62/297.24 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.24 , unquote1(nil1()) -> nil() 572.62/297.24 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) 572.62/297.24 , fcons(X, Z) -> cons(X, Z) } 572.62/297.24 Weak Trs: 572.62/297.24 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.24 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.24 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.24 , activate(n__s(X)) -> s(activate(X)) 572.62/297.24 , 0() -> n__0() 572.62/297.24 , nil() -> n__nil() 572.62/297.24 , from(X) -> n__from(X) 572.62/297.24 , quote(n__s(X)) -> s1(quote(activate(X))) 572.62/297.24 , quote(n__0()) -> 01() 572.62/297.24 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.24 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.62/297.24 , quote1(n__cons(X, Z)) -> 572.62/297.24 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.24 , quote1(n__nil()) -> nil1() } 572.62/297.24 Obligation: 572.62/297.24 innermost runtime complexity 572.62/297.24 Answer: 572.62/297.24 MAYBE 572.62/297.24 572.62/297.24 The weightgap principle applies (using the following nonconstant 572.62/297.24 growth matrix-interpretation) 572.62/297.24 572.62/297.24 The following argument positions are usable: 572.62/297.24 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.24 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.24 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.24 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.24 572.62/297.24 TcT has computed the following matrix interpretation satisfying 572.62/297.24 not(EDA) and not(IDA(1)). 572.62/297.24 572.62/297.24 [sel](x1, x2) = [1 0] x1 + [1 0] x2 + [6] 572.62/297.24 [0 0] [0 0] [4] 572.62/297.24 572.62/297.24 [s](x1) = [1 0] x1 + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 572.62/297.24 [cons](x1, x2) = [1 0] x1 + [0 0] x2 + [4] 572.62/297.24 [0 0] [1 0] [4] 572.62/297.24 572.62/297.24 [activate](x1) = [1 0] x1 + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 572.62/297.24 [0] = [4] 572.62/297.24 [2] 572.62/297.24 572.62/297.24 [first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 572.62/297.24 [nil] = [7] 572.62/297.24 [6] 572.62/297.24 572.62/297.24 [n__first](x1, x2) = [1 0] x1 + [1 0] x2 + [4] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 572.62/297.24 [from](x1) = [1 0] x1 + [4] 572.62/297.24 [0 0] [4] 572.62/297.24 572.62/297.24 [n__from](x1) = [1 0] x1 + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 572.62/297.24 [n__s](x1) = [1 0] x1 + [6] 572.62/297.24 [0 0] [0] 572.62/297.24 572.62/297.24 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [3] 572.62/297.24 [0 0] [0 0] [3] 572.62/297.24 572.62/297.24 [quote](x1) = [1 0] x1 + [2] 572.62/297.24 [0 0] [4] 572.62/297.24 572.62/297.24 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [3] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 572.62/297.24 [nil1] = [6] 572.62/297.24 [0] 572.62/297.24 572.62/297.24 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 572.62/297.24 [n__0] = [4] 572.62/297.24 [0] 572.62/297.24 572.62/297.24 [01] = [0] 572.62/297.24 [0] 572.62/297.24 572.62/297.24 [quote1](x1) = [1 1] x1 + [4] 572.62/297.24 [0 0] [0] 572.62/297.24 572.62/297.24 [n__cons](x1, x2) = [1 0] x1 + [0 0] x2 + [4] 572.62/297.24 [0 0] [1 0] [0] 572.62/297.24 572.62/297.24 [n__nil] = [4] 572.62/297.24 [0] 572.62/297.24 572.62/297.24 [s1](x1) = [1 0] x1 + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 572.62/297.24 [n__sel](x1, x2) = [1 0] x1 + [1 0] x2 + [6] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 572.62/297.24 [unquote](x1) = [5] 572.62/297.24 [4] 572.62/297.24 572.62/297.24 [unquote1](x1) = [3] 572.62/297.24 [0] 572.62/297.24 572.62/297.24 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 572.62/297.24 The order satisfies the following ordering constraints: 572.62/297.24 572.62/297.24 [sel(X1, X2)] = [1 0] X1 + [1 0] X2 + [6] 572.62/297.24 [0 0] [0 0] [4] 572.62/297.24 >= [1 0] X1 + [1 0] X2 + [6] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 = [n__sel(X1, X2)] 572.62/297.24 572.62/297.24 [s(X)] = [1 0] X + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 ? [1 0] X + [6] 572.62/297.24 [0 0] [0] 572.62/297.24 = [n__s(X)] 572.62/297.24 572.62/297.24 [cons(X1, X2)] = [1 0] X1 + [0 0] X2 + [4] 572.62/297.24 [0 0] [1 0] [4] 572.62/297.24 >= [1 0] X1 + [0 0] X2 + [4] 572.62/297.24 [0 0] [1 0] [0] 572.62/297.24 = [n__cons(X1, X2)] 572.62/297.24 572.62/297.24 [activate(X)] = [1 0] X + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 ? [1 0] X + [0] 572.62/297.24 [0 1] [0] 572.62/297.24 = [X] 572.62/297.24 572.62/297.24 [activate(n__first(X1, X2))] = [1 0] X1 + [1 0] X2 + [4] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 > [1 0] X1 + [1 0] X2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 = [first(activate(X1), activate(X2))] 572.62/297.24 572.62/297.24 [activate(n__from(X))] = [1 0] X + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 ? [1 0] X + [4] 572.62/297.24 [0 0] [4] 572.62/297.24 = [from(activate(X))] 572.62/297.24 572.62/297.24 [activate(n__s(X))] = [1 0] X + [6] 572.62/297.24 [0 0] [0] 572.62/297.24 > [1 0] X + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 = [s(activate(X))] 572.62/297.24 572.62/297.24 [activate(n__0())] = [4] 572.62/297.24 [0] 572.62/297.24 ? [4] 572.62/297.24 [2] 572.62/297.24 = [0()] 572.62/297.24 572.62/297.24 [activate(n__cons(X1, X2))] = [1 0] X1 + [4] 572.62/297.24 [0 0] [0] 572.62/297.24 ? [1 0] X1 + [0 0] X2 + [4] 572.62/297.24 [0 0] [1 0] [4] 572.62/297.24 = [cons(activate(X1), X2)] 572.62/297.24 572.62/297.24 [activate(n__nil())] = [4] 572.62/297.24 [0] 572.62/297.24 ? [7] 572.62/297.24 [6] 572.62/297.24 = [nil()] 572.62/297.24 572.62/297.24 [activate(n__sel(X1, X2))] = [1 0] X1 + [1 0] X2 + [6] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 ? [1 0] X1 + [1 0] X2 + [6] 572.62/297.24 [0 0] [0 0] [4] 572.62/297.24 = [sel(activate(X1), activate(X2))] 572.62/297.24 572.62/297.24 [0()] = [4] 572.62/297.24 [2] 572.62/297.24 >= [4] 572.62/297.24 [0] 572.62/297.24 = [n__0()] 572.62/297.24 572.62/297.24 [first(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 ? [1 0] X1 + [1 0] X2 + [4] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 = [n__first(X1, X2)] 572.62/297.24 572.62/297.24 [nil()] = [7] 572.62/297.24 [6] 572.62/297.24 > [4] 572.62/297.24 [0] 572.62/297.24 = [n__nil()] 572.62/297.24 572.62/297.24 [from(X)] = [1 0] X + [4] 572.62/297.24 [0 0] [4] 572.62/297.24 ? [1 0] X + [4] 572.62/297.24 [1 0] [10] 572.62/297.24 = [cons(X, n__from(n__s(X)))] 572.62/297.24 572.62/297.24 [from(X)] = [1 0] X + [4] 572.62/297.24 [0 0] [4] 572.62/297.24 > [1 0] X + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 = [n__from(X)] 572.62/297.24 572.62/297.24 [quote(n__s(X))] = [1 0] X + [8] 572.62/297.24 [0 0] [4] 572.62/297.24 > [1 0] X + [2] 572.62/297.24 [0 0] [0] 572.62/297.24 = [s1(quote(activate(X)))] 572.62/297.24 572.62/297.24 [quote(n__0())] = [6] 572.62/297.24 [4] 572.62/297.24 > [0] 572.62/297.24 [0] 572.62/297.24 = [01()] 572.62/297.24 572.62/297.24 [quote(n__sel(X, Z))] = [1 0] X + [1 0] Z + [8] 572.62/297.24 [0 0] [0 0] [4] 572.62/297.24 > [1 0] X + [1 0] Z + [3] 572.62/297.24 [0 0] [0 0] [3] 572.62/297.24 = [sel1(activate(X), activate(Z))] 572.62/297.24 572.62/297.24 [quote1(n__first(X, Z))] = [1 0] X + [1 0] Z + [8] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 > [1 0] X + [1 0] Z + [3] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 = [first1(activate(X), activate(Z))] 572.62/297.24 572.62/297.24 [quote1(n__cons(X, Z))] = [1 0] X + [1 0] Z + [8] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 > [1 0] X + [1 0] Z + [6] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.24 572.62/297.24 [quote1(n__nil())] = [8] 572.62/297.24 [0] 572.62/297.24 > [6] 572.62/297.24 [0] 572.62/297.24 = [nil1()] 572.62/297.24 572.62/297.24 [unquote(01())] = [5] 572.62/297.24 [4] 572.62/297.24 > [4] 572.62/297.24 [2] 572.62/297.24 = [0()] 572.62/297.24 572.62/297.24 [unquote(s1(X))] = [5] 572.62/297.24 [4] 572.62/297.24 >= [5] 572.62/297.24 [0] 572.62/297.24 = [s(unquote(X))] 572.62/297.24 572.62/297.24 [unquote1(nil1())] = [3] 572.62/297.24 [0] 572.62/297.24 ? [7] 572.62/297.24 [6] 572.62/297.24 = [nil()] 572.62/297.24 572.62/297.24 [unquote1(cons1(X, Z))] = [3] 572.62/297.24 [0] 572.62/297.24 ? [8] 572.62/297.24 [0] 572.62/297.24 = [fcons(unquote(X), unquote1(Z))] 572.62/297.24 572.62/297.24 [fcons(X, Z)] = [1 0] X + [1 0] Z + [0] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 ? [1 0] X + [0 0] Z + [4] 572.62/297.24 [0 0] [1 0] [4] 572.62/297.24 = [cons(X, Z)] 572.62/297.24 572.62/297.24 572.62/297.24 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.24 572.62/297.24 We are left with following problem, upon which TcT provides the 572.62/297.24 certificate MAYBE. 572.62/297.24 572.62/297.24 Strict Trs: 572.62/297.24 { s(X) -> n__s(X) 572.62/297.24 , activate(X) -> X 572.62/297.24 , activate(n__from(X)) -> from(activate(X)) 572.62/297.24 , activate(n__0()) -> 0() 572.62/297.24 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.24 , activate(n__nil()) -> nil() 572.62/297.24 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.24 , first(X1, X2) -> n__first(X1, X2) 572.62/297.24 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.24 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.24 , unquote1(nil1()) -> nil() 572.62/297.24 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) 572.62/297.24 , fcons(X, Z) -> cons(X, Z) } 572.62/297.24 Weak Trs: 572.62/297.24 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.24 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.24 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.24 , activate(n__s(X)) -> s(activate(X)) 572.62/297.24 , 0() -> n__0() 572.62/297.24 , nil() -> n__nil() 572.62/297.24 , from(X) -> n__from(X) 572.62/297.24 , quote(n__s(X)) -> s1(quote(activate(X))) 572.62/297.24 , quote(n__0()) -> 01() 572.62/297.24 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.24 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.62/297.24 , quote1(n__cons(X, Z)) -> 572.62/297.24 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.24 , quote1(n__nil()) -> nil1() 572.62/297.24 , unquote(01()) -> 0() } 572.62/297.24 Obligation: 572.62/297.24 innermost runtime complexity 572.62/297.24 Answer: 572.62/297.24 MAYBE 572.62/297.24 572.62/297.24 The weightgap principle applies (using the following nonconstant 572.62/297.24 growth matrix-interpretation) 572.62/297.24 572.62/297.24 The following argument positions are usable: 572.62/297.24 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.24 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.24 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.24 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.24 572.62/297.24 TcT has computed the following matrix interpretation satisfying 572.62/297.24 not(EDA) and not(IDA(1)). 572.62/297.24 572.62/297.24 [sel](x1, x2) = [1 0] x1 + [1 0] x2 + [4] 572.62/297.24 [0 0] [0 0] [0] 572.62/297.24 572.62/297.24 [s](x1) = [1 0] x1 + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 572.62/297.24 [cons](x1, x2) = [1 0] x1 + [0 0] x2 + [4] 572.62/297.24 [0 0] [1 0] [4] 572.62/297.24 572.62/297.24 [activate](x1) = [1 0] x1 + [0] 572.62/297.24 [0 0] [0] 572.62/297.24 572.62/297.25 [0] = [4] 572.62/297.25 [2] 572.62/297.25 572.62/297.25 [first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 572.62/297.25 [nil] = [5] 572.62/297.25 [4] 572.62/297.25 572.62/297.25 [n__first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 572.62/297.25 [from](x1) = [1 0] x1 + [4] 572.62/297.25 [0 0] [0] 572.62/297.25 572.62/297.25 [n__from](x1) = [1 0] x1 + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 572.62/297.25 [n__s](x1) = [1 0] x1 + [5] 572.62/297.25 [0 0] [3] 572.62/297.25 572.62/297.25 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 572.62/297.25 [quote](x1) = [1 1] x1 + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 572.62/297.25 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [3] 572.62/297.25 [0 0] [0 0] [3] 572.62/297.25 572.62/297.25 [nil1] = [6] 572.62/297.25 [4] 572.62/297.25 572.62/297.25 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 572.62/297.25 [n__0] = [0] 572.62/297.25 [0] 572.62/297.25 572.62/297.25 [01] = [0] 572.62/297.25 [0] 572.62/297.25 572.62/297.25 [quote1](x1) = [1 1] x1 + [4] 572.62/297.25 [0 0] [4] 572.62/297.25 572.62/297.25 [n__cons](x1, x2) = [1 0] x1 + [0 0] x2 + [1] 572.62/297.25 [0 0] [1 0] [3] 572.62/297.25 572.62/297.25 [n__nil] = [0] 572.62/297.25 [4] 572.62/297.25 572.62/297.25 [s1](x1) = [1 0] x1 + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 572.62/297.25 [n__sel](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 572.62/297.25 [unquote](x1) = [4] 572.62/297.25 [4] 572.62/297.25 572.62/297.25 [unquote1](x1) = [1 0] x1 + [0] 572.62/297.25 [0 1] [0] 572.62/297.25 572.62/297.25 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.25 [0 0] [0 1] [0] 572.62/297.25 572.62/297.25 The order satisfies the following ordering constraints: 572.62/297.25 572.62/297.25 [sel(X1, X2)] = [1 0] X1 + [1 0] X2 + [4] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 > [1 0] X1 + [1 0] X2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 = [n__sel(X1, X2)] 572.62/297.25 572.62/297.25 [s(X)] = [1 0] X + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 ? [1 0] X + [5] 572.62/297.25 [0 0] [3] 572.62/297.25 = [n__s(X)] 572.62/297.25 572.62/297.25 [cons(X1, X2)] = [1 0] X1 + [0 0] X2 + [4] 572.62/297.25 [0 0] [1 0] [4] 572.62/297.25 > [1 0] X1 + [0 0] X2 + [1] 572.62/297.25 [0 0] [1 0] [3] 572.62/297.25 = [n__cons(X1, X2)] 572.62/297.25 572.62/297.25 [activate(X)] = [1 0] X + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 ? [1 0] X + [0] 572.62/297.25 [0 1] [0] 572.62/297.25 = [X] 572.62/297.25 572.62/297.25 [activate(n__first(X1, X2))] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 >= [1 0] X1 + [1 0] X2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 = [first(activate(X1), activate(X2))] 572.62/297.25 572.62/297.25 [activate(n__from(X))] = [1 0] X + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 ? [1 0] X + [4] 572.62/297.25 [0 0] [0] 572.62/297.25 = [from(activate(X))] 572.62/297.25 572.62/297.25 [activate(n__s(X))] = [1 0] X + [5] 572.62/297.25 [0 0] [0] 572.62/297.25 > [1 0] X + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 = [s(activate(X))] 572.62/297.25 572.62/297.25 [activate(n__0())] = [0] 572.62/297.25 [0] 572.62/297.25 ? [4] 572.62/297.25 [2] 572.62/297.25 = [0()] 572.62/297.25 572.62/297.25 [activate(n__cons(X1, X2))] = [1 0] X1 + [1] 572.62/297.25 [0 0] [0] 572.62/297.25 ? [1 0] X1 + [0 0] X2 + [4] 572.62/297.25 [0 0] [1 0] [4] 572.62/297.25 = [cons(activate(X1), X2)] 572.62/297.25 572.62/297.25 [activate(n__nil())] = [0] 572.62/297.25 [0] 572.62/297.25 ? [5] 572.62/297.25 [4] 572.62/297.25 = [nil()] 572.62/297.25 572.62/297.25 [activate(n__sel(X1, X2))] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 ? [1 0] X1 + [1 0] X2 + [4] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 = [sel(activate(X1), activate(X2))] 572.62/297.25 572.62/297.25 [0()] = [4] 572.62/297.25 [2] 572.62/297.25 > [0] 572.62/297.25 [0] 572.62/297.25 = [n__0()] 572.62/297.25 572.62/297.25 [first(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 >= [1 0] X1 + [1 0] X2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 = [n__first(X1, X2)] 572.62/297.25 572.62/297.25 [nil()] = [5] 572.62/297.25 [4] 572.62/297.25 > [0] 572.62/297.25 [4] 572.62/297.25 = [n__nil()] 572.62/297.25 572.62/297.25 [from(X)] = [1 0] X + [4] 572.62/297.25 [0 0] [0] 572.62/297.25 ? [1 0] X + [4] 572.62/297.25 [1 0] [9] 572.62/297.25 = [cons(X, n__from(n__s(X)))] 572.62/297.25 572.62/297.25 [from(X)] = [1 0] X + [4] 572.62/297.25 [0 0] [0] 572.62/297.25 > [1 0] X + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 = [n__from(X)] 572.62/297.25 572.62/297.25 [quote(n__s(X))] = [1 0] X + [8] 572.62/297.25 [0 0] [0] 572.62/297.25 > [1 0] X + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 = [s1(quote(activate(X)))] 572.62/297.25 572.62/297.25 [quote(n__0())] = [0] 572.62/297.25 [0] 572.62/297.25 >= [0] 572.62/297.25 [0] 572.62/297.25 = [01()] 572.62/297.25 572.62/297.25 [quote(n__sel(X, Z))] = [1 0] X + [1 0] Z + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 >= [1 0] X + [1 0] Z + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 = [sel1(activate(X), activate(Z))] 572.62/297.25 572.62/297.25 [quote1(n__first(X, Z))] = [1 0] X + [1 0] Z + [4] 572.62/297.25 [0 0] [0 0] [4] 572.62/297.25 > [1 0] X + [1 0] Z + [3] 572.62/297.25 [0 0] [0 0] [3] 572.62/297.25 = [first1(activate(X), activate(Z))] 572.62/297.25 572.62/297.25 [quote1(n__cons(X, Z))] = [1 0] X + [1 0] Z + [8] 572.62/297.25 [0 0] [0 0] [4] 572.62/297.25 > [1 0] X + [1 0] Z + [4] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.25 572.62/297.25 [quote1(n__nil())] = [8] 572.62/297.25 [4] 572.62/297.25 > [6] 572.62/297.25 [4] 572.62/297.25 = [nil1()] 572.62/297.25 572.62/297.25 [unquote(01())] = [4] 572.62/297.25 [4] 572.62/297.25 >= [4] 572.62/297.25 [2] 572.62/297.25 = [0()] 572.62/297.25 572.62/297.25 [unquote(s1(X))] = [4] 572.62/297.25 [4] 572.62/297.25 >= [4] 572.62/297.25 [0] 572.62/297.25 = [s(unquote(X))] 572.62/297.25 572.62/297.25 [unquote1(nil1())] = [6] 572.62/297.25 [4] 572.62/297.25 > [5] 572.62/297.25 [4] 572.62/297.25 = [nil()] 572.62/297.25 572.62/297.25 [unquote1(cons1(X, Z))] = [1 0] X + [1 0] Z + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 ? [1 0] Z + [4] 572.62/297.25 [0 1] [0] 572.62/297.25 = [fcons(unquote(X), unquote1(Z))] 572.62/297.25 572.62/297.25 [fcons(X, Z)] = [1 0] X + [1 0] Z + [0] 572.62/297.25 [0 0] [0 1] [0] 572.62/297.25 ? [1 0] X + [0 0] Z + [4] 572.62/297.25 [0 0] [1 0] [4] 572.62/297.25 = [cons(X, Z)] 572.62/297.25 572.62/297.25 572.62/297.25 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.25 572.62/297.25 We are left with following problem, upon which TcT provides the 572.62/297.25 certificate MAYBE. 572.62/297.25 572.62/297.25 Strict Trs: 572.62/297.25 { s(X) -> n__s(X) 572.62/297.25 , activate(X) -> X 572.62/297.25 , activate(n__from(X)) -> from(activate(X)) 572.62/297.25 , activate(n__0()) -> 0() 572.62/297.25 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.25 , activate(n__nil()) -> nil() 572.62/297.25 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.25 , first(X1, X2) -> n__first(X1, X2) 572.62/297.25 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.25 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.25 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) 572.62/297.25 , fcons(X, Z) -> cons(X, Z) } 572.62/297.25 Weak Trs: 572.62/297.25 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.25 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.25 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.25 , activate(n__s(X)) -> s(activate(X)) 572.62/297.25 , 0() -> n__0() 572.62/297.25 , nil() -> n__nil() 572.62/297.25 , from(X) -> n__from(X) 572.62/297.25 , quote(n__s(X)) -> s1(quote(activate(X))) 572.62/297.25 , quote(n__0()) -> 01() 572.62/297.25 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.25 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.62/297.25 , quote1(n__cons(X, Z)) -> 572.62/297.25 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.25 , quote1(n__nil()) -> nil1() 572.62/297.25 , unquote(01()) -> 0() 572.62/297.25 , unquote1(nil1()) -> nil() } 572.62/297.25 Obligation: 572.62/297.25 innermost runtime complexity 572.62/297.25 Answer: 572.62/297.25 MAYBE 572.62/297.25 572.62/297.25 The weightgap principle applies (using the following nonconstant 572.62/297.25 growth matrix-interpretation) 572.62/297.25 572.62/297.25 The following argument positions are usable: 572.62/297.25 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.25 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.25 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.25 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.25 572.62/297.25 TcT has computed the following matrix interpretation satisfying 572.62/297.25 not(EDA) and not(IDA(1)). 572.62/297.25 572.62/297.25 [sel](x1, x2) = [1 1] x1 + [1 1] x2 + [4] 572.62/297.25 [0 0] [0 0] [4] 572.62/297.25 572.62/297.25 [s](x1) = [1 0] x1 + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 572.62/297.25 [cons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.25 [0 1] [0 1] [4] 572.62/297.25 572.62/297.25 [activate](x1) = [1 1] x1 + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 572.62/297.25 [0] = [0] 572.62/297.25 [0] 572.62/297.25 572.62/297.25 [first](x1, x2) = [1 0] x1 + [1 1] x2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 572.62/297.25 [nil] = [0] 572.62/297.25 [2] 572.62/297.25 572.62/297.25 [n__first](x1, x2) = [1 0] x1 + [1 1] x2 + [0] 572.62/297.25 [0 1] [0 0] [0] 572.62/297.25 572.62/297.25 [from](x1) = [1 0] x1 + [4] 572.62/297.25 [0 1] [4] 572.62/297.25 572.62/297.25 [n__from](x1) = [1 0] x1 + [0] 572.62/297.25 [0 1] [0] 572.62/297.25 572.62/297.25 [n__s](x1) = [0 0] x1 + [7] 572.62/297.25 [1 1] [1] 572.62/297.25 572.62/297.25 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [7] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 572.62/297.25 [quote](x1) = [1 1] x1 + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 572.62/297.25 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 572.62/297.25 [nil1] = [0] 572.62/297.25 [0] 572.62/297.25 572.62/297.25 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 572.62/297.25 [n__0] = [0] 572.62/297.25 [0] 572.62/297.25 572.62/297.25 [01] = [0] 572.62/297.25 [0] 572.62/297.25 572.62/297.25 [quote1](x1) = [1 1] x1 + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 572.62/297.25 [n__cons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.25 [0 1] [0 1] [0] 572.62/297.25 572.62/297.25 [n__nil] = [0] 572.62/297.25 [0] 572.62/297.25 572.62/297.25 [s1](x1) = [1 0] x1 + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 572.62/297.25 [n__sel](x1, x2) = [1 1] x1 + [1 1] x2 + [4] 572.62/297.25 [0 0] [0 0] [4] 572.62/297.25 572.62/297.25 [unquote](x1) = [0 0] x1 + [0] 572.62/297.25 [1 1] [0] 572.62/297.25 572.62/297.25 [unquote1](x1) = [0] 572.62/297.25 [4] 572.62/297.25 572.62/297.25 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [1] 572.62/297.25 [0 1] [0 1] [4] 572.62/297.25 572.62/297.25 The order satisfies the following ordering constraints: 572.62/297.25 572.62/297.25 [sel(X1, X2)] = [1 1] X1 + [1 1] X2 + [4] 572.62/297.25 [0 0] [0 0] [4] 572.62/297.25 >= [1 1] X1 + [1 1] X2 + [4] 572.62/297.25 [0 0] [0 0] [4] 572.62/297.25 = [n__sel(X1, X2)] 572.62/297.25 572.62/297.25 [s(X)] = [1 0] X + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 ? [0 0] X + [7] 572.62/297.25 [1 1] [1] 572.62/297.25 = [n__s(X)] 572.62/297.25 572.62/297.25 [cons(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.25 [0 1] [0 1] [4] 572.62/297.25 >= [1 0] X1 + [1 0] X2 + [0] 572.62/297.25 [0 1] [0 1] [0] 572.62/297.25 = [n__cons(X1, X2)] 572.62/297.25 572.62/297.25 [activate(X)] = [1 1] X + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 ? [1 0] X + [0] 572.62/297.25 [0 1] [0] 572.62/297.25 = [X] 572.62/297.25 572.62/297.25 [activate(n__first(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 >= [1 1] X1 + [1 1] X2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 = [first(activate(X1), activate(X2))] 572.62/297.25 572.62/297.25 [activate(n__from(X))] = [1 1] X + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 ? [1 1] X + [4] 572.62/297.25 [0 0] [4] 572.62/297.25 = [from(activate(X))] 572.62/297.25 572.62/297.25 [activate(n__s(X))] = [1 1] X + [8] 572.62/297.25 [0 0] [0] 572.62/297.25 > [1 1] X + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 = [s(activate(X))] 572.62/297.25 572.62/297.25 [activate(n__0())] = [0] 572.62/297.25 [0] 572.62/297.25 >= [0] 572.62/297.25 [0] 572.62/297.25 = [0()] 572.62/297.25 572.62/297.25 [activate(n__cons(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 ? [1 1] X1 + [1 0] X2 + [0] 572.62/297.25 [0 0] [0 1] [4] 572.62/297.25 = [cons(activate(X1), X2)] 572.62/297.25 572.62/297.25 [activate(n__nil())] = [0] 572.62/297.25 [0] 572.62/297.25 ? [0] 572.62/297.25 [2] 572.62/297.25 = [nil()] 572.62/297.25 572.62/297.25 [activate(n__sel(X1, X2))] = [1 1] X1 + [1 1] X2 + [8] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 ? [1 1] X1 + [1 1] X2 + [4] 572.62/297.25 [0 0] [0 0] [4] 572.62/297.25 = [sel(activate(X1), activate(X2))] 572.62/297.25 572.62/297.25 [0()] = [0] 572.62/297.25 [0] 572.62/297.25 >= [0] 572.62/297.25 [0] 572.62/297.25 = [n__0()] 572.62/297.25 572.62/297.25 [first(X1, X2)] = [1 0] X1 + [1 1] X2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 ? [1 0] X1 + [1 1] X2 + [0] 572.62/297.25 [0 1] [0 0] [0] 572.62/297.25 = [n__first(X1, X2)] 572.62/297.25 572.62/297.25 [nil()] = [0] 572.62/297.25 [2] 572.62/297.25 >= [0] 572.62/297.25 [0] 572.62/297.25 = [n__nil()] 572.62/297.25 572.62/297.25 [from(X)] = [1 0] X + [4] 572.62/297.25 [0 1] [4] 572.62/297.25 ? [1 0] X + [7] 572.62/297.25 [1 2] [5] 572.62/297.25 = [cons(X, n__from(n__s(X)))] 572.62/297.25 572.62/297.25 [from(X)] = [1 0] X + [4] 572.62/297.25 [0 1] [4] 572.62/297.25 > [1 0] X + [0] 572.62/297.25 [0 1] [0] 572.62/297.25 = [n__from(X)] 572.62/297.25 572.62/297.25 [quote(n__s(X))] = [1 1] X + [8] 572.62/297.25 [0 0] [0] 572.62/297.25 > [1 1] X + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 = [s1(quote(activate(X)))] 572.62/297.25 572.62/297.25 [quote(n__0())] = [0] 572.62/297.25 [0] 572.62/297.25 >= [0] 572.62/297.25 [0] 572.62/297.25 = [01()] 572.62/297.25 572.62/297.25 [quote(n__sel(X, Z))] = [1 1] X + [1 1] Z + [8] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 > [1 1] X + [1 1] Z + [7] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 = [sel1(activate(X), activate(Z))] 572.62/297.25 572.62/297.25 [quote1(n__first(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 >= [1 1] X + [1 1] Z + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 = [first1(activate(X), activate(Z))] 572.62/297.25 572.62/297.25 [quote1(n__cons(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 >= [1 1] X + [1 1] Z + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.25 572.62/297.25 [quote1(n__nil())] = [0] 572.62/297.25 [0] 572.62/297.25 >= [0] 572.62/297.25 [0] 572.62/297.25 = [nil1()] 572.62/297.25 572.62/297.25 [unquote(01())] = [0] 572.62/297.25 [0] 572.62/297.25 >= [0] 572.62/297.25 [0] 572.62/297.25 = [0()] 572.62/297.25 572.62/297.25 [unquote(s1(X))] = [0 0] X + [0] 572.62/297.25 [1 0] [0] 572.62/297.25 >= [0] 572.62/297.25 [0] 572.62/297.25 = [s(unquote(X))] 572.62/297.25 572.62/297.25 [unquote1(nil1())] = [0] 572.62/297.25 [4] 572.62/297.25 >= [0] 572.62/297.25 [2] 572.62/297.25 = [nil()] 572.62/297.25 572.62/297.25 [unquote1(cons1(X, Z))] = [0] 572.62/297.25 [4] 572.62/297.25 ? [0 0] X + [1] 572.62/297.25 [1 1] [8] 572.62/297.25 = [fcons(unquote(X), unquote1(Z))] 572.62/297.25 572.62/297.25 [fcons(X, Z)] = [1 0] X + [1 0] Z + [1] 572.62/297.25 [0 1] [0 1] [4] 572.62/297.25 > [1 0] X + [1 0] Z + [0] 572.62/297.25 [0 1] [0 1] [4] 572.62/297.25 = [cons(X, Z)] 572.62/297.25 572.62/297.25 572.62/297.25 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.25 572.62/297.25 We are left with following problem, upon which TcT provides the 572.62/297.25 certificate MAYBE. 572.62/297.25 572.62/297.25 Strict Trs: 572.62/297.25 { s(X) -> n__s(X) 572.62/297.25 , activate(X) -> X 572.62/297.25 , activate(n__from(X)) -> from(activate(X)) 572.62/297.25 , activate(n__0()) -> 0() 572.62/297.25 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.25 , activate(n__nil()) -> nil() 572.62/297.25 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.25 , first(X1, X2) -> n__first(X1, X2) 572.62/297.25 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.25 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.25 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) } 572.62/297.25 Weak Trs: 572.62/297.25 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.25 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.25 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.25 , activate(n__s(X)) -> s(activate(X)) 572.62/297.25 , 0() -> n__0() 572.62/297.25 , nil() -> n__nil() 572.62/297.25 , from(X) -> n__from(X) 572.62/297.25 , quote(n__s(X)) -> s1(quote(activate(X))) 572.62/297.25 , quote(n__0()) -> 01() 572.62/297.25 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.25 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.62/297.25 , quote1(n__cons(X, Z)) -> 572.62/297.25 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.25 , quote1(n__nil()) -> nil1() 572.62/297.25 , unquote(01()) -> 0() 572.62/297.25 , unquote1(nil1()) -> nil() 572.62/297.25 , fcons(X, Z) -> cons(X, Z) } 572.62/297.25 Obligation: 572.62/297.25 innermost runtime complexity 572.62/297.25 Answer: 572.62/297.25 MAYBE 572.62/297.25 572.62/297.25 The weightgap principle applies (using the following nonconstant 572.62/297.25 growth matrix-interpretation) 572.62/297.25 572.62/297.25 The following argument positions are usable: 572.62/297.25 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.25 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.25 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.25 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.25 572.62/297.25 TcT has computed the following matrix interpretation satisfying 572.62/297.25 not(EDA) and not(IDA(1)). 572.62/297.25 572.62/297.25 [sel](x1, x2) = [1 1] x1 + [1 1] x2 + [7] 572.62/297.25 [0 0] [0 0] [1] 572.62/297.25 572.62/297.25 [s](x1) = [1 0] x1 + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 572.62/297.25 [cons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.25 [0 1] [0 1] [6] 572.62/297.25 572.62/297.25 [activate](x1) = [1 1] x1 + [1] 572.62/297.25 [0 0] [0] 572.62/297.25 572.62/297.25 [0] = [0] 572.62/297.25 [0] 572.62/297.25 572.62/297.25 [first](x1, x2) = [1 1] x1 + [1 0] x2 + [6] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 572.62/297.25 [nil] = [0] 572.62/297.25 [4] 572.62/297.25 572.62/297.25 [n__first](x1, x2) = [1 1] x1 + [0 0] x2 + [0] 572.62/297.25 [0 0] [1 1] [7] 572.62/297.25 572.62/297.25 [from](x1) = [1 0] x1 + [4] 572.62/297.25 [0 1] [4] 572.62/297.25 572.62/297.25 [n__from](x1) = [1 0] x1 + [0] 572.62/297.25 [0 1] [0] 572.62/297.25 572.62/297.25 [n__s](x1) = [0 0] x1 + [4] 572.62/297.25 [1 1] [4] 572.62/297.25 572.62/297.25 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [5] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 572.62/297.25 [quote](x1) = [1 1] x1 + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 572.62/297.25 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [5] 572.62/297.25 [0 0] [0 0] [1] 572.62/297.25 572.62/297.25 [nil1] = [2] 572.62/297.25 [1] 572.62/297.25 572.62/297.25 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 572.62/297.25 [n__0] = [0] 572.62/297.25 [0] 572.62/297.25 572.62/297.25 [01] = [0] 572.62/297.25 [0] 572.62/297.25 572.62/297.25 [quote1](x1) = [1 1] x1 + [2] 572.62/297.25 [0 0] [1] 572.62/297.25 572.62/297.25 [n__cons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.25 [0 1] [0 1] [6] 572.62/297.25 572.62/297.25 [n__nil] = [0] 572.62/297.25 [0] 572.62/297.25 572.62/297.25 [s1](x1) = [1 0] x1 + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 572.62/297.25 [n__sel](x1, x2) = [1 1] x1 + [1 1] x2 + [7] 572.62/297.25 [0 0] [0 0] [1] 572.62/297.25 572.62/297.25 [unquote](x1) = [0 0] x1 + [0] 572.62/297.25 [0 1] [0] 572.62/297.25 572.62/297.25 [unquote1](x1) = [0 0] x1 + [0] 572.62/297.25 [1 1] [1] 572.62/297.25 572.62/297.25 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.25 [0 1] [0 1] [6] 572.62/297.25 572.62/297.25 The order satisfies the following ordering constraints: 572.62/297.25 572.62/297.25 [sel(X1, X2)] = [1 1] X1 + [1 1] X2 + [7] 572.62/297.25 [0 0] [0 0] [1] 572.62/297.25 >= [1 1] X1 + [1 1] X2 + [7] 572.62/297.25 [0 0] [0 0] [1] 572.62/297.25 = [n__sel(X1, X2)] 572.62/297.25 572.62/297.25 [s(X)] = [1 0] X + [0] 572.62/297.25 [0 0] [0] 572.62/297.25 ? [0 0] X + [4] 572.62/297.25 [1 1] [4] 572.62/297.25 = [n__s(X)] 572.62/297.25 572.62/297.25 [cons(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.25 [0 1] [0 1] [6] 572.62/297.25 >= [1 0] X1 + [1 0] X2 + [0] 572.62/297.25 [0 1] [0 1] [6] 572.62/297.25 = [n__cons(X1, X2)] 572.62/297.25 572.62/297.25 [activate(X)] = [1 1] X + [1] 572.62/297.25 [0 0] [0] 572.62/297.25 ? [1 0] X + [0] 572.62/297.25 [0 1] [0] 572.62/297.25 = [X] 572.62/297.25 572.62/297.25 [activate(n__first(X1, X2))] = [1 1] X1 + [1 1] X2 + [8] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 >= [1 1] X1 + [1 1] X2 + [8] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 = [first(activate(X1), activate(X2))] 572.62/297.25 572.62/297.25 [activate(n__from(X))] = [1 1] X + [1] 572.62/297.25 [0 0] [0] 572.62/297.25 ? [1 1] X + [5] 572.62/297.25 [0 0] [4] 572.62/297.25 = [from(activate(X))] 572.62/297.25 572.62/297.25 [activate(n__s(X))] = [1 1] X + [9] 572.62/297.25 [0 0] [0] 572.62/297.25 > [1 1] X + [1] 572.62/297.25 [0 0] [0] 572.62/297.25 = [s(activate(X))] 572.62/297.25 572.62/297.25 [activate(n__0())] = [1] 572.62/297.25 [0] 572.62/297.25 > [0] 572.62/297.25 [0] 572.62/297.25 = [0()] 572.62/297.25 572.62/297.25 [activate(n__cons(X1, X2))] = [1 1] X1 + [1 1] X2 + [7] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.25 ? [1 1] X1 + [1 0] X2 + [1] 572.62/297.25 [0 0] [0 1] [6] 572.62/297.25 = [cons(activate(X1), X2)] 572.62/297.25 572.62/297.25 [activate(n__nil())] = [1] 572.62/297.25 [0] 572.62/297.25 ? [0] 572.62/297.25 [4] 572.62/297.25 = [nil()] 572.62/297.25 572.62/297.25 [activate(n__sel(X1, X2))] = [1 1] X1 + [1 1] X2 + [9] 572.62/297.25 [0 0] [0 0] [0] 572.62/297.26 ? [1 1] X1 + [1 1] X2 + [9] 572.62/297.26 [0 0] [0 0] [1] 572.62/297.26 = [sel(activate(X1), activate(X2))] 572.62/297.26 572.62/297.26 [0()] = [0] 572.62/297.26 [0] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [n__0()] 572.62/297.26 572.62/297.26 [first(X1, X2)] = [1 1] X1 + [1 0] X2 + [6] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 ? [1 1] X1 + [0 0] X2 + [0] 572.62/297.26 [0 0] [1 1] [7] 572.62/297.26 = [n__first(X1, X2)] 572.62/297.26 572.62/297.26 [nil()] = [0] 572.62/297.26 [4] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [n__nil()] 572.62/297.26 572.62/297.26 [from(X)] = [1 0] X + [4] 572.62/297.26 [0 1] [4] 572.62/297.26 ? [1 0] X + [4] 572.62/297.26 [1 2] [10] 572.62/297.26 = [cons(X, n__from(n__s(X)))] 572.62/297.26 572.62/297.26 [from(X)] = [1 0] X + [4] 572.62/297.26 [0 1] [4] 572.62/297.26 > [1 0] X + [0] 572.62/297.26 [0 1] [0] 572.62/297.26 = [n__from(X)] 572.62/297.26 572.62/297.26 [quote(n__s(X))] = [1 1] X + [8] 572.62/297.26 [0 0] [0] 572.62/297.26 > [1 1] X + [1] 572.62/297.26 [0 0] [0] 572.62/297.26 = [s1(quote(activate(X)))] 572.62/297.26 572.62/297.26 [quote(n__0())] = [0] 572.62/297.26 [0] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [01()] 572.62/297.26 572.62/297.26 [quote(n__sel(X, Z))] = [1 1] X + [1 1] Z + [8] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 > [1 1] X + [1 1] Z + [7] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 = [sel1(activate(X), activate(Z))] 572.62/297.26 572.62/297.26 [quote1(n__first(X, Z))] = [1 1] X + [1 1] Z + [9] 572.62/297.26 [0 0] [0 0] [1] 572.62/297.26 > [1 1] X + [1 1] Z + [7] 572.62/297.26 [0 0] [0 0] [1] 572.62/297.26 = [first1(activate(X), activate(Z))] 572.62/297.26 572.62/297.26 [quote1(n__cons(X, Z))] = [1 1] X + [1 1] Z + [8] 572.62/297.26 [0 0] [0 0] [1] 572.62/297.26 > [1 1] X + [1 1] Z + [4] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.26 572.62/297.26 [quote1(n__nil())] = [2] 572.62/297.26 [1] 572.62/297.26 >= [2] 572.62/297.26 [1] 572.62/297.26 = [nil1()] 572.62/297.26 572.62/297.26 [unquote(01())] = [0] 572.62/297.26 [0] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [0()] 572.62/297.26 572.62/297.26 [unquote(s1(X))] = [0] 572.62/297.26 [0] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [s(unquote(X))] 572.62/297.26 572.62/297.26 [unquote1(nil1())] = [0] 572.62/297.26 [4] 572.62/297.26 >= [0] 572.62/297.26 [4] 572.62/297.26 = [nil()] 572.62/297.26 572.62/297.26 [unquote1(cons1(X, Z))] = [0 0] X + [0 0] Z + [0] 572.62/297.26 [1 0] [1 0] [1] 572.62/297.26 ? [0 0] X + [0 0] Z + [0] 572.62/297.26 [0 1] [1 1] [7] 572.62/297.26 = [fcons(unquote(X), unquote1(Z))] 572.62/297.26 572.62/297.26 [fcons(X, Z)] = [1 0] X + [1 0] Z + [0] 572.62/297.26 [0 1] [0 1] [6] 572.62/297.26 >= [1 0] X + [1 0] Z + [0] 572.62/297.26 [0 1] [0 1] [6] 572.62/297.26 = [cons(X, Z)] 572.62/297.26 572.62/297.26 572.62/297.26 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.26 572.62/297.26 We are left with following problem, upon which TcT provides the 572.62/297.26 certificate MAYBE. 572.62/297.26 572.62/297.26 Strict Trs: 572.62/297.26 { s(X) -> n__s(X) 572.62/297.26 , activate(X) -> X 572.62/297.26 , activate(n__from(X)) -> from(activate(X)) 572.62/297.26 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.26 , activate(n__nil()) -> nil() 572.62/297.26 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.26 , first(X1, X2) -> n__first(X1, X2) 572.62/297.26 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.26 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.26 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) } 572.62/297.26 Weak Trs: 572.62/297.26 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.26 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.26 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.26 , activate(n__s(X)) -> s(activate(X)) 572.62/297.26 , activate(n__0()) -> 0() 572.62/297.26 , 0() -> n__0() 572.62/297.26 , nil() -> n__nil() 572.62/297.26 , from(X) -> n__from(X) 572.62/297.26 , quote(n__s(X)) -> s1(quote(activate(X))) 572.62/297.26 , quote(n__0()) -> 01() 572.62/297.26 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.26 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.62/297.26 , quote1(n__cons(X, Z)) -> 572.62/297.26 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.26 , quote1(n__nil()) -> nil1() 572.62/297.26 , unquote(01()) -> 0() 572.62/297.26 , unquote1(nil1()) -> nil() 572.62/297.26 , fcons(X, Z) -> cons(X, Z) } 572.62/297.26 Obligation: 572.62/297.26 innermost runtime complexity 572.62/297.26 Answer: 572.62/297.26 MAYBE 572.62/297.26 572.62/297.26 The weightgap principle applies (using the following nonconstant 572.62/297.26 growth matrix-interpretation) 572.62/297.26 572.62/297.26 The following argument positions are usable: 572.62/297.26 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.26 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.26 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.26 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.26 572.62/297.26 TcT has computed the following matrix interpretation satisfying 572.62/297.26 not(EDA) and not(IDA(1)). 572.62/297.26 572.62/297.26 [sel](x1, x2) = [1 0] x1 + [1 0] x2 + [7] 572.62/297.26 [0 1] [0 1] [1] 572.62/297.26 572.62/297.26 [s](x1) = [1 0] x1 + [0] 572.62/297.26 [0 0] [0] 572.62/297.26 572.62/297.26 [cons](x1, x2) = [1 0] x1 + [1 0] x2 + [4] 572.62/297.26 [0 1] [0 1] [4] 572.62/297.26 572.62/297.26 [activate](x1) = [1 1] x1 + [4] 572.62/297.26 [0 0] [0] 572.62/297.26 572.62/297.26 [0] = [0] 572.62/297.26 [0] 572.62/297.26 572.62/297.26 [first](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 572.62/297.26 [nil] = [0] 572.62/297.26 [0] 572.62/297.26 572.62/297.26 [n__first](x1, x2) = [0 0] x1 + [0 0] x2 + [4] 572.62/297.26 [1 1] [1 1] [4] 572.62/297.26 572.62/297.26 [from](x1) = [1 0] x1 + [0] 572.62/297.26 [0 1] [4] 572.62/297.26 572.62/297.26 [n__from](x1) = [1 0] x1 + [0] 572.62/297.26 [0 1] [0] 572.62/297.26 572.62/297.26 [n__s](x1) = [0 0] x1 + [4] 572.62/297.26 [1 1] [4] 572.62/297.26 572.62/297.26 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 572.62/297.26 [quote](x1) = [1 1] x1 + [0] 572.62/297.26 [0 0] [0] 572.62/297.26 572.62/297.26 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.26 [0 0] [0 0] [3] 572.62/297.26 572.62/297.26 [nil1] = [0] 572.62/297.26 [0] 572.62/297.26 572.62/297.26 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 572.62/297.26 [n__0] = [0] 572.62/297.26 [0] 572.62/297.26 572.62/297.26 [01] = [0] 572.62/297.26 [0] 572.62/297.26 572.62/297.26 [quote1](x1) = [1 1] x1 + [0] 572.62/297.26 [0 0] [4] 572.62/297.26 572.62/297.26 [n__cons](x1, x2) = [1 0] x1 + [1 0] x2 + [4] 572.62/297.26 [0 1] [0 1] [4] 572.62/297.26 572.62/297.26 [n__nil] = [0] 572.62/297.26 [0] 572.62/297.26 572.62/297.26 [s1](x1) = [1 0] x1 + [0] 572.62/297.26 [0 0] [0] 572.62/297.26 572.62/297.26 [n__sel](x1, x2) = [1 0] x1 + [1 0] x2 + [7] 572.62/297.26 [0 1] [0 1] [1] 572.62/297.26 572.62/297.26 [unquote](x1) = [0] 572.62/297.26 [0] 572.62/297.26 572.62/297.26 [unquote1](x1) = [0] 572.62/297.26 [0] 572.62/297.26 572.62/297.26 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [4] 572.62/297.26 [0 1] [0 1] [4] 572.62/297.26 572.62/297.26 The order satisfies the following ordering constraints: 572.62/297.26 572.62/297.26 [sel(X1, X2)] = [1 0] X1 + [1 0] X2 + [7] 572.62/297.26 [0 1] [0 1] [1] 572.62/297.26 >= [1 0] X1 + [1 0] X2 + [7] 572.62/297.26 [0 1] [0 1] [1] 572.62/297.26 = [n__sel(X1, X2)] 572.62/297.26 572.62/297.26 [s(X)] = [1 0] X + [0] 572.62/297.26 [0 0] [0] 572.62/297.26 ? [0 0] X + [4] 572.62/297.26 [1 1] [4] 572.62/297.26 = [n__s(X)] 572.62/297.26 572.62/297.26 [cons(X1, X2)] = [1 0] X1 + [1 0] X2 + [4] 572.62/297.26 [0 1] [0 1] [4] 572.62/297.26 >= [1 0] X1 + [1 0] X2 + [4] 572.62/297.26 [0 1] [0 1] [4] 572.62/297.26 = [n__cons(X1, X2)] 572.62/297.26 572.62/297.26 [activate(X)] = [1 1] X + [4] 572.62/297.26 [0 0] [0] 572.62/297.26 ? [1 0] X + [0] 572.62/297.26 [0 1] [0] 572.62/297.26 = [X] 572.62/297.26 572.62/297.26 [activate(n__first(X1, X2))] = [1 1] X1 + [1 1] X2 + [12] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 > [1 1] X1 + [1 1] X2 + [8] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 = [first(activate(X1), activate(X2))] 572.62/297.26 572.62/297.26 [activate(n__from(X))] = [1 1] X + [4] 572.62/297.26 [0 0] [0] 572.62/297.26 ? [1 1] X + [4] 572.62/297.26 [0 0] [4] 572.62/297.26 = [from(activate(X))] 572.62/297.26 572.62/297.26 [activate(n__s(X))] = [1 1] X + [12] 572.62/297.26 [0 0] [0] 572.62/297.26 > [1 1] X + [4] 572.62/297.26 [0 0] [0] 572.62/297.26 = [s(activate(X))] 572.62/297.26 572.62/297.26 [activate(n__0())] = [4] 572.62/297.26 [0] 572.62/297.26 > [0] 572.62/297.26 [0] 572.62/297.26 = [0()] 572.62/297.26 572.62/297.26 [activate(n__cons(X1, X2))] = [1 1] X1 + [1 1] X2 + [12] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 ? [1 1] X1 + [1 0] X2 + [8] 572.62/297.26 [0 0] [0 1] [4] 572.62/297.26 = [cons(activate(X1), X2)] 572.62/297.26 572.62/297.26 [activate(n__nil())] = [4] 572.62/297.26 [0] 572.62/297.26 > [0] 572.62/297.26 [0] 572.62/297.26 = [nil()] 572.62/297.26 572.62/297.26 [activate(n__sel(X1, X2))] = [1 1] X1 + [1 1] X2 + [12] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 ? [1 1] X1 + [1 1] X2 + [15] 572.62/297.26 [0 0] [0 0] [1] 572.62/297.26 = [sel(activate(X1), activate(X2))] 572.62/297.26 572.62/297.26 [0()] = [0] 572.62/297.26 [0] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [n__0()] 572.62/297.26 572.62/297.26 [first(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 ? [0 0] X1 + [0 0] X2 + [4] 572.62/297.26 [1 1] [1 1] [4] 572.62/297.26 = [n__first(X1, X2)] 572.62/297.26 572.62/297.26 [nil()] = [0] 572.62/297.26 [0] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [n__nil()] 572.62/297.26 572.62/297.26 [from(X)] = [1 0] X + [0] 572.62/297.26 [0 1] [4] 572.62/297.26 ? [1 0] X + [8] 572.62/297.26 [1 2] [8] 572.62/297.26 = [cons(X, n__from(n__s(X)))] 572.62/297.26 572.62/297.26 [from(X)] = [1 0] X + [0] 572.62/297.26 [0 1] [4] 572.62/297.26 >= [1 0] X + [0] 572.62/297.26 [0 1] [0] 572.62/297.26 = [n__from(X)] 572.62/297.26 572.62/297.26 [quote(n__s(X))] = [1 1] X + [8] 572.62/297.26 [0 0] [0] 572.62/297.26 > [1 1] X + [4] 572.62/297.26 [0 0] [0] 572.62/297.26 = [s1(quote(activate(X)))] 572.62/297.26 572.62/297.26 [quote(n__0())] = [0] 572.62/297.26 [0] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [01()] 572.62/297.26 572.62/297.26 [quote(n__sel(X, Z))] = [1 1] X + [1 1] Z + [8] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 >= [1 1] X + [1 1] Z + [8] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 = [sel1(activate(X), activate(Z))] 572.62/297.26 572.62/297.26 [quote1(n__first(X, Z))] = [1 1] X + [1 1] Z + [8] 572.62/297.26 [0 0] [0 0] [4] 572.62/297.26 >= [1 1] X + [1 1] Z + [8] 572.62/297.26 [0 0] [0 0] [3] 572.62/297.26 = [first1(activate(X), activate(Z))] 572.62/297.26 572.62/297.26 [quote1(n__cons(X, Z))] = [1 1] X + [1 1] Z + [8] 572.62/297.26 [0 0] [0 0] [4] 572.62/297.26 >= [1 1] X + [1 1] Z + [8] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.26 572.62/297.26 [quote1(n__nil())] = [0] 572.62/297.26 [4] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [nil1()] 572.62/297.26 572.62/297.26 [unquote(01())] = [0] 572.62/297.26 [0] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [0()] 572.62/297.26 572.62/297.26 [unquote(s1(X))] = [0] 572.62/297.26 [0] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [s(unquote(X))] 572.62/297.26 572.62/297.26 [unquote1(nil1())] = [0] 572.62/297.26 [0] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [nil()] 572.62/297.26 572.62/297.26 [unquote1(cons1(X, Z))] = [0] 572.62/297.26 [0] 572.62/297.26 ? [4] 572.62/297.26 [4] 572.62/297.26 = [fcons(unquote(X), unquote1(Z))] 572.62/297.26 572.62/297.26 [fcons(X, Z)] = [1 0] X + [1 0] Z + [4] 572.62/297.26 [0 1] [0 1] [4] 572.62/297.26 >= [1 0] X + [1 0] Z + [4] 572.62/297.26 [0 1] [0 1] [4] 572.62/297.26 = [cons(X, Z)] 572.62/297.26 572.62/297.26 572.62/297.26 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.26 572.62/297.26 We are left with following problem, upon which TcT provides the 572.62/297.26 certificate MAYBE. 572.62/297.26 572.62/297.26 Strict Trs: 572.62/297.26 { s(X) -> n__s(X) 572.62/297.26 , activate(X) -> X 572.62/297.26 , activate(n__from(X)) -> from(activate(X)) 572.62/297.26 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.26 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.26 , first(X1, X2) -> n__first(X1, X2) 572.62/297.26 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.26 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.26 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) } 572.62/297.26 Weak Trs: 572.62/297.26 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.26 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.26 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.26 , activate(n__s(X)) -> s(activate(X)) 572.62/297.26 , activate(n__0()) -> 0() 572.62/297.26 , activate(n__nil()) -> nil() 572.62/297.26 , 0() -> n__0() 572.62/297.26 , nil() -> n__nil() 572.62/297.26 , from(X) -> n__from(X) 572.62/297.26 , quote(n__s(X)) -> s1(quote(activate(X))) 572.62/297.26 , quote(n__0()) -> 01() 572.62/297.26 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.26 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.62/297.26 , quote1(n__cons(X, Z)) -> 572.62/297.26 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.26 , quote1(n__nil()) -> nil1() 572.62/297.26 , unquote(01()) -> 0() 572.62/297.26 , unquote1(nil1()) -> nil() 572.62/297.26 , fcons(X, Z) -> cons(X, Z) } 572.62/297.26 Obligation: 572.62/297.26 innermost runtime complexity 572.62/297.26 Answer: 572.62/297.26 MAYBE 572.62/297.26 572.62/297.26 The weightgap principle applies (using the following nonconstant 572.62/297.26 growth matrix-interpretation) 572.62/297.26 572.62/297.26 The following argument positions are usable: 572.62/297.26 Uargs(sel) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1}, 572.62/297.26 Uargs(first) = {1, 2}, Uargs(from) = {1}, Uargs(sel1) = {1, 2}, 572.62/297.26 Uargs(quote) = {1}, Uargs(first1) = {1, 2}, Uargs(cons1) = {1, 2}, 572.62/297.26 Uargs(quote1) = {1}, Uargs(s1) = {1}, Uargs(fcons) = {1, 2} 572.62/297.26 572.62/297.26 TcT has computed the following matrix interpretation satisfying 572.62/297.26 not(EDA) and not(IDA(1)). 572.62/297.26 572.62/297.26 [sel](x1, x2) = [1 0] x1 + [1 1] x2 + [4] 572.62/297.26 [0 1] [0 0] [0] 572.62/297.26 572.62/297.26 [s](x1) = [1 0] x1 + [0] 572.62/297.26 [0 0] [0] 572.62/297.26 572.62/297.26 [cons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.26 [0 1] [0 1] [0] 572.62/297.26 572.62/297.26 [activate](x1) = [1 1] x1 + [0] 572.62/297.26 [0 0] [0] 572.62/297.26 572.62/297.26 [0] = [0] 572.62/297.26 [0] 572.62/297.26 572.62/297.26 [first](x1, x2) = [1 0] x1 + [1 1] x2 + [0] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 572.62/297.26 [nil] = [0] 572.62/297.26 [0] 572.62/297.26 572.62/297.26 [n__first](x1, x2) = [0 0] x1 + [1 1] x2 + [6] 572.62/297.26 [1 1] [0 0] [2] 572.62/297.26 572.62/297.26 [from](x1) = [1 0] x1 + [0] 572.62/297.26 [0 1] [4] 572.62/297.26 572.62/297.26 [n__from](x1) = [1 0] x1 + [0] 572.62/297.26 [0 1] [0] 572.62/297.26 572.62/297.26 [n__s](x1) = [0 0] x1 + [4] 572.62/297.26 [1 1] [0] 572.62/297.26 572.62/297.26 [sel1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 572.62/297.26 [quote](x1) = [1 1] x1 + [0] 572.62/297.26 [0 0] [0] 572.62/297.26 572.62/297.26 [first1](x1, x2) = [1 0] x1 + [1 0] x2 + [7] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 572.62/297.26 [nil1] = [0] 572.62/297.26 [0] 572.62/297.26 572.62/297.26 [cons1](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 572.62/297.26 [n__0] = [0] 572.62/297.26 [0] 572.62/297.26 572.62/297.26 [01] = [0] 572.62/297.26 [0] 572.62/297.26 572.62/297.26 [quote1](x1) = [1 1] x1 + [0] 572.62/297.26 [0 0] [0] 572.62/297.26 572.62/297.26 [n__cons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.26 [0 1] [0 1] [0] 572.62/297.26 572.62/297.26 [n__nil] = [0] 572.62/297.26 [0] 572.62/297.26 572.62/297.26 [s1](x1) = [1 0] x1 + [4] 572.62/297.26 [0 0] [0] 572.62/297.26 572.62/297.26 [n__sel](x1, x2) = [1 0] x1 + [1 1] x2 + [0] 572.62/297.26 [0 1] [0 0] [0] 572.62/297.26 572.62/297.26 [unquote](x1) = [1 0] x1 + [0] 572.62/297.26 [0 0] [0] 572.62/297.26 572.62/297.26 [unquote1](x1) = [1 0] x1 + [0] 572.62/297.26 [0 0] [0] 572.62/297.26 572.62/297.26 [fcons](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 572.62/297.26 [0 1] [0 1] [0] 572.62/297.26 572.62/297.26 The order satisfies the following ordering constraints: 572.62/297.26 572.62/297.26 [sel(X1, X2)] = [1 0] X1 + [1 1] X2 + [4] 572.62/297.26 [0 1] [0 0] [0] 572.62/297.26 > [1 0] X1 + [1 1] X2 + [0] 572.62/297.26 [0 1] [0 0] [0] 572.62/297.26 = [n__sel(X1, X2)] 572.62/297.26 572.62/297.26 [s(X)] = [1 0] X + [0] 572.62/297.26 [0 0] [0] 572.62/297.26 ? [0 0] X + [4] 572.62/297.26 [1 1] [0] 572.62/297.26 = [n__s(X)] 572.62/297.26 572.62/297.26 [cons(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 572.62/297.26 [0 1] [0 1] [0] 572.62/297.26 >= [1 0] X1 + [1 0] X2 + [0] 572.62/297.26 [0 1] [0 1] [0] 572.62/297.26 = [n__cons(X1, X2)] 572.62/297.26 572.62/297.26 [activate(X)] = [1 1] X + [0] 572.62/297.26 [0 0] [0] 572.62/297.26 ? [1 0] X + [0] 572.62/297.26 [0 1] [0] 572.62/297.26 = [X] 572.62/297.26 572.62/297.26 [activate(n__first(X1, X2))] = [1 1] X1 + [1 1] X2 + [8] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 > [1 1] X1 + [1 1] X2 + [0] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 = [first(activate(X1), activate(X2))] 572.62/297.26 572.62/297.26 [activate(n__from(X))] = [1 1] X + [0] 572.62/297.26 [0 0] [0] 572.62/297.26 ? [1 1] X + [0] 572.62/297.26 [0 0] [4] 572.62/297.26 = [from(activate(X))] 572.62/297.26 572.62/297.26 [activate(n__s(X))] = [1 1] X + [4] 572.62/297.26 [0 0] [0] 572.62/297.26 > [1 1] X + [0] 572.62/297.26 [0 0] [0] 572.62/297.26 = [s(activate(X))] 572.62/297.26 572.62/297.26 [activate(n__0())] = [0] 572.62/297.26 [0] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [0()] 572.62/297.26 572.62/297.26 [activate(n__cons(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 ? [1 1] X1 + [1 0] X2 + [0] 572.62/297.26 [0 0] [0 1] [0] 572.62/297.26 = [cons(activate(X1), X2)] 572.62/297.26 572.62/297.26 [activate(n__nil())] = [0] 572.62/297.26 [0] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [nil()] 572.62/297.26 572.62/297.26 [activate(n__sel(X1, X2))] = [1 1] X1 + [1 1] X2 + [0] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 ? [1 1] X1 + [1 1] X2 + [4] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 = [sel(activate(X1), activate(X2))] 572.62/297.26 572.62/297.26 [0()] = [0] 572.62/297.26 [0] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [n__0()] 572.62/297.26 572.62/297.26 [first(X1, X2)] = [1 0] X1 + [1 1] X2 + [0] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 ? [0 0] X1 + [1 1] X2 + [6] 572.62/297.26 [1 1] [0 0] [2] 572.62/297.26 = [n__first(X1, X2)] 572.62/297.26 572.62/297.26 [nil()] = [0] 572.62/297.26 [0] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [n__nil()] 572.62/297.26 572.62/297.26 [from(X)] = [1 0] X + [0] 572.62/297.26 [0 1] [4] 572.62/297.26 ? [1 0] X + [4] 572.62/297.26 [1 2] [0] 572.62/297.26 = [cons(X, n__from(n__s(X)))] 572.62/297.26 572.62/297.26 [from(X)] = [1 0] X + [0] 572.62/297.26 [0 1] [4] 572.62/297.26 >= [1 0] X + [0] 572.62/297.26 [0 1] [0] 572.62/297.26 = [n__from(X)] 572.62/297.26 572.62/297.26 [quote(n__s(X))] = [1 1] X + [4] 572.62/297.26 [0 0] [0] 572.62/297.26 >= [1 1] X + [4] 572.62/297.26 [0 0] [0] 572.62/297.26 = [s1(quote(activate(X)))] 572.62/297.26 572.62/297.26 [quote(n__0())] = [0] 572.62/297.26 [0] 572.62/297.26 >= [0] 572.62/297.26 [0] 572.62/297.26 = [01()] 572.62/297.26 572.62/297.26 [quote(n__sel(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 >= [1 1] X + [1 1] Z + [0] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 = [sel1(activate(X), activate(Z))] 572.62/297.26 572.62/297.26 [quote1(n__first(X, Z))] = [1 1] X + [1 1] Z + [8] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 > [1 1] X + [1 1] Z + [7] 572.62/297.26 [0 0] [0 0] [0] 572.62/297.26 = [first1(activate(X), activate(Z))] 572.62/297.26 572.62/297.27 [quote1(n__cons(X, Z))] = [1 1] X + [1 1] Z + [0] 572.62/297.27 [0 0] [0 0] [0] 572.62/297.27 >= [1 1] X + [1 1] Z + [0] 572.62/297.27 [0 0] [0 0] [0] 572.62/297.27 = [cons1(quote(activate(X)), quote1(activate(Z)))] 572.62/297.27 572.62/297.27 [quote1(n__nil())] = [0] 572.62/297.27 [0] 572.62/297.27 >= [0] 572.62/297.27 [0] 572.62/297.27 = [nil1()] 572.62/297.27 572.62/297.27 [unquote(01())] = [0] 572.62/297.27 [0] 572.62/297.27 >= [0] 572.62/297.27 [0] 572.62/297.27 = [0()] 572.62/297.27 572.62/297.27 [unquote(s1(X))] = [1 0] X + [4] 572.62/297.27 [0 0] [0] 572.62/297.27 > [1 0] X + [0] 572.62/297.27 [0 0] [0] 572.62/297.27 = [s(unquote(X))] 572.62/297.27 572.62/297.27 [unquote1(nil1())] = [0] 572.62/297.27 [0] 572.62/297.27 >= [0] 572.62/297.27 [0] 572.62/297.27 = [nil()] 572.62/297.27 572.62/297.27 [unquote1(cons1(X, Z))] = [1 0] X + [1 0] Z + [0] 572.62/297.27 [0 0] [0 0] [0] 572.62/297.27 >= [1 0] X + [1 0] Z + [0] 572.62/297.27 [0 0] [0 0] [0] 572.62/297.27 = [fcons(unquote(X), unquote1(Z))] 572.62/297.27 572.62/297.27 [fcons(X, Z)] = [1 0] X + [1 0] Z + [0] 572.62/297.27 [0 1] [0 1] [0] 572.62/297.27 >= [1 0] X + [1 0] Z + [0] 572.62/297.27 [0 1] [0 1] [0] 572.62/297.27 = [cons(X, Z)] 572.62/297.27 572.62/297.27 572.62/297.27 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 572.62/297.27 572.62/297.27 We are left with following problem, upon which TcT provides the 572.62/297.27 certificate MAYBE. 572.62/297.27 572.62/297.27 Strict Trs: 572.62/297.27 { s(X) -> n__s(X) 572.62/297.27 , activate(X) -> X 572.62/297.27 , activate(n__from(X)) -> from(activate(X)) 572.62/297.27 , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 572.62/297.27 , activate(n__sel(X1, X2)) -> sel(activate(X1), activate(X2)) 572.62/297.27 , first(X1, X2) -> n__first(X1, X2) 572.62/297.27 , from(X) -> cons(X, n__from(n__s(X))) 572.62/297.27 , unquote1(cons1(X, Z)) -> fcons(unquote(X), unquote1(Z)) } 572.62/297.27 Weak Trs: 572.62/297.27 { sel(X1, X2) -> n__sel(X1, X2) 572.62/297.27 , cons(X1, X2) -> n__cons(X1, X2) 572.62/297.27 , activate(n__first(X1, X2)) -> first(activate(X1), activate(X2)) 572.62/297.27 , activate(n__s(X)) -> s(activate(X)) 572.62/297.27 , activate(n__0()) -> 0() 572.62/297.27 , activate(n__nil()) -> nil() 572.62/297.27 , 0() -> n__0() 572.62/297.27 , nil() -> n__nil() 572.62/297.27 , from(X) -> n__from(X) 572.62/297.27 , quote(n__s(X)) -> s1(quote(activate(X))) 572.62/297.27 , quote(n__0()) -> 01() 572.62/297.27 , quote(n__sel(X, Z)) -> sel1(activate(X), activate(Z)) 572.62/297.27 , quote1(n__first(X, Z)) -> first1(activate(X), activate(Z)) 572.62/297.27 , quote1(n__cons(X, Z)) -> 572.62/297.27 cons1(quote(activate(X)), quote1(activate(Z))) 572.62/297.27 , quote1(n__nil()) -> nil1() 572.62/297.27 , unquote(01()) -> 0() 572.62/297.27 , unquote(s1(X)) -> s(unquote(X)) 572.62/297.27 , unquote1(nil1()) -> nil() 572.62/297.27 , fcons(X, Z) -> cons(X, Z) } 572.62/297.27 Obligation: 572.62/297.27 innermost runtime complexity 572.62/297.27 Answer: 572.62/297.27 MAYBE 572.62/297.27 572.62/297.27 None of the processors succeeded. 572.62/297.27 572.62/297.27 Details of failed attempt(s): 572.62/297.27 ----------------------------- 572.62/297.27 1) 'empty' failed due to the following reason: 572.62/297.27 572.62/297.27 Empty strict component of the problem is NOT empty. 572.62/297.27 572.62/297.27 2) 'With Problem ...' failed due to the following reason: 572.62/297.27 572.62/297.27 None of the processors succeeded. 572.62/297.27 572.62/297.27 Details of failed attempt(s): 572.62/297.27 ----------------------------- 572.62/297.27 1) 'empty' failed due to the following reason: 572.62/297.27 572.62/297.27 Empty strict component of the problem is NOT empty. 572.62/297.27 572.62/297.27 2) 'With Problem ...' failed due to the following reason: 572.62/297.27 572.62/297.27 Empty strict component of the problem is NOT empty. 572.62/297.27 572.62/297.27 572.62/297.27 572.62/297.27 572.62/297.27 2) 'With Problem ...' failed due to the following reason: 572.62/297.27 572.62/297.27 None of the processors succeeded. 572.62/297.27 572.62/297.27 Details of failed attempt(s): 572.62/297.27 ----------------------------- 572.62/297.27 1) 'empty' failed due to the following reason: 572.62/297.27 572.62/297.27 Empty strict component of the problem is NOT empty. 572.62/297.27 572.62/297.27 2) 'With Problem ...' failed due to the following reason: 572.62/297.27 572.62/297.27 Empty strict component of the problem is NOT empty. 572.62/297.27 572.62/297.27 572.62/297.27 572.62/297.27 572.62/297.27 572.62/297.27 2) 'Best' failed due to the following reason: 572.62/297.27 572.62/297.27 None of the processors succeeded. 572.62/297.27 572.62/297.27 Details of failed attempt(s): 572.62/297.27 ----------------------------- 572.62/297.27 1) 'Polynomial Path Order (PS) (timeout of 297 seconds)' failed due 572.62/297.27 to the following reason: 572.62/297.27 572.62/297.27 The input cannot be shown compatible 572.62/297.27 572.62/297.27 2) 'bsearch-popstar (timeout of 297 seconds)' failed due to the 572.62/297.27 following reason: 572.62/297.27 572.62/297.27 The input cannot be shown compatible 572.62/297.27 572.62/297.27 572.62/297.27 3) 'Fastest (timeout of 24 seconds) (timeout of 297 seconds)' 572.62/297.27 failed due to the following reason: 572.62/297.27 572.62/297.27 None of the processors succeeded. 572.62/297.27 572.62/297.27 Details of failed attempt(s): 572.62/297.27 ----------------------------- 572.62/297.27 1) 'Bounds with minimal-enrichment and initial automaton 'match'' 572.62/297.27 failed due to the following reason: 572.62/297.27 572.62/297.27 match-boundness of the problem could not be verified. 572.62/297.27 572.62/297.27 2) 'Bounds with perSymbol-enrichment and initial automaton 'match'' 572.62/297.27 failed due to the following reason: 572.62/297.27 572.62/297.27 match-boundness of the problem could not be verified. 572.62/297.27 572.62/297.27 572.62/297.27 572.62/297.27 572.62/297.27 572.62/297.27 Arrrr.. 572.62/297.28 EOF