We consider the following Problem: Strict Trs: { minus(n__0(), Y) -> 0() , minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y)) , geq(X, n__0()) -> true() , geq(n__0(), n__s(Y)) -> false() , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y)) , div(0(), n__s(Y)) -> 0() , div(s(X), n__s(Y)) -> if(geq(X, activate(Y)), n__s(n__div(n__minus(X, activate(Y)), n__s(activate(Y)))), n__0()) , if(true(), X, Y) -> activate(X) , if(false(), X, Y) -> activate(Y) , 0() -> n__0() , s(X) -> n__s(X) , div(X1, X2) -> n__div(X1, X2) , minus(X1, X2) -> n__minus(X1, X2) , activate(n__0()) -> 0() , activate(n__s(X)) -> s(activate(X)) , activate(n__div(X1, X2)) -> div(activate(X1), X2) , activate(n__minus(X1, X2)) -> minus(X1, X2) , activate(X) -> X} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: Arguments of following rules are not normal-forms: { div(s(X), n__s(Y)) -> if(geq(X, activate(Y)), n__s(n__div(n__minus(X, activate(Y)), n__s(activate(Y)))), n__0()) , div(0(), n__s(Y)) -> 0()} All above mentioned rules can be savely removed. We consider the following Problem: Strict Trs: { minus(n__0(), Y) -> 0() , minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y)) , geq(X, n__0()) -> true() , geq(n__0(), n__s(Y)) -> false() , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y)) , if(true(), X, Y) -> activate(X) , if(false(), X, Y) -> activate(Y) , 0() -> n__0() , s(X) -> n__s(X) , div(X1, X2) -> n__div(X1, X2) , minus(X1, X2) -> n__minus(X1, X2) , activate(n__0()) -> 0() , activate(n__s(X)) -> s(activate(X)) , activate(n__div(X1, X2)) -> div(activate(X1), X2) , activate(n__minus(X1, X2)) -> minus(X1, X2) , activate(X) -> X} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: { minus(n__0(), Y) -> 0() , geq(X, n__0()) -> true() , geq(n__0(), n__s(Y)) -> false() , if(false(), X, Y) -> activate(Y) , s(X) -> n__s(X) , div(X1, X2) -> n__div(X1, X2) , minus(X1, X2) -> n__minus(X1, X2)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(minus) = {1, 2}, Uargs(n__s) = {}, Uargs(activate) = {}, Uargs(geq) = {1, 2}, Uargs(div) = {1}, Uargs(s) = {1}, Uargs(if) = {}, Uargs(n__div) = {}, Uargs(n__minus) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: minus(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [1 0] [1] n__0() = [0] [0] 0() = [0] [0] n__s(x1) = [1 0] x1 + [0] [0 0] [0] activate(x1) = [1 0] x1 + [0] [0 0] [1] geq(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [0 0] [1] true() = [0] [0] false() = [0] [0] div(x1, x2) = [1 0] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] s(x1) = [1 0] x1 + [1] [0 0] [1] if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [1 0] x3 + [1] [0 0] [0 0] [0 0] [1] n__div(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__minus(x1, x2) = [1 0] x1 + [1 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: { minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y)) , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y)) , if(true(), X, Y) -> activate(X) , 0() -> n__0() , activate(n__0()) -> 0() , activate(n__s(X)) -> s(activate(X)) , activate(n__div(X1, X2)) -> div(activate(X1), X2) , activate(n__minus(X1, X2)) -> minus(X1, X2) , activate(X) -> X} Weak Trs: { minus(n__0(), Y) -> 0() , geq(X, n__0()) -> true() , geq(n__0(), n__s(Y)) -> false() , if(false(), X, Y) -> activate(Y) , s(X) -> n__s(X) , div(X1, X2) -> n__div(X1, X2) , minus(X1, X2) -> n__minus(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {if(true(), X, Y) -> activate(X)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(minus) = {1, 2}, Uargs(n__s) = {}, Uargs(activate) = {}, Uargs(geq) = {1, 2}, Uargs(div) = {1}, Uargs(s) = {1}, Uargs(if) = {}, Uargs(n__div) = {}, Uargs(n__minus) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: minus(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [1 0] [1] n__0() = [0] [0] 0() = [0] [0] n__s(x1) = [1 0] x1 + [0] [0 0] [0] activate(x1) = [1 0] x1 + [0] [0 0] [1] geq(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [0 0] [1] true() = [0] [0] false() = [0] [0] div(x1, x2) = [1 0] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] s(x1) = [1 0] x1 + [1] [0 0] [1] if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [1 0] x3 + [1] [0 0] [0 0] [0 0] [1] n__div(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__minus(x1, x2) = [1 0] x1 + [1 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: { minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y)) , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y)) , 0() -> n__0() , activate(n__0()) -> 0() , activate(n__s(X)) -> s(activate(X)) , activate(n__div(X1, X2)) -> div(activate(X1), X2) , activate(n__minus(X1, X2)) -> minus(X1, X2) , activate(X) -> X} Weak Trs: { if(true(), X, Y) -> activate(X) , minus(n__0(), Y) -> 0() , geq(X, n__0()) -> true() , geq(n__0(), n__s(Y)) -> false() , if(false(), X, Y) -> activate(Y) , s(X) -> n__s(X) , div(X1, X2) -> n__div(X1, X2) , minus(X1, X2) -> n__minus(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {0() -> n__0()} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(minus) = {1, 2}, Uargs(n__s) = {}, Uargs(activate) = {}, Uargs(geq) = {1, 2}, Uargs(div) = {1}, Uargs(s) = {1}, Uargs(if) = {}, Uargs(n__div) = {}, Uargs(n__minus) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: minus(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [1 0] [1] n__0() = [0] [0] 0() = [1] [0] n__s(x1) = [1 0] x1 + [0] [0 0] [0] activate(x1) = [1 0] x1 + [0] [0 1] [1] geq(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [0 0] [1] true() = [0] [0] false() = [0] [0] div(x1, x2) = [1 0] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] s(x1) = [1 0] x1 + [1] [0 0] [1] if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [1 0] x3 + [1] [0 0] [0 1] [0 1] [1] n__div(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [1] n__minus(x1, x2) = [1 0] x1 + [1 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: { minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y)) , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y)) , activate(n__0()) -> 0() , activate(n__s(X)) -> s(activate(X)) , activate(n__div(X1, X2)) -> div(activate(X1), X2) , activate(n__minus(X1, X2)) -> minus(X1, X2) , activate(X) -> X} Weak Trs: { 0() -> n__0() , if(true(), X, Y) -> activate(X) , minus(n__0(), Y) -> 0() , geq(X, n__0()) -> true() , geq(n__0(), n__s(Y)) -> false() , if(false(), X, Y) -> activate(Y) , s(X) -> n__s(X) , div(X1, X2) -> n__div(X1, X2) , minus(X1, X2) -> n__minus(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: { activate(n__0()) -> 0() , activate(X) -> X} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(minus) = {1, 2}, Uargs(n__s) = {}, Uargs(activate) = {}, Uargs(geq) = {1, 2}, Uargs(div) = {1}, Uargs(s) = {1}, Uargs(if) = {}, Uargs(n__div) = {}, Uargs(n__minus) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: minus(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [1 0] [1] n__0() = [1] [0] 0() = [1] [0] n__s(x1) = [1 0] x1 + [0] [0 0] [0] activate(x1) = [1 0] x1 + [2] [0 1] [0] geq(x1, x2) = [1 0] x1 + [1 0] x2 + [0] [0 1] [0 0] [1] true() = [0] [0] false() = [0] [0] div(x1, x2) = [1 0] x1 + [0 0] x2 + [2] [1 1] [0 0] [1] s(x1) = [1 0] x1 + [3] [0 0] [1] if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [1 0] x3 + [3] [0 0] [0 1] [0 1] [1] n__div(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [1] n__minus(x1, x2) = [1 0] x1 + [1 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: { minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y)) , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y)) , activate(n__s(X)) -> s(activate(X)) , activate(n__div(X1, X2)) -> div(activate(X1), X2) , activate(n__minus(X1, X2)) -> minus(X1, X2)} Weak Trs: { activate(n__0()) -> 0() , activate(X) -> X , 0() -> n__0() , if(true(), X, Y) -> activate(X) , minus(n__0(), Y) -> 0() , geq(X, n__0()) -> true() , geq(n__0(), n__s(Y)) -> false() , if(false(), X, Y) -> activate(Y) , s(X) -> n__s(X) , div(X1, X2) -> n__div(X1, X2) , minus(X1, X2) -> n__minus(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {activate(n__minus(X1, X2)) -> minus(X1, X2)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(minus) = {1, 2}, Uargs(n__s) = {}, Uargs(activate) = {}, Uargs(geq) = {1, 2}, Uargs(div) = {1}, Uargs(s) = {1}, Uargs(if) = {}, Uargs(n__div) = {}, Uargs(n__minus) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: minus(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [0 0] [1] n__0() = [0] [0] 0() = [0] [0] n__s(x1) = [1 0] x1 + [0] [0 0] [1] activate(x1) = [1 0] x1 + [2] [0 1] [1] geq(x1, x2) = [1 0] x1 + [1 0] x2 + [0] [0 0] [0 1] [0] true() = [0] [0] false() = [0] [0] div(x1, x2) = [1 0] x1 + [0 0] x2 + [3] [0 1] [0 0] [0] s(x1) = [1 0] x1 + [3] [0 0] [1] if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [1 0] x3 + [3] [0 0] [0 1] [0 1] [1] n__div(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__minus(x1, x2) = [1 0] x1 + [1 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: { minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y)) , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y)) , activate(n__s(X)) -> s(activate(X)) , activate(n__div(X1, X2)) -> div(activate(X1), X2)} Weak Trs: { activate(n__minus(X1, X2)) -> minus(X1, X2) , activate(n__0()) -> 0() , activate(X) -> X , 0() -> n__0() , if(true(), X, Y) -> activate(X) , minus(n__0(), Y) -> 0() , geq(X, n__0()) -> true() , geq(n__0(), n__s(Y)) -> false() , if(false(), X, Y) -> activate(Y) , s(X) -> n__s(X) , div(X1, X2) -> n__div(X1, X2) , minus(X1, X2) -> n__minus(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y))} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(minus) = {1, 2}, Uargs(n__s) = {}, Uargs(activate) = {}, Uargs(geq) = {1, 2}, Uargs(div) = {1}, Uargs(s) = {1}, Uargs(if) = {}, Uargs(n__div) = {}, Uargs(n__minus) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: minus(x1, x2) = [1 0] x1 + [1 0] x2 + [0] [0 0] [0 0] [1] n__0() = [0] [0] 0() = [0] [0] n__s(x1) = [1 0] x1 + [2] [0 0] [3] activate(x1) = [1 0] x1 + [0] [0 1] [1] geq(x1, x2) = [1 0] x1 + [1 0] x2 + [0] [0 0] [0 1] [1] true() = [0] [0] false() = [0] [0] div(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 1] [0 0] [0] s(x1) = [1 0] x1 + [2] [0 1] [3] if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [1 0] x3 + [1] [0 0] [0 1] [0 1] [1] n__div(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__minus(x1, x2) = [1 0] x1 + [1 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: { geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y)) , activate(n__s(X)) -> s(activate(X)) , activate(n__div(X1, X2)) -> div(activate(X1), X2)} Weak Trs: { minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y)) , activate(n__minus(X1, X2)) -> minus(X1, X2) , activate(n__0()) -> 0() , activate(X) -> X , 0() -> n__0() , if(true(), X, Y) -> activate(X) , minus(n__0(), Y) -> 0() , geq(X, n__0()) -> true() , geq(n__0(), n__s(Y)) -> false() , if(false(), X, Y) -> activate(Y) , s(X) -> n__s(X) , div(X1, X2) -> n__div(X1, X2) , minus(X1, X2) -> n__minus(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y))} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(minus) = {1, 2}, Uargs(n__s) = {}, Uargs(activate) = {}, Uargs(geq) = {1, 2}, Uargs(div) = {1}, Uargs(s) = {1}, Uargs(if) = {}, Uargs(n__div) = {}, Uargs(n__minus) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: minus(x1, x2) = [1 0] x1 + [1 0] x2 + [1] [0 0] [0 0] [1] n__0() = [0] [0] 0() = [0] [0] n__s(x1) = [1 0] x1 + [2] [0 0] [0] activate(x1) = [1 0] x1 + [0] [0 1] [1] geq(x1, x2) = [1 0] x1 + [1 0] x2 + [0] [0 0] [1 0] [1] true() = [0] [0] false() = [0] [0] div(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 1] [0 0] [0] s(x1) = [1 0] x1 + [2] [0 1] [0] if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [1 0] x3 + [1] [0 0] [0 1] [0 1] [1] n__div(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__minus(x1, x2) = [1 0] x1 + [1 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: { activate(n__s(X)) -> s(activate(X)) , activate(n__div(X1, X2)) -> div(activate(X1), X2)} Weak Trs: { geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y)) , minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y)) , activate(n__minus(X1, X2)) -> minus(X1, X2) , activate(n__0()) -> 0() , activate(X) -> X , 0() -> n__0() , if(true(), X, Y) -> activate(X) , minus(n__0(), Y) -> 0() , geq(X, n__0()) -> true() , geq(n__0(), n__s(Y)) -> false() , if(false(), X, Y) -> activate(Y) , s(X) -> n__s(X) , div(X1, X2) -> n__div(X1, X2) , minus(X1, X2) -> n__minus(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: We consider the following Problem: Strict Trs: { activate(n__s(X)) -> s(activate(X)) , activate(n__div(X1, X2)) -> div(activate(X1), X2)} Weak Trs: { geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y)) , minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y)) , activate(n__minus(X1, X2)) -> minus(X1, X2) , activate(n__0()) -> 0() , activate(X) -> X , 0() -> n__0() , if(true(), X, Y) -> activate(X) , minus(n__0(), Y) -> 0() , geq(X, n__0()) -> true() , geq(n__0(), n__s(Y)) -> false() , if(false(), X, Y) -> activate(Y) , s(X) -> n__s(X) , div(X1, X2) -> n__div(X1, X2) , minus(X1, X2) -> n__minus(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^2)) Proof: The following argument positions are usable: Uargs(minus) = {1, 2}, Uargs(n__s) = {}, Uargs(activate) = {}, Uargs(geq) = {1, 2}, Uargs(div) = {1}, Uargs(s) = {1}, Uargs(if) = {}, Uargs(n__div) = {}, Uargs(n__minus) = {} We have the following constructor-based EDA-non-satisfying and IDA(2)-non-satisfying matrix interpretation: Interpretation Functions: minus(x1, x2) = [1 0 0] x1 + [1 0 0] x2 + [1] [0 0 0] [0 0 0] [1] [0 0 0] [0 0 0] [1] n__0() = [0] [0] [0] 0() = [0] [0] [0] n__s(x1) = [1 0 2] x1 + [1] [0 0 0] [2] [0 0 1] [2] activate(x1) = [1 0 2] x1 + [0] [0 2 0] [1] [0 0 1] [0] geq(x1, x2) = [1 0 0] x1 + [1 0 0] x2 + [1] [0 0 0] [0 0 0] [1] [0 0 0] [0 0 0] [1] true() = [0] [0] [0] false() = [0] [0] [0] div(x1, x2) = [1 0 0] x1 + [0 0 0] x2 + [1] [0 0 0] [0 0 0] [1] [0 0 1] [0 0 0] [2] s(x1) = [1 0 2] x1 + [1] [0 0 0] [2] [0 0 1] [2] if(x1, x2, x3) = [0 0 0] x1 + [2 0 2] x2 + [2 0 2] x3 + [1] [0 0 0] [0 2 0] [0 2 0] [1] [0 0 0] [0 0 2] [0 0 2] [1] n__div(x1, x2) = [1 0 0] x1 + [0 0 0] x2 + [0] [0 0 0] [0 0 0] [0] [0 0 1] [0 0 0] [2] n__minus(x1, x2) = [1 0 0] x1 + [1 0 0] x2 + [0] [0 0 0] [0 0 0] [0] [0 0 0] [0 0 0] [1] Hurray, we answered YES(?,O(n^2))