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))