MAYBE 257.24/67.90 MAYBE 257.24/67.90 257.24/67.90 We are left with following problem, upon which TcT provides the 257.24/67.90 certificate MAYBE. 257.24/67.90 257.24/67.90 Strict Trs: 257.24/67.90 { __(X1, X2) -> n____(X1, X2) 257.24/67.90 , __(X, nil()) -> X 257.24/67.90 , __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.90 , __(nil(), X) -> X 257.24/67.90 , nil() -> n__nil() 257.24/67.90 , U11(tt()) -> tt() 257.24/67.90 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.90 , U22(tt()) -> tt() 257.24/67.90 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.90 , isList(n__nil()) -> tt() 257.24/67.90 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.90 , activate(X) -> X 257.24/67.90 , activate(n__nil()) -> nil() 257.24/67.90 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.90 , activate(n__a()) -> a() 257.24/67.90 , activate(n__e()) -> e() 257.24/67.90 , activate(n__i()) -> i() 257.24/67.90 , activate(n__o()) -> o() 257.24/67.90 , activate(n__u()) -> u() 257.24/67.90 , U31(tt()) -> tt() 257.24/67.90 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.90 , U42(tt()) -> tt() 257.24/67.90 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.90 , isNeList(n____(V1, V2)) -> 257.24/67.90 U41(isList(activate(V1)), activate(V2)) 257.24/67.90 , isNeList(n____(V1, V2)) -> 257.24/67.90 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.90 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.90 , U52(tt()) -> tt() 257.24/67.90 , U61(tt()) -> tt() 257.24/67.90 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.90 , U72(tt()) -> tt() 257.24/67.90 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.90 , isPal(n__nil()) -> tt() 257.24/67.90 , U81(tt()) -> tt() 257.24/67.90 , isQid(n__a()) -> tt() 257.24/67.90 , isQid(n__e()) -> tt() 257.24/67.90 , isQid(n__i()) -> tt() 257.24/67.90 , isQid(n__o()) -> tt() 257.24/67.90 , isQid(n__u()) -> tt() 257.24/67.90 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.90 , isNePal(n____(I, n____(P, I))) -> 257.24/67.90 U71(isQid(activate(I)), activate(P)) 257.24/67.90 , a() -> n__a() 257.24/67.90 , e() -> n__e() 257.24/67.90 , i() -> n__i() 257.24/67.90 , o() -> n__o() 257.24/67.90 , u() -> n__u() } 257.24/67.90 Obligation: 257.24/67.90 derivational complexity 257.24/67.90 Answer: 257.24/67.90 MAYBE 257.24/67.90 257.24/67.90 None of the processors succeeded. 257.24/67.90 257.24/67.90 Details of failed attempt(s): 257.24/67.90 ----------------------------- 257.24/67.90 1) 'Inspecting Problem... (timeout of 297 seconds)' failed due to 257.24/67.90 the following reason: 257.24/67.90 257.24/67.90 We use the processor 'matrix interpretation of dimension 1' to 257.24/67.90 orient following rules strictly. 257.24/67.90 257.24/67.90 Trs: { isQid(n__u()) -> tt() } 257.24/67.90 257.24/67.90 The induced complexity on above rules (modulo remaining rules) is 257.24/67.90 YES(?,O(n^1)) . These rules are moved into the corresponding weak 257.24/67.90 component(s). 257.24/67.90 257.24/67.90 Sub-proof: 257.24/67.90 ---------- 257.24/67.90 TcT has computed the following triangular matrix interpretation. 257.24/67.90 257.24/67.90 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.90 257.24/67.90 [nil] = [0] 257.24/67.90 257.24/67.90 [U11](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [tt] = [0] 257.24/67.90 257.24/67.90 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.90 257.24/67.90 [U22](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [isList](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [activate](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [U31](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.90 257.24/67.90 [U42](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [isNeList](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.90 257.24/67.90 [U52](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [U61](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.90 257.24/67.90 [U72](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [isPal](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [U81](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [n__nil] = [0] 257.24/67.90 257.24/67.90 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.90 257.24/67.90 [isQid](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [isNePal](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [n__a] = [0] 257.24/67.90 257.24/67.90 [n__e] = [0] 257.24/67.90 257.24/67.90 [n__i] = [0] 257.24/67.90 257.24/67.90 [n__o] = [0] 257.24/67.90 257.24/67.90 [n__u] = [2] 257.24/67.90 257.24/67.90 [a] = [0] 257.24/67.90 257.24/67.90 [e] = [0] 257.24/67.90 257.24/67.90 [i] = [0] 257.24/67.90 257.24/67.90 [o] = [0] 257.24/67.90 257.24/67.90 [u] = [2] 257.24/67.90 257.24/67.90 The order satisfies the following ordering constraints: 257.24/67.90 257.24/67.90 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.90 >= [1] X1 + [1] X2 + [0] 257.24/67.90 = [n____(X1, X2)] 257.24/67.90 257.24/67.90 [__(X, nil())] = [1] X + [0] 257.24/67.90 >= [1] X + [0] 257.24/67.90 = [X] 257.24/67.90 257.24/67.90 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.90 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.90 = [__(X, __(Y, Z))] 257.24/67.90 257.24/67.90 [__(nil(), X)] = [1] X + [0] 257.24/67.90 >= [1] X + [0] 257.24/67.90 = [X] 257.24/67.90 257.24/67.90 [nil()] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [n__nil()] 257.24/67.90 257.24/67.90 [U11(tt())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [U21(tt(), V2)] = [1] V2 + [0] 257.24/67.90 >= [1] V2 + [0] 257.24/67.90 = [U22(isList(activate(V2)))] 257.24/67.90 257.24/67.90 [U22(tt())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [isList(V)] = [1] V + [0] 257.24/67.90 >= [1] V + [0] 257.24/67.90 = [U11(isNeList(activate(V)))] 257.24/67.90 257.24/67.90 [isList(n__nil())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.90 >= [1] V2 + [1] V1 + [0] 257.24/67.90 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.90 257.24/67.90 [activate(X)] = [1] X + [0] 257.24/67.90 >= [1] X + [0] 257.24/67.90 = [X] 257.24/67.90 257.24/67.90 [activate(n__nil())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [nil()] 257.24/67.90 257.24/67.90 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.90 >= [1] X1 + [1] X2 + [0] 257.24/67.90 = [__(activate(X1), activate(X2))] 257.24/67.90 257.24/67.90 [activate(n__a())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [a()] 257.24/67.90 257.24/67.90 [activate(n__e())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [e()] 257.24/67.90 257.24/67.90 [activate(n__i())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [i()] 257.24/67.90 257.24/67.90 [activate(n__o())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [o()] 257.24/67.90 257.24/67.90 [activate(n__u())] = [2] 257.24/67.90 >= [2] 257.24/67.90 = [u()] 257.24/67.90 257.24/67.90 [U31(tt())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [U41(tt(), V2)] = [1] V2 + [0] 257.24/67.90 >= [1] V2 + [0] 257.24/67.90 = [U42(isNeList(activate(V2)))] 257.24/67.90 257.24/67.90 [U42(tt())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [isNeList(V)] = [1] V + [0] 257.24/67.90 >= [1] V + [0] 257.24/67.90 = [U31(isQid(activate(V)))] 257.24/67.90 257.24/67.90 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.90 >= [1] V2 + [1] V1 + [0] 257.24/67.90 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.90 257.24/67.90 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.90 >= [1] V2 + [1] V1 + [0] 257.24/67.90 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.90 257.24/67.90 [U51(tt(), V2)] = [1] V2 + [0] 257.24/67.90 >= [1] V2 + [0] 257.24/67.90 = [U52(isList(activate(V2)))] 257.24/67.90 257.24/67.90 [U52(tt())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [U61(tt())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [U71(tt(), P)] = [1] P + [0] 257.24/67.90 >= [1] P + [0] 257.24/67.90 = [U72(isPal(activate(P)))] 257.24/67.90 257.24/67.90 [U72(tt())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [isPal(V)] = [1] V + [0] 257.24/67.90 >= [1] V + [0] 257.24/67.90 = [U81(isNePal(activate(V)))] 257.24/67.90 257.24/67.90 [isPal(n__nil())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [U81(tt())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [isQid(n__a())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [isQid(n__e())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [isQid(n__i())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [isQid(n__o())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [isQid(n__u())] = [2] 257.24/67.90 > [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [isNePal(V)] = [1] V + [0] 257.24/67.90 >= [1] V + [0] 257.24/67.90 = [U61(isQid(activate(V)))] 257.24/67.90 257.24/67.90 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.90 >= [1] P + [1] I + [0] 257.24/67.90 = [U71(isQid(activate(I)), activate(P))] 257.24/67.90 257.24/67.90 [a()] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [n__a()] 257.24/67.90 257.24/67.90 [e()] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [n__e()] 257.24/67.90 257.24/67.90 [i()] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [n__i()] 257.24/67.90 257.24/67.90 [o()] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [n__o()] 257.24/67.90 257.24/67.90 [u()] = [2] 257.24/67.90 >= [2] 257.24/67.90 = [n__u()] 257.24/67.90 257.24/67.90 257.24/67.90 We return to the main proof. 257.24/67.90 257.24/67.90 We are left with following problem, upon which TcT provides the 257.24/67.90 certificate MAYBE. 257.24/67.90 257.24/67.90 Strict Trs: 257.24/67.90 { __(X1, X2) -> n____(X1, X2) 257.24/67.90 , __(X, nil()) -> X 257.24/67.90 , __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.90 , __(nil(), X) -> X 257.24/67.90 , nil() -> n__nil() 257.24/67.90 , U11(tt()) -> tt() 257.24/67.90 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.90 , U22(tt()) -> tt() 257.24/67.90 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.90 , isList(n__nil()) -> tt() 257.24/67.90 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.90 , activate(X) -> X 257.24/67.90 , activate(n__nil()) -> nil() 257.24/67.90 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.90 , activate(n__a()) -> a() 257.24/67.90 , activate(n__e()) -> e() 257.24/67.90 , activate(n__i()) -> i() 257.24/67.90 , activate(n__o()) -> o() 257.24/67.90 , activate(n__u()) -> u() 257.24/67.90 , U31(tt()) -> tt() 257.24/67.90 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.90 , U42(tt()) -> tt() 257.24/67.90 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.90 , isNeList(n____(V1, V2)) -> 257.24/67.90 U41(isList(activate(V1)), activate(V2)) 257.24/67.90 , isNeList(n____(V1, V2)) -> 257.24/67.90 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.90 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.90 , U52(tt()) -> tt() 257.24/67.90 , U61(tt()) -> tt() 257.24/67.90 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.90 , U72(tt()) -> tt() 257.24/67.90 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.90 , isPal(n__nil()) -> tt() 257.24/67.90 , U81(tt()) -> tt() 257.24/67.90 , isQid(n__a()) -> tt() 257.24/67.90 , isQid(n__e()) -> tt() 257.24/67.90 , isQid(n__i()) -> tt() 257.24/67.90 , isQid(n__o()) -> tt() 257.24/67.90 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.90 , isNePal(n____(I, n____(P, I))) -> 257.24/67.90 U71(isQid(activate(I)), activate(P)) 257.24/67.90 , a() -> n__a() 257.24/67.90 , e() -> n__e() 257.24/67.90 , i() -> n__i() 257.24/67.90 , o() -> n__o() 257.24/67.90 , u() -> n__u() } 257.24/67.90 Weak Trs: { isQid(n__u()) -> tt() } 257.24/67.90 Obligation: 257.24/67.90 derivational complexity 257.24/67.90 Answer: 257.24/67.90 MAYBE 257.24/67.90 257.24/67.90 We use the processor 'matrix interpretation of dimension 1' to 257.24/67.90 orient following rules strictly. 257.24/67.90 257.24/67.90 Trs: { isQid(n__a()) -> tt() } 257.24/67.90 257.24/67.90 The induced complexity on above rules (modulo remaining rules) is 257.24/67.90 YES(?,O(n^1)) . These rules are moved into the corresponding weak 257.24/67.90 component(s). 257.24/67.90 257.24/67.90 Sub-proof: 257.24/67.90 ---------- 257.24/67.90 TcT has computed the following triangular matrix interpretation. 257.24/67.90 257.24/67.90 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.90 257.24/67.90 [nil] = [0] 257.24/67.90 257.24/67.90 [U11](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [tt] = [0] 257.24/67.90 257.24/67.90 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.90 257.24/67.90 [U22](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [isList](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [activate](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [U31](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.90 257.24/67.90 [U42](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [isNeList](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.90 257.24/67.90 [U52](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [U61](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.90 257.24/67.90 [U72](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [isPal](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [U81](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [n__nil] = [0] 257.24/67.90 257.24/67.90 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.90 257.24/67.90 [isQid](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [isNePal](x1) = [1] x1 + [0] 257.24/67.90 257.24/67.90 [n__a] = [1] 257.24/67.90 257.24/67.90 [n__e] = [0] 257.24/67.90 257.24/67.90 [n__i] = [0] 257.24/67.90 257.24/67.90 [n__o] = [0] 257.24/67.90 257.24/67.90 [n__u] = [2] 257.24/67.90 257.24/67.90 [a] = [1] 257.24/67.90 257.24/67.90 [e] = [0] 257.24/67.90 257.24/67.90 [i] = [0] 257.24/67.90 257.24/67.90 [o] = [0] 257.24/67.90 257.24/67.90 [u] = [2] 257.24/67.90 257.24/67.90 The order satisfies the following ordering constraints: 257.24/67.90 257.24/67.90 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.90 >= [1] X1 + [1] X2 + [0] 257.24/67.90 = [n____(X1, X2)] 257.24/67.90 257.24/67.90 [__(X, nil())] = [1] X + [0] 257.24/67.90 >= [1] X + [0] 257.24/67.90 = [X] 257.24/67.90 257.24/67.90 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.90 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.90 = [__(X, __(Y, Z))] 257.24/67.90 257.24/67.90 [__(nil(), X)] = [1] X + [0] 257.24/67.90 >= [1] X + [0] 257.24/67.90 = [X] 257.24/67.90 257.24/67.90 [nil()] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [n__nil()] 257.24/67.90 257.24/67.90 [U11(tt())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [U21(tt(), V2)] = [1] V2 + [0] 257.24/67.90 >= [1] V2 + [0] 257.24/67.90 = [U22(isList(activate(V2)))] 257.24/67.90 257.24/67.90 [U22(tt())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [isList(V)] = [1] V + [0] 257.24/67.90 >= [1] V + [0] 257.24/67.90 = [U11(isNeList(activate(V)))] 257.24/67.90 257.24/67.90 [isList(n__nil())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [tt()] 257.24/67.90 257.24/67.90 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.90 >= [1] V2 + [1] V1 + [0] 257.24/67.90 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.90 257.24/67.90 [activate(X)] = [1] X + [0] 257.24/67.90 >= [1] X + [0] 257.24/67.90 = [X] 257.24/67.90 257.24/67.90 [activate(n__nil())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [nil()] 257.24/67.90 257.24/67.90 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.90 >= [1] X1 + [1] X2 + [0] 257.24/67.90 = [__(activate(X1), activate(X2))] 257.24/67.90 257.24/67.90 [activate(n__a())] = [1] 257.24/67.90 >= [1] 257.24/67.90 = [a()] 257.24/67.90 257.24/67.90 [activate(n__e())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [e()] 257.24/67.90 257.24/67.90 [activate(n__i())] = [0] 257.24/67.90 >= [0] 257.24/67.90 = [i()] 257.24/67.90 257.24/67.90 [activate(n__o())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [o()] 257.24/67.91 257.24/67.91 [activate(n__u())] = [2] 257.24/67.91 >= [2] 257.24/67.91 = [u()] 257.24/67.91 257.24/67.91 [U31(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [U41(tt(), V2)] = [1] V2 + [0] 257.24/67.91 >= [1] V2 + [0] 257.24/67.91 = [U42(isNeList(activate(V2)))] 257.24/67.91 257.24/67.91 [U42(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isNeList(V)] = [1] V + [0] 257.24/67.91 >= [1] V + [0] 257.24/67.91 = [U31(isQid(activate(V)))] 257.24/67.91 257.24/67.91 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.91 >= [1] V2 + [1] V1 + [0] 257.24/67.91 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.91 257.24/67.91 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.91 >= [1] V2 + [1] V1 + [0] 257.24/67.91 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.91 257.24/67.91 [U51(tt(), V2)] = [1] V2 + [0] 257.24/67.91 >= [1] V2 + [0] 257.24/67.91 = [U52(isList(activate(V2)))] 257.24/67.91 257.24/67.91 [U52(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [U61(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [U71(tt(), P)] = [1] P + [0] 257.24/67.91 >= [1] P + [0] 257.24/67.91 = [U72(isPal(activate(P)))] 257.24/67.91 257.24/67.91 [U72(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isPal(V)] = [1] V + [0] 257.24/67.91 >= [1] V + [0] 257.24/67.91 = [U81(isNePal(activate(V)))] 257.24/67.91 257.24/67.91 [isPal(n__nil())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [U81(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isQid(n__a())] = [1] 257.24/67.91 > [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isQid(n__e())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isQid(n__i())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isQid(n__o())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isQid(n__u())] = [2] 257.24/67.91 > [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isNePal(V)] = [1] V + [0] 257.24/67.91 >= [1] V + [0] 257.24/67.91 = [U61(isQid(activate(V)))] 257.24/67.91 257.24/67.91 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.91 >= [1] P + [1] I + [0] 257.24/67.91 = [U71(isQid(activate(I)), activate(P))] 257.24/67.91 257.24/67.91 [a()] = [1] 257.24/67.91 >= [1] 257.24/67.91 = [n__a()] 257.24/67.91 257.24/67.91 [e()] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [n__e()] 257.24/67.91 257.24/67.91 [i()] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [n__i()] 257.24/67.91 257.24/67.91 [o()] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [n__o()] 257.24/67.91 257.24/67.91 [u()] = [2] 257.24/67.91 >= [2] 257.24/67.91 = [n__u()] 257.24/67.91 257.24/67.91 257.24/67.91 We return to the main proof. 257.24/67.91 257.24/67.91 We are left with following problem, upon which TcT provides the 257.24/67.91 certificate MAYBE. 257.24/67.91 257.24/67.91 Strict Trs: 257.24/67.91 { __(X1, X2) -> n____(X1, X2) 257.24/67.91 , __(X, nil()) -> X 257.24/67.91 , __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.91 , __(nil(), X) -> X 257.24/67.91 , nil() -> n__nil() 257.24/67.91 , U11(tt()) -> tt() 257.24/67.91 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.91 , U22(tt()) -> tt() 257.24/67.91 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.91 , isList(n__nil()) -> tt() 257.24/67.91 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.91 , activate(X) -> X 257.24/67.91 , activate(n__nil()) -> nil() 257.24/67.91 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.91 , activate(n__a()) -> a() 257.24/67.91 , activate(n__e()) -> e() 257.24/67.91 , activate(n__i()) -> i() 257.24/67.91 , activate(n__o()) -> o() 257.24/67.91 , activate(n__u()) -> u() 257.24/67.91 , U31(tt()) -> tt() 257.24/67.91 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.91 , U42(tt()) -> tt() 257.24/67.91 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.91 , isNeList(n____(V1, V2)) -> 257.24/67.91 U41(isList(activate(V1)), activate(V2)) 257.24/67.91 , isNeList(n____(V1, V2)) -> 257.24/67.91 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.91 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.91 , U52(tt()) -> tt() 257.24/67.91 , U61(tt()) -> tt() 257.24/67.91 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.91 , U72(tt()) -> tt() 257.24/67.91 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.91 , isPal(n__nil()) -> tt() 257.24/67.91 , U81(tt()) -> tt() 257.24/67.91 , isQid(n__e()) -> tt() 257.24/67.91 , isQid(n__i()) -> tt() 257.24/67.91 , isQid(n__o()) -> tt() 257.24/67.91 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.91 , isNePal(n____(I, n____(P, I))) -> 257.24/67.91 U71(isQid(activate(I)), activate(P)) 257.24/67.91 , a() -> n__a() 257.24/67.91 , e() -> n__e() 257.24/67.91 , i() -> n__i() 257.24/67.91 , o() -> n__o() 257.24/67.91 , u() -> n__u() } 257.24/67.91 Weak Trs: 257.24/67.91 { isQid(n__a()) -> tt() 257.24/67.91 , isQid(n__u()) -> tt() } 257.24/67.91 Obligation: 257.24/67.91 derivational complexity 257.24/67.91 Answer: 257.24/67.91 MAYBE 257.24/67.91 257.24/67.91 We use the processor 'matrix interpretation of dimension 1' to 257.24/67.91 orient following rules strictly. 257.24/67.91 257.24/67.91 Trs: { isQid(n__e()) -> tt() } 257.24/67.91 257.24/67.91 The induced complexity on above rules (modulo remaining rules) is 257.24/67.91 YES(?,O(n^1)) . These rules are moved into the corresponding weak 257.24/67.91 component(s). 257.24/67.91 257.24/67.91 Sub-proof: 257.24/67.91 ---------- 257.24/67.91 TcT has computed the following triangular matrix interpretation. 257.24/67.91 257.24/67.91 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.91 257.24/67.91 [nil] = [0] 257.24/67.91 257.24/67.91 [U11](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [tt] = [0] 257.24/67.91 257.24/67.91 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.91 257.24/67.91 [U22](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [isList](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [activate](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [U31](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.91 257.24/67.91 [U42](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [isNeList](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.91 257.24/67.91 [U52](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [U61](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.91 257.24/67.91 [U72](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [isPal](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [U81](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [n__nil] = [0] 257.24/67.91 257.24/67.91 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.91 257.24/67.91 [isQid](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [isNePal](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [n__a] = [0] 257.24/67.91 257.24/67.91 [n__e] = [1] 257.24/67.91 257.24/67.91 [n__i] = [0] 257.24/67.91 257.24/67.91 [n__o] = [0] 257.24/67.91 257.24/67.91 [n__u] = [2] 257.24/67.91 257.24/67.91 [a] = [0] 257.24/67.91 257.24/67.91 [e] = [1] 257.24/67.91 257.24/67.91 [i] = [0] 257.24/67.91 257.24/67.91 [o] = [0] 257.24/67.91 257.24/67.91 [u] = [2] 257.24/67.91 257.24/67.91 The order satisfies the following ordering constraints: 257.24/67.91 257.24/67.91 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.91 >= [1] X1 + [1] X2 + [0] 257.24/67.91 = [n____(X1, X2)] 257.24/67.91 257.24/67.91 [__(X, nil())] = [1] X + [0] 257.24/67.91 >= [1] X + [0] 257.24/67.91 = [X] 257.24/67.91 257.24/67.91 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.91 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.91 = [__(X, __(Y, Z))] 257.24/67.91 257.24/67.91 [__(nil(), X)] = [1] X + [0] 257.24/67.91 >= [1] X + [0] 257.24/67.91 = [X] 257.24/67.91 257.24/67.91 [nil()] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [n__nil()] 257.24/67.91 257.24/67.91 [U11(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [U21(tt(), V2)] = [1] V2 + [0] 257.24/67.91 >= [1] V2 + [0] 257.24/67.91 = [U22(isList(activate(V2)))] 257.24/67.91 257.24/67.91 [U22(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isList(V)] = [1] V + [0] 257.24/67.91 >= [1] V + [0] 257.24/67.91 = [U11(isNeList(activate(V)))] 257.24/67.91 257.24/67.91 [isList(n__nil())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.91 >= [1] V2 + [1] V1 + [0] 257.24/67.91 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.91 257.24/67.91 [activate(X)] = [1] X + [0] 257.24/67.91 >= [1] X + [0] 257.24/67.91 = [X] 257.24/67.91 257.24/67.91 [activate(n__nil())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [nil()] 257.24/67.91 257.24/67.91 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.91 >= [1] X1 + [1] X2 + [0] 257.24/67.91 = [__(activate(X1), activate(X2))] 257.24/67.91 257.24/67.91 [activate(n__a())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [a()] 257.24/67.91 257.24/67.91 [activate(n__e())] = [1] 257.24/67.91 >= [1] 257.24/67.91 = [e()] 257.24/67.91 257.24/67.91 [activate(n__i())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [i()] 257.24/67.91 257.24/67.91 [activate(n__o())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [o()] 257.24/67.91 257.24/67.91 [activate(n__u())] = [2] 257.24/67.91 >= [2] 257.24/67.91 = [u()] 257.24/67.91 257.24/67.91 [U31(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [U41(tt(), V2)] = [1] V2 + [0] 257.24/67.91 >= [1] V2 + [0] 257.24/67.91 = [U42(isNeList(activate(V2)))] 257.24/67.91 257.24/67.91 [U42(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isNeList(V)] = [1] V + [0] 257.24/67.91 >= [1] V + [0] 257.24/67.91 = [U31(isQid(activate(V)))] 257.24/67.91 257.24/67.91 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.91 >= [1] V2 + [1] V1 + [0] 257.24/67.91 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.91 257.24/67.91 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.91 >= [1] V2 + [1] V1 + [0] 257.24/67.91 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.91 257.24/67.91 [U51(tt(), V2)] = [1] V2 + [0] 257.24/67.91 >= [1] V2 + [0] 257.24/67.91 = [U52(isList(activate(V2)))] 257.24/67.91 257.24/67.91 [U52(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [U61(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [U71(tt(), P)] = [1] P + [0] 257.24/67.91 >= [1] P + [0] 257.24/67.91 = [U72(isPal(activate(P)))] 257.24/67.91 257.24/67.91 [U72(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isPal(V)] = [1] V + [0] 257.24/67.91 >= [1] V + [0] 257.24/67.91 = [U81(isNePal(activate(V)))] 257.24/67.91 257.24/67.91 [isPal(n__nil())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [U81(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isQid(n__a())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isQid(n__e())] = [1] 257.24/67.91 > [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isQid(n__i())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isQid(n__o())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isQid(n__u())] = [2] 257.24/67.91 > [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isNePal(V)] = [1] V + [0] 257.24/67.91 >= [1] V + [0] 257.24/67.91 = [U61(isQid(activate(V)))] 257.24/67.91 257.24/67.91 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.91 >= [1] P + [1] I + [0] 257.24/67.91 = [U71(isQid(activate(I)), activate(P))] 257.24/67.91 257.24/67.91 [a()] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [n__a()] 257.24/67.91 257.24/67.91 [e()] = [1] 257.24/67.91 >= [1] 257.24/67.91 = [n__e()] 257.24/67.91 257.24/67.91 [i()] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [n__i()] 257.24/67.91 257.24/67.91 [o()] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [n__o()] 257.24/67.91 257.24/67.91 [u()] = [2] 257.24/67.91 >= [2] 257.24/67.91 = [n__u()] 257.24/67.91 257.24/67.91 257.24/67.91 We return to the main proof. 257.24/67.91 257.24/67.91 We are left with following problem, upon which TcT provides the 257.24/67.91 certificate MAYBE. 257.24/67.91 257.24/67.91 Strict Trs: 257.24/67.91 { __(X1, X2) -> n____(X1, X2) 257.24/67.91 , __(X, nil()) -> X 257.24/67.91 , __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.91 , __(nil(), X) -> X 257.24/67.91 , nil() -> n__nil() 257.24/67.91 , U11(tt()) -> tt() 257.24/67.91 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.91 , U22(tt()) -> tt() 257.24/67.91 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.91 , isList(n__nil()) -> tt() 257.24/67.91 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.91 , activate(X) -> X 257.24/67.91 , activate(n__nil()) -> nil() 257.24/67.91 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.91 , activate(n__a()) -> a() 257.24/67.91 , activate(n__e()) -> e() 257.24/67.91 , activate(n__i()) -> i() 257.24/67.91 , activate(n__o()) -> o() 257.24/67.91 , activate(n__u()) -> u() 257.24/67.91 , U31(tt()) -> tt() 257.24/67.91 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.91 , U42(tt()) -> tt() 257.24/67.91 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.91 , isNeList(n____(V1, V2)) -> 257.24/67.91 U41(isList(activate(V1)), activate(V2)) 257.24/67.91 , isNeList(n____(V1, V2)) -> 257.24/67.91 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.91 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.91 , U52(tt()) -> tt() 257.24/67.91 , U61(tt()) -> tt() 257.24/67.91 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.91 , U72(tt()) -> tt() 257.24/67.91 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.91 , isPal(n__nil()) -> tt() 257.24/67.91 , U81(tt()) -> tt() 257.24/67.91 , isQid(n__i()) -> tt() 257.24/67.91 , isQid(n__o()) -> tt() 257.24/67.91 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.91 , isNePal(n____(I, n____(P, I))) -> 257.24/67.91 U71(isQid(activate(I)), activate(P)) 257.24/67.91 , a() -> n__a() 257.24/67.91 , e() -> n__e() 257.24/67.91 , i() -> n__i() 257.24/67.91 , o() -> n__o() 257.24/67.91 , u() -> n__u() } 257.24/67.91 Weak Trs: 257.24/67.91 { isQid(n__a()) -> tt() 257.24/67.91 , isQid(n__e()) -> tt() 257.24/67.91 , isQid(n__u()) -> tt() } 257.24/67.91 Obligation: 257.24/67.91 derivational complexity 257.24/67.91 Answer: 257.24/67.91 MAYBE 257.24/67.91 257.24/67.91 We use the processor 'matrix interpretation of dimension 1' to 257.24/67.91 orient following rules strictly. 257.24/67.91 257.24/67.91 Trs: { isQid(n__o()) -> tt() } 257.24/67.91 257.24/67.91 The induced complexity on above rules (modulo remaining rules) is 257.24/67.91 YES(?,O(n^1)) . These rules are moved into the corresponding weak 257.24/67.91 component(s). 257.24/67.91 257.24/67.91 Sub-proof: 257.24/67.91 ---------- 257.24/67.91 TcT has computed the following triangular matrix interpretation. 257.24/67.91 257.24/67.91 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.91 257.24/67.91 [nil] = [0] 257.24/67.91 257.24/67.91 [U11](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [tt] = [0] 257.24/67.91 257.24/67.91 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.91 257.24/67.91 [U22](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [isList](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [activate](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [U31](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.91 257.24/67.91 [U42](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [isNeList](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.91 257.24/67.91 [U52](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [U61](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.91 257.24/67.91 [U72](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [isPal](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [U81](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [n__nil] = [0] 257.24/67.91 257.24/67.91 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.91 257.24/67.91 [isQid](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [isNePal](x1) = [1] x1 + [0] 257.24/67.91 257.24/67.91 [n__a] = [0] 257.24/67.91 257.24/67.91 [n__e] = [0] 257.24/67.91 257.24/67.91 [n__i] = [0] 257.24/67.91 257.24/67.91 [n__o] = [1] 257.24/67.91 257.24/67.91 [n__u] = [2] 257.24/67.91 257.24/67.91 [a] = [0] 257.24/67.91 257.24/67.91 [e] = [0] 257.24/67.91 257.24/67.91 [i] = [0] 257.24/67.91 257.24/67.91 [o] = [1] 257.24/67.91 257.24/67.91 [u] = [2] 257.24/67.91 257.24/67.91 The order satisfies the following ordering constraints: 257.24/67.91 257.24/67.91 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.91 >= [1] X1 + [1] X2 + [0] 257.24/67.91 = [n____(X1, X2)] 257.24/67.91 257.24/67.91 [__(X, nil())] = [1] X + [0] 257.24/67.91 >= [1] X + [0] 257.24/67.91 = [X] 257.24/67.91 257.24/67.91 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.91 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.91 = [__(X, __(Y, Z))] 257.24/67.91 257.24/67.91 [__(nil(), X)] = [1] X + [0] 257.24/67.91 >= [1] X + [0] 257.24/67.91 = [X] 257.24/67.91 257.24/67.91 [nil()] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [n__nil()] 257.24/67.91 257.24/67.91 [U11(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [U21(tt(), V2)] = [1] V2 + [0] 257.24/67.91 >= [1] V2 + [0] 257.24/67.91 = [U22(isList(activate(V2)))] 257.24/67.91 257.24/67.91 [U22(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isList(V)] = [1] V + [0] 257.24/67.91 >= [1] V + [0] 257.24/67.91 = [U11(isNeList(activate(V)))] 257.24/67.91 257.24/67.91 [isList(n__nil())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.91 >= [1] V2 + [1] V1 + [0] 257.24/67.91 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.91 257.24/67.91 [activate(X)] = [1] X + [0] 257.24/67.91 >= [1] X + [0] 257.24/67.91 = [X] 257.24/67.91 257.24/67.91 [activate(n__nil())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [nil()] 257.24/67.91 257.24/67.91 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.91 >= [1] X1 + [1] X2 + [0] 257.24/67.91 = [__(activate(X1), activate(X2))] 257.24/67.91 257.24/67.91 [activate(n__a())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [a()] 257.24/67.91 257.24/67.91 [activate(n__e())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [e()] 257.24/67.91 257.24/67.91 [activate(n__i())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [i()] 257.24/67.91 257.24/67.91 [activate(n__o())] = [1] 257.24/67.91 >= [1] 257.24/67.91 = [o()] 257.24/67.91 257.24/67.91 [activate(n__u())] = [2] 257.24/67.91 >= [2] 257.24/67.91 = [u()] 257.24/67.91 257.24/67.91 [U31(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [U41(tt(), V2)] = [1] V2 + [0] 257.24/67.91 >= [1] V2 + [0] 257.24/67.91 = [U42(isNeList(activate(V2)))] 257.24/67.91 257.24/67.91 [U42(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isNeList(V)] = [1] V + [0] 257.24/67.91 >= [1] V + [0] 257.24/67.91 = [U31(isQid(activate(V)))] 257.24/67.91 257.24/67.91 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.91 >= [1] V2 + [1] V1 + [0] 257.24/67.91 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.91 257.24/67.91 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.91 >= [1] V2 + [1] V1 + [0] 257.24/67.91 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.91 257.24/67.91 [U51(tt(), V2)] = [1] V2 + [0] 257.24/67.91 >= [1] V2 + [0] 257.24/67.91 = [U52(isList(activate(V2)))] 257.24/67.91 257.24/67.91 [U52(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [U61(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [U71(tt(), P)] = [1] P + [0] 257.24/67.91 >= [1] P + [0] 257.24/67.91 = [U72(isPal(activate(P)))] 257.24/67.91 257.24/67.91 [U72(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isPal(V)] = [1] V + [0] 257.24/67.91 >= [1] V + [0] 257.24/67.91 = [U81(isNePal(activate(V)))] 257.24/67.91 257.24/67.91 [isPal(n__nil())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [U81(tt())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isQid(n__a())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isQid(n__e())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isQid(n__i())] = [0] 257.24/67.91 >= [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isQid(n__o())] = [1] 257.24/67.91 > [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isQid(n__u())] = [2] 257.24/67.91 > [0] 257.24/67.91 = [tt()] 257.24/67.91 257.24/67.91 [isNePal(V)] = [1] V + [0] 257.24/67.91 >= [1] V + [0] 257.24/67.92 = [U61(isQid(activate(V)))] 257.24/67.92 257.24/67.92 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.92 >= [1] P + [1] I + [0] 257.24/67.92 = [U71(isQid(activate(I)), activate(P))] 257.24/67.92 257.24/67.92 [a()] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [n__a()] 257.24/67.92 257.24/67.92 [e()] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [n__e()] 257.24/67.92 257.24/67.92 [i()] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [n__i()] 257.24/67.92 257.24/67.92 [o()] = [1] 257.24/67.92 >= [1] 257.24/67.92 = [n__o()] 257.24/67.92 257.24/67.92 [u()] = [2] 257.24/67.92 >= [2] 257.24/67.92 = [n__u()] 257.24/67.92 257.24/67.92 257.24/67.92 We return to the main proof. 257.24/67.92 257.24/67.92 We are left with following problem, upon which TcT provides the 257.24/67.92 certificate MAYBE. 257.24/67.92 257.24/67.92 Strict Trs: 257.24/67.92 { __(X1, X2) -> n____(X1, X2) 257.24/67.92 , __(X, nil()) -> X 257.24/67.92 , __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.92 , __(nil(), X) -> X 257.24/67.92 , nil() -> n__nil() 257.24/67.92 , U11(tt()) -> tt() 257.24/67.92 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.92 , U22(tt()) -> tt() 257.24/67.92 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.92 , isList(n__nil()) -> tt() 257.24/67.92 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.92 , activate(X) -> X 257.24/67.92 , activate(n__nil()) -> nil() 257.24/67.92 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.92 , activate(n__a()) -> a() 257.24/67.92 , activate(n__e()) -> e() 257.24/67.92 , activate(n__i()) -> i() 257.24/67.92 , activate(n__o()) -> o() 257.24/67.92 , activate(n__u()) -> u() 257.24/67.92 , U31(tt()) -> tt() 257.24/67.92 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.92 , U42(tt()) -> tt() 257.24/67.92 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.92 , isNeList(n____(V1, V2)) -> 257.24/67.92 U41(isList(activate(V1)), activate(V2)) 257.24/67.92 , isNeList(n____(V1, V2)) -> 257.24/67.92 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.92 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.92 , U52(tt()) -> tt() 257.24/67.92 , U61(tt()) -> tt() 257.24/67.92 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.92 , U72(tt()) -> tt() 257.24/67.92 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.92 , isPal(n__nil()) -> tt() 257.24/67.92 , U81(tt()) -> tt() 257.24/67.92 , isQid(n__i()) -> tt() 257.24/67.92 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.92 , isNePal(n____(I, n____(P, I))) -> 257.24/67.92 U71(isQid(activate(I)), activate(P)) 257.24/67.92 , a() -> n__a() 257.24/67.92 , e() -> n__e() 257.24/67.92 , i() -> n__i() 257.24/67.92 , o() -> n__o() 257.24/67.92 , u() -> n__u() } 257.24/67.92 Weak Trs: 257.24/67.92 { isQid(n__a()) -> tt() 257.24/67.92 , isQid(n__e()) -> tt() 257.24/67.92 , isQid(n__o()) -> tt() 257.24/67.92 , isQid(n__u()) -> tt() } 257.24/67.92 Obligation: 257.24/67.92 derivational complexity 257.24/67.92 Answer: 257.24/67.92 MAYBE 257.24/67.92 257.24/67.92 The weightgap principle applies (using the following nonconstant 257.24/67.92 growth matrix-interpretation) 257.24/67.92 257.24/67.92 TcT has computed the following triangular matrix interpretation. 257.24/67.92 Note that the diagonal of the component-wise maxima of 257.24/67.92 interpretation-entries contains no more than 1 non-zero entries. 257.24/67.92 257.24/67.92 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [nil] = [0] 257.24/67.92 257.24/67.92 [U11](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [tt] = [0] 257.24/67.92 257.24/67.92 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [U22](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [isList](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [activate](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U31](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [U42](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [isNeList](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [U52](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U61](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [U72](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [isPal](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U81](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [n__nil] = [0] 257.24/67.92 257.24/67.92 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [isQid](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [isNePal](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [n__a] = [1] 257.24/67.92 257.24/67.92 [n__e] = [1] 257.24/67.92 257.24/67.92 [n__i] = [0] 257.24/67.92 257.24/67.92 [n__o] = [0] 257.24/67.92 257.24/67.92 [n__u] = [1] 257.24/67.92 257.24/67.92 [a] = [0] 257.24/67.92 257.24/67.92 [e] = [0] 257.24/67.92 257.24/67.92 [i] = [2] 257.24/67.92 257.24/67.92 [o] = [2] 257.24/67.92 257.24/67.92 [u] = [0] 257.24/67.92 257.24/67.92 The order satisfies the following ordering constraints: 257.24/67.92 257.24/67.92 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.92 >= [1] X1 + [1] X2 + [0] 257.24/67.92 = [n____(X1, X2)] 257.24/67.92 257.24/67.92 [__(X, nil())] = [1] X + [0] 257.24/67.92 >= [1] X + [0] 257.24/67.92 = [X] 257.24/67.92 257.24/67.92 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.92 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.92 = [__(X, __(Y, Z))] 257.24/67.92 257.24/67.92 [__(nil(), X)] = [1] X + [0] 257.24/67.92 >= [1] X + [0] 257.24/67.92 = [X] 257.24/67.92 257.24/67.92 [nil()] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [n__nil()] 257.24/67.92 257.24/67.92 [U11(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [U21(tt(), V2)] = [1] V2 + [0] 257.24/67.92 >= [1] V2 + [0] 257.24/67.92 = [U22(isList(activate(V2)))] 257.24/67.92 257.24/67.92 [U22(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isList(V)] = [1] V + [0] 257.24/67.92 >= [1] V + [0] 257.24/67.92 = [U11(isNeList(activate(V)))] 257.24/67.92 257.24/67.92 [isList(n__nil())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.92 >= [1] V2 + [1] V1 + [0] 257.24/67.92 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.92 257.24/67.92 [activate(X)] = [1] X + [0] 257.24/67.92 >= [1] X + [0] 257.24/67.92 = [X] 257.24/67.92 257.24/67.92 [activate(n__nil())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [nil()] 257.24/67.92 257.24/67.92 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.92 >= [1] X1 + [1] X2 + [0] 257.24/67.92 = [__(activate(X1), activate(X2))] 257.24/67.92 257.24/67.92 [activate(n__a())] = [1] 257.24/67.92 > [0] 257.24/67.92 = [a()] 257.24/67.92 257.24/67.92 [activate(n__e())] = [1] 257.24/67.92 > [0] 257.24/67.92 = [e()] 257.24/67.92 257.24/67.92 [activate(n__i())] = [0] 257.24/67.92 ? [2] 257.24/67.92 = [i()] 257.24/67.92 257.24/67.92 [activate(n__o())] = [0] 257.24/67.92 ? [2] 257.24/67.92 = [o()] 257.24/67.92 257.24/67.92 [activate(n__u())] = [1] 257.24/67.92 > [0] 257.24/67.92 = [u()] 257.24/67.92 257.24/67.92 [U31(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [U41(tt(), V2)] = [1] V2 + [0] 257.24/67.92 >= [1] V2 + [0] 257.24/67.92 = [U42(isNeList(activate(V2)))] 257.24/67.92 257.24/67.92 [U42(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isNeList(V)] = [1] V + [0] 257.24/67.92 >= [1] V + [0] 257.24/67.92 = [U31(isQid(activate(V)))] 257.24/67.92 257.24/67.92 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.92 >= [1] V2 + [1] V1 + [0] 257.24/67.92 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.92 257.24/67.92 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.92 >= [1] V2 + [1] V1 + [0] 257.24/67.92 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.92 257.24/67.92 [U51(tt(), V2)] = [1] V2 + [0] 257.24/67.92 >= [1] V2 + [0] 257.24/67.92 = [U52(isList(activate(V2)))] 257.24/67.92 257.24/67.92 [U52(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [U61(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [U71(tt(), P)] = [1] P + [0] 257.24/67.92 >= [1] P + [0] 257.24/67.92 = [U72(isPal(activate(P)))] 257.24/67.92 257.24/67.92 [U72(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isPal(V)] = [1] V + [0] 257.24/67.92 >= [1] V + [0] 257.24/67.92 = [U81(isNePal(activate(V)))] 257.24/67.92 257.24/67.92 [isPal(n__nil())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [U81(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isQid(n__a())] = [1] 257.24/67.92 > [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isQid(n__e())] = [1] 257.24/67.92 > [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isQid(n__i())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isQid(n__o())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isQid(n__u())] = [1] 257.24/67.92 > [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isNePal(V)] = [1] V + [0] 257.24/67.92 >= [1] V + [0] 257.24/67.92 = [U61(isQid(activate(V)))] 257.24/67.92 257.24/67.92 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.92 >= [1] P + [1] I + [0] 257.24/67.92 = [U71(isQid(activate(I)), activate(P))] 257.24/67.92 257.24/67.92 [a()] = [0] 257.24/67.92 ? [1] 257.24/67.92 = [n__a()] 257.24/67.92 257.24/67.92 [e()] = [0] 257.24/67.92 ? [1] 257.24/67.92 = [n__e()] 257.24/67.92 257.24/67.92 [i()] = [2] 257.24/67.92 > [0] 257.24/67.92 = [n__i()] 257.24/67.92 257.24/67.92 [o()] = [2] 257.24/67.92 > [0] 257.24/67.92 = [n__o()] 257.24/67.92 257.24/67.92 [u()] = [0] 257.24/67.92 ? [1] 257.24/67.92 = [n__u()] 257.24/67.92 257.24/67.92 257.24/67.92 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 257.24/67.92 257.24/67.92 We are left with following problem, upon which TcT provides the 257.24/67.92 certificate MAYBE. 257.24/67.92 257.24/67.92 Strict Trs: 257.24/67.92 { __(X1, X2) -> n____(X1, X2) 257.24/67.92 , __(X, nil()) -> X 257.24/67.92 , __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.92 , __(nil(), X) -> X 257.24/67.92 , nil() -> n__nil() 257.24/67.92 , U11(tt()) -> tt() 257.24/67.92 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.92 , U22(tt()) -> tt() 257.24/67.92 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.92 , isList(n__nil()) -> tt() 257.24/67.92 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.92 , activate(X) -> X 257.24/67.92 , activate(n__nil()) -> nil() 257.24/67.92 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.92 , activate(n__i()) -> i() 257.24/67.92 , activate(n__o()) -> o() 257.24/67.92 , U31(tt()) -> tt() 257.24/67.92 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.92 , U42(tt()) -> tt() 257.24/67.92 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.92 , isNeList(n____(V1, V2)) -> 257.24/67.92 U41(isList(activate(V1)), activate(V2)) 257.24/67.92 , isNeList(n____(V1, V2)) -> 257.24/67.92 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.92 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.92 , U52(tt()) -> tt() 257.24/67.92 , U61(tt()) -> tt() 257.24/67.92 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.92 , U72(tt()) -> tt() 257.24/67.92 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.92 , isPal(n__nil()) -> tt() 257.24/67.92 , U81(tt()) -> tt() 257.24/67.92 , isQid(n__i()) -> tt() 257.24/67.92 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.92 , isNePal(n____(I, n____(P, I))) -> 257.24/67.92 U71(isQid(activate(I)), activate(P)) 257.24/67.92 , a() -> n__a() 257.24/67.92 , e() -> n__e() 257.24/67.92 , u() -> n__u() } 257.24/67.92 Weak Trs: 257.24/67.92 { activate(n__a()) -> a() 257.24/67.92 , activate(n__e()) -> e() 257.24/67.92 , activate(n__u()) -> u() 257.24/67.92 , isQid(n__a()) -> tt() 257.24/67.92 , isQid(n__e()) -> tt() 257.24/67.92 , isQid(n__o()) -> tt() 257.24/67.92 , isQid(n__u()) -> tt() 257.24/67.92 , i() -> n__i() 257.24/67.92 , o() -> n__o() } 257.24/67.92 Obligation: 257.24/67.92 derivational complexity 257.24/67.92 Answer: 257.24/67.92 MAYBE 257.24/67.92 257.24/67.92 The weightgap principle applies (using the following nonconstant 257.24/67.92 growth matrix-interpretation) 257.24/67.92 257.24/67.92 TcT has computed the following triangular matrix interpretation. 257.24/67.92 Note that the diagonal of the component-wise maxima of 257.24/67.92 interpretation-entries contains no more than 1 non-zero entries. 257.24/67.92 257.24/67.92 [__](x1, x2) = [1] x1 + [1] x2 + [1] 257.24/67.92 257.24/67.92 [nil] = [0] 257.24/67.92 257.24/67.92 [U11](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [tt] = [0] 257.24/67.92 257.24/67.92 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [U22](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [isList](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [activate](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U31](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [U42](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [isNeList](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [U52](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U61](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [U72](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [isPal](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U81](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [n__nil] = [0] 257.24/67.92 257.24/67.92 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [isQid](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [isNePal](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [n__a] = [2] 257.24/67.92 257.24/67.92 [n__e] = [2] 257.24/67.92 257.24/67.92 [n__i] = [0] 257.24/67.92 257.24/67.92 [n__o] = [1] 257.24/67.92 257.24/67.92 [n__u] = [2] 257.24/67.92 257.24/67.92 [a] = [1] 257.24/67.92 257.24/67.92 [e] = [1] 257.24/67.92 257.24/67.92 [i] = [2] 257.24/67.92 257.24/67.92 [o] = [2] 257.24/67.92 257.24/67.92 [u] = [1] 257.24/67.92 257.24/67.92 The order satisfies the following ordering constraints: 257.24/67.92 257.24/67.92 [__(X1, X2)] = [1] X1 + [1] X2 + [1] 257.24/67.92 > [1] X1 + [1] X2 + [0] 257.24/67.92 = [n____(X1, X2)] 257.24/67.92 257.24/67.92 [__(X, nil())] = [1] X + [1] 257.24/67.92 > [1] X + [0] 257.24/67.92 = [X] 257.24/67.92 257.24/67.92 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [2] 257.24/67.92 >= [1] X + [1] Y + [1] Z + [2] 257.24/67.92 = [__(X, __(Y, Z))] 257.24/67.92 257.24/67.92 [__(nil(), X)] = [1] X + [1] 257.24/67.92 > [1] X + [0] 257.24/67.92 = [X] 257.24/67.92 257.24/67.92 [nil()] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [n__nil()] 257.24/67.92 257.24/67.92 [U11(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [U21(tt(), V2)] = [1] V2 + [0] 257.24/67.92 >= [1] V2 + [0] 257.24/67.92 = [U22(isList(activate(V2)))] 257.24/67.92 257.24/67.92 [U22(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isList(V)] = [1] V + [0] 257.24/67.92 >= [1] V + [0] 257.24/67.92 = [U11(isNeList(activate(V)))] 257.24/67.92 257.24/67.92 [isList(n__nil())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.92 >= [1] V2 + [1] V1 + [0] 257.24/67.92 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.92 257.24/67.92 [activate(X)] = [1] X + [0] 257.24/67.92 >= [1] X + [0] 257.24/67.92 = [X] 257.24/67.92 257.24/67.92 [activate(n__nil())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [nil()] 257.24/67.92 257.24/67.92 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.92 ? [1] X1 + [1] X2 + [1] 257.24/67.92 = [__(activate(X1), activate(X2))] 257.24/67.92 257.24/67.92 [activate(n__a())] = [2] 257.24/67.92 > [1] 257.24/67.92 = [a()] 257.24/67.92 257.24/67.92 [activate(n__e())] = [2] 257.24/67.92 > [1] 257.24/67.92 = [e()] 257.24/67.92 257.24/67.92 [activate(n__i())] = [0] 257.24/67.92 ? [2] 257.24/67.92 = [i()] 257.24/67.92 257.24/67.92 [activate(n__o())] = [1] 257.24/67.92 ? [2] 257.24/67.92 = [o()] 257.24/67.92 257.24/67.92 [activate(n__u())] = [2] 257.24/67.92 > [1] 257.24/67.92 = [u()] 257.24/67.92 257.24/67.92 [U31(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [U41(tt(), V2)] = [1] V2 + [0] 257.24/67.92 >= [1] V2 + [0] 257.24/67.92 = [U42(isNeList(activate(V2)))] 257.24/67.92 257.24/67.92 [U42(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isNeList(V)] = [1] V + [0] 257.24/67.92 >= [1] V + [0] 257.24/67.92 = [U31(isQid(activate(V)))] 257.24/67.92 257.24/67.92 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.92 >= [1] V2 + [1] V1 + [0] 257.24/67.92 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.92 257.24/67.92 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.92 >= [1] V2 + [1] V1 + [0] 257.24/67.92 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.92 257.24/67.92 [U51(tt(), V2)] = [1] V2 + [0] 257.24/67.92 >= [1] V2 + [0] 257.24/67.92 = [U52(isList(activate(V2)))] 257.24/67.92 257.24/67.92 [U52(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [U61(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [U71(tt(), P)] = [1] P + [0] 257.24/67.92 >= [1] P + [0] 257.24/67.92 = [U72(isPal(activate(P)))] 257.24/67.92 257.24/67.92 [U72(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isPal(V)] = [1] V + [0] 257.24/67.92 >= [1] V + [0] 257.24/67.92 = [U81(isNePal(activate(V)))] 257.24/67.92 257.24/67.92 [isPal(n__nil())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [U81(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isQid(n__a())] = [2] 257.24/67.92 > [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isQid(n__e())] = [2] 257.24/67.92 > [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isQid(n__i())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isQid(n__o())] = [1] 257.24/67.92 > [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isQid(n__u())] = [2] 257.24/67.92 > [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isNePal(V)] = [1] V + [0] 257.24/67.92 >= [1] V + [0] 257.24/67.92 = [U61(isQid(activate(V)))] 257.24/67.92 257.24/67.92 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.92 >= [1] P + [1] I + [0] 257.24/67.92 = [U71(isQid(activate(I)), activate(P))] 257.24/67.92 257.24/67.92 [a()] = [1] 257.24/67.92 ? [2] 257.24/67.92 = [n__a()] 257.24/67.92 257.24/67.92 [e()] = [1] 257.24/67.92 ? [2] 257.24/67.92 = [n__e()] 257.24/67.92 257.24/67.92 [i()] = [2] 257.24/67.92 > [0] 257.24/67.92 = [n__i()] 257.24/67.92 257.24/67.92 [o()] = [2] 257.24/67.92 > [1] 257.24/67.92 = [n__o()] 257.24/67.92 257.24/67.92 [u()] = [1] 257.24/67.92 ? [2] 257.24/67.92 = [n__u()] 257.24/67.92 257.24/67.92 257.24/67.92 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 257.24/67.92 257.24/67.92 We are left with following problem, upon which TcT provides the 257.24/67.92 certificate MAYBE. 257.24/67.92 257.24/67.92 Strict Trs: 257.24/67.92 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.92 , nil() -> n__nil() 257.24/67.92 , U11(tt()) -> tt() 257.24/67.92 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.92 , U22(tt()) -> tt() 257.24/67.92 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.92 , isList(n__nil()) -> tt() 257.24/67.92 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.92 , activate(X) -> X 257.24/67.92 , activate(n__nil()) -> nil() 257.24/67.92 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.92 , activate(n__i()) -> i() 257.24/67.92 , activate(n__o()) -> o() 257.24/67.92 , U31(tt()) -> tt() 257.24/67.92 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.92 , U42(tt()) -> tt() 257.24/67.92 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.92 , isNeList(n____(V1, V2)) -> 257.24/67.92 U41(isList(activate(V1)), activate(V2)) 257.24/67.92 , isNeList(n____(V1, V2)) -> 257.24/67.92 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.92 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.92 , U52(tt()) -> tt() 257.24/67.92 , U61(tt()) -> tt() 257.24/67.92 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.92 , U72(tt()) -> tt() 257.24/67.92 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.92 , isPal(n__nil()) -> tt() 257.24/67.92 , U81(tt()) -> tt() 257.24/67.92 , isQid(n__i()) -> tt() 257.24/67.92 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.92 , isNePal(n____(I, n____(P, I))) -> 257.24/67.92 U71(isQid(activate(I)), activate(P)) 257.24/67.92 , a() -> n__a() 257.24/67.92 , e() -> n__e() 257.24/67.92 , u() -> n__u() } 257.24/67.92 Weak Trs: 257.24/67.92 { __(X1, X2) -> n____(X1, X2) 257.24/67.92 , __(X, nil()) -> X 257.24/67.92 , __(nil(), X) -> X 257.24/67.92 , activate(n__a()) -> a() 257.24/67.92 , activate(n__e()) -> e() 257.24/67.92 , activate(n__u()) -> u() 257.24/67.92 , isQid(n__a()) -> tt() 257.24/67.92 , isQid(n__e()) -> tt() 257.24/67.92 , isQid(n__o()) -> tt() 257.24/67.92 , isQid(n__u()) -> tt() 257.24/67.92 , i() -> n__i() 257.24/67.92 , o() -> n__o() } 257.24/67.92 Obligation: 257.24/67.92 derivational complexity 257.24/67.92 Answer: 257.24/67.92 MAYBE 257.24/67.92 257.24/67.92 The weightgap principle applies (using the following nonconstant 257.24/67.92 growth matrix-interpretation) 257.24/67.92 257.24/67.92 TcT has computed the following triangular matrix interpretation. 257.24/67.92 Note that the diagonal of the component-wise maxima of 257.24/67.92 interpretation-entries contains no more than 1 non-zero entries. 257.24/67.92 257.24/67.92 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [nil] = [2] 257.24/67.92 257.24/67.92 [U11](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [tt] = [0] 257.24/67.92 257.24/67.92 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [U22](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [isList](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [activate](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U31](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [U42](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [isNeList](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [U52](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U61](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [U72](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [isPal](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [U81](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [n__nil] = [0] 257.24/67.92 257.24/67.92 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.92 257.24/67.92 [isQid](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [isNePal](x1) = [1] x1 + [0] 257.24/67.92 257.24/67.92 [n__a] = [2] 257.24/67.92 257.24/67.92 [n__e] = [2] 257.24/67.92 257.24/67.92 [n__i] = [0] 257.24/67.92 257.24/67.92 [n__o] = [1] 257.24/67.92 257.24/67.92 [n__u] = [2] 257.24/67.92 257.24/67.92 [a] = [1] 257.24/67.92 257.24/67.92 [e] = [1] 257.24/67.92 257.24/67.92 [i] = [2] 257.24/67.92 257.24/67.92 [o] = [2] 257.24/67.92 257.24/67.92 [u] = [1] 257.24/67.92 257.24/67.92 The order satisfies the following ordering constraints: 257.24/67.92 257.24/67.92 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.92 >= [1] X1 + [1] X2 + [0] 257.24/67.92 = [n____(X1, X2)] 257.24/67.92 257.24/67.92 [__(X, nil())] = [1] X + [2] 257.24/67.92 > [1] X + [0] 257.24/67.92 = [X] 257.24/67.92 257.24/67.92 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.92 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.92 = [__(X, __(Y, Z))] 257.24/67.92 257.24/67.92 [__(nil(), X)] = [1] X + [2] 257.24/67.92 > [1] X + [0] 257.24/67.92 = [X] 257.24/67.92 257.24/67.92 [nil()] = [2] 257.24/67.92 > [0] 257.24/67.92 = [n__nil()] 257.24/67.92 257.24/67.92 [U11(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [U21(tt(), V2)] = [1] V2 + [0] 257.24/67.92 >= [1] V2 + [0] 257.24/67.92 = [U22(isList(activate(V2)))] 257.24/67.92 257.24/67.92 [U22(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isList(V)] = [1] V + [0] 257.24/67.92 >= [1] V + [0] 257.24/67.92 = [U11(isNeList(activate(V)))] 257.24/67.92 257.24/67.92 [isList(n__nil())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.92 >= [1] V2 + [1] V1 + [0] 257.24/67.92 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.92 257.24/67.92 [activate(X)] = [1] X + [0] 257.24/67.92 >= [1] X + [0] 257.24/67.92 = [X] 257.24/67.92 257.24/67.92 [activate(n__nil())] = [0] 257.24/67.92 ? [2] 257.24/67.92 = [nil()] 257.24/67.92 257.24/67.92 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.92 >= [1] X1 + [1] X2 + [0] 257.24/67.92 = [__(activate(X1), activate(X2))] 257.24/67.92 257.24/67.92 [activate(n__a())] = [2] 257.24/67.92 > [1] 257.24/67.92 = [a()] 257.24/67.92 257.24/67.92 [activate(n__e())] = [2] 257.24/67.92 > [1] 257.24/67.92 = [e()] 257.24/67.92 257.24/67.92 [activate(n__i())] = [0] 257.24/67.92 ? [2] 257.24/67.92 = [i()] 257.24/67.92 257.24/67.92 [activate(n__o())] = [1] 257.24/67.92 ? [2] 257.24/67.92 = [o()] 257.24/67.92 257.24/67.92 [activate(n__u())] = [2] 257.24/67.92 > [1] 257.24/67.92 = [u()] 257.24/67.92 257.24/67.92 [U31(tt())] = [0] 257.24/67.92 >= [0] 257.24/67.92 = [tt()] 257.24/67.92 257.24/67.92 [U41(tt(), V2)] = [1] V2 + [0] 257.24/67.92 >= [1] V2 + [0] 257.24/67.92 = [U42(isNeList(activate(V2)))] 257.24/67.92 257.24/67.93 [U42(tt())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isNeList(V)] = [1] V + [0] 257.24/67.93 >= [1] V + [0] 257.24/67.93 = [U31(isQid(activate(V)))] 257.24/67.93 257.24/67.93 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.93 >= [1] V2 + [1] V1 + [0] 257.24/67.93 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.93 257.24/67.93 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.93 >= [1] V2 + [1] V1 + [0] 257.24/67.93 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.93 257.24/67.93 [U51(tt(), V2)] = [1] V2 + [0] 257.24/67.93 >= [1] V2 + [0] 257.24/67.93 = [U52(isList(activate(V2)))] 257.24/67.93 257.24/67.93 [U52(tt())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [U61(tt())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [U71(tt(), P)] = [1] P + [0] 257.24/67.93 >= [1] P + [0] 257.24/67.93 = [U72(isPal(activate(P)))] 257.24/67.93 257.24/67.93 [U72(tt())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isPal(V)] = [1] V + [0] 257.24/67.93 >= [1] V + [0] 257.24/67.93 = [U81(isNePal(activate(V)))] 257.24/67.93 257.24/67.93 [isPal(n__nil())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [U81(tt())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isQid(n__a())] = [2] 257.24/67.93 > [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isQid(n__e())] = [2] 257.24/67.93 > [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isQid(n__i())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isQid(n__o())] = [1] 257.24/67.93 > [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isQid(n__u())] = [2] 257.24/67.93 > [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isNePal(V)] = [1] V + [0] 257.24/67.93 >= [1] V + [0] 257.24/67.93 = [U61(isQid(activate(V)))] 257.24/67.93 257.24/67.93 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.93 >= [1] P + [1] I + [0] 257.24/67.93 = [U71(isQid(activate(I)), activate(P))] 257.24/67.93 257.24/67.93 [a()] = [1] 257.24/67.93 ? [2] 257.24/67.93 = [n__a()] 257.24/67.93 257.24/67.93 [e()] = [1] 257.24/67.93 ? [2] 257.24/67.93 = [n__e()] 257.24/67.93 257.24/67.93 [i()] = [2] 257.24/67.93 > [0] 257.24/67.93 = [n__i()] 257.24/67.93 257.24/67.93 [o()] = [2] 257.24/67.93 > [1] 257.24/67.93 = [n__o()] 257.24/67.93 257.24/67.93 [u()] = [1] 257.24/67.93 ? [2] 257.24/67.93 = [n__u()] 257.24/67.93 257.24/67.93 257.24/67.93 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 257.24/67.93 257.24/67.93 We are left with following problem, upon which TcT provides the 257.24/67.93 certificate MAYBE. 257.24/67.93 257.24/67.93 Strict Trs: 257.24/67.93 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.93 , U11(tt()) -> tt() 257.24/67.93 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.93 , U22(tt()) -> tt() 257.24/67.93 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.93 , isList(n__nil()) -> tt() 257.24/67.93 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.93 , activate(X) -> X 257.24/67.93 , activate(n__nil()) -> nil() 257.24/67.93 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.93 , activate(n__i()) -> i() 257.24/67.93 , activate(n__o()) -> o() 257.24/67.93 , U31(tt()) -> tt() 257.24/67.93 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.93 , U42(tt()) -> tt() 257.24/67.93 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.93 , isNeList(n____(V1, V2)) -> 257.24/67.93 U41(isList(activate(V1)), activate(V2)) 257.24/67.93 , isNeList(n____(V1, V2)) -> 257.24/67.93 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.93 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.93 , U52(tt()) -> tt() 257.24/67.93 , U61(tt()) -> tt() 257.24/67.93 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.93 , U72(tt()) -> tt() 257.24/67.93 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.93 , isPal(n__nil()) -> tt() 257.24/67.93 , U81(tt()) -> tt() 257.24/67.93 , isQid(n__i()) -> tt() 257.24/67.93 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.93 , isNePal(n____(I, n____(P, I))) -> 257.24/67.93 U71(isQid(activate(I)), activate(P)) 257.24/67.93 , a() -> n__a() 257.24/67.93 , e() -> n__e() 257.24/67.93 , u() -> n__u() } 257.24/67.93 Weak Trs: 257.24/67.93 { __(X1, X2) -> n____(X1, X2) 257.24/67.93 , __(X, nil()) -> X 257.24/67.93 , __(nil(), X) -> X 257.24/67.93 , nil() -> n__nil() 257.24/67.93 , activate(n__a()) -> a() 257.24/67.93 , activate(n__e()) -> e() 257.24/67.93 , activate(n__u()) -> u() 257.24/67.93 , isQid(n__a()) -> tt() 257.24/67.93 , isQid(n__e()) -> tt() 257.24/67.93 , isQid(n__o()) -> tt() 257.24/67.93 , isQid(n__u()) -> tt() 257.24/67.93 , i() -> n__i() 257.24/67.93 , o() -> n__o() } 257.24/67.93 Obligation: 257.24/67.93 derivational complexity 257.24/67.93 Answer: 257.24/67.93 MAYBE 257.24/67.93 257.24/67.93 The weightgap principle applies (using the following nonconstant 257.24/67.93 growth matrix-interpretation) 257.24/67.93 257.24/67.93 TcT has computed the following triangular matrix interpretation. 257.24/67.93 Note that the diagonal of the component-wise maxima of 257.24/67.93 interpretation-entries contains no more than 1 non-zero entries. 257.24/67.93 257.24/67.93 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.93 257.24/67.93 [nil] = [2] 257.24/67.93 257.24/67.93 [U11](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [tt] = [1] 257.24/67.93 257.24/67.93 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.93 257.24/67.93 [U22](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [isList](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [activate](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [U31](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.93 257.24/67.93 [U42](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [isNeList](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.93 257.24/67.93 [U52](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [U61](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.93 257.24/67.93 [U72](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [isPal](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [U81](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [n__nil] = [0] 257.24/67.93 257.24/67.93 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.93 257.24/67.93 [isQid](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [isNePal](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [n__a] = [2] 257.24/67.93 257.24/67.93 [n__e] = [2] 257.24/67.93 257.24/67.93 [n__i] = [0] 257.24/67.93 257.24/67.93 [n__o] = [1] 257.24/67.93 257.24/67.93 [n__u] = [2] 257.24/67.93 257.24/67.93 [a] = [1] 257.24/67.93 257.24/67.93 [e] = [1] 257.24/67.93 257.24/67.93 [i] = [2] 257.24/67.93 257.24/67.93 [o] = [2] 257.24/67.93 257.24/67.93 [u] = [1] 257.24/67.93 257.24/67.93 The order satisfies the following ordering constraints: 257.24/67.93 257.24/67.93 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.93 >= [1] X1 + [1] X2 + [0] 257.24/67.93 = [n____(X1, X2)] 257.24/67.93 257.24/67.93 [__(X, nil())] = [1] X + [2] 257.24/67.93 > [1] X + [0] 257.24/67.93 = [X] 257.24/67.93 257.24/67.93 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.93 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.93 = [__(X, __(Y, Z))] 257.24/67.93 257.24/67.93 [__(nil(), X)] = [1] X + [2] 257.24/67.93 > [1] X + [0] 257.24/67.93 = [X] 257.24/67.93 257.24/67.93 [nil()] = [2] 257.24/67.93 > [0] 257.24/67.93 = [n__nil()] 257.24/67.93 257.24/67.93 [U11(tt())] = [1] 257.24/67.93 >= [1] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [U21(tt(), V2)] = [1] V2 + [1] 257.24/67.93 > [1] V2 + [0] 257.24/67.93 = [U22(isList(activate(V2)))] 257.24/67.93 257.24/67.93 [U22(tt())] = [1] 257.24/67.93 >= [1] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isList(V)] = [1] V + [0] 257.24/67.93 >= [1] V + [0] 257.24/67.93 = [U11(isNeList(activate(V)))] 257.24/67.93 257.24/67.93 [isList(n__nil())] = [0] 257.24/67.93 ? [1] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.93 >= [1] V2 + [1] V1 + [0] 257.24/67.93 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.93 257.24/67.93 [activate(X)] = [1] X + [0] 257.24/67.93 >= [1] X + [0] 257.24/67.93 = [X] 257.24/67.93 257.24/67.93 [activate(n__nil())] = [0] 257.24/67.93 ? [2] 257.24/67.93 = [nil()] 257.24/67.93 257.24/67.93 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.93 >= [1] X1 + [1] X2 + [0] 257.24/67.93 = [__(activate(X1), activate(X2))] 257.24/67.93 257.24/67.93 [activate(n__a())] = [2] 257.24/67.93 > [1] 257.24/67.93 = [a()] 257.24/67.93 257.24/67.93 [activate(n__e())] = [2] 257.24/67.93 > [1] 257.24/67.93 = [e()] 257.24/67.93 257.24/67.93 [activate(n__i())] = [0] 257.24/67.93 ? [2] 257.24/67.93 = [i()] 257.24/67.93 257.24/67.93 [activate(n__o())] = [1] 257.24/67.93 ? [2] 257.24/67.93 = [o()] 257.24/67.93 257.24/67.93 [activate(n__u())] = [2] 257.24/67.93 > [1] 257.24/67.93 = [u()] 257.24/67.93 257.24/67.93 [U31(tt())] = [1] 257.24/67.93 >= [1] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [U41(tt(), V2)] = [1] V2 + [1] 257.24/67.93 > [1] V2 + [0] 257.24/67.93 = [U42(isNeList(activate(V2)))] 257.24/67.93 257.24/67.93 [U42(tt())] = [1] 257.24/67.93 >= [1] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isNeList(V)] = [1] V + [0] 257.24/67.93 >= [1] V + [0] 257.24/67.93 = [U31(isQid(activate(V)))] 257.24/67.93 257.24/67.93 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.93 >= [1] V2 + [1] V1 + [0] 257.24/67.93 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.93 257.24/67.93 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.93 >= [1] V2 + [1] V1 + [0] 257.24/67.93 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.93 257.24/67.93 [U51(tt(), V2)] = [1] V2 + [1] 257.24/67.93 > [1] V2 + [0] 257.24/67.93 = [U52(isList(activate(V2)))] 257.24/67.93 257.24/67.93 [U52(tt())] = [1] 257.24/67.93 >= [1] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [U61(tt())] = [1] 257.24/67.93 >= [1] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [U71(tt(), P)] = [1] P + [1] 257.24/67.93 > [1] P + [0] 257.24/67.93 = [U72(isPal(activate(P)))] 257.24/67.93 257.24/67.93 [U72(tt())] = [1] 257.24/67.93 >= [1] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isPal(V)] = [1] V + [0] 257.24/67.93 >= [1] V + [0] 257.24/67.93 = [U81(isNePal(activate(V)))] 257.24/67.93 257.24/67.93 [isPal(n__nil())] = [0] 257.24/67.93 ? [1] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [U81(tt())] = [1] 257.24/67.93 >= [1] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isQid(n__a())] = [2] 257.24/67.93 > [1] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isQid(n__e())] = [2] 257.24/67.93 > [1] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isQid(n__i())] = [0] 257.24/67.93 ? [1] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isQid(n__o())] = [1] 257.24/67.93 >= [1] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isQid(n__u())] = [2] 257.24/67.93 > [1] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isNePal(V)] = [1] V + [0] 257.24/67.93 >= [1] V + [0] 257.24/67.93 = [U61(isQid(activate(V)))] 257.24/67.93 257.24/67.93 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.93 >= [1] P + [1] I + [0] 257.24/67.93 = [U71(isQid(activate(I)), activate(P))] 257.24/67.93 257.24/67.93 [a()] = [1] 257.24/67.93 ? [2] 257.24/67.93 = [n__a()] 257.24/67.93 257.24/67.93 [e()] = [1] 257.24/67.93 ? [2] 257.24/67.93 = [n__e()] 257.24/67.93 257.24/67.93 [i()] = [2] 257.24/67.93 > [0] 257.24/67.93 = [n__i()] 257.24/67.93 257.24/67.93 [o()] = [2] 257.24/67.93 > [1] 257.24/67.93 = [n__o()] 257.24/67.93 257.24/67.93 [u()] = [1] 257.24/67.93 ? [2] 257.24/67.93 = [n__u()] 257.24/67.93 257.24/67.93 257.24/67.93 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 257.24/67.93 257.24/67.93 We are left with following problem, upon which TcT provides the 257.24/67.93 certificate MAYBE. 257.24/67.93 257.24/67.93 Strict Trs: 257.24/67.93 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.93 , U11(tt()) -> tt() 257.24/67.93 , U22(tt()) -> tt() 257.24/67.93 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.93 , isList(n__nil()) -> tt() 257.24/67.93 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.93 , activate(X) -> X 257.24/67.93 , activate(n__nil()) -> nil() 257.24/67.93 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.93 , activate(n__i()) -> i() 257.24/67.93 , activate(n__o()) -> o() 257.24/67.93 , U31(tt()) -> tt() 257.24/67.93 , U42(tt()) -> tt() 257.24/67.93 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.93 , isNeList(n____(V1, V2)) -> 257.24/67.93 U41(isList(activate(V1)), activate(V2)) 257.24/67.93 , isNeList(n____(V1, V2)) -> 257.24/67.93 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.93 , U52(tt()) -> tt() 257.24/67.93 , U61(tt()) -> tt() 257.24/67.93 , U72(tt()) -> tt() 257.24/67.93 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.93 , isPal(n__nil()) -> tt() 257.24/67.93 , U81(tt()) -> tt() 257.24/67.93 , isQid(n__i()) -> tt() 257.24/67.93 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.93 , isNePal(n____(I, n____(P, I))) -> 257.24/67.93 U71(isQid(activate(I)), activate(P)) 257.24/67.93 , a() -> n__a() 257.24/67.93 , e() -> n__e() 257.24/67.93 , u() -> n__u() } 257.24/67.93 Weak Trs: 257.24/67.93 { __(X1, X2) -> n____(X1, X2) 257.24/67.93 , __(X, nil()) -> X 257.24/67.93 , __(nil(), X) -> X 257.24/67.93 , nil() -> n__nil() 257.24/67.93 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.93 , activate(n__a()) -> a() 257.24/67.93 , activate(n__e()) -> e() 257.24/67.93 , activate(n__u()) -> u() 257.24/67.93 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.93 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.93 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.93 , isQid(n__a()) -> tt() 257.24/67.93 , isQid(n__e()) -> tt() 257.24/67.93 , isQid(n__o()) -> tt() 257.24/67.93 , isQid(n__u()) -> tt() 257.24/67.93 , i() -> n__i() 257.24/67.93 , o() -> n__o() } 257.24/67.93 Obligation: 257.24/67.93 derivational complexity 257.24/67.93 Answer: 257.24/67.93 MAYBE 257.24/67.93 257.24/67.93 We use the processor 'matrix interpretation of dimension 1' to 257.24/67.93 orient following rules strictly. 257.24/67.93 257.24/67.93 Trs: { isQid(n__i()) -> tt() } 257.24/67.93 257.24/67.93 The induced complexity on above rules (modulo remaining rules) is 257.24/67.93 YES(?,O(n^1)) . These rules are moved into the corresponding weak 257.24/67.93 component(s). 257.24/67.93 257.24/67.93 Sub-proof: 257.24/67.93 ---------- 257.24/67.93 TcT has computed the following triangular matrix interpretation. 257.24/67.93 257.24/67.93 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.93 257.24/67.93 [nil] = [0] 257.24/67.93 257.24/67.93 [U11](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [tt] = [0] 257.24/67.93 257.24/67.93 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.93 257.24/67.93 [U22](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [isList](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [activate](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [U31](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.93 257.24/67.93 [U42](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [isNeList](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.93 257.24/67.93 [U52](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [U61](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.93 257.24/67.93 [U72](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [isPal](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [U81](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [n__nil] = [0] 257.24/67.93 257.24/67.93 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.93 257.24/67.93 [isQid](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [isNePal](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [n__a] = [0] 257.24/67.93 257.24/67.93 [n__e] = [0] 257.24/67.93 257.24/67.93 [n__i] = [1] 257.24/67.93 257.24/67.93 [n__o] = [1] 257.24/67.93 257.24/67.93 [n__u] = [0] 257.24/67.93 257.24/67.93 [a] = [0] 257.24/67.93 257.24/67.93 [e] = [0] 257.24/67.93 257.24/67.93 [i] = [1] 257.24/67.93 257.24/67.93 [o] = [1] 257.24/67.93 257.24/67.93 [u] = [0] 257.24/67.93 257.24/67.93 The order satisfies the following ordering constraints: 257.24/67.93 257.24/67.93 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.93 >= [1] X1 + [1] X2 + [0] 257.24/67.93 = [n____(X1, X2)] 257.24/67.93 257.24/67.93 [__(X, nil())] = [1] X + [0] 257.24/67.93 >= [1] X + [0] 257.24/67.93 = [X] 257.24/67.93 257.24/67.93 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.93 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.93 = [__(X, __(Y, Z))] 257.24/67.93 257.24/67.93 [__(nil(), X)] = [1] X + [0] 257.24/67.93 >= [1] X + [0] 257.24/67.93 = [X] 257.24/67.93 257.24/67.93 [nil()] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [n__nil()] 257.24/67.93 257.24/67.93 [U11(tt())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [U21(tt(), V2)] = [1] V2 + [0] 257.24/67.93 >= [1] V2 + [0] 257.24/67.93 = [U22(isList(activate(V2)))] 257.24/67.93 257.24/67.93 [U22(tt())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isList(V)] = [1] V + [0] 257.24/67.93 >= [1] V + [0] 257.24/67.93 = [U11(isNeList(activate(V)))] 257.24/67.93 257.24/67.93 [isList(n__nil())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.93 >= [1] V2 + [1] V1 + [0] 257.24/67.93 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.93 257.24/67.93 [activate(X)] = [1] X + [0] 257.24/67.93 >= [1] X + [0] 257.24/67.93 = [X] 257.24/67.93 257.24/67.93 [activate(n__nil())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [nil()] 257.24/67.93 257.24/67.93 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.93 >= [1] X1 + [1] X2 + [0] 257.24/67.93 = [__(activate(X1), activate(X2))] 257.24/67.93 257.24/67.93 [activate(n__a())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [a()] 257.24/67.93 257.24/67.93 [activate(n__e())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [e()] 257.24/67.93 257.24/67.93 [activate(n__i())] = [1] 257.24/67.93 >= [1] 257.24/67.93 = [i()] 257.24/67.93 257.24/67.93 [activate(n__o())] = [1] 257.24/67.93 >= [1] 257.24/67.93 = [o()] 257.24/67.93 257.24/67.93 [activate(n__u())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [u()] 257.24/67.93 257.24/67.93 [U31(tt())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [U41(tt(), V2)] = [1] V2 + [0] 257.24/67.93 >= [1] V2 + [0] 257.24/67.93 = [U42(isNeList(activate(V2)))] 257.24/67.93 257.24/67.93 [U42(tt())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isNeList(V)] = [1] V + [0] 257.24/67.93 >= [1] V + [0] 257.24/67.93 = [U31(isQid(activate(V)))] 257.24/67.93 257.24/67.93 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.93 >= [1] V2 + [1] V1 + [0] 257.24/67.93 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.93 257.24/67.93 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.93 >= [1] V2 + [1] V1 + [0] 257.24/67.93 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.93 257.24/67.93 [U51(tt(), V2)] = [1] V2 + [0] 257.24/67.93 >= [1] V2 + [0] 257.24/67.93 = [U52(isList(activate(V2)))] 257.24/67.93 257.24/67.93 [U52(tt())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [U61(tt())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [U71(tt(), P)] = [1] P + [0] 257.24/67.93 >= [1] P + [0] 257.24/67.93 = [U72(isPal(activate(P)))] 257.24/67.93 257.24/67.93 [U72(tt())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isPal(V)] = [1] V + [0] 257.24/67.93 >= [1] V + [0] 257.24/67.93 = [U81(isNePal(activate(V)))] 257.24/67.93 257.24/67.93 [isPal(n__nil())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [U81(tt())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isQid(n__a())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isQid(n__e())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isQid(n__i())] = [1] 257.24/67.93 > [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isQid(n__o())] = [1] 257.24/67.93 > [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isQid(n__u())] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [tt()] 257.24/67.93 257.24/67.93 [isNePal(V)] = [1] V + [0] 257.24/67.93 >= [1] V + [0] 257.24/67.93 = [U61(isQid(activate(V)))] 257.24/67.93 257.24/67.93 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.93 >= [1] P + [1] I + [0] 257.24/67.93 = [U71(isQid(activate(I)), activate(P))] 257.24/67.93 257.24/67.93 [a()] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [n__a()] 257.24/67.93 257.24/67.93 [e()] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [n__e()] 257.24/67.93 257.24/67.93 [i()] = [1] 257.24/67.93 >= [1] 257.24/67.93 = [n__i()] 257.24/67.93 257.24/67.93 [o()] = [1] 257.24/67.93 >= [1] 257.24/67.93 = [n__o()] 257.24/67.93 257.24/67.93 [u()] = [0] 257.24/67.93 >= [0] 257.24/67.93 = [n__u()] 257.24/67.93 257.24/67.93 257.24/67.93 We return to the main proof. 257.24/67.93 257.24/67.93 We are left with following problem, upon which TcT provides the 257.24/67.93 certificate MAYBE. 257.24/67.93 257.24/67.93 Strict Trs: 257.24/67.93 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.93 , U11(tt()) -> tt() 257.24/67.93 , U22(tt()) -> tt() 257.24/67.93 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.93 , isList(n__nil()) -> tt() 257.24/67.93 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.93 , activate(X) -> X 257.24/67.93 , activate(n__nil()) -> nil() 257.24/67.93 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.93 , activate(n__i()) -> i() 257.24/67.93 , activate(n__o()) -> o() 257.24/67.93 , U31(tt()) -> tt() 257.24/67.93 , U42(tt()) -> tt() 257.24/67.93 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.93 , isNeList(n____(V1, V2)) -> 257.24/67.93 U41(isList(activate(V1)), activate(V2)) 257.24/67.93 , isNeList(n____(V1, V2)) -> 257.24/67.93 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.93 , U52(tt()) -> tt() 257.24/67.93 , U61(tt()) -> tt() 257.24/67.93 , U72(tt()) -> tt() 257.24/67.93 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.93 , isPal(n__nil()) -> tt() 257.24/67.93 , U81(tt()) -> tt() 257.24/67.93 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.93 , isNePal(n____(I, n____(P, I))) -> 257.24/67.93 U71(isQid(activate(I)), activate(P)) 257.24/67.93 , a() -> n__a() 257.24/67.93 , e() -> n__e() 257.24/67.93 , u() -> n__u() } 257.24/67.93 Weak Trs: 257.24/67.93 { __(X1, X2) -> n____(X1, X2) 257.24/67.93 , __(X, nil()) -> X 257.24/67.93 , __(nil(), X) -> X 257.24/67.93 , nil() -> n__nil() 257.24/67.93 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.93 , activate(n__a()) -> a() 257.24/67.93 , activate(n__e()) -> e() 257.24/67.93 , activate(n__u()) -> u() 257.24/67.93 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.93 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.93 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.93 , isQid(n__a()) -> tt() 257.24/67.93 , isQid(n__e()) -> tt() 257.24/67.93 , isQid(n__i()) -> tt() 257.24/67.93 , isQid(n__o()) -> tt() 257.24/67.93 , isQid(n__u()) -> tt() 257.24/67.93 , i() -> n__i() 257.24/67.93 , o() -> n__o() } 257.24/67.93 Obligation: 257.24/67.93 derivational complexity 257.24/67.93 Answer: 257.24/67.93 MAYBE 257.24/67.93 257.24/67.93 The weightgap principle applies (using the following nonconstant 257.24/67.93 growth matrix-interpretation) 257.24/67.93 257.24/67.93 TcT has computed the following triangular matrix interpretation. 257.24/67.93 Note that the diagonal of the component-wise maxima of 257.24/67.93 interpretation-entries contains no more than 1 non-zero entries. 257.24/67.93 257.24/67.93 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.93 257.24/67.93 [nil] = [2] 257.24/67.93 257.24/67.93 [U11](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [tt] = [1] 257.24/67.93 257.24/67.93 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.93 257.24/67.93 [U22](x1) = [1] x1 + [0] 257.24/67.93 257.24/67.93 [isList](x1) = [1] x1 + [1] 257.24/67.93 257.24/67.94 [activate](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U31](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.94 257.24/67.94 [U42](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [isNeList](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.94 257.24/67.94 [U52](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U61](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.94 257.24/67.94 [U72](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [isPal](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U81](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [n__nil] = [0] 257.24/67.94 257.24/67.94 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.94 257.24/67.94 [isQid](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [isNePal](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [n__a] = [2] 257.24/67.94 257.24/67.94 [n__e] = [2] 257.24/67.94 257.24/67.94 [n__i] = [1] 257.24/67.94 257.24/67.94 [n__o] = [1] 257.24/67.94 257.24/67.94 [n__u] = [2] 257.24/67.94 257.24/67.94 [a] = [1] 257.24/67.94 257.24/67.94 [e] = [1] 257.24/67.94 257.24/67.94 [i] = [2] 257.24/67.94 257.24/67.94 [o] = [2] 257.24/67.94 257.24/67.94 [u] = [1] 257.24/67.94 257.24/67.94 The order satisfies the following ordering constraints: 257.24/67.94 257.24/67.94 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.94 >= [1] X1 + [1] X2 + [0] 257.24/67.94 = [n____(X1, X2)] 257.24/67.94 257.24/67.94 [__(X, nil())] = [1] X + [2] 257.24/67.94 > [1] X + [0] 257.24/67.94 = [X] 257.24/67.94 257.24/67.94 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.94 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.94 = [__(X, __(Y, Z))] 257.24/67.94 257.24/67.94 [__(nil(), X)] = [1] X + [2] 257.24/67.94 > [1] X + [0] 257.24/67.94 = [X] 257.24/67.94 257.24/67.94 [nil()] = [2] 257.24/67.94 > [0] 257.24/67.94 = [n__nil()] 257.24/67.94 257.24/67.94 [U11(tt())] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [U21(tt(), V2)] = [1] V2 + [1] 257.24/67.94 >= [1] V2 + [1] 257.24/67.94 = [U22(isList(activate(V2)))] 257.24/67.94 257.24/67.94 [U22(tt())] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isList(V)] = [1] V + [1] 257.24/67.94 > [1] V + [0] 257.24/67.94 = [U11(isNeList(activate(V)))] 257.24/67.94 257.24/67.94 [isList(n__nil())] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [1] 257.24/67.94 >= [1] V2 + [1] V1 + [1] 257.24/67.94 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.94 257.24/67.94 [activate(X)] = [1] X + [0] 257.24/67.94 >= [1] X + [0] 257.24/67.94 = [X] 257.24/67.94 257.24/67.94 [activate(n__nil())] = [0] 257.24/67.94 ? [2] 257.24/67.94 = [nil()] 257.24/67.94 257.24/67.94 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.94 >= [1] X1 + [1] X2 + [0] 257.24/67.94 = [__(activate(X1), activate(X2))] 257.24/67.94 257.24/67.94 [activate(n__a())] = [2] 257.24/67.94 > [1] 257.24/67.94 = [a()] 257.24/67.94 257.24/67.94 [activate(n__e())] = [2] 257.24/67.94 > [1] 257.24/67.94 = [e()] 257.24/67.94 257.24/67.94 [activate(n__i())] = [1] 257.24/67.94 ? [2] 257.24/67.94 = [i()] 257.24/67.94 257.24/67.94 [activate(n__o())] = [1] 257.24/67.94 ? [2] 257.24/67.94 = [o()] 257.24/67.94 257.24/67.94 [activate(n__u())] = [2] 257.24/67.94 > [1] 257.24/67.94 = [u()] 257.24/67.94 257.24/67.94 [U31(tt())] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [U41(tt(), V2)] = [1] V2 + [1] 257.24/67.94 > [1] V2 + [0] 257.24/67.94 = [U42(isNeList(activate(V2)))] 257.24/67.94 257.24/67.94 [U42(tt())] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isNeList(V)] = [1] V + [0] 257.24/67.94 >= [1] V + [0] 257.24/67.94 = [U31(isQid(activate(V)))] 257.24/67.94 257.24/67.94 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.94 ? [1] V2 + [1] V1 + [1] 257.24/67.94 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.94 257.24/67.94 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.94 >= [1] V2 + [1] V1 + [0] 257.24/67.94 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.94 257.24/67.94 [U51(tt(), V2)] = [1] V2 + [1] 257.24/67.94 >= [1] V2 + [1] 257.24/67.94 = [U52(isList(activate(V2)))] 257.24/67.94 257.24/67.94 [U52(tt())] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [U61(tt())] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [U71(tt(), P)] = [1] P + [1] 257.24/67.94 > [1] P + [0] 257.24/67.94 = [U72(isPal(activate(P)))] 257.24/67.94 257.24/67.94 [U72(tt())] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isPal(V)] = [1] V + [0] 257.24/67.94 >= [1] V + [0] 257.24/67.94 = [U81(isNePal(activate(V)))] 257.24/67.94 257.24/67.94 [isPal(n__nil())] = [0] 257.24/67.94 ? [1] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [U81(tt())] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isQid(n__a())] = [2] 257.24/67.94 > [1] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isQid(n__e())] = [2] 257.24/67.94 > [1] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isQid(n__i())] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isQid(n__o())] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isQid(n__u())] = [2] 257.24/67.94 > [1] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isNePal(V)] = [1] V + [0] 257.24/67.94 >= [1] V + [0] 257.24/67.94 = [U61(isQid(activate(V)))] 257.24/67.94 257.24/67.94 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.94 >= [1] P + [1] I + [0] 257.24/67.94 = [U71(isQid(activate(I)), activate(P))] 257.24/67.94 257.24/67.94 [a()] = [1] 257.24/67.94 ? [2] 257.24/67.94 = [n__a()] 257.24/67.94 257.24/67.94 [e()] = [1] 257.24/67.94 ? [2] 257.24/67.94 = [n__e()] 257.24/67.94 257.24/67.94 [i()] = [2] 257.24/67.94 > [1] 257.24/67.94 = [n__i()] 257.24/67.94 257.24/67.94 [o()] = [2] 257.24/67.94 > [1] 257.24/67.94 = [n__o()] 257.24/67.94 257.24/67.94 [u()] = [1] 257.24/67.94 ? [2] 257.24/67.94 = [n__u()] 257.24/67.94 257.24/67.94 257.24/67.94 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 257.24/67.94 257.24/67.94 We are left with following problem, upon which TcT provides the 257.24/67.94 certificate MAYBE. 257.24/67.94 257.24/67.94 Strict Trs: 257.24/67.94 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.94 , U11(tt()) -> tt() 257.24/67.94 , U22(tt()) -> tt() 257.24/67.94 , isList(n__nil()) -> tt() 257.24/67.94 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.94 , activate(X) -> X 257.24/67.94 , activate(n__nil()) -> nil() 257.24/67.94 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.94 , activate(n__i()) -> i() 257.24/67.94 , activate(n__o()) -> o() 257.24/67.94 , U31(tt()) -> tt() 257.24/67.94 , U42(tt()) -> tt() 257.24/67.94 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.94 , isNeList(n____(V1, V2)) -> 257.24/67.94 U41(isList(activate(V1)), activate(V2)) 257.24/67.94 , isNeList(n____(V1, V2)) -> 257.24/67.94 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.94 , U52(tt()) -> tt() 257.24/67.94 , U61(tt()) -> tt() 257.24/67.94 , U72(tt()) -> tt() 257.24/67.94 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.94 , isPal(n__nil()) -> tt() 257.24/67.94 , U81(tt()) -> tt() 257.24/67.94 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.94 , isNePal(n____(I, n____(P, I))) -> 257.24/67.94 U71(isQid(activate(I)), activate(P)) 257.24/67.94 , a() -> n__a() 257.24/67.94 , e() -> n__e() 257.24/67.94 , u() -> n__u() } 257.24/67.94 Weak Trs: 257.24/67.94 { __(X1, X2) -> n____(X1, X2) 257.24/67.94 , __(X, nil()) -> X 257.24/67.94 , __(nil(), X) -> X 257.24/67.94 , nil() -> n__nil() 257.24/67.94 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.94 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.94 , activate(n__a()) -> a() 257.24/67.94 , activate(n__e()) -> e() 257.24/67.94 , activate(n__u()) -> u() 257.24/67.94 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.94 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.94 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.94 , isQid(n__a()) -> tt() 257.24/67.94 , isQid(n__e()) -> tt() 257.24/67.94 , isQid(n__i()) -> tt() 257.24/67.94 , isQid(n__o()) -> tt() 257.24/67.94 , isQid(n__u()) -> tt() 257.24/67.94 , i() -> n__i() 257.24/67.94 , o() -> n__o() } 257.24/67.94 Obligation: 257.24/67.94 derivational complexity 257.24/67.94 Answer: 257.24/67.94 MAYBE 257.24/67.94 257.24/67.94 We use the processor 'matrix interpretation of dimension 1' to 257.24/67.94 orient following rules strictly. 257.24/67.94 257.24/67.94 Trs: 257.24/67.94 { isPal(n__nil()) -> tt() 257.24/67.94 , isNePal(V) -> U61(isQid(activate(V))) } 257.24/67.94 257.24/67.94 The induced complexity on above rules (modulo remaining rules) is 257.24/67.94 YES(?,O(n^1)) . These rules are moved into the corresponding weak 257.24/67.94 component(s). 257.24/67.94 257.24/67.94 Sub-proof: 257.24/67.94 ---------- 257.24/67.94 TcT has computed the following triangular matrix interpretation. 257.24/67.94 257.24/67.94 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.94 257.24/67.94 [nil] = [0] 257.24/67.94 257.24/67.94 [U11](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [tt] = [0] 257.24/67.94 257.24/67.94 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.94 257.24/67.94 [U22](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [isList](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [activate](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U31](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.94 257.24/67.94 [U42](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [isNeList](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.94 257.24/67.94 [U52](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U61](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U71](x1, x2) = [1] x1 + [1] x2 + [1] 257.24/67.94 257.24/67.94 [U72](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [isPal](x1) = [1] x1 + [1] 257.24/67.94 257.24/67.94 [U81](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [n__nil] = [0] 257.24/67.94 257.24/67.94 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.94 257.24/67.94 [isQid](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [isNePal](x1) = [1] x1 + [1] 257.24/67.94 257.24/67.94 [n__a] = [0] 257.24/67.94 257.24/67.94 [n__e] = [0] 257.24/67.94 257.24/67.94 [n__i] = [1] 257.24/67.94 257.24/67.94 [n__o] = [0] 257.24/67.94 257.24/67.94 [n__u] = [0] 257.24/67.94 257.24/67.94 [a] = [0] 257.24/67.94 257.24/67.94 [e] = [0] 257.24/67.94 257.24/67.94 [i] = [1] 257.24/67.94 257.24/67.94 [o] = [0] 257.24/67.94 257.24/67.94 [u] = [0] 257.24/67.94 257.24/67.94 The order satisfies the following ordering constraints: 257.24/67.94 257.24/67.94 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.94 >= [1] X1 + [1] X2 + [0] 257.24/67.94 = [n____(X1, X2)] 257.24/67.94 257.24/67.94 [__(X, nil())] = [1] X + [0] 257.24/67.94 >= [1] X + [0] 257.24/67.94 = [X] 257.24/67.94 257.24/67.94 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.94 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.94 = [__(X, __(Y, Z))] 257.24/67.94 257.24/67.94 [__(nil(), X)] = [1] X + [0] 257.24/67.94 >= [1] X + [0] 257.24/67.94 = [X] 257.24/67.94 257.24/67.94 [nil()] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [n__nil()] 257.24/67.94 257.24/67.94 [U11(tt())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [U21(tt(), V2)] = [1] V2 + [0] 257.24/67.94 >= [1] V2 + [0] 257.24/67.94 = [U22(isList(activate(V2)))] 257.24/67.94 257.24/67.94 [U22(tt())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isList(V)] = [1] V + [0] 257.24/67.94 >= [1] V + [0] 257.24/67.94 = [U11(isNeList(activate(V)))] 257.24/67.94 257.24/67.94 [isList(n__nil())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.94 >= [1] V2 + [1] V1 + [0] 257.24/67.94 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.94 257.24/67.94 [activate(X)] = [1] X + [0] 257.24/67.94 >= [1] X + [0] 257.24/67.94 = [X] 257.24/67.94 257.24/67.94 [activate(n__nil())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [nil()] 257.24/67.94 257.24/67.94 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.94 >= [1] X1 + [1] X2 + [0] 257.24/67.94 = [__(activate(X1), activate(X2))] 257.24/67.94 257.24/67.94 [activate(n__a())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [a()] 257.24/67.94 257.24/67.94 [activate(n__e())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [e()] 257.24/67.94 257.24/67.94 [activate(n__i())] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [i()] 257.24/67.94 257.24/67.94 [activate(n__o())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [o()] 257.24/67.94 257.24/67.94 [activate(n__u())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [u()] 257.24/67.94 257.24/67.94 [U31(tt())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [U41(tt(), V2)] = [1] V2 + [0] 257.24/67.94 >= [1] V2 + [0] 257.24/67.94 = [U42(isNeList(activate(V2)))] 257.24/67.94 257.24/67.94 [U42(tt())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isNeList(V)] = [1] V + [0] 257.24/67.94 >= [1] V + [0] 257.24/67.94 = [U31(isQid(activate(V)))] 257.24/67.94 257.24/67.94 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.94 >= [1] V2 + [1] V1 + [0] 257.24/67.94 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.94 257.24/67.94 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.94 >= [1] V2 + [1] V1 + [0] 257.24/67.94 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.94 257.24/67.94 [U51(tt(), V2)] = [1] V2 + [0] 257.24/67.94 >= [1] V2 + [0] 257.24/67.94 = [U52(isList(activate(V2)))] 257.24/67.94 257.24/67.94 [U52(tt())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [U61(tt())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [U71(tt(), P)] = [1] P + [1] 257.24/67.94 >= [1] P + [1] 257.24/67.94 = [U72(isPal(activate(P)))] 257.24/67.94 257.24/67.94 [U72(tt())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isPal(V)] = [1] V + [1] 257.24/67.94 >= [1] V + [1] 257.24/67.94 = [U81(isNePal(activate(V)))] 257.24/67.94 257.24/67.94 [isPal(n__nil())] = [1] 257.24/67.94 > [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [U81(tt())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isQid(n__a())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isQid(n__e())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isQid(n__i())] = [1] 257.24/67.94 > [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isQid(n__o())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isQid(n__u())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isNePal(V)] = [1] V + [1] 257.24/67.94 > [1] V + [0] 257.24/67.94 = [U61(isQid(activate(V)))] 257.24/67.94 257.24/67.94 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [1] 257.24/67.94 >= [1] P + [1] I + [1] 257.24/67.94 = [U71(isQid(activate(I)), activate(P))] 257.24/67.94 257.24/67.94 [a()] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [n__a()] 257.24/67.94 257.24/67.94 [e()] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [n__e()] 257.24/67.94 257.24/67.94 [i()] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [n__i()] 257.24/67.94 257.24/67.94 [o()] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [n__o()] 257.24/67.94 257.24/67.94 [u()] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [n__u()] 257.24/67.94 257.24/67.94 257.24/67.94 We return to the main proof. 257.24/67.94 257.24/67.94 We are left with following problem, upon which TcT provides the 257.24/67.94 certificate MAYBE. 257.24/67.94 257.24/67.94 Strict Trs: 257.24/67.94 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.94 , U11(tt()) -> tt() 257.24/67.94 , U22(tt()) -> tt() 257.24/67.94 , isList(n__nil()) -> tt() 257.24/67.94 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.94 , activate(X) -> X 257.24/67.94 , activate(n__nil()) -> nil() 257.24/67.94 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.94 , activate(n__i()) -> i() 257.24/67.94 , activate(n__o()) -> o() 257.24/67.94 , U31(tt()) -> tt() 257.24/67.94 , U42(tt()) -> tt() 257.24/67.94 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.94 , isNeList(n____(V1, V2)) -> 257.24/67.94 U41(isList(activate(V1)), activate(V2)) 257.24/67.94 , isNeList(n____(V1, V2)) -> 257.24/67.94 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.94 , U52(tt()) -> tt() 257.24/67.94 , U61(tt()) -> tt() 257.24/67.94 , U72(tt()) -> tt() 257.24/67.94 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.94 , U81(tt()) -> tt() 257.24/67.94 , isNePal(n____(I, n____(P, I))) -> 257.24/67.94 U71(isQid(activate(I)), activate(P)) 257.24/67.94 , a() -> n__a() 257.24/67.94 , e() -> n__e() 257.24/67.94 , u() -> n__u() } 257.24/67.94 Weak Trs: 257.24/67.94 { __(X1, X2) -> n____(X1, X2) 257.24/67.94 , __(X, nil()) -> X 257.24/67.94 , __(nil(), X) -> X 257.24/67.94 , nil() -> n__nil() 257.24/67.94 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.94 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.94 , activate(n__a()) -> a() 257.24/67.94 , activate(n__e()) -> e() 257.24/67.94 , activate(n__u()) -> u() 257.24/67.94 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.94 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.94 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.94 , isPal(n__nil()) -> tt() 257.24/67.94 , isQid(n__a()) -> tt() 257.24/67.94 , isQid(n__e()) -> tt() 257.24/67.94 , isQid(n__i()) -> tt() 257.24/67.94 , isQid(n__o()) -> tt() 257.24/67.94 , isQid(n__u()) -> tt() 257.24/67.94 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.94 , i() -> n__i() 257.24/67.94 , o() -> n__o() } 257.24/67.94 Obligation: 257.24/67.94 derivational complexity 257.24/67.94 Answer: 257.24/67.94 MAYBE 257.24/67.94 257.24/67.94 We use the processor 'matrix interpretation of dimension 1' to 257.24/67.94 orient following rules strictly. 257.24/67.94 257.24/67.94 Trs: { isList(n__nil()) -> tt() } 257.24/67.94 257.24/67.94 The induced complexity on above rules (modulo remaining rules) is 257.24/67.94 YES(?,O(n^1)) . These rules are moved into the corresponding weak 257.24/67.94 component(s). 257.24/67.94 257.24/67.94 Sub-proof: 257.24/67.94 ---------- 257.24/67.94 TcT has computed the following triangular matrix interpretation. 257.24/67.94 257.24/67.94 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.94 257.24/67.94 [nil] = [1] 257.24/67.94 257.24/67.94 [U11](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [tt] = [0] 257.24/67.94 257.24/67.94 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.94 257.24/67.94 [U22](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [isList](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [activate](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U31](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.94 257.24/67.94 [U42](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [isNeList](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.94 257.24/67.94 [U52](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U61](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.94 257.24/67.94 [U72](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [isPal](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [U81](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [n__nil] = [1] 257.24/67.94 257.24/67.94 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.94 257.24/67.94 [isQid](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [isNePal](x1) = [1] x1 + [0] 257.24/67.94 257.24/67.94 [n__a] = [0] 257.24/67.94 257.24/67.94 [n__e] = [0] 257.24/67.94 257.24/67.94 [n__i] = [1] 257.24/67.94 257.24/67.94 [n__o] = [0] 257.24/67.94 257.24/67.94 [n__u] = [0] 257.24/67.94 257.24/67.94 [a] = [0] 257.24/67.94 257.24/67.94 [e] = [0] 257.24/67.94 257.24/67.94 [i] = [1] 257.24/67.94 257.24/67.94 [o] = [0] 257.24/67.94 257.24/67.94 [u] = [0] 257.24/67.94 257.24/67.94 The order satisfies the following ordering constraints: 257.24/67.94 257.24/67.94 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.94 >= [1] X1 + [1] X2 + [0] 257.24/67.94 = [n____(X1, X2)] 257.24/67.94 257.24/67.94 [__(X, nil())] = [1] X + [1] 257.24/67.94 > [1] X + [0] 257.24/67.94 = [X] 257.24/67.94 257.24/67.94 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.94 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.94 = [__(X, __(Y, Z))] 257.24/67.94 257.24/67.94 [__(nil(), X)] = [1] X + [1] 257.24/67.94 > [1] X + [0] 257.24/67.94 = [X] 257.24/67.94 257.24/67.94 [nil()] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [n__nil()] 257.24/67.94 257.24/67.94 [U11(tt())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [U21(tt(), V2)] = [1] V2 + [0] 257.24/67.94 >= [1] V2 + [0] 257.24/67.94 = [U22(isList(activate(V2)))] 257.24/67.94 257.24/67.94 [U22(tt())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isList(V)] = [1] V + [0] 257.24/67.94 >= [1] V + [0] 257.24/67.94 = [U11(isNeList(activate(V)))] 257.24/67.94 257.24/67.94 [isList(n__nil())] = [1] 257.24/67.94 > [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.94 >= [1] V2 + [1] V1 + [0] 257.24/67.94 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.94 257.24/67.94 [activate(X)] = [1] X + [0] 257.24/67.94 >= [1] X + [0] 257.24/67.94 = [X] 257.24/67.94 257.24/67.94 [activate(n__nil())] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [nil()] 257.24/67.94 257.24/67.94 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.94 >= [1] X1 + [1] X2 + [0] 257.24/67.94 = [__(activate(X1), activate(X2))] 257.24/67.94 257.24/67.94 [activate(n__a())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [a()] 257.24/67.94 257.24/67.94 [activate(n__e())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [e()] 257.24/67.94 257.24/67.94 [activate(n__i())] = [1] 257.24/67.94 >= [1] 257.24/67.94 = [i()] 257.24/67.94 257.24/67.94 [activate(n__o())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [o()] 257.24/67.94 257.24/67.94 [activate(n__u())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [u()] 257.24/67.94 257.24/67.94 [U31(tt())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [U41(tt(), V2)] = [1] V2 + [0] 257.24/67.94 >= [1] V2 + [0] 257.24/67.94 = [U42(isNeList(activate(V2)))] 257.24/67.94 257.24/67.94 [U42(tt())] = [0] 257.24/67.94 >= [0] 257.24/67.94 = [tt()] 257.24/67.94 257.24/67.94 [isNeList(V)] = [1] V + [0] 257.24/67.94 >= [1] V + [0] 257.24/67.94 = [U31(isQid(activate(V)))] 257.24/67.94 257.24/67.94 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.94 >= [1] V2 + [1] V1 + [0] 257.24/67.94 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.95 257.24/67.95 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.95 >= [1] V2 + [1] V1 + [0] 257.24/67.95 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.95 257.24/67.95 [U51(tt(), V2)] = [1] V2 + [0] 257.24/67.95 >= [1] V2 + [0] 257.24/67.95 = [U52(isList(activate(V2)))] 257.24/67.95 257.24/67.95 [U52(tt())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [U61(tt())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [U71(tt(), P)] = [1] P + [0] 257.24/67.95 >= [1] P + [0] 257.24/67.95 = [U72(isPal(activate(P)))] 257.24/67.95 257.24/67.95 [U72(tt())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isPal(V)] = [1] V + [0] 257.24/67.95 >= [1] V + [0] 257.24/67.95 = [U81(isNePal(activate(V)))] 257.24/67.95 257.24/67.95 [isPal(n__nil())] = [1] 257.24/67.95 > [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [U81(tt())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isQid(n__a())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isQid(n__e())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isQid(n__i())] = [1] 257.24/67.95 > [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isQid(n__o())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isQid(n__u())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isNePal(V)] = [1] V + [0] 257.24/67.95 >= [1] V + [0] 257.24/67.95 = [U61(isQid(activate(V)))] 257.24/67.95 257.24/67.95 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.95 >= [1] P + [1] I + [0] 257.24/67.95 = [U71(isQid(activate(I)), activate(P))] 257.24/67.95 257.24/67.95 [a()] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [n__a()] 257.24/67.95 257.24/67.95 [e()] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [n__e()] 257.24/67.95 257.24/67.95 [i()] = [1] 257.24/67.95 >= [1] 257.24/67.95 = [n__i()] 257.24/67.95 257.24/67.95 [o()] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [n__o()] 257.24/67.95 257.24/67.95 [u()] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [n__u()] 257.24/67.95 257.24/67.95 257.24/67.95 We return to the main proof. 257.24/67.95 257.24/67.95 We are left with following problem, upon which TcT provides the 257.24/67.95 certificate MAYBE. 257.24/67.95 257.24/67.95 Strict Trs: 257.24/67.95 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.95 , U11(tt()) -> tt() 257.24/67.95 , U22(tt()) -> tt() 257.24/67.95 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.95 , activate(X) -> X 257.24/67.95 , activate(n__nil()) -> nil() 257.24/67.95 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.95 , activate(n__i()) -> i() 257.24/67.95 , activate(n__o()) -> o() 257.24/67.95 , U31(tt()) -> tt() 257.24/67.95 , U42(tt()) -> tt() 257.24/67.95 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.95 , isNeList(n____(V1, V2)) -> 257.24/67.95 U41(isList(activate(V1)), activate(V2)) 257.24/67.95 , isNeList(n____(V1, V2)) -> 257.24/67.95 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.95 , U52(tt()) -> tt() 257.24/67.95 , U61(tt()) -> tt() 257.24/67.95 , U72(tt()) -> tt() 257.24/67.95 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.95 , U81(tt()) -> tt() 257.24/67.95 , isNePal(n____(I, n____(P, I))) -> 257.24/67.95 U71(isQid(activate(I)), activate(P)) 257.24/67.95 , a() -> n__a() 257.24/67.95 , e() -> n__e() 257.24/67.95 , u() -> n__u() } 257.24/67.95 Weak Trs: 257.24/67.95 { __(X1, X2) -> n____(X1, X2) 257.24/67.95 , __(X, nil()) -> X 257.24/67.95 , __(nil(), X) -> X 257.24/67.95 , nil() -> n__nil() 257.24/67.95 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.95 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.95 , isList(n__nil()) -> tt() 257.24/67.95 , activate(n__a()) -> a() 257.24/67.95 , activate(n__e()) -> e() 257.24/67.95 , activate(n__u()) -> u() 257.24/67.95 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.95 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.95 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.95 , isPal(n__nil()) -> tt() 257.24/67.95 , isQid(n__a()) -> tt() 257.24/67.95 , isQid(n__e()) -> tt() 257.24/67.95 , isQid(n__i()) -> tt() 257.24/67.95 , isQid(n__o()) -> tt() 257.24/67.95 , isQid(n__u()) -> tt() 257.24/67.95 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.95 , i() -> n__i() 257.24/67.95 , o() -> n__o() } 257.24/67.95 Obligation: 257.24/67.95 derivational complexity 257.24/67.95 Answer: 257.24/67.95 MAYBE 257.24/67.95 257.24/67.95 The weightgap principle applies (using the following nonconstant 257.24/67.95 growth matrix-interpretation) 257.24/67.95 257.24/67.95 TcT has computed the following triangular matrix interpretation. 257.24/67.95 Note that the diagonal of the component-wise maxima of 257.24/67.95 interpretation-entries contains no more than 1 non-zero entries. 257.24/67.95 257.24/67.95 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.95 257.24/67.95 [nil] = [2] 257.24/67.95 257.24/67.95 [U11](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [tt] = [1] 257.24/67.95 257.24/67.95 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.95 257.24/67.95 [U22](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [isList](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [activate](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [U31](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.95 257.24/67.95 [U42](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [isNeList](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.95 257.24/67.95 [U52](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [U61](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.95 257.24/67.95 [U72](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [isPal](x1) = [1] x1 + [1] 257.24/67.95 257.24/67.95 [U81](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [n__nil] = [1] 257.24/67.95 257.24/67.95 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.95 257.24/67.95 [isQid](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [isNePal](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [n__a] = [2] 257.24/67.95 257.24/67.95 [n__e] = [2] 257.24/67.95 257.24/67.95 [n__i] = [1] 257.24/67.95 257.24/67.95 [n__o] = [1] 257.24/67.95 257.24/67.95 [n__u] = [2] 257.24/67.95 257.24/67.95 [a] = [1] 257.24/67.95 257.24/67.95 [e] = [1] 257.24/67.95 257.24/67.95 [i] = [2] 257.24/67.95 257.24/67.95 [o] = [2] 257.24/67.95 257.24/67.95 [u] = [1] 257.24/67.95 257.24/67.95 The order satisfies the following ordering constraints: 257.24/67.95 257.24/67.95 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.95 >= [1] X1 + [1] X2 + [0] 257.24/67.95 = [n____(X1, X2)] 257.24/67.95 257.24/67.95 [__(X, nil())] = [1] X + [2] 257.24/67.95 > [1] X + [0] 257.24/67.95 = [X] 257.24/67.95 257.24/67.95 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.95 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.95 = [__(X, __(Y, Z))] 257.24/67.95 257.24/67.95 [__(nil(), X)] = [1] X + [2] 257.24/67.95 > [1] X + [0] 257.24/67.95 = [X] 257.24/67.95 257.24/67.95 [nil()] = [2] 257.24/67.95 > [1] 257.24/67.95 = [n__nil()] 257.24/67.95 257.24/67.95 [U11(tt())] = [1] 257.24/67.95 >= [1] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [U21(tt(), V2)] = [1] V2 + [1] 257.24/67.95 > [1] V2 + [0] 257.24/67.95 = [U22(isList(activate(V2)))] 257.24/67.95 257.24/67.95 [U22(tt())] = [1] 257.24/67.95 >= [1] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isList(V)] = [1] V + [0] 257.24/67.95 >= [1] V + [0] 257.24/67.95 = [U11(isNeList(activate(V)))] 257.24/67.95 257.24/67.95 [isList(n__nil())] = [1] 257.24/67.95 >= [1] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.95 >= [1] V2 + [1] V1 + [0] 257.24/67.95 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.95 257.24/67.95 [activate(X)] = [1] X + [0] 257.24/67.95 >= [1] X + [0] 257.24/67.95 = [X] 257.24/67.95 257.24/67.95 [activate(n__nil())] = [1] 257.24/67.95 ? [2] 257.24/67.95 = [nil()] 257.24/67.95 257.24/67.95 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.95 >= [1] X1 + [1] X2 + [0] 257.24/67.95 = [__(activate(X1), activate(X2))] 257.24/67.95 257.24/67.95 [activate(n__a())] = [2] 257.24/67.95 > [1] 257.24/67.95 = [a()] 257.24/67.95 257.24/67.95 [activate(n__e())] = [2] 257.24/67.95 > [1] 257.24/67.95 = [e()] 257.24/67.95 257.24/67.95 [activate(n__i())] = [1] 257.24/67.95 ? [2] 257.24/67.95 = [i()] 257.24/67.95 257.24/67.95 [activate(n__o())] = [1] 257.24/67.95 ? [2] 257.24/67.95 = [o()] 257.24/67.95 257.24/67.95 [activate(n__u())] = [2] 257.24/67.95 > [1] 257.24/67.95 = [u()] 257.24/67.95 257.24/67.95 [U31(tt())] = [1] 257.24/67.95 >= [1] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [U41(tt(), V2)] = [1] V2 + [1] 257.24/67.95 > [1] V2 + [0] 257.24/67.95 = [U42(isNeList(activate(V2)))] 257.24/67.95 257.24/67.95 [U42(tt())] = [1] 257.24/67.95 >= [1] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isNeList(V)] = [1] V + [0] 257.24/67.95 >= [1] V + [0] 257.24/67.95 = [U31(isQid(activate(V)))] 257.24/67.95 257.24/67.95 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.95 >= [1] V2 + [1] V1 + [0] 257.24/67.95 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.95 257.24/67.95 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.95 >= [1] V2 + [1] V1 + [0] 257.24/67.95 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.95 257.24/67.95 [U51(tt(), V2)] = [1] V2 + [1] 257.24/67.95 > [1] V2 + [0] 257.24/67.95 = [U52(isList(activate(V2)))] 257.24/67.95 257.24/67.95 [U52(tt())] = [1] 257.24/67.95 >= [1] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [U61(tt())] = [1] 257.24/67.95 >= [1] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [U71(tt(), P)] = [1] P + [1] 257.24/67.95 >= [1] P + [1] 257.24/67.95 = [U72(isPal(activate(P)))] 257.24/67.95 257.24/67.95 [U72(tt())] = [1] 257.24/67.95 >= [1] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isPal(V)] = [1] V + [1] 257.24/67.95 > [1] V + [0] 257.24/67.95 = [U81(isNePal(activate(V)))] 257.24/67.95 257.24/67.95 [isPal(n__nil())] = [2] 257.24/67.95 > [1] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [U81(tt())] = [1] 257.24/67.95 >= [1] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isQid(n__a())] = [2] 257.24/67.95 > [1] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isQid(n__e())] = [2] 257.24/67.95 > [1] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isQid(n__i())] = [1] 257.24/67.95 >= [1] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isQid(n__o())] = [1] 257.24/67.95 >= [1] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isQid(n__u())] = [2] 257.24/67.95 > [1] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isNePal(V)] = [1] V + [0] 257.24/67.95 >= [1] V + [0] 257.24/67.95 = [U61(isQid(activate(V)))] 257.24/67.95 257.24/67.95 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.95 >= [1] P + [1] I + [0] 257.24/67.95 = [U71(isQid(activate(I)), activate(P))] 257.24/67.95 257.24/67.95 [a()] = [1] 257.24/67.95 ? [2] 257.24/67.95 = [n__a()] 257.24/67.95 257.24/67.95 [e()] = [1] 257.24/67.95 ? [2] 257.24/67.95 = [n__e()] 257.24/67.95 257.24/67.95 [i()] = [2] 257.24/67.95 > [1] 257.24/67.95 = [n__i()] 257.24/67.95 257.24/67.95 [o()] = [2] 257.24/67.95 > [1] 257.24/67.95 = [n__o()] 257.24/67.95 257.24/67.95 [u()] = [1] 257.24/67.95 ? [2] 257.24/67.95 = [n__u()] 257.24/67.95 257.24/67.95 257.24/67.95 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 257.24/67.95 257.24/67.95 We are left with following problem, upon which TcT provides the 257.24/67.95 certificate MAYBE. 257.24/67.95 257.24/67.95 Strict Trs: 257.24/67.95 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.95 , U11(tt()) -> tt() 257.24/67.95 , U22(tt()) -> tt() 257.24/67.95 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.95 , activate(X) -> X 257.24/67.95 , activate(n__nil()) -> nil() 257.24/67.95 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.95 , activate(n__i()) -> i() 257.24/67.95 , activate(n__o()) -> o() 257.24/67.95 , U31(tt()) -> tt() 257.24/67.95 , U42(tt()) -> tt() 257.24/67.95 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.95 , isNeList(n____(V1, V2)) -> 257.24/67.95 U41(isList(activate(V1)), activate(V2)) 257.24/67.95 , isNeList(n____(V1, V2)) -> 257.24/67.95 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.95 , U52(tt()) -> tt() 257.24/67.95 , U61(tt()) -> tt() 257.24/67.95 , U72(tt()) -> tt() 257.24/67.95 , U81(tt()) -> tt() 257.24/67.95 , isNePal(n____(I, n____(P, I))) -> 257.24/67.95 U71(isQid(activate(I)), activate(P)) 257.24/67.95 , a() -> n__a() 257.24/67.95 , e() -> n__e() 257.24/67.95 , u() -> n__u() } 257.24/67.95 Weak Trs: 257.24/67.95 { __(X1, X2) -> n____(X1, X2) 257.24/67.95 , __(X, nil()) -> X 257.24/67.95 , __(nil(), X) -> X 257.24/67.95 , nil() -> n__nil() 257.24/67.95 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.95 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.95 , isList(n__nil()) -> tt() 257.24/67.95 , activate(n__a()) -> a() 257.24/67.95 , activate(n__e()) -> e() 257.24/67.95 , activate(n__u()) -> u() 257.24/67.95 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.95 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.95 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.95 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.95 , isPal(n__nil()) -> tt() 257.24/67.95 , isQid(n__a()) -> tt() 257.24/67.95 , isQid(n__e()) -> tt() 257.24/67.95 , isQid(n__i()) -> tt() 257.24/67.95 , isQid(n__o()) -> tt() 257.24/67.95 , isQid(n__u()) -> tt() 257.24/67.95 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.95 , i() -> n__i() 257.24/67.95 , o() -> n__o() } 257.24/67.95 Obligation: 257.24/67.95 derivational complexity 257.24/67.95 Answer: 257.24/67.95 MAYBE 257.24/67.95 257.24/67.95 We use the processor 'matrix interpretation of dimension 1' to 257.24/67.95 orient following rules strictly. 257.24/67.95 257.24/67.95 Trs: { U61(tt()) -> tt() } 257.24/67.95 257.24/67.95 The induced complexity on above rules (modulo remaining rules) is 257.24/67.95 YES(?,O(n^1)) . These rules are moved into the corresponding weak 257.24/67.95 component(s). 257.24/67.95 257.24/67.95 Sub-proof: 257.24/67.95 ---------- 257.24/67.95 TcT has computed the following triangular matrix interpretation. 257.24/67.95 257.24/67.95 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.95 257.24/67.95 [nil] = [0] 257.24/67.95 257.24/67.95 [U11](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [tt] = [0] 257.24/67.95 257.24/67.95 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.95 257.24/67.95 [U22](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [isList](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [activate](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [U31](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.95 257.24/67.95 [U42](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [isNeList](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.95 257.24/67.95 [U52](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [U61](x1) = [1] x1 + [1] 257.24/67.95 257.24/67.95 [U71](x1, x2) = [1] x1 + [1] x2 + [1] 257.24/67.95 257.24/67.95 [U72](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [isPal](x1) = [1] x1 + [1] 257.24/67.95 257.24/67.95 [U81](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [n__nil] = [0] 257.24/67.95 257.24/67.95 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.95 257.24/67.95 [isQid](x1) = [1] x1 + [0] 257.24/67.95 257.24/67.95 [isNePal](x1) = [1] x1 + [1] 257.24/67.95 257.24/67.95 [n__a] = [0] 257.24/67.95 257.24/67.95 [n__e] = [0] 257.24/67.95 257.24/67.95 [n__i] = [1] 257.24/67.95 257.24/67.95 [n__o] = [0] 257.24/67.95 257.24/67.95 [n__u] = [0] 257.24/67.95 257.24/67.95 [a] = [0] 257.24/67.95 257.24/67.95 [e] = [0] 257.24/67.95 257.24/67.95 [i] = [1] 257.24/67.95 257.24/67.95 [o] = [0] 257.24/67.95 257.24/67.95 [u] = [0] 257.24/67.95 257.24/67.95 The order satisfies the following ordering constraints: 257.24/67.95 257.24/67.95 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.95 >= [1] X1 + [1] X2 + [0] 257.24/67.95 = [n____(X1, X2)] 257.24/67.95 257.24/67.95 [__(X, nil())] = [1] X + [0] 257.24/67.95 >= [1] X + [0] 257.24/67.95 = [X] 257.24/67.95 257.24/67.95 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.95 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.95 = [__(X, __(Y, Z))] 257.24/67.95 257.24/67.95 [__(nil(), X)] = [1] X + [0] 257.24/67.95 >= [1] X + [0] 257.24/67.95 = [X] 257.24/67.95 257.24/67.95 [nil()] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [n__nil()] 257.24/67.95 257.24/67.95 [U11(tt())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [U21(tt(), V2)] = [1] V2 + [0] 257.24/67.95 >= [1] V2 + [0] 257.24/67.95 = [U22(isList(activate(V2)))] 257.24/67.95 257.24/67.95 [U22(tt())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isList(V)] = [1] V + [0] 257.24/67.95 >= [1] V + [0] 257.24/67.95 = [U11(isNeList(activate(V)))] 257.24/67.95 257.24/67.95 [isList(n__nil())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.95 >= [1] V2 + [1] V1 + [0] 257.24/67.95 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.95 257.24/67.95 [activate(X)] = [1] X + [0] 257.24/67.95 >= [1] X + [0] 257.24/67.95 = [X] 257.24/67.95 257.24/67.95 [activate(n__nil())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [nil()] 257.24/67.95 257.24/67.95 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.95 >= [1] X1 + [1] X2 + [0] 257.24/67.95 = [__(activate(X1), activate(X2))] 257.24/67.95 257.24/67.95 [activate(n__a())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [a()] 257.24/67.95 257.24/67.95 [activate(n__e())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [e()] 257.24/67.95 257.24/67.95 [activate(n__i())] = [1] 257.24/67.95 >= [1] 257.24/67.95 = [i()] 257.24/67.95 257.24/67.95 [activate(n__o())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [o()] 257.24/67.95 257.24/67.95 [activate(n__u())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [u()] 257.24/67.95 257.24/67.95 [U31(tt())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [U41(tt(), V2)] = [1] V2 + [0] 257.24/67.95 >= [1] V2 + [0] 257.24/67.95 = [U42(isNeList(activate(V2)))] 257.24/67.95 257.24/67.95 [U42(tt())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isNeList(V)] = [1] V + [0] 257.24/67.95 >= [1] V + [0] 257.24/67.95 = [U31(isQid(activate(V)))] 257.24/67.95 257.24/67.95 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.95 >= [1] V2 + [1] V1 + [0] 257.24/67.95 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.95 257.24/67.95 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.95 >= [1] V2 + [1] V1 + [0] 257.24/67.95 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.95 257.24/67.95 [U51(tt(), V2)] = [1] V2 + [0] 257.24/67.95 >= [1] V2 + [0] 257.24/67.95 = [U52(isList(activate(V2)))] 257.24/67.95 257.24/67.95 [U52(tt())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [U61(tt())] = [1] 257.24/67.95 > [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [U71(tt(), P)] = [1] P + [1] 257.24/67.95 >= [1] P + [1] 257.24/67.95 = [U72(isPal(activate(P)))] 257.24/67.95 257.24/67.95 [U72(tt())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isPal(V)] = [1] V + [1] 257.24/67.95 >= [1] V + [1] 257.24/67.95 = [U81(isNePal(activate(V)))] 257.24/67.95 257.24/67.95 [isPal(n__nil())] = [1] 257.24/67.95 > [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [U81(tt())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isQid(n__a())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isQid(n__e())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isQid(n__i())] = [1] 257.24/67.95 > [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isQid(n__o())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isQid(n__u())] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [tt()] 257.24/67.95 257.24/67.95 [isNePal(V)] = [1] V + [1] 257.24/67.95 >= [1] V + [1] 257.24/67.95 = [U61(isQid(activate(V)))] 257.24/67.95 257.24/67.95 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [1] 257.24/67.95 >= [1] P + [1] I + [1] 257.24/67.95 = [U71(isQid(activate(I)), activate(P))] 257.24/67.95 257.24/67.95 [a()] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [n__a()] 257.24/67.95 257.24/67.95 [e()] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [n__e()] 257.24/67.95 257.24/67.95 [i()] = [1] 257.24/67.95 >= [1] 257.24/67.95 = [n__i()] 257.24/67.95 257.24/67.95 [o()] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [n__o()] 257.24/67.95 257.24/67.95 [u()] = [0] 257.24/67.95 >= [0] 257.24/67.95 = [n__u()] 257.24/67.95 257.24/67.95 257.24/67.95 We return to the main proof. 257.24/67.95 257.24/67.95 We are left with following problem, upon which TcT provides the 257.24/67.95 certificate MAYBE. 257.24/67.95 257.24/67.95 Strict Trs: 257.24/67.95 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.95 , U11(tt()) -> tt() 257.24/67.95 , U22(tt()) -> tt() 257.24/67.95 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.95 , activate(X) -> X 257.24/67.95 , activate(n__nil()) -> nil() 257.24/67.95 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.95 , activate(n__i()) -> i() 257.24/67.95 , activate(n__o()) -> o() 257.24/67.95 , U31(tt()) -> tt() 257.24/67.95 , U42(tt()) -> tt() 257.24/67.95 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.95 , isNeList(n____(V1, V2)) -> 257.24/67.95 U41(isList(activate(V1)), activate(V2)) 257.24/67.95 , isNeList(n____(V1, V2)) -> 257.24/67.95 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.95 , U52(tt()) -> tt() 257.24/67.95 , U72(tt()) -> tt() 257.24/67.95 , U81(tt()) -> tt() 257.24/67.95 , isNePal(n____(I, n____(P, I))) -> 257.24/67.95 U71(isQid(activate(I)), activate(P)) 257.24/67.95 , a() -> n__a() 257.24/67.95 , e() -> n__e() 257.24/67.95 , u() -> n__u() } 257.24/67.95 Weak Trs: 257.24/67.95 { __(X1, X2) -> n____(X1, X2) 257.24/67.95 , __(X, nil()) -> X 257.24/67.95 , __(nil(), X) -> X 257.24/67.95 , nil() -> n__nil() 257.24/67.95 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.95 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.95 , isList(n__nil()) -> tt() 257.24/67.95 , activate(n__a()) -> a() 257.24/67.95 , activate(n__e()) -> e() 257.24/67.95 , activate(n__u()) -> u() 257.24/67.95 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.95 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.95 , U61(tt()) -> tt() 257.24/67.95 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.95 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.95 , isPal(n__nil()) -> tt() 257.24/67.95 , isQid(n__a()) -> tt() 257.24/67.96 , isQid(n__e()) -> tt() 257.24/67.96 , isQid(n__i()) -> tt() 257.24/67.96 , isQid(n__o()) -> tt() 257.24/67.96 , isQid(n__u()) -> tt() 257.24/67.96 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.96 , i() -> n__i() 257.24/67.96 , o() -> n__o() } 257.24/67.96 Obligation: 257.24/67.96 derivational complexity 257.24/67.96 Answer: 257.24/67.96 MAYBE 257.24/67.96 257.24/67.96 The weightgap principle applies (using the following nonconstant 257.24/67.96 growth matrix-interpretation) 257.24/67.96 257.24/67.96 TcT has computed the following triangular matrix interpretation. 257.24/67.96 Note that the diagonal of the component-wise maxima of 257.24/67.96 interpretation-entries contains no more than 1 non-zero entries. 257.24/67.96 257.24/67.96 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [nil] = [2] 257.24/67.96 257.24/67.96 [U11](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [tt] = [1] 257.24/67.96 257.24/67.96 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [U22](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [isList](x1) = [1] x1 + [1] 257.24/67.96 257.24/67.96 [activate](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U31](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [U42](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [isNeList](x1) = [1] x1 + [1] 257.24/67.96 257.24/67.96 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [U52](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U61](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [U72](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [isPal](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U81](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [n__nil] = [2] 257.24/67.96 257.24/67.96 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [isQid](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [isNePal](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [n__a] = [2] 257.24/67.96 257.24/67.96 [n__e] = [2] 257.24/67.96 257.24/67.96 [n__i] = [2] 257.24/67.96 257.24/67.96 [n__o] = [2] 257.24/67.96 257.24/67.96 [n__u] = [2] 257.24/67.96 257.24/67.96 [a] = [1] 257.24/67.96 257.24/67.96 [e] = [1] 257.24/67.96 257.24/67.96 [i] = [2] 257.24/67.96 257.24/67.96 [o] = [2] 257.24/67.96 257.24/67.96 [u] = [1] 257.24/67.96 257.24/67.96 The order satisfies the following ordering constraints: 257.24/67.96 257.24/67.96 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.96 >= [1] X1 + [1] X2 + [0] 257.24/67.96 = [n____(X1, X2)] 257.24/67.96 257.24/67.96 [__(X, nil())] = [1] X + [2] 257.24/67.96 > [1] X + [0] 257.24/67.96 = [X] 257.24/67.96 257.24/67.96 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.96 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.96 = [__(X, __(Y, Z))] 257.24/67.96 257.24/67.96 [__(nil(), X)] = [1] X + [2] 257.24/67.96 > [1] X + [0] 257.24/67.96 = [X] 257.24/67.96 257.24/67.96 [nil()] = [2] 257.24/67.96 >= [2] 257.24/67.96 = [n__nil()] 257.24/67.96 257.24/67.96 [U11(tt())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [U21(tt(), V2)] = [1] V2 + [1] 257.24/67.96 >= [1] V2 + [1] 257.24/67.96 = [U22(isList(activate(V2)))] 257.24/67.96 257.24/67.96 [U22(tt())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isList(V)] = [1] V + [1] 257.24/67.96 >= [1] V + [1] 257.24/67.96 = [U11(isNeList(activate(V)))] 257.24/67.96 257.24/67.96 [isList(n__nil())] = [3] 257.24/67.96 > [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [1] 257.24/67.96 >= [1] V2 + [1] V1 + [1] 257.24/67.96 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.96 257.24/67.96 [activate(X)] = [1] X + [0] 257.24/67.96 >= [1] X + [0] 257.24/67.96 = [X] 257.24/67.96 257.24/67.96 [activate(n__nil())] = [2] 257.24/67.96 >= [2] 257.24/67.96 = [nil()] 257.24/67.96 257.24/67.96 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.96 >= [1] X1 + [1] X2 + [0] 257.24/67.96 = [__(activate(X1), activate(X2))] 257.24/67.96 257.24/67.96 [activate(n__a())] = [2] 257.24/67.96 > [1] 257.24/67.96 = [a()] 257.24/67.96 257.24/67.96 [activate(n__e())] = [2] 257.24/67.96 > [1] 257.24/67.96 = [e()] 257.24/67.96 257.24/67.96 [activate(n__i())] = [2] 257.24/67.96 >= [2] 257.24/67.96 = [i()] 257.24/67.96 257.24/67.96 [activate(n__o())] = [2] 257.24/67.96 >= [2] 257.24/67.96 = [o()] 257.24/67.96 257.24/67.96 [activate(n__u())] = [2] 257.24/67.96 > [1] 257.24/67.96 = [u()] 257.24/67.96 257.24/67.96 [U31(tt())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [U41(tt(), V2)] = [1] V2 + [1] 257.24/67.96 >= [1] V2 + [1] 257.24/67.96 = [U42(isNeList(activate(V2)))] 257.24/67.96 257.24/67.96 [U42(tt())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isNeList(V)] = [1] V + [1] 257.24/67.96 > [1] V + [0] 257.24/67.96 = [U31(isQid(activate(V)))] 257.24/67.96 257.24/67.96 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [1] 257.24/67.96 >= [1] V2 + [1] V1 + [1] 257.24/67.96 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.96 257.24/67.96 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [1] 257.24/67.96 >= [1] V2 + [1] V1 + [1] 257.24/67.96 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.96 257.24/67.96 [U51(tt(), V2)] = [1] V2 + [1] 257.24/67.96 >= [1] V2 + [1] 257.24/67.96 = [U52(isList(activate(V2)))] 257.24/67.96 257.24/67.96 [U52(tt())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [U61(tt())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [U71(tt(), P)] = [1] P + [1] 257.24/67.96 > [1] P + [0] 257.24/67.96 = [U72(isPal(activate(P)))] 257.24/67.96 257.24/67.96 [U72(tt())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isPal(V)] = [1] V + [0] 257.24/67.96 >= [1] V + [0] 257.24/67.96 = [U81(isNePal(activate(V)))] 257.24/67.96 257.24/67.96 [isPal(n__nil())] = [2] 257.24/67.96 > [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [U81(tt())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isQid(n__a())] = [2] 257.24/67.96 > [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isQid(n__e())] = [2] 257.24/67.96 > [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isQid(n__i())] = [2] 257.24/67.96 > [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isQid(n__o())] = [2] 257.24/67.96 > [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isQid(n__u())] = [2] 257.24/67.96 > [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isNePal(V)] = [1] V + [0] 257.24/67.96 >= [1] V + [0] 257.24/67.96 = [U61(isQid(activate(V)))] 257.24/67.96 257.24/67.96 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.96 >= [1] P + [1] I + [0] 257.24/67.96 = [U71(isQid(activate(I)), activate(P))] 257.24/67.96 257.24/67.96 [a()] = [1] 257.24/67.96 ? [2] 257.24/67.96 = [n__a()] 257.24/67.96 257.24/67.96 [e()] = [1] 257.24/67.96 ? [2] 257.24/67.96 = [n__e()] 257.24/67.96 257.24/67.96 [i()] = [2] 257.24/67.96 >= [2] 257.24/67.96 = [n__i()] 257.24/67.96 257.24/67.96 [o()] = [2] 257.24/67.96 >= [2] 257.24/67.96 = [n__o()] 257.24/67.96 257.24/67.96 [u()] = [1] 257.24/67.96 ? [2] 257.24/67.96 = [n__u()] 257.24/67.96 257.24/67.96 257.24/67.96 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 257.24/67.96 257.24/67.96 We are left with following problem, upon which TcT provides the 257.24/67.96 certificate MAYBE. 257.24/67.96 257.24/67.96 Strict Trs: 257.24/67.96 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.96 , U11(tt()) -> tt() 257.24/67.96 , U22(tt()) -> tt() 257.24/67.96 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.96 , activate(X) -> X 257.24/67.96 , activate(n__nil()) -> nil() 257.24/67.96 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.96 , activate(n__i()) -> i() 257.24/67.96 , activate(n__o()) -> o() 257.24/67.96 , U31(tt()) -> tt() 257.24/67.96 , U42(tt()) -> tt() 257.24/67.96 , isNeList(n____(V1, V2)) -> 257.24/67.96 U41(isList(activate(V1)), activate(V2)) 257.24/67.96 , isNeList(n____(V1, V2)) -> 257.24/67.96 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.96 , U52(tt()) -> tt() 257.24/67.96 , U72(tt()) -> tt() 257.24/67.96 , U81(tt()) -> tt() 257.24/67.96 , isNePal(n____(I, n____(P, I))) -> 257.24/67.96 U71(isQid(activate(I)), activate(P)) 257.24/67.96 , a() -> n__a() 257.24/67.96 , e() -> n__e() 257.24/67.96 , u() -> n__u() } 257.24/67.96 Weak Trs: 257.24/67.96 { __(X1, X2) -> n____(X1, X2) 257.24/67.96 , __(X, nil()) -> X 257.24/67.96 , __(nil(), X) -> X 257.24/67.96 , nil() -> n__nil() 257.24/67.96 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.96 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.96 , isList(n__nil()) -> tt() 257.24/67.96 , activate(n__a()) -> a() 257.24/67.96 , activate(n__e()) -> e() 257.24/67.96 , activate(n__u()) -> u() 257.24/67.96 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.96 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.96 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.96 , U61(tt()) -> tt() 257.24/67.96 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.96 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.96 , isPal(n__nil()) -> tt() 257.24/67.96 , isQid(n__a()) -> tt() 257.24/67.96 , isQid(n__e()) -> tt() 257.24/67.96 , isQid(n__i()) -> tt() 257.24/67.96 , isQid(n__o()) -> tt() 257.24/67.96 , isQid(n__u()) -> tt() 257.24/67.96 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.96 , i() -> n__i() 257.24/67.96 , o() -> n__o() } 257.24/67.96 Obligation: 257.24/67.96 derivational complexity 257.24/67.96 Answer: 257.24/67.96 MAYBE 257.24/67.96 257.24/67.96 We use the processor 'matrix interpretation of dimension 1' to 257.24/67.96 orient following rules strictly. 257.24/67.96 257.24/67.96 Trs: 257.24/67.96 { isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.96 , isNeList(n____(V1, V2)) -> 257.24/67.96 U41(isList(activate(V1)), activate(V2)) 257.24/67.96 , isNeList(n____(V1, V2)) -> 257.24/67.96 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.96 , isNePal(n____(I, n____(P, I))) -> 257.24/67.96 U71(isQid(activate(I)), activate(P)) } 257.24/67.96 257.24/67.96 The induced complexity on above rules (modulo remaining rules) is 257.24/67.96 YES(?,O(n^1)) . These rules are moved into the corresponding weak 257.24/67.96 component(s). 257.24/67.96 257.24/67.96 Sub-proof: 257.24/67.96 ---------- 257.24/67.96 TcT has computed the following triangular matrix interpretation. 257.24/67.96 257.24/67.96 [__](x1, x2) = [1] x1 + [1] x2 + [1] 257.24/67.96 257.24/67.96 [nil] = [0] 257.24/67.96 257.24/67.96 [U11](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [tt] = [0] 257.24/67.96 257.24/67.96 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [U22](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [isList](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [activate](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U31](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [U42](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [isNeList](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [U52](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U61](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [U72](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [isPal](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U81](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [n__nil] = [0] 257.24/67.96 257.24/67.96 [n____](x1, x2) = [1] x1 + [1] x2 + [1] 257.24/67.96 257.24/67.96 [isQid](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [isNePal](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [n__a] = [2] 257.24/67.96 257.24/67.96 [n__e] = [2] 257.24/67.96 257.24/67.96 [n__i] = [0] 257.24/67.96 257.24/67.96 [n__o] = [1] 257.24/67.96 257.24/67.96 [n__u] = [2] 257.24/67.96 257.24/67.96 [a] = [2] 257.24/67.96 257.24/67.96 [e] = [2] 257.24/67.96 257.24/67.96 [i] = [0] 257.24/67.96 257.24/67.96 [o] = [1] 257.24/67.96 257.24/67.96 [u] = [2] 257.24/67.96 257.24/67.96 The order satisfies the following ordering constraints: 257.24/67.96 257.24/67.96 [__(X1, X2)] = [1] X1 + [1] X2 + [1] 257.24/67.96 >= [1] X1 + [1] X2 + [1] 257.24/67.96 = [n____(X1, X2)] 257.24/67.96 257.24/67.96 [__(X, nil())] = [1] X + [1] 257.24/67.96 > [1] X + [0] 257.24/67.96 = [X] 257.24/67.96 257.24/67.96 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [2] 257.24/67.96 >= [1] X + [1] Y + [1] Z + [2] 257.24/67.96 = [__(X, __(Y, Z))] 257.24/67.96 257.24/67.96 [__(nil(), X)] = [1] X + [1] 257.24/67.96 > [1] X + [0] 257.24/67.96 = [X] 257.24/67.96 257.24/67.96 [nil()] = [0] 257.24/67.96 >= [0] 257.24/67.96 = [n__nil()] 257.24/67.96 257.24/67.96 [U11(tt())] = [0] 257.24/67.96 >= [0] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [U21(tt(), V2)] = [1] V2 + [0] 257.24/67.96 >= [1] V2 + [0] 257.24/67.96 = [U22(isList(activate(V2)))] 257.24/67.96 257.24/67.96 [U22(tt())] = [0] 257.24/67.96 >= [0] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isList(V)] = [1] V + [0] 257.24/67.96 >= [1] V + [0] 257.24/67.96 = [U11(isNeList(activate(V)))] 257.24/67.96 257.24/67.96 [isList(n__nil())] = [0] 257.24/67.96 >= [0] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [1] 257.24/67.96 > [1] V2 + [1] V1 + [0] 257.24/67.96 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.96 257.24/67.96 [activate(X)] = [1] X + [0] 257.24/67.96 >= [1] X + [0] 257.24/67.96 = [X] 257.24/67.96 257.24/67.96 [activate(n__nil())] = [0] 257.24/67.96 >= [0] 257.24/67.96 = [nil()] 257.24/67.96 257.24/67.96 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [1] 257.24/67.96 >= [1] X1 + [1] X2 + [1] 257.24/67.96 = [__(activate(X1), activate(X2))] 257.24/67.96 257.24/67.96 [activate(n__a())] = [2] 257.24/67.96 >= [2] 257.24/67.96 = [a()] 257.24/67.96 257.24/67.96 [activate(n__e())] = [2] 257.24/67.96 >= [2] 257.24/67.96 = [e()] 257.24/67.96 257.24/67.96 [activate(n__i())] = [0] 257.24/67.96 >= [0] 257.24/67.96 = [i()] 257.24/67.96 257.24/67.96 [activate(n__o())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [o()] 257.24/67.96 257.24/67.96 [activate(n__u())] = [2] 257.24/67.96 >= [2] 257.24/67.96 = [u()] 257.24/67.96 257.24/67.96 [U31(tt())] = [0] 257.24/67.96 >= [0] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [U41(tt(), V2)] = [1] V2 + [0] 257.24/67.96 >= [1] V2 + [0] 257.24/67.96 = [U42(isNeList(activate(V2)))] 257.24/67.96 257.24/67.96 [U42(tt())] = [0] 257.24/67.96 >= [0] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isNeList(V)] = [1] V + [0] 257.24/67.96 >= [1] V + [0] 257.24/67.96 = [U31(isQid(activate(V)))] 257.24/67.96 257.24/67.96 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [1] 257.24/67.96 > [1] V2 + [1] V1 + [0] 257.24/67.96 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.96 257.24/67.96 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [1] 257.24/67.96 > [1] V2 + [1] V1 + [0] 257.24/67.96 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.96 257.24/67.96 [U51(tt(), V2)] = [1] V2 + [0] 257.24/67.96 >= [1] V2 + [0] 257.24/67.96 = [U52(isList(activate(V2)))] 257.24/67.96 257.24/67.96 [U52(tt())] = [0] 257.24/67.96 >= [0] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [U61(tt())] = [0] 257.24/67.96 >= [0] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [U71(tt(), P)] = [1] P + [0] 257.24/67.96 >= [1] P + [0] 257.24/67.96 = [U72(isPal(activate(P)))] 257.24/67.96 257.24/67.96 [U72(tt())] = [0] 257.24/67.96 >= [0] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isPal(V)] = [1] V + [0] 257.24/67.96 >= [1] V + [0] 257.24/67.96 = [U81(isNePal(activate(V)))] 257.24/67.96 257.24/67.96 [isPal(n__nil())] = [0] 257.24/67.96 >= [0] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [U81(tt())] = [0] 257.24/67.96 >= [0] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isQid(n__a())] = [2] 257.24/67.96 > [0] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isQid(n__e())] = [2] 257.24/67.96 > [0] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isQid(n__i())] = [0] 257.24/67.96 >= [0] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isQid(n__o())] = [1] 257.24/67.96 > [0] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isQid(n__u())] = [2] 257.24/67.96 > [0] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isNePal(V)] = [1] V + [0] 257.24/67.96 >= [1] V + [0] 257.24/67.96 = [U61(isQid(activate(V)))] 257.24/67.96 257.24/67.96 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [2] 257.24/67.96 > [1] P + [1] I + [0] 257.24/67.96 = [U71(isQid(activate(I)), activate(P))] 257.24/67.96 257.24/67.96 [a()] = [2] 257.24/67.96 >= [2] 257.24/67.96 = [n__a()] 257.24/67.96 257.24/67.96 [e()] = [2] 257.24/67.96 >= [2] 257.24/67.96 = [n__e()] 257.24/67.96 257.24/67.96 [i()] = [0] 257.24/67.96 >= [0] 257.24/67.96 = [n__i()] 257.24/67.96 257.24/67.96 [o()] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [n__o()] 257.24/67.96 257.24/67.96 [u()] = [2] 257.24/67.96 >= [2] 257.24/67.96 = [n__u()] 257.24/67.96 257.24/67.96 257.24/67.96 We return to the main proof. 257.24/67.96 257.24/67.96 We are left with following problem, upon which TcT provides the 257.24/67.96 certificate MAYBE. 257.24/67.96 257.24/67.96 Strict Trs: 257.24/67.96 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.96 , U11(tt()) -> tt() 257.24/67.96 , U22(tt()) -> tt() 257.24/67.96 , activate(X) -> X 257.24/67.96 , activate(n__nil()) -> nil() 257.24/67.96 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.96 , activate(n__i()) -> i() 257.24/67.96 , activate(n__o()) -> o() 257.24/67.96 , U31(tt()) -> tt() 257.24/67.96 , U42(tt()) -> tt() 257.24/67.96 , U52(tt()) -> tt() 257.24/67.96 , U72(tt()) -> tt() 257.24/67.96 , U81(tt()) -> tt() 257.24/67.96 , a() -> n__a() 257.24/67.96 , e() -> n__e() 257.24/67.96 , u() -> n__u() } 257.24/67.96 Weak Trs: 257.24/67.96 { __(X1, X2) -> n____(X1, X2) 257.24/67.96 , __(X, nil()) -> X 257.24/67.96 , __(nil(), X) -> X 257.24/67.96 , nil() -> n__nil() 257.24/67.96 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.96 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.96 , isList(n__nil()) -> tt() 257.24/67.96 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.96 , activate(n__a()) -> a() 257.24/67.96 , activate(n__e()) -> e() 257.24/67.96 , activate(n__u()) -> u() 257.24/67.96 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.96 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.96 , isNeList(n____(V1, V2)) -> 257.24/67.96 U41(isList(activate(V1)), activate(V2)) 257.24/67.96 , isNeList(n____(V1, V2)) -> 257.24/67.96 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.96 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.96 , U61(tt()) -> tt() 257.24/67.96 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.96 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.96 , isPal(n__nil()) -> tt() 257.24/67.96 , isQid(n__a()) -> tt() 257.24/67.96 , isQid(n__e()) -> tt() 257.24/67.96 , isQid(n__i()) -> tt() 257.24/67.96 , isQid(n__o()) -> tt() 257.24/67.96 , isQid(n__u()) -> tt() 257.24/67.96 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.96 , isNePal(n____(I, n____(P, I))) -> 257.24/67.96 U71(isQid(activate(I)), activate(P)) 257.24/67.96 , i() -> n__i() 257.24/67.96 , o() -> n__o() } 257.24/67.96 Obligation: 257.24/67.96 derivational complexity 257.24/67.96 Answer: 257.24/67.96 MAYBE 257.24/67.96 257.24/67.96 We use the processor 'matrix interpretation of dimension 1' to 257.24/67.96 orient following rules strictly. 257.24/67.96 257.24/67.96 Trs: { U81(tt()) -> tt() } 257.24/67.96 257.24/67.96 The induced complexity on above rules (modulo remaining rules) is 257.24/67.96 YES(?,O(n^1)) . These rules are moved into the corresponding weak 257.24/67.96 component(s). 257.24/67.96 257.24/67.96 Sub-proof: 257.24/67.96 ---------- 257.24/67.96 TcT has computed the following triangular matrix interpretation. 257.24/67.96 257.24/67.96 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [nil] = [1] 257.24/67.96 257.24/67.96 [U11](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [tt] = [1] 257.24/67.96 257.24/67.96 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [U22](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [isList](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [activate](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U31](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [U42](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [isNeList](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [U52](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U61](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [U72](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [isPal](x1) = [1] x1 + [1] 257.24/67.96 257.24/67.96 [U81](x1) = [1] x1 + [1] 257.24/67.96 257.24/67.96 [n__nil] = [1] 257.24/67.96 257.24/67.96 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.96 257.24/67.96 [isQid](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [isNePal](x1) = [1] x1 + [0] 257.24/67.96 257.24/67.96 [n__a] = [2] 257.24/67.96 257.24/67.96 [n__e] = [2] 257.24/67.96 257.24/67.96 [n__i] = [1] 257.24/67.96 257.24/67.96 [n__o] = [1] 257.24/67.96 257.24/67.96 [n__u] = [2] 257.24/67.96 257.24/67.96 [a] = [2] 257.24/67.96 257.24/67.96 [e] = [2] 257.24/67.96 257.24/67.96 [i] = [1] 257.24/67.96 257.24/67.96 [o] = [1] 257.24/67.96 257.24/67.96 [u] = [2] 257.24/67.96 257.24/67.96 The order satisfies the following ordering constraints: 257.24/67.96 257.24/67.96 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.96 >= [1] X1 + [1] X2 + [0] 257.24/67.96 = [n____(X1, X2)] 257.24/67.96 257.24/67.96 [__(X, nil())] = [1] X + [1] 257.24/67.96 > [1] X + [0] 257.24/67.96 = [X] 257.24/67.96 257.24/67.96 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.96 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.96 = [__(X, __(Y, Z))] 257.24/67.96 257.24/67.96 [__(nil(), X)] = [1] X + [1] 257.24/67.96 > [1] X + [0] 257.24/67.96 = [X] 257.24/67.96 257.24/67.96 [nil()] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [n__nil()] 257.24/67.96 257.24/67.96 [U11(tt())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [U21(tt(), V2)] = [1] V2 + [1] 257.24/67.96 > [1] V2 + [0] 257.24/67.96 = [U22(isList(activate(V2)))] 257.24/67.96 257.24/67.96 [U22(tt())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isList(V)] = [1] V + [0] 257.24/67.96 >= [1] V + [0] 257.24/67.96 = [U11(isNeList(activate(V)))] 257.24/67.96 257.24/67.96 [isList(n__nil())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.96 >= [1] V2 + [1] V1 + [0] 257.24/67.96 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.96 257.24/67.96 [activate(X)] = [1] X + [0] 257.24/67.96 >= [1] X + [0] 257.24/67.96 = [X] 257.24/67.96 257.24/67.96 [activate(n__nil())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [nil()] 257.24/67.96 257.24/67.96 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.96 >= [1] X1 + [1] X2 + [0] 257.24/67.96 = [__(activate(X1), activate(X2))] 257.24/67.96 257.24/67.96 [activate(n__a())] = [2] 257.24/67.96 >= [2] 257.24/67.96 = [a()] 257.24/67.96 257.24/67.96 [activate(n__e())] = [2] 257.24/67.96 >= [2] 257.24/67.96 = [e()] 257.24/67.96 257.24/67.96 [activate(n__i())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [i()] 257.24/67.96 257.24/67.96 [activate(n__o())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [o()] 257.24/67.96 257.24/67.96 [activate(n__u())] = [2] 257.24/67.96 >= [2] 257.24/67.96 = [u()] 257.24/67.96 257.24/67.96 [U31(tt())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [U41(tt(), V2)] = [1] V2 + [1] 257.24/67.96 > [1] V2 + [0] 257.24/67.96 = [U42(isNeList(activate(V2)))] 257.24/67.96 257.24/67.96 [U42(tt())] = [1] 257.24/67.96 >= [1] 257.24/67.96 = [tt()] 257.24/67.96 257.24/67.96 [isNeList(V)] = [1] V + [0] 257.24/67.96 >= [1] V + [0] 257.24/67.96 = [U31(isQid(activate(V)))] 257.24/67.96 257.24/67.96 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.96 >= [1] V2 + [1] V1 + [0] 257.24/67.96 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.96 257.24/67.96 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.96 >= [1] V2 + [1] V1 + [0] 257.24/67.96 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.96 257.24/67.96 [U51(tt(), V2)] = [1] V2 + [1] 257.24/67.96 > [1] V2 + [0] 257.24/67.96 = [U52(isList(activate(V2)))] 257.24/67.97 257.24/67.97 [U52(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [U61(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [U71(tt(), P)] = [1] P + [1] 257.24/67.97 >= [1] P + [1] 257.24/67.97 = [U72(isPal(activate(P)))] 257.24/67.97 257.24/67.97 [U72(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isPal(V)] = [1] V + [1] 257.24/67.97 >= [1] V + [1] 257.24/67.97 = [U81(isNePal(activate(V)))] 257.24/67.97 257.24/67.97 [isPal(n__nil())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [U81(tt())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isQid(n__a())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isQid(n__e())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isQid(n__i())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isQid(n__o())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isQid(n__u())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isNePal(V)] = [1] V + [0] 257.24/67.97 >= [1] V + [0] 257.24/67.97 = [U61(isQid(activate(V)))] 257.24/67.97 257.24/67.97 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.97 >= [1] P + [1] I + [0] 257.24/67.97 = [U71(isQid(activate(I)), activate(P))] 257.24/67.97 257.24/67.97 [a()] = [2] 257.24/67.97 >= [2] 257.24/67.97 = [n__a()] 257.24/67.97 257.24/67.97 [e()] = [2] 257.24/67.97 >= [2] 257.24/67.97 = [n__e()] 257.24/67.97 257.24/67.97 [i()] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [n__i()] 257.24/67.97 257.24/67.97 [o()] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [n__o()] 257.24/67.97 257.24/67.97 [u()] = [2] 257.24/67.97 >= [2] 257.24/67.97 = [n__u()] 257.24/67.97 257.24/67.97 257.24/67.97 We return to the main proof. 257.24/67.97 257.24/67.97 We are left with following problem, upon which TcT provides the 257.24/67.97 certificate MAYBE. 257.24/67.97 257.24/67.97 Strict Trs: 257.24/67.97 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.97 , U11(tt()) -> tt() 257.24/67.97 , U22(tt()) -> tt() 257.24/67.97 , activate(X) -> X 257.24/67.97 , activate(n__nil()) -> nil() 257.24/67.97 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.97 , activate(n__i()) -> i() 257.24/67.97 , activate(n__o()) -> o() 257.24/67.97 , U31(tt()) -> tt() 257.24/67.97 , U42(tt()) -> tt() 257.24/67.97 , U52(tt()) -> tt() 257.24/67.97 , U72(tt()) -> tt() 257.24/67.97 , a() -> n__a() 257.24/67.97 , e() -> n__e() 257.24/67.97 , u() -> n__u() } 257.24/67.97 Weak Trs: 257.24/67.97 { __(X1, X2) -> n____(X1, X2) 257.24/67.97 , __(X, nil()) -> X 257.24/67.97 , __(nil(), X) -> X 257.24/67.97 , nil() -> n__nil() 257.24/67.97 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.97 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.97 , isList(n__nil()) -> tt() 257.24/67.97 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.97 , activate(n__a()) -> a() 257.24/67.97 , activate(n__e()) -> e() 257.24/67.97 , activate(n__u()) -> u() 257.24/67.97 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.97 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.97 , isNeList(n____(V1, V2)) -> 257.24/67.97 U41(isList(activate(V1)), activate(V2)) 257.24/67.97 , isNeList(n____(V1, V2)) -> 257.24/67.97 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.97 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.97 , U61(tt()) -> tt() 257.24/67.97 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.97 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.97 , isPal(n__nil()) -> tt() 257.24/67.97 , U81(tt()) -> tt() 257.24/67.97 , isQid(n__a()) -> tt() 257.24/67.97 , isQid(n__e()) -> tt() 257.24/67.97 , isQid(n__i()) -> tt() 257.24/67.97 , isQid(n__o()) -> tt() 257.24/67.97 , isQid(n__u()) -> tt() 257.24/67.97 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.97 , isNePal(n____(I, n____(P, I))) -> 257.24/67.97 U71(isQid(activate(I)), activate(P)) 257.24/67.97 , i() -> n__i() 257.24/67.97 , o() -> n__o() } 257.24/67.97 Obligation: 257.24/67.97 derivational complexity 257.24/67.97 Answer: 257.24/67.97 MAYBE 257.24/67.97 257.24/67.97 The weightgap principle applies (using the following nonconstant 257.24/67.97 growth matrix-interpretation) 257.24/67.97 257.24/67.97 TcT has computed the following triangular matrix interpretation. 257.24/67.97 Note that the diagonal of the component-wise maxima of 257.24/67.97 interpretation-entries contains no more than 1 non-zero entries. 257.24/67.97 257.24/67.97 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.97 257.24/67.97 [nil] = [2] 257.24/67.97 257.24/67.97 [U11](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [tt] = [1] 257.24/67.97 257.24/67.97 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.97 257.24/67.97 [U22](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [isList](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [activate](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [U31](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.97 257.24/67.97 [U42](x1) = [1] x1 + [1] 257.24/67.97 257.24/67.97 [isNeList](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.97 257.24/67.97 [U52](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [U61](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.97 257.24/67.97 [U72](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [isPal](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [U81](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [n__nil] = [2] 257.24/67.97 257.24/67.97 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.97 257.24/67.97 [isQid](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [isNePal](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [n__a] = [2] 257.24/67.97 257.24/67.97 [n__e] = [2] 257.24/67.97 257.24/67.97 [n__i] = [2] 257.24/67.97 257.24/67.97 [n__o] = [2] 257.24/67.97 257.24/67.97 [n__u] = [2] 257.24/67.97 257.24/67.97 [a] = [1] 257.24/67.97 257.24/67.97 [e] = [1] 257.24/67.97 257.24/67.97 [i] = [2] 257.24/67.97 257.24/67.97 [o] = [2] 257.24/67.97 257.24/67.97 [u] = [1] 257.24/67.97 257.24/67.97 The order satisfies the following ordering constraints: 257.24/67.97 257.24/67.97 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.97 >= [1] X1 + [1] X2 + [0] 257.24/67.97 = [n____(X1, X2)] 257.24/67.97 257.24/67.97 [__(X, nil())] = [1] X + [2] 257.24/67.97 > [1] X + [0] 257.24/67.97 = [X] 257.24/67.97 257.24/67.97 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.97 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.97 = [__(X, __(Y, Z))] 257.24/67.97 257.24/67.97 [__(nil(), X)] = [1] X + [2] 257.24/67.97 > [1] X + [0] 257.24/67.97 = [X] 257.24/67.97 257.24/67.97 [nil()] = [2] 257.24/67.97 >= [2] 257.24/67.97 = [n__nil()] 257.24/67.97 257.24/67.97 [U11(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [U21(tt(), V2)] = [1] V2 + [1] 257.24/67.97 > [1] V2 + [0] 257.24/67.97 = [U22(isList(activate(V2)))] 257.24/67.97 257.24/67.97 [U22(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isList(V)] = [1] V + [0] 257.24/67.97 >= [1] V + [0] 257.24/67.97 = [U11(isNeList(activate(V)))] 257.24/67.97 257.24/67.97 [isList(n__nil())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.97 >= [1] V2 + [1] V1 + [0] 257.24/67.97 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.97 257.24/67.97 [activate(X)] = [1] X + [0] 257.24/67.97 >= [1] X + [0] 257.24/67.97 = [X] 257.24/67.97 257.24/67.97 [activate(n__nil())] = [2] 257.24/67.97 >= [2] 257.24/67.97 = [nil()] 257.24/67.97 257.24/67.97 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.97 >= [1] X1 + [1] X2 + [0] 257.24/67.97 = [__(activate(X1), activate(X2))] 257.24/67.97 257.24/67.97 [activate(n__a())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [a()] 257.24/67.97 257.24/67.97 [activate(n__e())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [e()] 257.24/67.97 257.24/67.97 [activate(n__i())] = [2] 257.24/67.97 >= [2] 257.24/67.97 = [i()] 257.24/67.97 257.24/67.97 [activate(n__o())] = [2] 257.24/67.97 >= [2] 257.24/67.97 = [o()] 257.24/67.97 257.24/67.97 [activate(n__u())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [u()] 257.24/67.97 257.24/67.97 [U31(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [U41(tt(), V2)] = [1] V2 + [1] 257.24/67.97 >= [1] V2 + [1] 257.24/67.97 = [U42(isNeList(activate(V2)))] 257.24/67.97 257.24/67.97 [U42(tt())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isNeList(V)] = [1] V + [0] 257.24/67.97 >= [1] V + [0] 257.24/67.97 = [U31(isQid(activate(V)))] 257.24/67.97 257.24/67.97 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.97 >= [1] V2 + [1] V1 + [0] 257.24/67.97 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.97 257.24/67.97 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.97 >= [1] V2 + [1] V1 + [0] 257.24/67.97 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.97 257.24/67.97 [U51(tt(), V2)] = [1] V2 + [1] 257.24/67.97 > [1] V2 + [0] 257.24/67.97 = [U52(isList(activate(V2)))] 257.24/67.97 257.24/67.97 [U52(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [U61(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [U71(tt(), P)] = [1] P + [1] 257.24/67.97 > [1] P + [0] 257.24/67.97 = [U72(isPal(activate(P)))] 257.24/67.97 257.24/67.97 [U72(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isPal(V)] = [1] V + [0] 257.24/67.97 >= [1] V + [0] 257.24/67.97 = [U81(isNePal(activate(V)))] 257.24/67.97 257.24/67.97 [isPal(n__nil())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [U81(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isQid(n__a())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isQid(n__e())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isQid(n__i())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isQid(n__o())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isQid(n__u())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isNePal(V)] = [1] V + [0] 257.24/67.97 >= [1] V + [0] 257.24/67.97 = [U61(isQid(activate(V)))] 257.24/67.97 257.24/67.97 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.97 >= [1] P + [1] I + [0] 257.24/67.97 = [U71(isQid(activate(I)), activate(P))] 257.24/67.97 257.24/67.97 [a()] = [1] 257.24/67.97 ? [2] 257.24/67.97 = [n__a()] 257.24/67.97 257.24/67.97 [e()] = [1] 257.24/67.97 ? [2] 257.24/67.97 = [n__e()] 257.24/67.97 257.24/67.97 [i()] = [2] 257.24/67.97 >= [2] 257.24/67.97 = [n__i()] 257.24/67.97 257.24/67.97 [o()] = [2] 257.24/67.97 >= [2] 257.24/67.97 = [n__o()] 257.24/67.97 257.24/67.97 [u()] = [1] 257.24/67.97 ? [2] 257.24/67.97 = [n__u()] 257.24/67.97 257.24/67.97 257.24/67.97 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 257.24/67.97 257.24/67.97 We are left with following problem, upon which TcT provides the 257.24/67.97 certificate MAYBE. 257.24/67.97 257.24/67.97 Strict Trs: 257.24/67.97 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.97 , U11(tt()) -> tt() 257.24/67.97 , U22(tt()) -> tt() 257.24/67.97 , activate(X) -> X 257.24/67.97 , activate(n__nil()) -> nil() 257.24/67.97 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.97 , activate(n__i()) -> i() 257.24/67.97 , activate(n__o()) -> o() 257.24/67.97 , U31(tt()) -> tt() 257.24/67.97 , U52(tt()) -> tt() 257.24/67.97 , U72(tt()) -> tt() 257.24/67.97 , a() -> n__a() 257.24/67.97 , e() -> n__e() 257.24/67.97 , u() -> n__u() } 257.24/67.97 Weak Trs: 257.24/67.97 { __(X1, X2) -> n____(X1, X2) 257.24/67.97 , __(X, nil()) -> X 257.24/67.97 , __(nil(), X) -> X 257.24/67.97 , nil() -> n__nil() 257.24/67.97 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.97 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.97 , isList(n__nil()) -> tt() 257.24/67.97 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.97 , activate(n__a()) -> a() 257.24/67.97 , activate(n__e()) -> e() 257.24/67.97 , activate(n__u()) -> u() 257.24/67.97 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.97 , U42(tt()) -> tt() 257.24/67.97 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.97 , isNeList(n____(V1, V2)) -> 257.24/67.97 U41(isList(activate(V1)), activate(V2)) 257.24/67.97 , isNeList(n____(V1, V2)) -> 257.24/67.97 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.97 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.97 , U61(tt()) -> tt() 257.24/67.97 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.97 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.97 , isPal(n__nil()) -> tt() 257.24/67.97 , U81(tt()) -> tt() 257.24/67.97 , isQid(n__a()) -> tt() 257.24/67.97 , isQid(n__e()) -> tt() 257.24/67.97 , isQid(n__i()) -> tt() 257.24/67.97 , isQid(n__o()) -> tt() 257.24/67.97 , isQid(n__u()) -> tt() 257.24/67.97 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.97 , isNePal(n____(I, n____(P, I))) -> 257.24/67.97 U71(isQid(activate(I)), activate(P)) 257.24/67.97 , i() -> n__i() 257.24/67.97 , o() -> n__o() } 257.24/67.97 Obligation: 257.24/67.97 derivational complexity 257.24/67.97 Answer: 257.24/67.97 MAYBE 257.24/67.97 257.24/67.97 The weightgap principle applies (using the following nonconstant 257.24/67.97 growth matrix-interpretation) 257.24/67.97 257.24/67.97 TcT has computed the following triangular matrix interpretation. 257.24/67.97 Note that the diagonal of the component-wise maxima of 257.24/67.97 interpretation-entries contains no more than 1 non-zero entries. 257.24/67.97 257.24/67.97 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.97 257.24/67.97 [nil] = [2] 257.24/67.97 257.24/67.97 [U11](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [tt] = [1] 257.24/67.97 257.24/67.97 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.97 257.24/67.97 [U22](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [isList](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [activate](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [U31](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.97 257.24/67.97 [U42](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [isNeList](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.97 257.24/67.97 [U52](x1) = [1] x1 + [1] 257.24/67.97 257.24/67.97 [U61](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.97 257.24/67.97 [U72](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [isPal](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [U81](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [n__nil] = [2] 257.24/67.97 257.24/67.97 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.97 257.24/67.97 [isQid](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [isNePal](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [n__a] = [2] 257.24/67.97 257.24/67.97 [n__e] = [2] 257.24/67.97 257.24/67.97 [n__i] = [2] 257.24/67.97 257.24/67.97 [n__o] = [2] 257.24/67.97 257.24/67.97 [n__u] = [2] 257.24/67.97 257.24/67.97 [a] = [1] 257.24/67.97 257.24/67.97 [e] = [1] 257.24/67.97 257.24/67.97 [i] = [2] 257.24/67.97 257.24/67.97 [o] = [2] 257.24/67.97 257.24/67.97 [u] = [1] 257.24/67.97 257.24/67.97 The order satisfies the following ordering constraints: 257.24/67.97 257.24/67.97 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.97 >= [1] X1 + [1] X2 + [0] 257.24/67.97 = [n____(X1, X2)] 257.24/67.97 257.24/67.97 [__(X, nil())] = [1] X + [2] 257.24/67.97 > [1] X + [0] 257.24/67.97 = [X] 257.24/67.97 257.24/67.97 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.97 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.97 = [__(X, __(Y, Z))] 257.24/67.97 257.24/67.97 [__(nil(), X)] = [1] X + [2] 257.24/67.97 > [1] X + [0] 257.24/67.97 = [X] 257.24/67.97 257.24/67.97 [nil()] = [2] 257.24/67.97 >= [2] 257.24/67.97 = [n__nil()] 257.24/67.97 257.24/67.97 [U11(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [U21(tt(), V2)] = [1] V2 + [1] 257.24/67.97 > [1] V2 + [0] 257.24/67.97 = [U22(isList(activate(V2)))] 257.24/67.97 257.24/67.97 [U22(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isList(V)] = [1] V + [0] 257.24/67.97 >= [1] V + [0] 257.24/67.97 = [U11(isNeList(activate(V)))] 257.24/67.97 257.24/67.97 [isList(n__nil())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.97 >= [1] V2 + [1] V1 + [0] 257.24/67.97 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.97 257.24/67.97 [activate(X)] = [1] X + [0] 257.24/67.97 >= [1] X + [0] 257.24/67.97 = [X] 257.24/67.97 257.24/67.97 [activate(n__nil())] = [2] 257.24/67.97 >= [2] 257.24/67.97 = [nil()] 257.24/67.97 257.24/67.97 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.97 >= [1] X1 + [1] X2 + [0] 257.24/67.97 = [__(activate(X1), activate(X2))] 257.24/67.97 257.24/67.97 [activate(n__a())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [a()] 257.24/67.97 257.24/67.97 [activate(n__e())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [e()] 257.24/67.97 257.24/67.97 [activate(n__i())] = [2] 257.24/67.97 >= [2] 257.24/67.97 = [i()] 257.24/67.97 257.24/67.97 [activate(n__o())] = [2] 257.24/67.97 >= [2] 257.24/67.97 = [o()] 257.24/67.97 257.24/67.97 [activate(n__u())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [u()] 257.24/67.97 257.24/67.97 [U31(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [U41(tt(), V2)] = [1] V2 + [1] 257.24/67.97 > [1] V2 + [0] 257.24/67.97 = [U42(isNeList(activate(V2)))] 257.24/67.97 257.24/67.97 [U42(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isNeList(V)] = [1] V + [0] 257.24/67.97 >= [1] V + [0] 257.24/67.97 = [U31(isQid(activate(V)))] 257.24/67.97 257.24/67.97 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.97 >= [1] V2 + [1] V1 + [0] 257.24/67.97 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.97 257.24/67.97 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.97 >= [1] V2 + [1] V1 + [0] 257.24/67.97 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.97 257.24/67.97 [U51(tt(), V2)] = [1] V2 + [1] 257.24/67.97 >= [1] V2 + [1] 257.24/67.97 = [U52(isList(activate(V2)))] 257.24/67.97 257.24/67.97 [U52(tt())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [U61(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [U71(tt(), P)] = [1] P + [1] 257.24/67.97 > [1] P + [0] 257.24/67.97 = [U72(isPal(activate(P)))] 257.24/67.97 257.24/67.97 [U72(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isPal(V)] = [1] V + [0] 257.24/67.97 >= [1] V + [0] 257.24/67.97 = [U81(isNePal(activate(V)))] 257.24/67.97 257.24/67.97 [isPal(n__nil())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [U81(tt())] = [1] 257.24/67.97 >= [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isQid(n__a())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isQid(n__e())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isQid(n__i())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isQid(n__o())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isQid(n__u())] = [2] 257.24/67.97 > [1] 257.24/67.97 = [tt()] 257.24/67.97 257.24/67.97 [isNePal(V)] = [1] V + [0] 257.24/67.97 >= [1] V + [0] 257.24/67.97 = [U61(isQid(activate(V)))] 257.24/67.97 257.24/67.97 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.97 >= [1] P + [1] I + [0] 257.24/67.97 = [U71(isQid(activate(I)), activate(P))] 257.24/67.97 257.24/67.97 [a()] = [1] 257.24/67.97 ? [2] 257.24/67.97 = [n__a()] 257.24/67.97 257.24/67.97 [e()] = [1] 257.24/67.97 ? [2] 257.24/67.97 = [n__e()] 257.24/67.97 257.24/67.97 [i()] = [2] 257.24/67.97 >= [2] 257.24/67.97 = [n__i()] 257.24/67.97 257.24/67.97 [o()] = [2] 257.24/67.97 >= [2] 257.24/67.97 = [n__o()] 257.24/67.97 257.24/67.97 [u()] = [1] 257.24/67.97 ? [2] 257.24/67.97 = [n__u()] 257.24/67.97 257.24/67.97 257.24/67.97 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 257.24/67.97 257.24/67.97 We are left with following problem, upon which TcT provides the 257.24/67.97 certificate MAYBE. 257.24/67.97 257.24/67.97 Strict Trs: 257.24/67.97 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.97 , U11(tt()) -> tt() 257.24/67.97 , U22(tt()) -> tt() 257.24/67.97 , activate(X) -> X 257.24/67.97 , activate(n__nil()) -> nil() 257.24/67.97 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.97 , activate(n__i()) -> i() 257.24/67.97 , activate(n__o()) -> o() 257.24/67.97 , U31(tt()) -> tt() 257.24/67.97 , U72(tt()) -> tt() 257.24/67.97 , a() -> n__a() 257.24/67.97 , e() -> n__e() 257.24/67.97 , u() -> n__u() } 257.24/67.97 Weak Trs: 257.24/67.97 { __(X1, X2) -> n____(X1, X2) 257.24/67.97 , __(X, nil()) -> X 257.24/67.97 , __(nil(), X) -> X 257.24/67.97 , nil() -> n__nil() 257.24/67.97 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.97 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.97 , isList(n__nil()) -> tt() 257.24/67.97 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.97 , activate(n__a()) -> a() 257.24/67.97 , activate(n__e()) -> e() 257.24/67.97 , activate(n__u()) -> u() 257.24/67.97 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.97 , U42(tt()) -> tt() 257.24/67.97 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.97 , isNeList(n____(V1, V2)) -> 257.24/67.97 U41(isList(activate(V1)), activate(V2)) 257.24/67.97 , isNeList(n____(V1, V2)) -> 257.24/67.97 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.97 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.97 , U52(tt()) -> tt() 257.24/67.97 , U61(tt()) -> tt() 257.24/67.97 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.97 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.97 , isPal(n__nil()) -> tt() 257.24/67.97 , U81(tt()) -> tt() 257.24/67.97 , isQid(n__a()) -> tt() 257.24/67.97 , isQid(n__e()) -> tt() 257.24/67.97 , isQid(n__i()) -> tt() 257.24/67.97 , isQid(n__o()) -> tt() 257.24/67.97 , isQid(n__u()) -> tt() 257.24/67.97 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.97 , isNePal(n____(I, n____(P, I))) -> 257.24/67.97 U71(isQid(activate(I)), activate(P)) 257.24/67.97 , i() -> n__i() 257.24/67.97 , o() -> n__o() } 257.24/67.97 Obligation: 257.24/67.97 derivational complexity 257.24/67.97 Answer: 257.24/67.97 MAYBE 257.24/67.97 257.24/67.97 The weightgap principle applies (using the following nonconstant 257.24/67.97 growth matrix-interpretation) 257.24/67.97 257.24/67.97 TcT has computed the following triangular matrix interpretation. 257.24/67.97 Note that the diagonal of the component-wise maxima of 257.24/67.97 interpretation-entries contains no more than 1 non-zero entries. 257.24/67.97 257.24/67.97 [__](x1, x2) = [1] x1 + [1] x2 + [2] 257.24/67.97 257.24/67.97 [nil] = [2] 257.24/67.97 257.24/67.97 [U11](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [tt] = [0] 257.24/67.97 257.24/67.97 [U21](x1, x2) = [1] x1 + [1] x2 + [1] 257.24/67.97 257.24/67.97 [U22](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [isList](x1) = [1] x1 + [1] 257.24/67.97 257.24/67.97 [activate](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [U31](x1) = [1] x1 + [1] 257.24/67.97 257.24/67.97 [U41](x1, x2) = [1] x1 + [1] x2 + [2] 257.24/67.97 257.24/67.97 [U42](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [isNeList](x1) = [1] x1 + [1] 257.24/67.97 257.24/67.97 [U51](x1, x2) = [1] x1 + [1] x2 + [2] 257.24/67.97 257.24/67.97 [U52](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [U61](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.97 257.24/67.97 [U72](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [isPal](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [U81](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [n__nil] = [0] 257.24/67.97 257.24/67.97 [n____](x1, x2) = [1] x1 + [1] x2 + [2] 257.24/67.97 257.24/67.97 [isQid](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [isNePal](x1) = [1] x1 + [0] 257.24/67.97 257.24/67.97 [n__a] = [2] 257.24/67.97 257.24/67.97 [n__e] = [2] 257.24/67.97 257.24/67.97 [n__i] = [2] 257.24/67.97 257.24/67.97 [n__o] = [2] 257.24/67.97 257.24/67.97 [n__u] = [2] 257.24/67.97 257.24/67.97 [a] = [1] 257.24/67.97 257.24/67.97 [e] = [1] 257.24/67.98 257.24/67.98 [i] = [2] 257.24/67.98 257.24/67.98 [o] = [2] 257.24/67.98 257.24/67.98 [u] = [1] 257.24/67.98 257.24/67.98 The order satisfies the following ordering constraints: 257.24/67.98 257.24/67.98 [__(X1, X2)] = [1] X1 + [1] X2 + [2] 257.24/67.98 >= [1] X1 + [1] X2 + [2] 257.24/67.98 = [n____(X1, X2)] 257.24/67.98 257.24/67.98 [__(X, nil())] = [1] X + [4] 257.24/67.98 > [1] X + [0] 257.24/67.98 = [X] 257.24/67.98 257.24/67.98 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [4] 257.24/67.98 >= [1] X + [1] Y + [1] Z + [4] 257.24/67.98 = [__(X, __(Y, Z))] 257.24/67.98 257.24/67.98 [__(nil(), X)] = [1] X + [4] 257.24/67.98 > [1] X + [0] 257.24/67.98 = [X] 257.24/67.98 257.24/67.98 [nil()] = [2] 257.24/67.98 > [0] 257.24/67.98 = [n__nil()] 257.24/67.98 257.24/67.98 [U11(tt())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [U21(tt(), V2)] = [1] V2 + [1] 257.24/67.98 >= [1] V2 + [1] 257.24/67.98 = [U22(isList(activate(V2)))] 257.24/67.98 257.24/67.98 [U22(tt())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isList(V)] = [1] V + [1] 257.24/67.98 >= [1] V + [1] 257.24/67.98 = [U11(isNeList(activate(V)))] 257.24/67.98 257.24/67.98 [isList(n__nil())] = [1] 257.24/67.98 > [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [3] 257.24/67.98 > [1] V2 + [1] V1 + [2] 257.24/67.98 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.98 257.24/67.98 [activate(X)] = [1] X + [0] 257.24/67.98 >= [1] X + [0] 257.24/67.98 = [X] 257.24/67.98 257.24/67.98 [activate(n__nil())] = [0] 257.24/67.98 ? [2] 257.24/67.98 = [nil()] 257.24/67.98 257.24/67.98 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [2] 257.24/67.98 >= [1] X1 + [1] X2 + [2] 257.24/67.98 = [__(activate(X1), activate(X2))] 257.24/67.98 257.24/67.98 [activate(n__a())] = [2] 257.24/67.98 > [1] 257.24/67.98 = [a()] 257.24/67.98 257.24/67.98 [activate(n__e())] = [2] 257.24/67.98 > [1] 257.24/67.98 = [e()] 257.24/67.98 257.24/67.98 [activate(n__i())] = [2] 257.24/67.98 >= [2] 257.24/67.98 = [i()] 257.24/67.98 257.24/67.98 [activate(n__o())] = [2] 257.24/67.98 >= [2] 257.24/67.98 = [o()] 257.24/67.98 257.24/67.98 [activate(n__u())] = [2] 257.24/67.98 > [1] 257.24/67.98 = [u()] 257.24/67.98 257.24/67.98 [U31(tt())] = [1] 257.24/67.98 > [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [U41(tt(), V2)] = [1] V2 + [2] 257.24/67.98 > [1] V2 + [1] 257.24/67.98 = [U42(isNeList(activate(V2)))] 257.24/67.98 257.24/67.98 [U42(tt())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isNeList(V)] = [1] V + [1] 257.24/67.98 >= [1] V + [1] 257.24/67.98 = [U31(isQid(activate(V)))] 257.24/67.98 257.24/67.98 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [3] 257.24/67.98 >= [1] V2 + [1] V1 + [3] 257.24/67.98 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.98 257.24/67.98 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [3] 257.24/67.98 >= [1] V2 + [1] V1 + [3] 257.24/67.98 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.98 257.24/67.98 [U51(tt(), V2)] = [1] V2 + [2] 257.24/67.98 > [1] V2 + [1] 257.24/67.98 = [U52(isList(activate(V2)))] 257.24/67.98 257.24/67.98 [U52(tt())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [U61(tt())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [U71(tt(), P)] = [1] P + [0] 257.24/67.98 >= [1] P + [0] 257.24/67.98 = [U72(isPal(activate(P)))] 257.24/67.98 257.24/67.98 [U72(tt())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isPal(V)] = [1] V + [0] 257.24/67.98 >= [1] V + [0] 257.24/67.98 = [U81(isNePal(activate(V)))] 257.24/67.98 257.24/67.98 [isPal(n__nil())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [U81(tt())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isQid(n__a())] = [2] 257.24/67.98 > [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isQid(n__e())] = [2] 257.24/67.98 > [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isQid(n__i())] = [2] 257.24/67.98 > [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isQid(n__o())] = [2] 257.24/67.98 > [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isQid(n__u())] = [2] 257.24/67.98 > [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isNePal(V)] = [1] V + [0] 257.24/67.98 >= [1] V + [0] 257.24/67.98 = [U61(isQid(activate(V)))] 257.24/67.98 257.24/67.98 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [4] 257.24/67.98 > [1] P + [1] I + [0] 257.24/67.98 = [U71(isQid(activate(I)), activate(P))] 257.24/67.98 257.24/67.98 [a()] = [1] 257.24/67.98 ? [2] 257.24/67.98 = [n__a()] 257.24/67.98 257.24/67.98 [e()] = [1] 257.24/67.98 ? [2] 257.24/67.98 = [n__e()] 257.24/67.98 257.24/67.98 [i()] = [2] 257.24/67.98 >= [2] 257.24/67.98 = [n__i()] 257.24/67.98 257.24/67.98 [o()] = [2] 257.24/67.98 >= [2] 257.24/67.98 = [n__o()] 257.24/67.98 257.24/67.98 [u()] = [1] 257.24/67.98 ? [2] 257.24/67.98 = [n__u()] 257.24/67.98 257.24/67.98 257.24/67.98 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 257.24/67.98 257.24/67.98 We are left with following problem, upon which TcT provides the 257.24/67.98 certificate MAYBE. 257.24/67.98 257.24/67.98 Strict Trs: 257.24/67.98 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.98 , U11(tt()) -> tt() 257.24/67.98 , U22(tt()) -> tt() 257.24/67.98 , activate(X) -> X 257.24/67.98 , activate(n__nil()) -> nil() 257.24/67.98 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.98 , activate(n__i()) -> i() 257.24/67.98 , activate(n__o()) -> o() 257.24/67.98 , U72(tt()) -> tt() 257.24/67.98 , a() -> n__a() 257.24/67.98 , e() -> n__e() 257.24/67.98 , u() -> n__u() } 257.24/67.98 Weak Trs: 257.24/67.98 { __(X1, X2) -> n____(X1, X2) 257.24/67.98 , __(X, nil()) -> X 257.24/67.98 , __(nil(), X) -> X 257.24/67.98 , nil() -> n__nil() 257.24/67.98 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.98 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.98 , isList(n__nil()) -> tt() 257.24/67.98 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.98 , activate(n__a()) -> a() 257.24/67.98 , activate(n__e()) -> e() 257.24/67.98 , activate(n__u()) -> u() 257.24/67.98 , U31(tt()) -> tt() 257.24/67.98 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.98 , U42(tt()) -> tt() 257.24/67.98 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.98 , isNeList(n____(V1, V2)) -> 257.24/67.98 U41(isList(activate(V1)), activate(V2)) 257.24/67.98 , isNeList(n____(V1, V2)) -> 257.24/67.98 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.98 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.98 , U52(tt()) -> tt() 257.24/67.98 , U61(tt()) -> tt() 257.24/67.98 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.98 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.98 , isPal(n__nil()) -> tt() 257.24/67.98 , U81(tt()) -> tt() 257.24/67.98 , isQid(n__a()) -> tt() 257.24/67.98 , isQid(n__e()) -> tt() 257.24/67.98 , isQid(n__i()) -> tt() 257.24/67.98 , isQid(n__o()) -> tt() 257.24/67.98 , isQid(n__u()) -> tt() 257.24/67.98 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.98 , isNePal(n____(I, n____(P, I))) -> 257.24/67.98 U71(isQid(activate(I)), activate(P)) 257.24/67.98 , i() -> n__i() 257.24/67.98 , o() -> n__o() } 257.24/67.98 Obligation: 257.24/67.98 derivational complexity 257.24/67.98 Answer: 257.24/67.98 MAYBE 257.24/67.98 257.24/67.98 The weightgap principle applies (using the following nonconstant 257.24/67.98 growth matrix-interpretation) 257.24/67.98 257.24/67.98 TcT has computed the following triangular matrix interpretation. 257.24/67.98 Note that the diagonal of the component-wise maxima of 257.24/67.98 interpretation-entries contains no more than 1 non-zero entries. 257.24/67.98 257.24/67.98 [__](x1, x2) = [1] x1 + [1] x2 + [2] 257.24/67.98 257.24/67.98 [nil] = [2] 257.24/67.98 257.24/67.98 [U11](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [tt] = [0] 257.24/67.98 257.24/67.98 [U21](x1, x2) = [1] x1 + [1] x2 + [1] 257.24/67.98 257.24/67.98 [U22](x1) = [1] x1 + [1] 257.24/67.98 257.24/67.98 [isList](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [activate](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [U31](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.98 257.24/67.98 [U42](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [isNeList](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.98 257.24/67.98 [U52](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [U61](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.98 257.24/67.98 [U72](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [isPal](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [U81](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [n__nil] = [0] 257.24/67.98 257.24/67.98 [n____](x1, x2) = [1] x1 + [1] x2 + [2] 257.24/67.98 257.24/67.98 [isQid](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [isNePal](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [n__a] = [2] 257.24/67.98 257.24/67.98 [n__e] = [2] 257.24/67.98 257.24/67.98 [n__i] = [2] 257.24/67.98 257.24/67.98 [n__o] = [2] 257.24/67.98 257.24/67.98 [n__u] = [2] 257.24/67.98 257.24/67.98 [a] = [1] 257.24/67.98 257.24/67.98 [e] = [1] 257.24/67.98 257.24/67.98 [i] = [2] 257.24/67.98 257.24/67.98 [o] = [2] 257.24/67.98 257.24/67.98 [u] = [1] 257.24/67.98 257.24/67.98 The order satisfies the following ordering constraints: 257.24/67.98 257.24/67.98 [__(X1, X2)] = [1] X1 + [1] X2 + [2] 257.24/67.98 >= [1] X1 + [1] X2 + [2] 257.24/67.98 = [n____(X1, X2)] 257.24/67.98 257.24/67.98 [__(X, nil())] = [1] X + [4] 257.24/67.98 > [1] X + [0] 257.24/67.98 = [X] 257.24/67.98 257.24/67.98 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [4] 257.24/67.98 >= [1] X + [1] Y + [1] Z + [4] 257.24/67.98 = [__(X, __(Y, Z))] 257.24/67.98 257.24/67.98 [__(nil(), X)] = [1] X + [4] 257.24/67.98 > [1] X + [0] 257.24/67.98 = [X] 257.24/67.98 257.24/67.98 [nil()] = [2] 257.24/67.98 > [0] 257.24/67.98 = [n__nil()] 257.24/67.98 257.24/67.98 [U11(tt())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [U21(tt(), V2)] = [1] V2 + [1] 257.24/67.98 >= [1] V2 + [1] 257.24/67.98 = [U22(isList(activate(V2)))] 257.24/67.98 257.24/67.98 [U22(tt())] = [1] 257.24/67.98 > [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isList(V)] = [1] V + [0] 257.24/67.98 >= [1] V + [0] 257.24/67.98 = [U11(isNeList(activate(V)))] 257.24/67.98 257.24/67.98 [isList(n__nil())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [2] 257.24/67.98 > [1] V2 + [1] V1 + [1] 257.24/67.98 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.98 257.24/67.98 [activate(X)] = [1] X + [0] 257.24/67.98 >= [1] X + [0] 257.24/67.98 = [X] 257.24/67.98 257.24/67.98 [activate(n__nil())] = [0] 257.24/67.98 ? [2] 257.24/67.98 = [nil()] 257.24/67.98 257.24/67.98 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [2] 257.24/67.98 >= [1] X1 + [1] X2 + [2] 257.24/67.98 = [__(activate(X1), activate(X2))] 257.24/67.98 257.24/67.98 [activate(n__a())] = [2] 257.24/67.98 > [1] 257.24/67.98 = [a()] 257.24/67.98 257.24/67.98 [activate(n__e())] = [2] 257.24/67.98 > [1] 257.24/67.98 = [e()] 257.24/67.98 257.24/67.98 [activate(n__i())] = [2] 257.24/67.98 >= [2] 257.24/67.98 = [i()] 257.24/67.98 257.24/67.98 [activate(n__o())] = [2] 257.24/67.98 >= [2] 257.24/67.98 = [o()] 257.24/67.98 257.24/67.98 [activate(n__u())] = [2] 257.24/67.98 > [1] 257.24/67.98 = [u()] 257.24/67.98 257.24/67.98 [U31(tt())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [U41(tt(), V2)] = [1] V2 + [0] 257.24/67.98 >= [1] V2 + [0] 257.24/67.98 = [U42(isNeList(activate(V2)))] 257.24/67.98 257.24/67.98 [U42(tt())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isNeList(V)] = [1] V + [0] 257.24/67.98 >= [1] V + [0] 257.24/67.98 = [U31(isQid(activate(V)))] 257.24/67.98 257.24/67.98 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [2] 257.24/67.98 > [1] V2 + [1] V1 + [0] 257.24/67.98 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.98 257.24/67.98 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [2] 257.24/67.98 > [1] V2 + [1] V1 + [0] 257.24/67.98 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.98 257.24/67.98 [U51(tt(), V2)] = [1] V2 + [0] 257.24/67.98 >= [1] V2 + [0] 257.24/67.98 = [U52(isList(activate(V2)))] 257.24/67.98 257.24/67.98 [U52(tt())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [U61(tt())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [U71(tt(), P)] = [1] P + [0] 257.24/67.98 >= [1] P + [0] 257.24/67.98 = [U72(isPal(activate(P)))] 257.24/67.98 257.24/67.98 [U72(tt())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isPal(V)] = [1] V + [0] 257.24/67.98 >= [1] V + [0] 257.24/67.98 = [U81(isNePal(activate(V)))] 257.24/67.98 257.24/67.98 [isPal(n__nil())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [U81(tt())] = [0] 257.24/67.98 >= [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isQid(n__a())] = [2] 257.24/67.98 > [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isQid(n__e())] = [2] 257.24/67.98 > [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isQid(n__i())] = [2] 257.24/67.98 > [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isQid(n__o())] = [2] 257.24/67.98 > [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isQid(n__u())] = [2] 257.24/67.98 > [0] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isNePal(V)] = [1] V + [0] 257.24/67.98 >= [1] V + [0] 257.24/67.98 = [U61(isQid(activate(V)))] 257.24/67.98 257.24/67.98 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [4] 257.24/67.98 > [1] P + [1] I + [0] 257.24/67.98 = [U71(isQid(activate(I)), activate(P))] 257.24/67.98 257.24/67.98 [a()] = [1] 257.24/67.98 ? [2] 257.24/67.98 = [n__a()] 257.24/67.98 257.24/67.98 [e()] = [1] 257.24/67.98 ? [2] 257.24/67.98 = [n__e()] 257.24/67.98 257.24/67.98 [i()] = [2] 257.24/67.98 >= [2] 257.24/67.98 = [n__i()] 257.24/67.98 257.24/67.98 [o()] = [2] 257.24/67.98 >= [2] 257.24/67.98 = [n__o()] 257.24/67.98 257.24/67.98 [u()] = [1] 257.24/67.98 ? [2] 257.24/67.98 = [n__u()] 257.24/67.98 257.24/67.98 257.24/67.98 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 257.24/67.98 257.24/67.98 We are left with following problem, upon which TcT provides the 257.24/67.98 certificate MAYBE. 257.24/67.98 257.24/67.98 Strict Trs: 257.24/67.98 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.98 , U11(tt()) -> tt() 257.24/67.98 , activate(X) -> X 257.24/67.98 , activate(n__nil()) -> nil() 257.24/67.98 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.98 , activate(n__i()) -> i() 257.24/67.98 , activate(n__o()) -> o() 257.24/67.98 , U72(tt()) -> tt() 257.24/67.98 , a() -> n__a() 257.24/67.98 , e() -> n__e() 257.24/67.98 , u() -> n__u() } 257.24/67.98 Weak Trs: 257.24/67.98 { __(X1, X2) -> n____(X1, X2) 257.24/67.98 , __(X, nil()) -> X 257.24/67.98 , __(nil(), X) -> X 257.24/67.98 , nil() -> n__nil() 257.24/67.98 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.98 , U22(tt()) -> tt() 257.24/67.98 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.98 , isList(n__nil()) -> tt() 257.24/67.98 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.98 , activate(n__a()) -> a() 257.24/67.98 , activate(n__e()) -> e() 257.24/67.98 , activate(n__u()) -> u() 257.24/67.98 , U31(tt()) -> tt() 257.24/67.98 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.98 , U42(tt()) -> tt() 257.24/67.98 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.98 , isNeList(n____(V1, V2)) -> 257.24/67.98 U41(isList(activate(V1)), activate(V2)) 257.24/67.98 , isNeList(n____(V1, V2)) -> 257.24/67.98 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.98 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.98 , U52(tt()) -> tt() 257.24/67.98 , U61(tt()) -> tt() 257.24/67.98 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.98 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.98 , isPal(n__nil()) -> tt() 257.24/67.98 , U81(tt()) -> tt() 257.24/67.98 , isQid(n__a()) -> tt() 257.24/67.98 , isQid(n__e()) -> tt() 257.24/67.98 , isQid(n__i()) -> tt() 257.24/67.98 , isQid(n__o()) -> tt() 257.24/67.98 , isQid(n__u()) -> tt() 257.24/67.98 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.98 , isNePal(n____(I, n____(P, I))) -> 257.24/67.98 U71(isQid(activate(I)), activate(P)) 257.24/67.98 , i() -> n__i() 257.24/67.98 , o() -> n__o() } 257.24/67.98 Obligation: 257.24/67.98 derivational complexity 257.24/67.98 Answer: 257.24/67.98 MAYBE 257.24/67.98 257.24/67.98 We use the processor 'matrix interpretation of dimension 1' to 257.24/67.98 orient following rules strictly. 257.24/67.98 257.24/67.98 Trs: { U72(tt()) -> tt() } 257.24/67.98 257.24/67.98 The induced complexity on above rules (modulo remaining rules) is 257.24/67.98 YES(?,O(n^1)) . These rules are moved into the corresponding weak 257.24/67.98 component(s). 257.24/67.98 257.24/67.98 Sub-proof: 257.24/67.98 ---------- 257.24/67.98 TcT has computed the following triangular matrix interpretation. 257.24/67.98 257.24/67.98 [__](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.98 257.24/67.98 [nil] = [1] 257.24/67.98 257.24/67.98 [U11](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [tt] = [1] 257.24/67.98 257.24/67.98 [U21](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.98 257.24/67.98 [U22](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [isList](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [activate](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [U31](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.98 257.24/67.98 [U42](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [isNeList](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [U51](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.98 257.24/67.98 [U52](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [U61](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.98 257.24/67.98 [U72](x1) = [1] x1 + [1] 257.24/67.98 257.24/67.98 [isPal](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [U81](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [n__nil] = [1] 257.24/67.98 257.24/67.98 [n____](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.98 257.24/67.98 [isQid](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [isNePal](x1) = [1] x1 + [0] 257.24/67.98 257.24/67.98 [n__a] = [2] 257.24/67.98 257.24/67.98 [n__e] = [2] 257.24/67.98 257.24/67.98 [n__i] = [1] 257.24/67.98 257.24/67.98 [n__o] = [1] 257.24/67.98 257.24/67.98 [n__u] = [2] 257.24/67.98 257.24/67.98 [a] = [2] 257.24/67.98 257.24/67.98 [e] = [2] 257.24/67.98 257.24/67.98 [i] = [1] 257.24/67.98 257.24/67.98 [o] = [1] 257.24/67.98 257.24/67.98 [u] = [2] 257.24/67.98 257.24/67.98 The order satisfies the following ordering constraints: 257.24/67.98 257.24/67.98 [__(X1, X2)] = [1] X1 + [1] X2 + [0] 257.24/67.98 >= [1] X1 + [1] X2 + [0] 257.24/67.98 = [n____(X1, X2)] 257.24/67.98 257.24/67.98 [__(X, nil())] = [1] X + [1] 257.24/67.98 > [1] X + [0] 257.24/67.98 = [X] 257.24/67.98 257.24/67.98 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [0] 257.24/67.98 >= [1] X + [1] Y + [1] Z + [0] 257.24/67.98 = [__(X, __(Y, Z))] 257.24/67.98 257.24/67.98 [__(nil(), X)] = [1] X + [1] 257.24/67.98 > [1] X + [0] 257.24/67.98 = [X] 257.24/67.98 257.24/67.98 [nil()] = [1] 257.24/67.98 >= [1] 257.24/67.98 = [n__nil()] 257.24/67.98 257.24/67.98 [U11(tt())] = [1] 257.24/67.98 >= [1] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [U21(tt(), V2)] = [1] V2 + [1] 257.24/67.98 > [1] V2 + [0] 257.24/67.98 = [U22(isList(activate(V2)))] 257.24/67.98 257.24/67.98 [U22(tt())] = [1] 257.24/67.98 >= [1] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isList(V)] = [1] V + [0] 257.24/67.98 >= [1] V + [0] 257.24/67.98 = [U11(isNeList(activate(V)))] 257.24/67.98 257.24/67.98 [isList(n__nil())] = [1] 257.24/67.98 >= [1] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.98 >= [1] V2 + [1] V1 + [0] 257.24/67.98 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.98 257.24/67.98 [activate(X)] = [1] X + [0] 257.24/67.98 >= [1] X + [0] 257.24/67.98 = [X] 257.24/67.98 257.24/67.98 [activate(n__nil())] = [1] 257.24/67.98 >= [1] 257.24/67.98 = [nil()] 257.24/67.98 257.24/67.98 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [0] 257.24/67.98 >= [1] X1 + [1] X2 + [0] 257.24/67.98 = [__(activate(X1), activate(X2))] 257.24/67.98 257.24/67.98 [activate(n__a())] = [2] 257.24/67.98 >= [2] 257.24/67.98 = [a()] 257.24/67.98 257.24/67.98 [activate(n__e())] = [2] 257.24/67.98 >= [2] 257.24/67.98 = [e()] 257.24/67.98 257.24/67.98 [activate(n__i())] = [1] 257.24/67.98 >= [1] 257.24/67.98 = [i()] 257.24/67.98 257.24/67.98 [activate(n__o())] = [1] 257.24/67.98 >= [1] 257.24/67.98 = [o()] 257.24/67.98 257.24/67.98 [activate(n__u())] = [2] 257.24/67.98 >= [2] 257.24/67.98 = [u()] 257.24/67.98 257.24/67.98 [U31(tt())] = [1] 257.24/67.98 >= [1] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [U41(tt(), V2)] = [1] V2 + [1] 257.24/67.98 > [1] V2 + [0] 257.24/67.98 = [U42(isNeList(activate(V2)))] 257.24/67.98 257.24/67.98 [U42(tt())] = [1] 257.24/67.98 >= [1] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isNeList(V)] = [1] V + [0] 257.24/67.98 >= [1] V + [0] 257.24/67.98 = [U31(isQid(activate(V)))] 257.24/67.98 257.24/67.98 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.98 >= [1] V2 + [1] V1 + [0] 257.24/67.98 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.98 257.24/67.98 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [0] 257.24/67.98 >= [1] V2 + [1] V1 + [0] 257.24/67.98 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.98 257.24/67.98 [U51(tt(), V2)] = [1] V2 + [1] 257.24/67.98 > [1] V2 + [0] 257.24/67.98 = [U52(isList(activate(V2)))] 257.24/67.98 257.24/67.98 [U52(tt())] = [1] 257.24/67.98 >= [1] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [U61(tt())] = [1] 257.24/67.98 >= [1] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [U71(tt(), P)] = [1] P + [1] 257.24/67.98 >= [1] P + [1] 257.24/67.98 = [U72(isPal(activate(P)))] 257.24/67.98 257.24/67.98 [U72(tt())] = [2] 257.24/67.98 > [1] 257.24/67.98 = [tt()] 257.24/67.98 257.24/67.98 [isPal(V)] = [1] V + [0] 257.24/67.98 >= [1] V + [0] 257.24/67.98 = [U81(isNePal(activate(V)))] 257.24/67.98 257.24/67.98 [isPal(n__nil())] = [1] 257.24/67.98 >= [1] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [U81(tt())] = [1] 257.24/67.99 >= [1] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isQid(n__a())] = [2] 257.24/67.99 > [1] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isQid(n__e())] = [2] 257.24/67.99 > [1] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isQid(n__i())] = [1] 257.24/67.99 >= [1] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isQid(n__o())] = [1] 257.24/67.99 >= [1] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isQid(n__u())] = [2] 257.24/67.99 > [1] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isNePal(V)] = [1] V + [0] 257.24/67.99 >= [1] V + [0] 257.24/67.99 = [U61(isQid(activate(V)))] 257.24/67.99 257.24/67.99 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [0] 257.24/67.99 >= [1] P + [1] I + [0] 257.24/67.99 = [U71(isQid(activate(I)), activate(P))] 257.24/67.99 257.24/67.99 [a()] = [2] 257.24/67.99 >= [2] 257.24/67.99 = [n__a()] 257.24/67.99 257.24/67.99 [e()] = [2] 257.24/67.99 >= [2] 257.24/67.99 = [n__e()] 257.24/67.99 257.24/67.99 [i()] = [1] 257.24/67.99 >= [1] 257.24/67.99 = [n__i()] 257.24/67.99 257.24/67.99 [o()] = [1] 257.24/67.99 >= [1] 257.24/67.99 = [n__o()] 257.24/67.99 257.24/67.99 [u()] = [2] 257.24/67.99 >= [2] 257.24/67.99 = [n__u()] 257.24/67.99 257.24/67.99 257.24/67.99 We return to the main proof. 257.24/67.99 257.24/67.99 We are left with following problem, upon which TcT provides the 257.24/67.99 certificate MAYBE. 257.24/67.99 257.24/67.99 Strict Trs: 257.24/67.99 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.99 , U11(tt()) -> tt() 257.24/67.99 , activate(X) -> X 257.24/67.99 , activate(n__nil()) -> nil() 257.24/67.99 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.99 , activate(n__i()) -> i() 257.24/67.99 , activate(n__o()) -> o() 257.24/67.99 , a() -> n__a() 257.24/67.99 , e() -> n__e() 257.24/67.99 , u() -> n__u() } 257.24/67.99 Weak Trs: 257.24/67.99 { __(X1, X2) -> n____(X1, X2) 257.24/67.99 , __(X, nil()) -> X 257.24/67.99 , __(nil(), X) -> X 257.24/67.99 , nil() -> n__nil() 257.24/67.99 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.99 , U22(tt()) -> tt() 257.24/67.99 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.99 , isList(n__nil()) -> tt() 257.24/67.99 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.99 , activate(n__a()) -> a() 257.24/67.99 , activate(n__e()) -> e() 257.24/67.99 , activate(n__u()) -> u() 257.24/67.99 , U31(tt()) -> tt() 257.24/67.99 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.99 , U42(tt()) -> tt() 257.24/67.99 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.99 , isNeList(n____(V1, V2)) -> 257.24/67.99 U41(isList(activate(V1)), activate(V2)) 257.24/67.99 , isNeList(n____(V1, V2)) -> 257.24/67.99 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.99 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.99 , U52(tt()) -> tt() 257.24/67.99 , U61(tt()) -> tt() 257.24/67.99 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.99 , U72(tt()) -> tt() 257.24/67.99 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.99 , isPal(n__nil()) -> tt() 257.24/67.99 , U81(tt()) -> tt() 257.24/67.99 , isQid(n__a()) -> tt() 257.24/67.99 , isQid(n__e()) -> tt() 257.24/67.99 , isQid(n__i()) -> tt() 257.24/67.99 , isQid(n__o()) -> tt() 257.24/67.99 , isQid(n__u()) -> tt() 257.24/67.99 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.99 , isNePal(n____(I, n____(P, I))) -> 257.24/67.99 U71(isQid(activate(I)), activate(P)) 257.24/67.99 , i() -> n__i() 257.24/67.99 , o() -> n__o() } 257.24/67.99 Obligation: 257.24/67.99 derivational complexity 257.24/67.99 Answer: 257.24/67.99 MAYBE 257.24/67.99 257.24/67.99 The weightgap principle applies (using the following nonconstant 257.24/67.99 growth matrix-interpretation) 257.24/67.99 257.24/67.99 TcT has computed the following triangular matrix interpretation. 257.24/67.99 Note that the diagonal of the component-wise maxima of 257.24/67.99 interpretation-entries contains no more than 1 non-zero entries. 257.24/67.99 257.24/67.99 [__](x1, x2) = [1] x1 + [1] x2 + [1] 257.24/67.99 257.24/67.99 [nil] = [2] 257.24/67.99 257.24/67.99 [U11](x1) = [1] x1 + [1] 257.24/67.99 257.24/67.99 [tt] = [0] 257.24/67.99 257.24/67.99 [U21](x1, x2) = [1] x1 + [1] x2 + [1] 257.24/67.99 257.24/67.99 [U22](x1) = [1] x1 + [0] 257.24/67.99 257.24/67.99 [isList](x1) = [1] x1 + [1] 257.24/67.99 257.24/67.99 [activate](x1) = [1] x1 + [0] 257.24/67.99 257.24/67.99 [U31](x1) = [1] x1 + [0] 257.24/67.99 257.24/67.99 [U41](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.99 257.24/67.99 [U42](x1) = [1] x1 + [0] 257.24/67.99 257.24/67.99 [isNeList](x1) = [1] x1 + [0] 257.24/67.99 257.24/67.99 [U51](x1, x2) = [1] x1 + [1] x2 + [1] 257.24/67.99 257.24/67.99 [U52](x1) = [1] x1 + [0] 257.24/67.99 257.24/67.99 [U61](x1) = [1] x1 + [0] 257.24/67.99 257.24/67.99 [U71](x1, x2) = [1] x1 + [1] x2 + [0] 257.24/67.99 257.24/67.99 [U72](x1) = [1] x1 + [0] 257.24/67.99 257.24/67.99 [isPal](x1) = [1] x1 + [0] 257.24/67.99 257.24/67.99 [U81](x1) = [1] x1 + [0] 257.24/67.99 257.24/67.99 [n__nil] = [2] 257.24/67.99 257.24/67.99 [n____](x1, x2) = [1] x1 + [1] x2 + [1] 257.24/67.99 257.24/67.99 [isQid](x1) = [1] x1 + [0] 257.24/67.99 257.24/67.99 [isNePal](x1) = [1] x1 + [0] 257.24/67.99 257.24/67.99 [n__a] = [2] 257.24/67.99 257.24/67.99 [n__e] = [2] 257.24/67.99 257.24/67.99 [n__i] = [2] 257.24/67.99 257.24/67.99 [n__o] = [2] 257.24/67.99 257.24/67.99 [n__u] = [2] 257.24/67.99 257.24/67.99 [a] = [1] 257.24/67.99 257.24/67.99 [e] = [1] 257.24/67.99 257.24/67.99 [i] = [2] 257.24/67.99 257.24/67.99 [o] = [2] 257.24/67.99 257.24/67.99 [u] = [1] 257.24/67.99 257.24/67.99 The order satisfies the following ordering constraints: 257.24/67.99 257.24/67.99 [__(X1, X2)] = [1] X1 + [1] X2 + [1] 257.24/67.99 >= [1] X1 + [1] X2 + [1] 257.24/67.99 = [n____(X1, X2)] 257.24/67.99 257.24/67.99 [__(X, nil())] = [1] X + [3] 257.24/67.99 > [1] X + [0] 257.24/67.99 = [X] 257.24/67.99 257.24/67.99 [__(__(X, Y), Z)] = [1] X + [1] Y + [1] Z + [2] 257.24/67.99 >= [1] X + [1] Y + [1] Z + [2] 257.24/67.99 = [__(X, __(Y, Z))] 257.24/67.99 257.24/67.99 [__(nil(), X)] = [1] X + [3] 257.24/67.99 > [1] X + [0] 257.24/67.99 = [X] 257.24/67.99 257.24/67.99 [nil()] = [2] 257.24/67.99 >= [2] 257.24/67.99 = [n__nil()] 257.24/67.99 257.24/67.99 [U11(tt())] = [1] 257.24/67.99 > [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [U21(tt(), V2)] = [1] V2 + [1] 257.24/67.99 >= [1] V2 + [1] 257.24/67.99 = [U22(isList(activate(V2)))] 257.24/67.99 257.24/67.99 [U22(tt())] = [0] 257.24/67.99 >= [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isList(V)] = [1] V + [1] 257.24/67.99 >= [1] V + [1] 257.24/67.99 = [U11(isNeList(activate(V)))] 257.24/67.99 257.24/67.99 [isList(n__nil())] = [3] 257.24/67.99 > [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isList(n____(V1, V2))] = [1] V2 + [1] V1 + [2] 257.24/67.99 >= [1] V2 + [1] V1 + [2] 257.24/67.99 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.99 257.24/67.99 [activate(X)] = [1] X + [0] 257.24/67.99 >= [1] X + [0] 257.24/67.99 = [X] 257.24/67.99 257.24/67.99 [activate(n__nil())] = [2] 257.24/67.99 >= [2] 257.24/67.99 = [nil()] 257.24/67.99 257.24/67.99 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [1] 257.24/67.99 >= [1] X1 + [1] X2 + [1] 257.24/67.99 = [__(activate(X1), activate(X2))] 257.24/67.99 257.24/67.99 [activate(n__a())] = [2] 257.24/67.99 > [1] 257.24/67.99 = [a()] 257.24/67.99 257.24/67.99 [activate(n__e())] = [2] 257.24/67.99 > [1] 257.24/67.99 = [e()] 257.24/67.99 257.24/67.99 [activate(n__i())] = [2] 257.24/67.99 >= [2] 257.24/67.99 = [i()] 257.24/67.99 257.24/67.99 [activate(n__o())] = [2] 257.24/67.99 >= [2] 257.24/67.99 = [o()] 257.24/67.99 257.24/67.99 [activate(n__u())] = [2] 257.24/67.99 > [1] 257.24/67.99 = [u()] 257.24/67.99 257.24/67.99 [U31(tt())] = [0] 257.24/67.99 >= [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [U41(tt(), V2)] = [1] V2 + [0] 257.24/67.99 >= [1] V2 + [0] 257.24/67.99 = [U42(isNeList(activate(V2)))] 257.24/67.99 257.24/67.99 [U42(tt())] = [0] 257.24/67.99 >= [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isNeList(V)] = [1] V + [0] 257.24/67.99 >= [1] V + [0] 257.24/67.99 = [U31(isQid(activate(V)))] 257.24/67.99 257.24/67.99 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [1] 257.24/67.99 >= [1] V2 + [1] V1 + [1] 257.24/67.99 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.99 257.24/67.99 [isNeList(n____(V1, V2))] = [1] V2 + [1] V1 + [1] 257.24/67.99 >= [1] V2 + [1] V1 + [1] 257.24/67.99 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.99 257.24/67.99 [U51(tt(), V2)] = [1] V2 + [1] 257.24/67.99 >= [1] V2 + [1] 257.24/67.99 = [U52(isList(activate(V2)))] 257.24/67.99 257.24/67.99 [U52(tt())] = [0] 257.24/67.99 >= [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [U61(tt())] = [0] 257.24/67.99 >= [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [U71(tt(), P)] = [1] P + [0] 257.24/67.99 >= [1] P + [0] 257.24/67.99 = [U72(isPal(activate(P)))] 257.24/67.99 257.24/67.99 [U72(tt())] = [0] 257.24/67.99 >= [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isPal(V)] = [1] V + [0] 257.24/67.99 >= [1] V + [0] 257.24/67.99 = [U81(isNePal(activate(V)))] 257.24/67.99 257.24/67.99 [isPal(n__nil())] = [2] 257.24/67.99 > [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [U81(tt())] = [0] 257.24/67.99 >= [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isQid(n__a())] = [2] 257.24/67.99 > [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isQid(n__e())] = [2] 257.24/67.99 > [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isQid(n__i())] = [2] 257.24/67.99 > [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isQid(n__o())] = [2] 257.24/67.99 > [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isQid(n__u())] = [2] 257.24/67.99 > [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isNePal(V)] = [1] V + [0] 257.24/67.99 >= [1] V + [0] 257.24/67.99 = [U61(isQid(activate(V)))] 257.24/67.99 257.24/67.99 [isNePal(n____(I, n____(P, I)))] = [1] P + [2] I + [2] 257.24/67.99 > [1] P + [1] I + [0] 257.24/67.99 = [U71(isQid(activate(I)), activate(P))] 257.24/67.99 257.24/67.99 [a()] = [1] 257.24/67.99 ? [2] 257.24/67.99 = [n__a()] 257.24/67.99 257.24/67.99 [e()] = [1] 257.24/67.99 ? [2] 257.24/67.99 = [n__e()] 257.24/67.99 257.24/67.99 [i()] = [2] 257.24/67.99 >= [2] 257.24/67.99 = [n__i()] 257.24/67.99 257.24/67.99 [o()] = [2] 257.24/67.99 >= [2] 257.24/67.99 = [n__o()] 257.24/67.99 257.24/67.99 [u()] = [1] 257.24/67.99 ? [2] 257.24/67.99 = [n__u()] 257.24/67.99 257.24/67.99 257.24/67.99 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 257.24/67.99 257.24/67.99 We are left with following problem, upon which TcT provides the 257.24/67.99 certificate MAYBE. 257.24/67.99 257.24/67.99 Strict Trs: 257.24/67.99 { __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/67.99 , activate(X) -> X 257.24/67.99 , activate(n__nil()) -> nil() 257.24/67.99 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/67.99 , activate(n__i()) -> i() 257.24/67.99 , activate(n__o()) -> o() 257.24/67.99 , a() -> n__a() 257.24/67.99 , e() -> n__e() 257.24/67.99 , u() -> n__u() } 257.24/67.99 Weak Trs: 257.24/67.99 { __(X1, X2) -> n____(X1, X2) 257.24/67.99 , __(X, nil()) -> X 257.24/67.99 , __(nil(), X) -> X 257.24/67.99 , nil() -> n__nil() 257.24/67.99 , U11(tt()) -> tt() 257.24/67.99 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/67.99 , U22(tt()) -> tt() 257.24/67.99 , isList(V) -> U11(isNeList(activate(V))) 257.24/67.99 , isList(n__nil()) -> tt() 257.24/67.99 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/67.99 , activate(n__a()) -> a() 257.24/67.99 , activate(n__e()) -> e() 257.24/67.99 , activate(n__u()) -> u() 257.24/67.99 , U31(tt()) -> tt() 257.24/67.99 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/67.99 , U42(tt()) -> tt() 257.24/67.99 , isNeList(V) -> U31(isQid(activate(V))) 257.24/67.99 , isNeList(n____(V1, V2)) -> 257.24/67.99 U41(isList(activate(V1)), activate(V2)) 257.24/67.99 , isNeList(n____(V1, V2)) -> 257.24/67.99 U51(isNeList(activate(V1)), activate(V2)) 257.24/67.99 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/67.99 , U52(tt()) -> tt() 257.24/67.99 , U61(tt()) -> tt() 257.24/67.99 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/67.99 , U72(tt()) -> tt() 257.24/67.99 , isPal(V) -> U81(isNePal(activate(V))) 257.24/67.99 , isPal(n__nil()) -> tt() 257.24/67.99 , U81(tt()) -> tt() 257.24/67.99 , isQid(n__a()) -> tt() 257.24/67.99 , isQid(n__e()) -> tt() 257.24/67.99 , isQid(n__i()) -> tt() 257.24/67.99 , isQid(n__o()) -> tt() 257.24/67.99 , isQid(n__u()) -> tt() 257.24/67.99 , isNePal(V) -> U61(isQid(activate(V))) 257.24/67.99 , isNePal(n____(I, n____(P, I))) -> 257.24/67.99 U71(isQid(activate(I)), activate(P)) 257.24/67.99 , i() -> n__i() 257.24/67.99 , o() -> n__o() } 257.24/67.99 Obligation: 257.24/67.99 derivational complexity 257.24/67.99 Answer: 257.24/67.99 MAYBE 257.24/67.99 257.24/67.99 We use the processor 'matrix interpretation of dimension 2' to 257.24/67.99 orient following rules strictly. 257.24/67.99 257.24/67.99 Trs: { __(__(X, Y), Z) -> __(X, __(Y, Z)) } 257.24/67.99 257.24/67.99 The induced complexity on above rules (modulo remaining rules) is 257.24/67.99 YES(?,O(n^2)) . These rules are moved into the corresponding weak 257.24/67.99 component(s). 257.24/67.99 257.24/67.99 Sub-proof: 257.24/67.99 ---------- 257.24/67.99 TcT has computed the following triangular matrix interpretation. 257.24/67.99 257.24/67.99 [__](x1, x2) = [1 1] x1 + [1 0] x2 + [0] 257.24/67.99 [0 1] [0 1] [1] 257.24/67.99 257.24/67.99 [nil] = [0] 257.24/67.99 [0] 257.24/67.99 257.24/67.99 [U11](x1) = [1 0] x1 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 257.24/67.99 [tt] = [0] 257.24/67.99 [0] 257.24/67.99 257.24/67.99 [U21](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 257.24/67.99 [0 0] [0 0] [0] 257.24/67.99 257.24/67.99 [U22](x1) = [1 0] x1 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 257.24/67.99 [isList](x1) = [1 0] x1 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 257.24/67.99 [activate](x1) = [1 0] x1 + [0] 257.24/67.99 [0 1] [0] 257.24/67.99 257.24/67.99 [U31](x1) = [1 0] x1 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 257.24/67.99 [U41](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 257.24/67.99 [0 0] [0 0] [0] 257.24/67.99 257.24/67.99 [U42](x1) = [1 0] x1 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 257.24/67.99 [isNeList](x1) = [1 0] x1 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 257.24/67.99 [U51](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 257.24/67.99 [0 0] [0 0] [0] 257.24/67.99 257.24/67.99 [U52](x1) = [1 0] x1 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 257.24/67.99 [U61](x1) = [1 0] x1 + [0] 257.24/67.99 [0 0] [2] 257.24/67.99 257.24/67.99 [U71](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 257.24/67.99 [0 0] [0 0] [0] 257.24/67.99 257.24/67.99 [U72](x1) = [1 0] x1 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 257.24/67.99 [isPal](x1) = [1 0] x1 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 257.24/67.99 [U81](x1) = [1 0] x1 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 257.24/67.99 [n__nil] = [0] 257.24/67.99 [0] 257.24/67.99 257.24/67.99 [n____](x1, x2) = [1 1] x1 + [1 0] x2 + [0] 257.24/67.99 [0 1] [0 1] [1] 257.24/67.99 257.24/67.99 [isQid](x1) = [1 0] x1 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 257.24/67.99 [isNePal](x1) = [1 0] x1 + [0] 257.24/67.99 [0 1] [2] 257.24/67.99 257.24/67.99 [n__a] = [0] 257.24/67.99 [0] 257.24/67.99 257.24/67.99 [n__e] = [0] 257.24/67.99 [0] 257.24/67.99 257.24/67.99 [n__i] = [0] 257.24/67.99 [0] 257.24/67.99 257.24/67.99 [n__o] = [0] 257.24/67.99 [0] 257.24/67.99 257.24/67.99 [n__u] = [0] 257.24/67.99 [0] 257.24/67.99 257.24/67.99 [a] = [0] 257.24/67.99 [0] 257.24/67.99 257.24/67.99 [e] = [0] 257.24/67.99 [0] 257.24/67.99 257.24/67.99 [i] = [0] 257.24/67.99 [0] 257.24/67.99 257.24/67.99 [o] = [0] 257.24/67.99 [0] 257.24/67.99 257.24/67.99 [u] = [0] 257.24/67.99 [0] 257.24/67.99 257.24/67.99 The order satisfies the following ordering constraints: 257.24/67.99 257.24/67.99 [__(X1, X2)] = [1 1] X1 + [1 0] X2 + [0] 257.24/67.99 [0 1] [0 1] [1] 257.24/67.99 >= [1 1] X1 + [1 0] X2 + [0] 257.24/67.99 [0 1] [0 1] [1] 257.24/67.99 = [n____(X1, X2)] 257.24/67.99 257.24/67.99 [__(X, nil())] = [1 1] X + [0] 257.24/67.99 [0 1] [1] 257.24/67.99 >= [1 0] X + [0] 257.24/67.99 [0 1] [0] 257.24/67.99 = [X] 257.24/67.99 257.24/67.99 [__(__(X, Y), Z)] = [1 2] X + [1 1] Y + [1 0] Z + [1] 257.24/67.99 [0 1] [0 1] [0 1] [2] 257.24/67.99 > [1 1] X + [1 1] Y + [1 0] Z + [0] 257.24/67.99 [0 1] [0 1] [0 1] [2] 257.24/67.99 = [__(X, __(Y, Z))] 257.24/67.99 257.24/67.99 [__(nil(), X)] = [1 0] X + [0] 257.24/67.99 [0 1] [1] 257.24/67.99 >= [1 0] X + [0] 257.24/67.99 [0 1] [0] 257.24/67.99 = [X] 257.24/67.99 257.24/67.99 [nil()] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [n__nil()] 257.24/67.99 257.24/67.99 [U11(tt())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [U21(tt(), V2)] = [1 0] V2 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 >= [1 0] V2 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 = [U22(isList(activate(V2)))] 257.24/67.99 257.24/67.99 [U22(tt())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isList(V)] = [1 0] V + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 >= [1 0] V + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 = [U11(isNeList(activate(V)))] 257.24/67.99 257.24/67.99 [isList(n__nil())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isList(n____(V1, V2))] = [1 0] V2 + [1 1] V1 + [0] 257.24/67.99 [0 0] [0 0] [0] 257.24/67.99 >= [1 0] V2 + [1 0] V1 + [0] 257.24/67.99 [0 0] [0 0] [0] 257.24/67.99 = [U21(isList(activate(V1)), activate(V2))] 257.24/67.99 257.24/67.99 [activate(X)] = [1 0] X + [0] 257.24/67.99 [0 1] [0] 257.24/67.99 >= [1 0] X + [0] 257.24/67.99 [0 1] [0] 257.24/67.99 = [X] 257.24/67.99 257.24/67.99 [activate(n__nil())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [nil()] 257.24/67.99 257.24/67.99 [activate(n____(X1, X2))] = [1 1] X1 + [1 0] X2 + [0] 257.24/67.99 [0 1] [0 1] [1] 257.24/67.99 >= [1 1] X1 + [1 0] X2 + [0] 257.24/67.99 [0 1] [0 1] [1] 257.24/67.99 = [__(activate(X1), activate(X2))] 257.24/67.99 257.24/67.99 [activate(n__a())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [a()] 257.24/67.99 257.24/67.99 [activate(n__e())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [e()] 257.24/67.99 257.24/67.99 [activate(n__i())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [i()] 257.24/67.99 257.24/67.99 [activate(n__o())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [o()] 257.24/67.99 257.24/67.99 [activate(n__u())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [u()] 257.24/67.99 257.24/67.99 [U31(tt())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [U41(tt(), V2)] = [1 0] V2 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 >= [1 0] V2 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 = [U42(isNeList(activate(V2)))] 257.24/67.99 257.24/67.99 [U42(tt())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isNeList(V)] = [1 0] V + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 >= [1 0] V + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 = [U31(isQid(activate(V)))] 257.24/67.99 257.24/67.99 [isNeList(n____(V1, V2))] = [1 0] V2 + [1 1] V1 + [0] 257.24/67.99 [0 0] [0 0] [0] 257.24/67.99 >= [1 0] V2 + [1 0] V1 + [0] 257.24/67.99 [0 0] [0 0] [0] 257.24/67.99 = [U41(isList(activate(V1)), activate(V2))] 257.24/67.99 257.24/67.99 [isNeList(n____(V1, V2))] = [1 0] V2 + [1 1] V1 + [0] 257.24/67.99 [0 0] [0 0] [0] 257.24/67.99 >= [1 0] V2 + [1 0] V1 + [0] 257.24/67.99 [0 0] [0 0] [0] 257.24/67.99 = [U51(isNeList(activate(V1)), activate(V2))] 257.24/67.99 257.24/67.99 [U51(tt(), V2)] = [1 0] V2 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 >= [1 0] V2 + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 = [U52(isList(activate(V2)))] 257.24/67.99 257.24/67.99 [U52(tt())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [U61(tt())] = [0] 257.24/67.99 [2] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [U71(tt(), P)] = [1 0] P + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 >= [1 0] P + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 = [U72(isPal(activate(P)))] 257.24/67.99 257.24/67.99 [U72(tt())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isPal(V)] = [1 0] V + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 >= [1 0] V + [0] 257.24/67.99 [0 0] [0] 257.24/67.99 = [U81(isNePal(activate(V)))] 257.24/67.99 257.24/67.99 [isPal(n__nil())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [U81(tt())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isQid(n__a())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/67.99 [0] 257.24/67.99 = [tt()] 257.24/67.99 257.24/67.99 [isQid(n__e())] = [0] 257.24/67.99 [0] 257.24/67.99 >= [0] 257.24/68.00 [0] 257.24/68.00 = [tt()] 257.24/68.00 257.24/68.00 [isQid(n__i())] = [0] 257.24/68.00 [0] 257.24/68.00 >= [0] 257.24/68.00 [0] 257.24/68.00 = [tt()] 257.24/68.00 257.24/68.00 [isQid(n__o())] = [0] 257.24/68.00 [0] 257.24/68.00 >= [0] 257.24/68.00 [0] 257.24/68.00 = [tt()] 257.24/68.00 257.24/68.00 [isQid(n__u())] = [0] 257.24/68.00 [0] 257.24/68.00 >= [0] 257.24/68.00 [0] 257.24/68.00 = [tt()] 257.24/68.00 257.24/68.00 [isNePal(V)] = [1 0] V + [0] 257.24/68.00 [0 1] [2] 257.24/68.00 >= [1 0] V + [0] 257.24/68.00 [0 0] [2] 257.24/68.00 = [U61(isQid(activate(V)))] 257.24/68.00 257.24/68.00 [isNePal(n____(I, n____(P, I)))] = [1 1] P + [2 1] I + [0] 257.24/68.00 [0 1] [0 2] [4] 257.24/68.00 >= [1 0] P + [1 0] I + [0] 257.24/68.00 [0 0] [0 0] [0] 257.24/68.00 = [U71(isQid(activate(I)), activate(P))] 257.24/68.00 257.24/68.00 [a()] = [0] 257.24/68.00 [0] 257.24/68.00 >= [0] 257.24/68.00 [0] 257.24/68.00 = [n__a()] 257.24/68.00 257.24/68.00 [e()] = [0] 257.24/68.00 [0] 257.24/68.00 >= [0] 257.24/68.00 [0] 257.24/68.00 = [n__e()] 257.24/68.00 257.24/68.00 [i()] = [0] 257.24/68.00 [0] 257.24/68.00 >= [0] 257.24/68.00 [0] 257.24/68.00 = [n__i()] 257.24/68.00 257.24/68.00 [o()] = [0] 257.24/68.00 [0] 257.24/68.00 >= [0] 257.24/68.00 [0] 257.24/68.00 = [n__o()] 257.24/68.00 257.24/68.00 [u()] = [0] 257.24/68.00 [0] 257.24/68.00 >= [0] 257.24/68.00 [0] 257.24/68.00 = [n__u()] 257.24/68.00 257.24/68.00 257.24/68.00 We return to the main proof. 257.24/68.00 257.24/68.00 We are left with following problem, upon which TcT provides the 257.24/68.00 certificate MAYBE. 257.24/68.00 257.24/68.00 Strict Trs: 257.24/68.00 { activate(X) -> X 257.24/68.00 , activate(n__nil()) -> nil() 257.24/68.00 , activate(n____(X1, X2)) -> __(activate(X1), activate(X2)) 257.24/68.00 , activate(n__i()) -> i() 257.24/68.00 , activate(n__o()) -> o() 257.24/68.00 , a() -> n__a() 257.24/68.00 , e() -> n__e() 257.24/68.00 , u() -> n__u() } 257.24/68.00 Weak Trs: 257.24/68.00 { __(X1, X2) -> n____(X1, X2) 257.24/68.00 , __(X, nil()) -> X 257.24/68.00 , __(__(X, Y), Z) -> __(X, __(Y, Z)) 257.24/68.00 , __(nil(), X) -> X 257.24/68.00 , nil() -> n__nil() 257.24/68.00 , U11(tt()) -> tt() 257.24/68.00 , U21(tt(), V2) -> U22(isList(activate(V2))) 257.24/68.00 , U22(tt()) -> tt() 257.24/68.00 , isList(V) -> U11(isNeList(activate(V))) 257.24/68.00 , isList(n__nil()) -> tt() 257.24/68.00 , isList(n____(V1, V2)) -> U21(isList(activate(V1)), activate(V2)) 257.24/68.00 , activate(n__a()) -> a() 257.24/68.00 , activate(n__e()) -> e() 257.24/68.00 , activate(n__u()) -> u() 257.24/68.00 , U31(tt()) -> tt() 257.24/68.00 , U41(tt(), V2) -> U42(isNeList(activate(V2))) 257.24/68.00 , U42(tt()) -> tt() 257.24/68.00 , isNeList(V) -> U31(isQid(activate(V))) 257.24/68.00 , isNeList(n____(V1, V2)) -> 257.24/68.00 U41(isList(activate(V1)), activate(V2)) 257.24/68.00 , isNeList(n____(V1, V2)) -> 257.24/68.00 U51(isNeList(activate(V1)), activate(V2)) 257.24/68.00 , U51(tt(), V2) -> U52(isList(activate(V2))) 257.24/68.00 , U52(tt()) -> tt() 257.24/68.00 , U61(tt()) -> tt() 257.24/68.00 , U71(tt(), P) -> U72(isPal(activate(P))) 257.24/68.00 , U72(tt()) -> tt() 257.24/68.00 , isPal(V) -> U81(isNePal(activate(V))) 257.24/68.00 , isPal(n__nil()) -> tt() 257.24/68.00 , U81(tt()) -> tt() 257.24/68.00 , isQid(n__a()) -> tt() 257.24/68.00 , isQid(n__e()) -> tt() 257.24/68.00 , isQid(n__i()) -> tt() 257.24/68.00 , isQid(n__o()) -> tt() 257.24/68.00 , isQid(n__u()) -> tt() 257.24/68.00 , isNePal(V) -> U61(isQid(activate(V))) 257.24/68.00 , isNePal(n____(I, n____(P, I))) -> 257.24/68.00 U71(isQid(activate(I)), activate(P)) 257.24/68.00 , i() -> n__i() 257.24/68.00 , o() -> n__o() } 257.24/68.00 Obligation: 257.24/68.00 derivational complexity 257.24/68.00 Answer: 257.24/68.00 MAYBE 257.24/68.00 257.24/68.00 None of the processors succeeded. 257.24/68.00 257.24/68.00 Details of failed attempt(s): 257.24/68.00 ----------------------------- 257.24/68.00 1) 'empty' failed due to the following reason: 257.24/68.00 257.24/68.00 Empty strict component of the problem is NOT empty. 257.24/68.00 257.24/68.00 2) 'Fastest' failed due to the following reason: 257.24/68.00 257.24/68.00 None of the processors succeeded. 257.24/68.00 257.24/68.00 Details of failed attempt(s): 257.24/68.00 ----------------------------- 257.24/68.00 1) 'Fastest' failed due to the following reason: 257.24/68.00 257.24/68.00 None of the processors succeeded. 257.24/68.00 257.24/68.00 Details of failed attempt(s): 257.24/68.00 ----------------------------- 257.24/68.00 1) 'matrix interpretation of dimension 6' failed due to the 257.24/68.00 following reason: 257.24/68.00 257.24/68.00 The input cannot be shown compatible 257.24/68.00 257.24/68.00 2) 'matrix interpretation of dimension 5' failed due to the 257.24/68.00 following reason: 257.24/68.00 257.24/68.00 The input cannot be shown compatible 257.24/68.00 257.24/68.00 3) 'matrix interpretation of dimension 4' failed due to the 257.24/68.00 following reason: 257.24/68.00 257.24/68.00 The input cannot be shown compatible 257.24/68.00 257.24/68.00 4) 'matrix interpretation of dimension 3' failed due to the 257.24/68.00 following reason: 257.24/68.00 257.24/68.00 The input cannot be shown compatible 257.24/68.00 257.24/68.00 5) 'matrix interpretation of dimension 2' failed due to the 257.24/68.00 following reason: 257.24/68.00 257.24/68.00 The input cannot be shown compatible 257.24/68.00 257.24/68.00 6) 'matrix interpretation of dimension 1' failed due to the 257.24/68.00 following reason: 257.24/68.00 257.24/68.00 The input cannot be shown compatible 257.24/68.00 257.24/68.00 257.24/68.00 2) 'iteProgress' failed due to the following reason: 257.24/68.00 257.46/68.00 Fail 257.46/68.00 257.46/68.00 3) 'Fastest (timeout of 30 seconds)' failed due to the following 257.46/68.00 reason: 257.46/68.00 257.46/68.00 Computation stopped due to timeout after 30.0 seconds. 257.46/68.00 257.46/68.00 4) 'bsearch-matrix' failed due to the following reason: 257.46/68.00 257.46/68.00 The input cannot be shown compatible 257.46/68.00 257.46/68.00 257.46/68.00 257.46/68.00 2) 'Fastest (timeout of 60 seconds)' failed due to the following 257.46/68.00 reason: 257.46/68.00 257.46/68.00 Computation stopped due to timeout after 60.0 seconds. 257.46/68.00 257.46/68.00 3) 'iteProgress (timeout of 297 seconds)' failed due to the 257.46/68.00 following reason: 257.46/68.00 257.46/68.00 Fail 257.46/68.00 257.46/68.00 4) 'bsearch-matrix (timeout of 297 seconds)' failed due to the 257.46/68.00 following reason: 257.46/68.00 257.46/68.00 The input cannot be shown compatible 257.46/68.00 257.46/68.00 257.46/68.00 Arrrr.. 257.46/68.07 EOF