We consider the following Problem: Strict Trs: { a__and(true(), X) -> mark(X) , a__and(false(), Y) -> false() , a__if(true(), X, Y) -> mark(X) , a__if(false(), X, Y) -> mark(Y) , a__add(0(), X) -> mark(X) , a__add(s(X), Y) -> s(add(X, Y)) , a__first(0(), X) -> nil() , a__first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) , a__from(X) -> cons(X, from(s(X))) , mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(if(X1, X2, X3)) -> a__if(mark(X1), X2, X3) , mark(add(X1, X2)) -> a__add(mark(X1), X2) , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) , mark(from(X)) -> a__from(X) , mark(true()) -> true() , mark(false()) -> false() , mark(0()) -> 0() , mark(s(X)) -> s(X) , mark(nil()) -> nil() , mark(cons(X1, X2)) -> cons(X1, X2) , a__and(X1, X2) -> and(X1, X2) , a__if(X1, X2, X3) -> if(X1, X2, X3) , a__add(X1, X2) -> add(X1, X2) , a__first(X1, X2) -> first(X1, X2) , a__from(X) -> from(X)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: We consider the following Problem: Strict Trs: { a__and(true(), X) -> mark(X) , a__and(false(), Y) -> false() , a__if(true(), X, Y) -> mark(X) , a__if(false(), X, Y) -> mark(Y) , a__add(0(), X) -> mark(X) , a__add(s(X), Y) -> s(add(X, Y)) , a__first(0(), X) -> nil() , a__first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) , a__from(X) -> cons(X, from(s(X))) , mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(if(X1, X2, X3)) -> a__if(mark(X1), X2, X3) , mark(add(X1, X2)) -> a__add(mark(X1), X2) , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) , mark(from(X)) -> a__from(X) , mark(true()) -> true() , mark(false()) -> false() , mark(0()) -> 0() , mark(s(X)) -> s(X) , mark(nil()) -> nil() , mark(cons(X1, X2)) -> cons(X1, X2) , a__and(X1, X2) -> and(X1, X2) , a__if(X1, X2, X3) -> if(X1, X2, X3) , a__add(X1, X2) -> add(X1, X2) , a__first(X1, X2) -> first(X1, X2) , a__from(X) -> from(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__and(false(), Y) -> false() , a__add(s(X), Y) -> s(add(X, Y)) , a__first(0(), X) -> nil() , mark(from(X)) -> a__from(X) , mark(true()) -> true() , mark(false()) -> false() , mark(0()) -> 0() , mark(s(X)) -> s(X) , mark(nil()) -> nil() , a__and(X1, X2) -> and(X1, X2) , a__if(X1, X2, X3) -> if(X1, X2, X3) , a__add(X1, X2) -> add(X1, X2) , a__first(X1, X2) -> first(X1, X2)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__and) = {1}, Uargs(mark) = {}, Uargs(a__if) = {1}, Uargs(a__add) = {1}, Uargs(s) = {}, Uargs(add) = {}, Uargs(a__first) = {1, 2}, Uargs(cons) = {}, Uargs(first) = {}, Uargs(a__from) = {}, Uargs(from) = {}, Uargs(and) = {}, Uargs(if) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__and(x1, x2) = [1 0] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] true() = [0] [0] mark(x1) = [0 0] x1 + [1] [0 0] [1] false() = [0] [0] a__if(x1, x2, x3) = [1 0] x1 + [0 0] x2 + [0 0] x3 + [1] [0 0] [0 0] [0 0] [1] a__add(x1, x2) = [1 0] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] 0() = [0] [0] s(x1) = [0 0] x1 + [0] [0 0] [1] add(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] a__first(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [0 0] [1] nil() = [0] [0] cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 0] [1] first(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] a__from(x1) = [0 0] x1 + [0] [0 0] [0] from(x1) = [0 0] x1 + [0] [0 0] [0] and(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0] [0 0] [0 0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { a__and(true(), X) -> mark(X) , a__if(true(), X, Y) -> mark(X) , a__if(false(), X, Y) -> mark(Y) , a__add(0(), X) -> mark(X) , a__first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) , a__from(X) -> cons(X, from(s(X))) , mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(if(X1, X2, X3)) -> a__if(mark(X1), X2, X3) , mark(add(X1, X2)) -> a__add(mark(X1), X2) , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) , mark(cons(X1, X2)) -> cons(X1, X2) , a__from(X) -> from(X)} Weak Trs: { a__and(false(), Y) -> false() , a__add(s(X), Y) -> s(add(X, Y)) , a__first(0(), X) -> nil() , mark(from(X)) -> a__from(X) , mark(true()) -> true() , mark(false()) -> false() , mark(0()) -> 0() , mark(s(X)) -> s(X) , mark(nil()) -> nil() , a__and(X1, X2) -> and(X1, X2) , a__if(X1, X2, X3) -> if(X1, X2, X3) , a__add(X1, X2) -> add(X1, X2) , a__first(X1, X2) -> first(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {a__from(X) -> from(X)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__and) = {1}, Uargs(mark) = {}, Uargs(a__if) = {1}, Uargs(a__add) = {1}, Uargs(s) = {}, Uargs(add) = {}, Uargs(a__first) = {1, 2}, Uargs(cons) = {}, Uargs(first) = {}, Uargs(a__from) = {}, Uargs(from) = {}, Uargs(and) = {}, Uargs(if) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__and(x1, x2) = [1 0] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] true() = [0] [0] mark(x1) = [0 0] x1 + [1] [0 0] [1] false() = [0] [0] a__if(x1, x2, x3) = [1 0] x1 + [0 0] x2 + [0 0] x3 + [1] [1 0] [0 0] [0 0] [1] a__add(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [1 0] [0 0] [0] 0() = [1] [0] s(x1) = [0 0] x1 + [0] [0 0] [0] add(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] a__first(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [0 0] [1] nil() = [0] [0] cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 0] [1] first(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] a__from(x1) = [0 0] x1 + [1] [0 0] [0] from(x1) = [0 0] x1 + [0] [0 0] [0] and(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0] [0 0] [0 0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { a__and(true(), X) -> mark(X) , a__if(true(), X, Y) -> mark(X) , a__if(false(), X, Y) -> mark(Y) , a__add(0(), X) -> mark(X) , a__first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) , a__from(X) -> cons(X, from(s(X))) , mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(if(X1, X2, X3)) -> a__if(mark(X1), X2, X3) , mark(add(X1, X2)) -> a__add(mark(X1), X2) , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) , mark(cons(X1, X2)) -> cons(X1, X2)} Weak Trs: { a__from(X) -> from(X) , a__and(false(), Y) -> false() , a__add(s(X), Y) -> s(add(X, Y)) , a__first(0(), X) -> nil() , mark(from(X)) -> a__from(X) , mark(true()) -> true() , mark(false()) -> false() , mark(0()) -> 0() , mark(s(X)) -> s(X) , mark(nil()) -> nil() , a__and(X1, X2) -> and(X1, X2) , a__if(X1, X2, X3) -> if(X1, X2, X3) , a__add(X1, X2) -> add(X1, X2) , a__first(X1, X2) -> first(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: { a__and(true(), X) -> mark(X) , a__if(true(), X, Y) -> mark(X) , a__if(false(), X, Y) -> mark(Y) , a__add(0(), X) -> mark(X)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__and) = {1}, Uargs(mark) = {}, Uargs(a__if) = {1}, Uargs(a__add) = {1}, Uargs(s) = {}, Uargs(add) = {}, Uargs(a__first) = {1, 2}, Uargs(cons) = {}, Uargs(first) = {}, Uargs(a__from) = {}, Uargs(from) = {}, Uargs(and) = {}, Uargs(if) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__and(x1, x2) = [1 3] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] true() = [0] [0] mark(x1) = [0 0] x1 + [0] [0 0] [1] false() = [0] [0] a__if(x1, x2, x3) = [1 3] x1 + [0 0] x2 + [0 0] x3 + [1] [0 0] [0 0] [0 0] [1] a__add(x1, x2) = [1 0] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] 0() = [0] [0] s(x1) = [0 0] x1 + [0] [0 0] [1] add(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] a__first(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [0 0] [1] nil() = [0] [0] cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 0] [1] first(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] a__from(x1) = [0 0] x1 + [0] [0 0] [0] from(x1) = [0 0] x1 + [0] [0 0] [0] and(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0] [0 0] [0 0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { a__first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) , a__from(X) -> cons(X, from(s(X))) , mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(if(X1, X2, X3)) -> a__if(mark(X1), X2, X3) , mark(add(X1, X2)) -> a__add(mark(X1), X2) , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) , mark(cons(X1, X2)) -> cons(X1, X2)} Weak Trs: { a__and(true(), X) -> mark(X) , a__if(true(), X, Y) -> mark(X) , a__if(false(), X, Y) -> mark(Y) , a__add(0(), X) -> mark(X) , a__from(X) -> from(X) , a__and(false(), Y) -> false() , a__add(s(X), Y) -> s(add(X, Y)) , a__first(0(), X) -> nil() , mark(from(X)) -> a__from(X) , mark(true()) -> true() , mark(false()) -> false() , mark(0()) -> 0() , mark(s(X)) -> s(X) , mark(nil()) -> nil() , a__and(X1, X2) -> and(X1, X2) , a__if(X1, X2, X3) -> if(X1, X2, X3) , a__add(X1, X2) -> add(X1, X2) , a__first(X1, X2) -> first(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {mark(cons(X1, X2)) -> cons(X1, X2)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__and) = {1}, Uargs(mark) = {}, Uargs(a__if) = {1}, Uargs(a__add) = {1}, Uargs(s) = {}, Uargs(add) = {}, Uargs(a__first) = {1, 2}, Uargs(cons) = {}, Uargs(first) = {}, Uargs(a__from) = {}, Uargs(from) = {}, Uargs(and) = {}, Uargs(if) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__and(x1, x2) = [1 0] x1 + [0 0] x2 + [3] [0 0] [0 1] [1] true() = [2] [0] mark(x1) = [0 0] x1 + [2] [0 1] [1] false() = [2] [0] a__if(x1, x2, x3) = [1 0] x1 + [0 0] x2 + [0 0] x3 + [1] [1 0] [0 1] [0 1] [1] a__add(x1, x2) = [1 0] x1 + [0 0] x2 + [1] [0 0] [0 1] [1] 0() = [2] [1] s(x1) = [0 0] x1 + [0] [0 0] [1] add(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] a__first(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [0 0] [1] nil() = [0] [0] cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 0] [1] first(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] a__from(x1) = [0 0] x1 + [0] [0 0] [0] from(x1) = [0 0] x1 + [0] [0 0] [0] and(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [1] if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0] [1 0] [0 0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { a__first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) , a__from(X) -> cons(X, from(s(X))) , mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(if(X1, X2, X3)) -> a__if(mark(X1), X2, X3) , mark(add(X1, X2)) -> a__add(mark(X1), X2) , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2))} Weak Trs: { mark(cons(X1, X2)) -> cons(X1, X2) , a__and(true(), X) -> mark(X) , a__if(true(), X, Y) -> mark(X) , a__if(false(), X, Y) -> mark(Y) , a__add(0(), X) -> mark(X) , a__from(X) -> from(X) , a__and(false(), Y) -> false() , a__add(s(X), Y) -> s(add(X, Y)) , a__first(0(), X) -> nil() , mark(from(X)) -> a__from(X) , mark(true()) -> true() , mark(false()) -> false() , mark(0()) -> 0() , mark(s(X)) -> s(X) , mark(nil()) -> nil() , a__and(X1, X2) -> and(X1, X2) , a__if(X1, X2, X3) -> if(X1, X2, X3) , a__add(X1, X2) -> add(X1, X2) , a__first(X1, X2) -> first(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {a__from(X) -> cons(X, from(s(X)))} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__and) = {1}, Uargs(mark) = {}, Uargs(a__if) = {1}, Uargs(a__add) = {1}, Uargs(s) = {}, Uargs(add) = {}, Uargs(a__first) = {1, 2}, Uargs(cons) = {}, Uargs(first) = {}, Uargs(a__from) = {}, Uargs(from) = {}, Uargs(and) = {}, Uargs(if) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__and(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 0] [0 1] [1] true() = [1] [0] mark(x1) = [0 0] x1 + [1] [0 1] [1] false() = [1] [0] a__if(x1, x2, x3) = [1 0] x1 + [0 0] x2 + [0 0] x3 + [0] [0 0] [0 1] [0 1] [1] a__add(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 0] [0 1] [1] 0() = [1] [0] s(x1) = [0 0] x1 + [0] [0 0] [1] add(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] a__first(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [0 0] [1] nil() = [0] [0] cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 0] [1] first(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] a__from(x1) = [0 0] x1 + [1] [0 1] [1] from(x1) = [0 0] x1 + [0] [0 1] [0] and(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0] [0 0] [0 0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { a__first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) , mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(if(X1, X2, X3)) -> a__if(mark(X1), X2, X3) , mark(add(X1, X2)) -> a__add(mark(X1), X2) , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2))} Weak Trs: { a__from(X) -> cons(X, from(s(X))) , mark(cons(X1, X2)) -> cons(X1, X2) , a__and(true(), X) -> mark(X) , a__if(true(), X, Y) -> mark(X) , a__if(false(), X, Y) -> mark(Y) , a__add(0(), X) -> mark(X) , a__from(X) -> from(X) , a__and(false(), Y) -> false() , a__add(s(X), Y) -> s(add(X, Y)) , a__first(0(), X) -> nil() , mark(from(X)) -> a__from(X) , mark(true()) -> true() , mark(false()) -> false() , mark(0()) -> 0() , mark(s(X)) -> s(X) , mark(nil()) -> nil() , a__and(X1, X2) -> and(X1, X2) , a__if(X1, X2, X3) -> if(X1, X2, X3) , a__add(X1, X2) -> add(X1, X2) , a__first(X1, X2) -> first(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {a__first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z))} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__and) = {1}, Uargs(mark) = {}, Uargs(a__if) = {1}, Uargs(a__add) = {1}, Uargs(s) = {}, Uargs(add) = {}, Uargs(a__first) = {1, 2}, Uargs(cons) = {}, Uargs(first) = {}, Uargs(a__from) = {}, Uargs(from) = {}, Uargs(and) = {}, Uargs(if) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__and(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [1] true() = [1] [1] mark(x1) = [0 0] x1 + [1] [0 0] [1] false() = [0] [1] a__if(x1, x2, x3) = [1 2] x1 + [0 0] x2 + [0 0] x3 + [0] [0 0] [0 0] [0 0] [1] a__add(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [1] 0() = [1] [0] s(x1) = [0 0] x1 + [0] [0 0] [1] add(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] a__first(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [0 0] [1] nil() = [0] [0] cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [1] first(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] a__from(x1) = [0 0] x1 + [0] [0 0] [1] from(x1) = [0 0] x1 + [0] [0 0] [0] and(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0] [0 0] [0 0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(if(X1, X2, X3)) -> a__if(mark(X1), X2, X3) , mark(add(X1, X2)) -> a__add(mark(X1), X2) , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2))} Weak Trs: { a__first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) , a__from(X) -> cons(X, from(s(X))) , mark(cons(X1, X2)) -> cons(X1, X2) , a__and(true(), X) -> mark(X) , a__if(true(), X, Y) -> mark(X) , a__if(false(), X, Y) -> mark(Y) , a__add(0(), X) -> mark(X) , a__from(X) -> from(X) , a__and(false(), Y) -> false() , a__add(s(X), Y) -> s(add(X, Y)) , a__first(0(), X) -> nil() , mark(from(X)) -> a__from(X) , mark(true()) -> true() , mark(false()) -> false() , mark(0()) -> 0() , mark(s(X)) -> s(X) , mark(nil()) -> nil() , a__and(X1, X2) -> and(X1, X2) , a__if(X1, X2, X3) -> if(X1, X2, X3) , a__add(X1, X2) -> add(X1, X2) , a__first(X1, X2) -> first(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {mark(first(X1, X2)) -> a__first(mark(X1), mark(X2))} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__and) = {1}, Uargs(mark) = {}, Uargs(a__if) = {1}, Uargs(a__add) = {1}, Uargs(s) = {}, Uargs(add) = {}, Uargs(a__first) = {1, 2}, Uargs(cons) = {}, Uargs(first) = {}, Uargs(a__from) = {}, Uargs(from) = {}, Uargs(and) = {}, Uargs(if) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__and(x1, x2) = [1 0] x1 + [0 1] x2 + [1] [0 1] [0 1] [1] true() = [0] [0] mark(x1) = [0 1] x1 + [0] [0 1] [0] false() = [0] [0] a__if(x1, x2, x3) = [1 0] x1 + [0 1] x2 + [0 1] x3 + [1] [0 1] [0 1] [0 1] [1] a__add(x1, x2) = [1 0] x1 + [0 1] x2 + [1] [0 1] [0 1] [1] 0() = [0] [0] s(x1) = [1 0] x1 + [0] [1 0] [0] add(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 1] [0] a__first(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 1] [0 1] [2] nil() = [0] [0] cons(x1, x2) = [0 0] x1 + [1 0] x2 + [0] [0 0] [1 0] [0] first(x1, x2) = [1 0] x1 + [1 0] x2 + [0] [0 1] [0 1] [2] a__from(x1) = [1 0] x1 + [0] [1 0] [0] from(x1) = [1 0] x1 + [0] [1 0] [0] and(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 1] [0] if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0] [0 1] [0 1] [0 1] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(if(X1, X2, X3)) -> a__if(mark(X1), X2, X3) , mark(add(X1, X2)) -> a__add(mark(X1), X2)} Weak Trs: { mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) , a__first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) , a__from(X) -> cons(X, from(s(X))) , mark(cons(X1, X2)) -> cons(X1, X2) , a__and(true(), X) -> mark(X) , a__if(true(), X, Y) -> mark(X) , a__if(false(), X, Y) -> mark(Y) , a__add(0(), X) -> mark(X) , a__from(X) -> from(X) , a__and(false(), Y) -> false() , a__add(s(X), Y) -> s(add(X, Y)) , a__first(0(), X) -> nil() , mark(from(X)) -> a__from(X) , mark(true()) -> true() , mark(false()) -> false() , mark(0()) -> 0() , mark(s(X)) -> s(X) , mark(nil()) -> nil() , a__and(X1, X2) -> and(X1, X2) , a__if(X1, X2, X3) -> if(X1, X2, X3) , a__add(X1, X2) -> add(X1, X2) , a__first(X1, X2) -> first(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {mark(if(X1, X2, X3)) -> a__if(mark(X1), X2, X3)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__and) = {1}, Uargs(mark) = {}, Uargs(a__if) = {1}, Uargs(a__add) = {1}, Uargs(s) = {}, Uargs(add) = {}, Uargs(a__first) = {1, 2}, Uargs(cons) = {}, Uargs(first) = {}, Uargs(a__from) = {}, Uargs(from) = {}, Uargs(and) = {}, Uargs(if) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__and(x1, x2) = [1 0] x1 + [0 1] x2 + [0] [0 1] [0 1] [1] true() = [2] [2] mark(x1) = [0 1] x1 + [1] [0 1] [0] false() = [1] [0] a__if(x1, x2, x3) = [1 0] x1 + [0 1] x2 + [0 1] x3 + [0] [0 1] [0 1] [0 1] [2] a__add(x1, x2) = [1 0] x1 + [0 1] x2 + [0] [0 1] [0 1] [1] 0() = [2] [2] s(x1) = [0 0] x1 + [0] [0 0] [0] add(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 1] [0] a__first(x1, x2) = [1 0] x1 + [1 0] x2 + [2] [0 1] [0 1] [3] nil() = [0] [0] cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] first(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 1] [3] a__from(x1) = [0 0] x1 + [0] [0 0] [0] from(x1) = [0 0] x1 + [0] [0 0] [0] and(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 1] [0] if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0] [0 1] [0 1] [0 1] [2] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(add(X1, X2)) -> a__add(mark(X1), X2)} Weak Trs: { mark(if(X1, X2, X3)) -> a__if(mark(X1), X2, X3) , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) , a__first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) , a__from(X) -> cons(X, from(s(X))) , mark(cons(X1, X2)) -> cons(X1, X2) , a__and(true(), X) -> mark(X) , a__if(true(), X, Y) -> mark(X) , a__if(false(), X, Y) -> mark(Y) , a__add(0(), X) -> mark(X) , a__from(X) -> from(X) , a__and(false(), Y) -> false() , a__add(s(X), Y) -> s(add(X, Y)) , a__first(0(), X) -> nil() , mark(from(X)) -> a__from(X) , mark(true()) -> true() , mark(false()) -> false() , mark(0()) -> 0() , mark(s(X)) -> s(X) , mark(nil()) -> nil() , a__and(X1, X2) -> and(X1, X2) , a__if(X1, X2, X3) -> if(X1, X2, X3) , a__add(X1, X2) -> add(X1, X2) , a__first(X1, X2) -> first(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {mark(add(X1, X2)) -> a__add(mark(X1), X2)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__and) = {1}, Uargs(mark) = {}, Uargs(a__if) = {1}, Uargs(a__add) = {1}, Uargs(s) = {}, Uargs(add) = {}, Uargs(a__first) = {1, 2}, Uargs(cons) = {}, Uargs(first) = {}, Uargs(a__from) = {}, Uargs(from) = {}, Uargs(and) = {}, Uargs(if) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__and(x1, x2) = [1 0] x1 + [0 1] x2 + [1] [0 1] [0 1] [1] true() = [0] [0] mark(x1) = [0 1] x1 + [0] [0 1] [0] false() = [0] [0] a__if(x1, x2, x3) = [1 0] x1 + [0 1] x2 + [0 1] x3 + [0] [0 1] [0 1] [0 1] [0] a__add(x1, x2) = [1 0] x1 + [0 1] x2 + [1] [0 1] [0 1] [2] 0() = [0] [0] s(x1) = [0 0] x1 + [0] [0 0] [0] add(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 1] [2] a__first(x1, x2) = [1 0] x1 + [1 0] x2 + [0] [0 1] [0 1] [0] nil() = [0] [0] cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] first(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 1] [0] a__from(x1) = [0 0] x1 + [0] [0 0] [0] from(x1) = [0 0] x1 + [0] [0 0] [0] and(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 1] [0] if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0] [0 1] [0 1] [0 1] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: {mark(and(X1, X2)) -> a__and(mark(X1), X2)} Weak Trs: { mark(add(X1, X2)) -> a__add(mark(X1), X2) , mark(if(X1, X2, X3)) -> a__if(mark(X1), X2, X3) , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) , a__first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) , a__from(X) -> cons(X, from(s(X))) , mark(cons(X1, X2)) -> cons(X1, X2) , a__and(true(), X) -> mark(X) , a__if(true(), X, Y) -> mark(X) , a__if(false(), X, Y) -> mark(Y) , a__add(0(), X) -> mark(X) , a__from(X) -> from(X) , a__and(false(), Y) -> false() , a__add(s(X), Y) -> s(add(X, Y)) , a__first(0(), X) -> nil() , mark(from(X)) -> a__from(X) , mark(true()) -> true() , mark(false()) -> false() , mark(0()) -> 0() , mark(s(X)) -> s(X) , mark(nil()) -> nil() , a__and(X1, X2) -> and(X1, X2) , a__if(X1, X2, X3) -> if(X1, X2, X3) , a__add(X1, X2) -> add(X1, X2) , a__first(X1, X2) -> first(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {mark(and(X1, X2)) -> a__and(mark(X1), X2)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(a__and) = {1}, Uargs(mark) = {}, Uargs(a__if) = {1}, Uargs(a__add) = {1}, Uargs(s) = {}, Uargs(add) = {}, Uargs(a__first) = {1, 2}, Uargs(cons) = {}, Uargs(first) = {}, Uargs(a__from) = {}, Uargs(from) = {}, Uargs(and) = {}, Uargs(if) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: a__and(x1, x2) = [1 0] x1 + [0 1] x2 + [1] [0 1] [0 1] [2] true() = [0] [0] mark(x1) = [0 1] x1 + [0] [0 1] [0] false() = [0] [0] a__if(x1, x2, x3) = [1 0] x1 + [0 1] x2 + [0 1] x3 + [0] [0 1] [0 1] [0 1] [0] a__add(x1, x2) = [1 0] x1 + [0 1] x2 + [0] [0 1] [0 1] [0] 0() = [0] [0] s(x1) = [0 0] x1 + [0] [0 0] [0] add(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 1] [0] a__first(x1, x2) = [1 0] x1 + [1 0] x2 + [0] [0 1] [0 1] [0] nil() = [0] [0] cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] first(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 1] [0] a__from(x1) = [0 0] x1 + [0] [0 0] [0] from(x1) = [0 0] x1 + [0] [0 0] [0] and(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 1] [2] if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0] [0 1] [0 1] [0 1] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Weak Trs: { mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(add(X1, X2)) -> a__add(mark(X1), X2) , mark(if(X1, X2, X3)) -> a__if(mark(X1), X2, X3) , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) , a__first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) , a__from(X) -> cons(X, from(s(X))) , mark(cons(X1, X2)) -> cons(X1, X2) , a__and(true(), X) -> mark(X) , a__if(true(), X, Y) -> mark(X) , a__if(false(), X, Y) -> mark(Y) , a__add(0(), X) -> mark(X) , a__from(X) -> from(X) , a__and(false(), Y) -> false() , a__add(s(X), Y) -> s(add(X, Y)) , a__first(0(), X) -> nil() , mark(from(X)) -> a__from(X) , mark(true()) -> true() , mark(false()) -> false() , mark(0()) -> 0() , mark(s(X)) -> s(X) , mark(nil()) -> nil() , a__and(X1, X2) -> and(X1, X2) , a__if(X1, X2, X3) -> if(X1, X2, X3) , a__add(X1, X2) -> add(X1, X2) , a__first(X1, X2) -> first(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(O(1),O(1)) Proof: We consider the following Problem: Weak Trs: { mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(add(X1, X2)) -> a__add(mark(X1), X2) , mark(if(X1, X2, X3)) -> a__if(mark(X1), X2, X3) , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) , a__first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) , a__from(X) -> cons(X, from(s(X))) , mark(cons(X1, X2)) -> cons(X1, X2) , a__and(true(), X) -> mark(X) , a__if(true(), X, Y) -> mark(X) , a__if(false(), X, Y) -> mark(Y) , a__add(0(), X) -> mark(X) , a__from(X) -> from(X) , a__and(false(), Y) -> false() , a__add(s(X), Y) -> s(add(X, Y)) , a__first(0(), X) -> nil() , mark(from(X)) -> a__from(X) , mark(true()) -> true() , mark(false()) -> false() , mark(0()) -> 0() , mark(s(X)) -> s(X) , mark(nil()) -> nil() , a__and(X1, X2) -> and(X1, X2) , a__if(X1, X2, X3) -> if(X1, X2, X3) , a__add(X1, X2) -> add(X1, X2) , a__first(X1, X2) -> first(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(O(1),O(1)) Proof: Empty rules are trivially bounded Hurray, we answered YES(?,O(n^1))