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