We consider the following Problem:
Strict Trs:
{ is_empty(nil()) -> true()
, is_empty(cons(x, l)) -> false()
, hd(cons(x, l)) -> x
, tl(cons(x, l)) -> l
, append(l1, l2) -> ifappend(l1, l2, l1)
, ifappend(l1, l2, nil()) -> l2
, ifappend(l1, l2, cons(x, l)) -> cons(x, append(l, l2))}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
We consider the following Problem:
Strict Trs:
{ is_empty(nil()) -> true()
, is_empty(cons(x, l)) -> false()
, hd(cons(x, l)) -> x
, tl(cons(x, l)) -> l
, append(l1, l2) -> ifappend(l1, l2, l1)
, ifappend(l1, l2, nil()) -> l2
, ifappend(l1, l2, cons(x, l)) -> cons(x, append(l, l2))}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
We consider the following Problem:
Strict Trs:
{ is_empty(nil()) -> true()
, is_empty(cons(x, l)) -> false()
, hd(cons(x, l)) -> x
, tl(cons(x, l)) -> l
, append(l1, l2) -> ifappend(l1, l2, l1)
, ifappend(l1, l2, nil()) -> l2
, ifappend(l1, l2, cons(x, l)) -> cons(x, append(l, l2))}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The following argument positions are usable:
Uargs(is_empty) = {}, Uargs(cons) = {2}, Uargs(hd) = {},
Uargs(tl) = {}, Uargs(append) = {}, Uargs(ifappend) = {}
We have the following constructor-based EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
is_empty(x1) = [0 0] x1 + [1]
[0 0] [1]
nil() = [0]
[2]
true() = [0]
[0]
cons(x1, x2) = [0 1] x1 + [1 0] x2 + [2]
[1 0] [0 1] [0]
false() = [0]
[0]
hd(x1) = [0 1] x1 + [1]
[1 0] [3]
tl(x1) = [1 0] x1 + [3]
[1 1] [3]
append(x1, x2) = [2 1] x1 + [2 0] x2 + [1]
[1 1] [0 2] [2]
ifappend(x1, x2, x3) = [0 0] x1 + [2 0] x2 + [2 1] x3 + [0]
[0 0] [0 2] [1 1] [1]
Hurray, we answered YES(?,O(n^1))