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