We consider the following Problem:
Strict Trs:
{ merge(x, nil()) -> x
, merge(nil(), y) -> y
, merge(++(x, y), ++(u(), v())) -> ++(x, merge(y, ++(u(), v())))
, merge(++(x, y), ++(u(), v())) -> ++(u(), merge(++(x, y), v()))}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
We consider the following Problem:
Strict Trs:
{ merge(x, nil()) -> x
, merge(nil(), y) -> y
, merge(++(x, y), ++(u(), v())) -> ++(x, merge(y, ++(u(), v())))
, merge(++(x, y), ++(u(), v())) -> ++(u(), merge(++(x, y), v()))}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {merge(nil(), y) -> y}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(merge) = {}, Uargs(++) = {2}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
merge(x1, x2) = [1 0] x1 + [1 0] x2 + [1]
[0 0] [0 1] [1]
nil() = [0]
[0]
++(x1, x2) = [0 0] x1 + [1 0] x2 + [0]
[0 0] [0 0] [0]
u() = [0]
[0]
v() = [0]
[0]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ merge(x, nil()) -> x
, merge(++(x, y), ++(u(), v())) -> ++(x, merge(y, ++(u(), v())))
, merge(++(x, y), ++(u(), v())) -> ++(u(), merge(++(x, y), v()))}
Weak Trs: {merge(nil(), y) -> y}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {merge(x, nil()) -> x}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(merge) = {}, Uargs(++) = {2}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
merge(x1, x2) = [1 0] x1 + [1 0] x2 + [0]
[0 1] [1 1] [0]
nil() = [1]
[0]
++(x1, x2) = [0 0] x1 + [1 0] x2 + [1]
[0 0] [0 0] [0]
u() = [0]
[0]
v() = [2]
[0]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ merge(++(x, y), ++(u(), v())) -> ++(x, merge(y, ++(u(), v())))
, merge(++(x, y), ++(u(), v())) -> ++(u(), merge(++(x, y), v()))}
Weak Trs:
{ merge(x, nil()) -> x
, merge(nil(), y) -> y}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
We consider the following Problem:
Strict Trs:
{ merge(++(x, y), ++(u(), v())) -> ++(x, merge(y, ++(u(), v())))
, merge(++(x, y), ++(u(), v())) -> ++(u(), merge(++(x, y), v()))}
Weak Trs:
{ merge(x, nil()) -> x
, merge(nil(), y) -> y}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The problem is match-bounded by 1.
The enriched problem is compatible with the following automaton:
{ merge_0(2, 2) -> 1
, merge_1(2, 4) -> 3
, merge_1(8, 6) -> 7
, nil_0() -> 1
, nil_0() -> 2
, ++_0(2, 2) -> 1
, ++_0(2, 2) -> 2
, ++_1(2, 2) -> 8
, ++_1(2, 3) -> 1
, ++_1(2, 3) -> 3
, ++_1(5, 6) -> 3
, ++_1(5, 6) -> 4
, ++_1(5, 7) -> 1
, ++_1(5, 7) -> 3
, u_0() -> 1
, u_0() -> 2
, u_1() -> 5
, v_0() -> 1
, v_0() -> 2
, v_1() -> 6}
Hurray, we answered YES(?,O(n^1))