We consider the following Problem: Strict Trs: { or(true(), y) -> true() , or(x, true()) -> true() , or(false(), false()) -> false() , mem(x, nil()) -> false() , mem(x, set(y)) -> =(x, y) , mem(x, union(y, z)) -> or(mem(x, y), mem(x, z))} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: We consider the following Problem: Strict Trs: { or(true(), y) -> true() , or(x, true()) -> true() , or(false(), false()) -> false() , mem(x, nil()) -> false() , mem(x, set(y)) -> =(x, y) , mem(x, union(y, z)) -> or(mem(x, y), mem(x, z))} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: { or(true(), y) -> true() , or(x, true()) -> true() , or(false(), false()) -> false() , mem(x, nil()) -> false() , mem(x, set(y)) -> =(x, y)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(or) = {1, 2}, Uargs(mem) = {}, Uargs(set) = {}, Uargs(=) = {}, Uargs(union) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: or(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [0 0] [1] true() = [0] [0] false() = [0] [0] mem(x1, x2) = [0 0] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] nil() = [0] [0] set(x1) = [0 0] x1 + [0] [0 0] [0] =(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] union(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: {mem(x, union(y, z)) -> or(mem(x, y), mem(x, z))} Weak Trs: { or(true(), y) -> true() , or(x, true()) -> true() , or(false(), false()) -> false() , mem(x, nil()) -> false() , mem(x, set(y)) -> =(x, y)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {mem(x, union(y, z)) -> or(mem(x, y), mem(x, z))} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(or) = {1, 2}, Uargs(mem) = {}, Uargs(set) = {}, Uargs(=) = {}, Uargs(union) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: or(x1, x2) = [1 0] x1 + [1 0] x2 + [0] [0 0] [0 0] [1] true() = [0] [0] false() = [0] [0] mem(x1, x2) = [0 0] x1 + [0 1] x2 + [0] [0 0] [0 0] [1] nil() = [0] [0] set(x1) = [0 0] x1 + [0] [0 0] [0] =(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] union(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 1] [0 1] [2] The strictly oriented rules are moved into the weak component. We consider the following Problem: Weak Trs: { mem(x, union(y, z)) -> or(mem(x, y), mem(x, z)) , or(true(), y) -> true() , or(x, true()) -> true() , or(false(), false()) -> false() , mem(x, nil()) -> false() , mem(x, set(y)) -> =(x, y)} StartTerms: basic terms Strategy: innermost Certificate: YES(O(1),O(1)) Proof: We consider the following Problem: Weak Trs: { mem(x, union(y, z)) -> or(mem(x, y), mem(x, z)) , or(true(), y) -> true() , or(x, true()) -> true() , or(false(), false()) -> false() , mem(x, nil()) -> false() , mem(x, set(y)) -> =(x, y)} StartTerms: basic terms Strategy: innermost Certificate: YES(O(1),O(1)) Proof: Empty rules are trivially bounded Hurray, we answered YES(?,O(n^1))