We consider the following Problem:
Strict Trs:
{ append(@l1, @l2) -> append#1(@l1, @l2)
, append#1(::(@x, @xs), @l2) -> ::(@x, append(@xs, @l2))
, append#1(nil(), @l2) -> @l2
, subtrees(@t) -> subtrees#1(@t)
, subtrees#1(leaf()) -> nil()
, subtrees#1(node(@x, @t1, @t2)) ->
subtrees#2(subtrees(@t1), @t1, @t2, @x)
, subtrees#2(@l1, @t1, @t2, @x) ->
subtrees#3(subtrees(@t2), @l1, @t1, @t2, @x)
, subtrees#3(@l2, @l1, @t1, @t2, @x) ->
::(node(@x, @t1, @t2), append(@l1, @l2))}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^2))
Proof:
We consider the following Problem:
Strict Trs:
{ append(@l1, @l2) -> append#1(@l1, @l2)
, append#1(::(@x, @xs), @l2) -> ::(@x, append(@xs, @l2))
, append#1(nil(), @l2) -> @l2
, subtrees(@t) -> subtrees#1(@t)
, subtrees#1(leaf()) -> nil()
, subtrees#1(node(@x, @t1, @t2)) ->
subtrees#2(subtrees(@t1), @t1, @t2, @x)
, subtrees#2(@l1, @t1, @t2, @x) ->
subtrees#3(subtrees(@t2), @l1, @t1, @t2, @x)
, subtrees#3(@l2, @l1, @t1, @t2, @x) ->
::(node(@x, @t1, @t2), append(@l1, @l2))}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^2))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {subtrees#1(leaf()) -> nil()}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(append) = {}, Uargs(append#1) = {}, Uargs(::) = {2},
Uargs(subtrees) = {}, Uargs(subtrees#1) = {}, Uargs(node) = {},
Uargs(subtrees#2) = {1}, Uargs(subtrees#3) = {1}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
append(x1, x2) = [0 0] x1 + [1 0] x2 + [0]
[1 1] [0 0] [0]
append#1(x1, x2) = [0 0] x1 + [1 0] x2 + [1]