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