We consider the following Problem: Strict Trs: { a__from(X) -> cons(mark(X), from(s(X))) , a__length(nil()) -> 0() , a__length(cons(X, Y)) -> s(a__length1(Y)) , a__length1(X) -> a__length(X) , mark(from(X)) -> a__from(mark(X)) , mark(length(X)) -> a__length(X) , mark(length1(X)) -> a__length1(X) , mark(cons(X1, X2)) -> cons(mark(X1), X2) , mark(s(X)) -> s(mark(X)) , mark(nil()) -> nil() , mark(0()) -> 0() , a__from(X) -> from(X) , a__length(X) -> length(X) , a__length1(X) -> length1(X)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: We consider the following Problem: Strict Trs: { a__from(X) -> cons(mark(X), from(s(X))) , a__length(nil()) -> 0() , a__length(cons(X, Y)) -> s(a__length1(Y)) , a__length1(X) -> a__length(X) , mark(from(X)) -> a__from(mark(X)) , mark(length(X)) -> a__length(X) , mark(length1(X)) -> a__length1(X) , mark(cons(X1, X2)) -> cons(mark(X1), X2) , mark(s(X)) -> s(mark(X)) , mark(nil()) -> nil() , mark(0()) -> 0() , a__from(X) -> from(X) , a__length(X) -> length(X) , a__length1(X) -> length1(X)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: { a__length(nil()) -> 0() , a__from(X) -> from(X) , a__length(X) -> length(X)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__from) = {1}, Uargs(cons) = {1}, Uargs(mark) = {}, Uargs(from) = {}, Uargs(s) = {1}, Uargs(a__length) = {}, Uargs(a__length1) = {}, Uargs(length) = {}, Uargs(length1) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__from(x1) = [1 0] x1 + [1] [0 0] [1] cons(x1, x2) = [1 0] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] mark(x1) = [0 0] x1 + [0] [0 0] [1] from(x1) = [0 0] x1 + [0] [0 0] [0] s(x1) = [1 0] x1 + [1] [0 0] [1] a__length(x1) = [0 0] x1 + [1] [0 0] [1] nil() = [0] [0] 0() = [0] [0] a__length1(x1) = [0 0] x1 + [0] [0 0] [0] length(x1) = [0 0] x1 + [0] [0 0] [0] length1(x1) = [0 0] x1 + [0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { a__from(X) -> cons(mark(X), from(s(X))) , a__length(cons(X, Y)) -> s(a__length1(Y)) , a__length1(X) -> a__length(X) , mark(from(X)) -> a__from(mark(X)) , mark(length(X)) -> a__length(X) , mark(length1(X)) -> a__length1(X) , mark(cons(X1, X2)) -> cons(mark(X1), X2) , mark(s(X)) -> s(mark(X)) , mark(nil()) -> nil() , mark(0()) -> 0() , a__length1(X) -> length1(X)} Weak Trs: { a__length(nil()) -> 0() , a__from(X) -> from(X) , a__length(X) -> length(X)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {a__from(X) -> cons(mark(X), from(s(X)))} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__from) = {1}, Uargs(cons) = {1}, Uargs(mark) = {}, Uargs(from) = {}, Uargs(s) = {1}, Uargs(a__length) = {}, Uargs(a__length1) = {}, Uargs(length) = {}, Uargs(length1) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__from(x1) = [1 0] x1 + [3] [0 0] [1] cons(x1, x2) = [1 0] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] mark(x1) = [0 0] x1 + [0] [0 0] [1] from(x1) = [0 0] x1 + [0] [0 0] [0] s(x1) = [1 0] x1 + [1] [0 0] [1] a__length(x1) = [0 0] x1 + [1] [0 0] [1] nil() = [0] [0] 0() = [0] [0] a__length1(x1) = [0 0] x1 + [0] [0 0] [0] length(x1) = [0 0] x1 + [0] [0 0] [0] length1(x1) = [0 0] x1 + [0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { a__length(cons(X, Y)) -> s(a__length1(Y)) , a__length1(X) -> a__length(X) , mark(from(X)) -> a__from(mark(X)) , mark(length(X)) -> a__length(X) , mark(length1(X)) -> a__length1(X) , mark(cons(X1, X2)) -> cons(mark(X1), X2) , mark(s(X)) -> s(mark(X)) , mark(nil()) -> nil() , mark(0()) -> 0() , a__length1(X) -> length1(X)} Weak Trs: { a__from(X) -> cons(mark(X), from(s(X))) , a__length(nil()) -> 0() , a__from(X) -> from(X) , a__length(X) -> length(X)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {a__length(cons(X, Y)) -> s(a__length1(Y))} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__from) = {1}, Uargs(cons) = {1}, Uargs(mark) = {}, Uargs(from) = {}, Uargs(s) = {1}, Uargs(a__length) = {}, Uargs(a__length1) = {}, Uargs(length) = {}, Uargs(length1) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__from(x1) = [1 0] x1 + [1] [0 0] [1] cons(x1, x2) = [1 0] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] mark(x1) = [0 0] x1 + [0] [0 0] [0] from(x1) = [0 0] x1 + [0] [0 0] [0] s(x1) = [1 0] x1 + [0] [0 0] [1] a__length(x1) = [0 0] x1 + [1] [0 0] [1] nil() = [0] [0] 0() = [0] [0] a__length1(x1) = [0 0] x1 + [0] [0 0] [0] length(x1) = [0 0] x1 + [0] [0 0] [0] length1(x1) = [0 0] x1 + [0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { a__length1(X) -> a__length(X) , mark(from(X)) -> a__from(mark(X)) , mark(length(X)) -> a__length(X) , mark(length1(X)) -> a__length1(X) , mark(cons(X1, X2)) -> cons(mark(X1), X2) , mark(s(X)) -> s(mark(X)) , mark(nil()) -> nil() , mark(0()) -> 0() , a__length1(X) -> length1(X)} Weak Trs: { a__length(cons(X, Y)) -> s(a__length1(Y)) , a__from(X) -> cons(mark(X), from(s(X))) , a__length(nil()) -> 0() , a__from(X) -> from(X) , a__length(X) -> length(X)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {a__length1(X) -> length1(X)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__from) = {1}, Uargs(cons) = {1}, Uargs(mark) = {}, Uargs(from) = {}, Uargs(s) = {1}, Uargs(a__length) = {}, Uargs(a__length1) = {}, Uargs(length) = {}, Uargs(length1) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__from(x1) = [1 0] x1 + [1] [0 0] [1] cons(x1, x2) = [1 0] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] mark(x1) = [0 0] x1 + [0] [0 0] [1] from(x1) = [0 0] x1 + [0] [0 0] [0] s(x1) = [1 0] x1 + [1] [0 0] [1] a__length(x1) = [0 0] x1 + [3] [0 0] [1] nil() = [0] [0] 0() = [0] [0] a__length1(x1) = [0 0] x1 + [1] [0 0] [0] length(x1) = [0 0] x1 + [0] [0 0] [0] length1(x1) = [0 0] x1 + [0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { a__length1(X) -> a__length(X) , mark(from(X)) -> a__from(mark(X)) , mark(length(X)) -> a__length(X) , mark(length1(X)) -> a__length1(X) , mark(cons(X1, X2)) -> cons(mark(X1), X2) , mark(s(X)) -> s(mark(X)) , mark(nil()) -> nil() , mark(0()) -> 0()} Weak Trs: { a__length1(X) -> length1(X) , a__length(cons(X, Y)) -> s(a__length1(Y)) , a__from(X) -> cons(mark(X), from(s(X))) , a__length(nil()) -> 0() , a__from(X) -> from(X) , a__length(X) -> length(X)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {a__length1(X) -> a__length(X)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__from) = {1}, Uargs(cons) = {1}, Uargs(mark) = {}, Uargs(from) = {}, Uargs(s) = {1}, Uargs(a__length) = {}, Uargs(a__length1) = {}, Uargs(length) = {}, Uargs(length1) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__from(x1) = [1 0] x1 + [0] [0 0] [3] cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 0] [0 1] [3] mark(x1) = [1 0] x1 + [0] [0 0] [0] from(x1) = [1 0] x1 + [0] [0 0] [0] s(x1) = [1 1] x1 + [2] [0 0] [1] a__length(x1) = [0 3] x1 + [0] [0 0] [1] nil() = [0] [2] 0() = [1] [0] a__length1(x1) = [0 3] x1 + [1] [0 0] [1] length(x1) = [0 3] x1 + [0] [0 0] [0] length1(x1) = [0 3] x1 + [1] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { mark(from(X)) -> a__from(mark(X)) , mark(length(X)) -> a__length(X) , mark(length1(X)) -> a__length1(X) , mark(cons(X1, X2)) -> cons(mark(X1), X2) , mark(s(X)) -> s(mark(X)) , mark(nil()) -> nil() , mark(0()) -> 0()} Weak Trs: { a__length1(X) -> a__length(X) , a__length1(X) -> length1(X) , a__length(cons(X, Y)) -> s(a__length1(Y)) , a__from(X) -> cons(mark(X), from(s(X))) , a__length(nil()) -> 0() , a__from(X) -> from(X) , a__length(X) -> length(X)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {mark(length(X)) -> a__length(X)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__from) = {1}, Uargs(cons) = {1}, Uargs(mark) = {}, Uargs(from) = {}, Uargs(s) = {1}, Uargs(a__length) = {}, Uargs(a__length1) = {}, Uargs(length) = {}, Uargs(length1) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__from(x1) = [1 2] x1 + [0] [0 0] [2] cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 1] [0 0] [0] mark(x1) = [1 2] x1 + [0] [0 0] [2] from(x1) = [1 2] x1 + [0] [0 0] [0] s(x1) = [1 0] x1 + [0] [0 1] [0] a__length(x1) = [0 0] x1 + [0] [0 0] [2] nil() = [0] [0] 0() = [0] [0] a__length1(x1) = [0 0] x1 + [0] [0 0] [2] length(x1) = [0 0] x1 + [0] [0 0] [2] length1(x1) = [0 0] x1 + [0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { mark(from(X)) -> a__from(mark(X)) , mark(length1(X)) -> a__length1(X) , mark(cons(X1, X2)) -> cons(mark(X1), X2) , mark(s(X)) -> s(mark(X)) , mark(nil()) -> nil() , mark(0()) -> 0()} Weak Trs: { mark(length(X)) -> a__length(X) , a__length1(X) -> a__length(X) , a__length1(X) -> length1(X) , a__length(cons(X, Y)) -> s(a__length1(Y)) , a__from(X) -> cons(mark(X), from(s(X))) , a__length(nil()) -> 0() , a__from(X) -> from(X) , a__length(X) -> length(X)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {mark(nil()) -> nil()} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__from) = {1}, Uargs(cons) = {1}, Uargs(mark) = {}, Uargs(from) = {}, Uargs(s) = {1}, Uargs(a__length) = {}, Uargs(a__length1) = {}, Uargs(length) = {}, Uargs(length1) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__from(x1) = [1 2] x1 + [0] [0 0] [1] cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 1] [0 1] [0] mark(x1) = [1 2] x1 + [0] [0 0] [1] from(x1) = [1 2] x1 + [0] [0 0] [0] s(x1) = [1 0] x1 + [0] [0 1] [0] a__length(x1) = [0 1] x1 + [0] [0 0] [0] nil() = [3] [1] 0() = [0] [0] a__length1(x1) = [0 1] x1 + [0] [0 0] [0] length(x1) = [0 1] x1 + [0] [0 0] [0] length1(x1) = [0 1] x1 + [0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { mark(from(X)) -> a__from(mark(X)) , mark(length1(X)) -> a__length1(X) , mark(cons(X1, X2)) -> cons(mark(X1), X2) , mark(s(X)) -> s(mark(X)) , mark(0()) -> 0()} Weak Trs: { mark(nil()) -> nil() , mark(length(X)) -> a__length(X) , a__length1(X) -> a__length(X) , a__length1(X) -> length1(X) , a__length(cons(X, Y)) -> s(a__length1(Y)) , a__from(X) -> cons(mark(X), from(s(X))) , a__length(nil()) -> 0() , a__from(X) -> from(X) , a__length(X) -> length(X)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {mark(0()) -> 0()} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__from) = {1}, Uargs(cons) = {1}, Uargs(mark) = {}, Uargs(from) = {}, Uargs(s) = {1}, Uargs(a__length) = {}, Uargs(a__length1) = {}, Uargs(length) = {}, Uargs(length1) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__from(x1) = [1 2] x1 + [1] [0 0] [3] cons(x1, x2) = [1 0] x1 + [0 0] x2 + [1] [0 1] [0 1] [2] mark(x1) = [1 2] x1 + [0] [0 0] [1] from(x1) = [1 2] x1 + [0] [0 0] [0] s(x1) = [1 0] x1 + [0] [0 1] [0] a__length(x1) = [0 2] x1 + [0] [0 0] [1] nil() = [0] [0] 0() = [0] [1] a__length1(x1) = [0 2] x1 + [0] [0 0] [1] length(x1) = [0 2] x1 + [0] [0 0] [0] length1(x1) = [0 2] x1 + [0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { mark(from(X)) -> a__from(mark(X)) , mark(length1(X)) -> a__length1(X) , mark(cons(X1, X2)) -> cons(mark(X1), X2) , mark(s(X)) -> s(mark(X))} Weak Trs: { mark(0()) -> 0() , mark(nil()) -> nil() , mark(length(X)) -> a__length(X) , a__length1(X) -> a__length(X) , a__length1(X) -> length1(X) , a__length(cons(X, Y)) -> s(a__length1(Y)) , a__from(X) -> cons(mark(X), from(s(X))) , a__length(nil()) -> 0() , a__from(X) -> from(X) , a__length(X) -> length(X)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {mark(length1(X)) -> a__length1(X)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__from) = {1}, Uargs(cons) = {1}, Uargs(mark) = {}, Uargs(from) = {}, Uargs(s) = {1}, Uargs(a__length) = {}, Uargs(a__length1) = {}, Uargs(length) = {}, Uargs(length1) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__from(x1) = [1 1] x1 + [0] [0 0] [1] cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 1] [0 0] [0] mark(x1) = [1 1] x1 + [0] [0 0] [1] from(x1) = [1 1] x1 + [0] [0 0] [0] s(x1) = [1 0] x1 + [0] [0 1] [0] a__length(x1) = [0 0] x1 + [3] [0 0] [1] nil() = [1] [0] 0() = [0] [0] a__length1(x1) = [0 0] x1 + [3] [0 0] [1] length(x1) = [0 0] x1 + [2] [0 0] [1] length1(x1) = [0 0] x1 + [3] [0 0] [1] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { mark(from(X)) -> a__from(mark(X)) , mark(cons(X1, X2)) -> cons(mark(X1), X2) , mark(s(X)) -> s(mark(X))} Weak Trs: { mark(length1(X)) -> a__length1(X) , mark(0()) -> 0() , mark(nil()) -> nil() , mark(length(X)) -> a__length(X) , a__length1(X) -> a__length(X) , a__length1(X) -> length1(X) , a__length(cons(X, Y)) -> s(a__length1(Y)) , a__from(X) -> cons(mark(X), from(s(X))) , a__length(nil()) -> 0() , a__from(X) -> from(X) , a__length(X) -> length(X)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: We consider the following Problem: Strict Trs: { mark(from(X)) -> a__from(mark(X)) , mark(cons(X1, X2)) -> cons(mark(X1), X2) , mark(s(X)) -> s(mark(X))} Weak Trs: { mark(length1(X)) -> a__length1(X) , mark(0()) -> 0() , mark(nil()) -> nil() , mark(length(X)) -> a__length(X) , a__length1(X) -> a__length(X) , a__length1(X) -> length1(X) , a__length(cons(X, Y)) -> s(a__length1(Y)) , a__from(X) -> cons(mark(X), from(s(X))) , a__length(nil()) -> 0() , a__from(X) -> from(X) , a__length(X) -> length(X)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The following argument positions are usable: Uargs(a__from) = {1}, Uargs(cons) = {1}, Uargs(mark) = {}, Uargs(from) = {}, Uargs(s) = {1}, Uargs(a__length) = {}, Uargs(a__length1) = {}, Uargs(length) = {}, Uargs(length1) = {} We have the following constructor-based EDA-non-satisfying and IDA(2)-non-satisfying matrix interpretation: Interpretation Functions: a__from(x1) = [1 2 0] x1 + [1] [0 1 0] [2] [0 0 0] [1] cons(x1, x2) = [1 0 0] x1 + [0 0 0] x2 + [0] [0 1 0] [0 0 1] [1] [0 0 0] [0 0 1] [1] mark(x1) = [1 2 0] x1 + [0] [0 1 0] [0] [0 2 0] [0] from(x1) = [1 2 0] x1 + [0] [0 1 0] [2] [0 0 0] [0] s(x1) = [1 0 0] x1 + [0] [0 1 0] [1] [0 0 0] [0] a__length(x1) = [0 0 0] x1 + [0] [0 0 2] [0] [0 0 0] [0] nil() = [1] [2] [2] 0() = [0] [1] [0] a__length1(x1) = [0 0 0] x1 + [0] [0 0 2] [0] [0 0 0] [0] length(x1) = [0 0 0] x1 + [0] [0 0 2] [0] [0 0 0] [0] length1(x1) = [0 0 0] x1 + [0] [0 0 2] [0] [0 0 0] [0] Hurray, we answered YES(?,O(n^2))