We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict Trs:
{ plus_x#1(0(), x8) -> x8
, plus_x#1(S(x12), x14) -> S(plus_x#1(x12, x14))
, map#2(plus_x(x2), Nil()) -> Nil()
, map#2(plus_x(x6), Cons(x4, x2)) ->
Cons(plus_x#1(x6, x4), map#2(plus_x(x6), x2))
, main(x5, x12) -> map#2(plus_x(x12), x5) }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
We add the following weak dependency pairs:
Strict DPs:
{ plus_x#1^#(0(), x8) -> c_1()
, plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14))
, map#2^#(plus_x(x2), Nil()) -> c_3()
, map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2))
, main^#(x5, x12) -> c_5(map#2^#(plus_x(x12), x5)) }
and mark the set of starting terms.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ plus_x#1^#(0(), x8) -> c_1()
, plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14))
, map#2^#(plus_x(x2), Nil()) -> c_3()
, map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2))
, main^#(x5, x12) -> c_5(map#2^#(plus_x(x12), x5)) }
Strict Trs:
{ plus_x#1(0(), x8) -> x8
, plus_x#1(S(x12), x14) -> S(plus_x#1(x12, x14))
, map#2(plus_x(x2), Nil()) -> Nil()
, map#2(plus_x(x6), Cons(x4, x2)) ->
Cons(plus_x#1(x6, x4), map#2(plus_x(x6), x2))
, main(x5, x12) -> map#2(plus_x(x12), x5) }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
No rule is usable, rules are removed from the input problem.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ plus_x#1^#(0(), x8) -> c_1()
, plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14))
, map#2^#(plus_x(x2), Nil()) -> c_3()
, map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2))
, main^#(x5, x12) -> c_5(map#2^#(plus_x(x12), x5)) }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
The weightgap principle applies (using the following constant
growth matrix-interpretation)
The following argument positions are usable:
Uargs(c_2) = {1}, Uargs(c_4) = {1, 2}, Uargs(c_5) = {1}
TcT has computed the following constructor-restricted matrix
interpretation.
[0] = [0]
[0]
[S](x1) = [1 2] x1 + [0]
[0 1] [0]
[plus_x](x1) = [1 0] x1 + [0]
[0 0] [0]
[Nil] = [0]
[0]
[Cons](x1, x2) = [1 0] x2 + [0]
[0 0] [0]
[plus_x#1^#](x1, x2) = [0 0] x1 + [0]
[1 0] [0]
[c_1] = [0]
[0]
[c_2](x1) = [1 0] x1 + [0]
[0 1] [0]
[map#2^#](x1, x2) = [0]
[0]
[c_3] = [0]
[0]
[c_4](x1, x2) = [1 0] x1 + [1 0] x2 + [0]
[0 1] [0 1] [0]
[main^#](x1, x2) = [1 2] x1 + [2 2] x2 + [2]
[1 2] [2 2] [2]
[c_5](x1) = [1 0] x1 + [0]
[0 1] [2]
The order satisfies the following ordering constraints:
[plus_x#1^#(0(), x8)] = [0]
[0]
>= [0]
[0]
= [c_1()]
[plus_x#1^#(S(x12), x14)] = [0 0] x12 + [0]
[1 2] [0]
>= [0 0] x12 + [0]
[1 0] [0]
= [c_2(plus_x#1^#(x12, x14))]
[map#2^#(plus_x(x2), Nil())] = [0]
[0]
>= [0]
[0]
= [c_3()]
[map#2^#(plus_x(x6), Cons(x4, x2))] = [0]
[0]
? [0 0] x6 + [0]
[1 0] [0]
= [c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2))]
[main^#(x5, x12)] = [2 2] x12 + [1 2] x5 + [2]
[2 2] [1 2] [2]
> [0]
[2]
= [c_5(map#2^#(plus_x(x12), x5))]
Further, it can be verified that all rules not oriented are covered by the weightgap condition.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ plus_x#1^#(0(), x8) -> c_1()
, plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14))
, map#2^#(plus_x(x2), Nil()) -> c_3()
, map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2)) }
Weak DPs: { main^#(x5, x12) -> c_5(map#2^#(plus_x(x12), x5)) }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
We estimate the number of application of {1} by applications of
Pre({1}) = {2,4}. Here rules are labeled as follows:
DPs:
{ 1: plus_x#1^#(0(), x8) -> c_1()
, 2: plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14))
, 3: map#2^#(plus_x(x2), Nil()) -> c_3()
, 4: map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2))
, 5: main^#(x5, x12) -> c_5(map#2^#(plus_x(x12), x5)) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14))
, map#2^#(plus_x(x2), Nil()) -> c_3()
, map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2)) }
Weak DPs:
{ plus_x#1^#(0(), x8) -> c_1()
, main^#(x5, x12) -> c_5(map#2^#(plus_x(x12), x5)) }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.
{ plus_x#1^#(0(), x8) -> c_1() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14))
, map#2^#(plus_x(x2), Nil()) -> c_3()
, map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2)) }
Weak DPs: { main^#(x5, x12) -> c_5(map#2^#(plus_x(x12), x5)) }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
Consider the dependency graph
1: plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14))
-->_1 plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14)) :1
2: map#2^#(plus_x(x2), Nil()) -> c_3()
3: map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2))
-->_2 map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2)) :3
-->_2 map#2^#(plus_x(x2), Nil()) -> c_3() :2
-->_1 plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14)) :1
4: main^#(x5, x12) -> c_5(map#2^#(plus_x(x12), x5))
-->_1 map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2)) :3
-->_1 map#2^#(plus_x(x2), Nil()) -> c_3() :2
Following roots of the dependency graph are removed, as the
considered set of starting terms is closed under reduction with
respect to these rules (modulo compound contexts).
{ main^#(x5, x12) -> c_5(map#2^#(plus_x(x12), x5)) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14))
, map#2^#(plus_x(x2), Nil()) -> c_3()
, map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2)) }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
We estimate the number of application of {2} by applications of
Pre({2}) = {3}. Here rules are labeled as follows:
DPs:
{ 1: plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14))
, 2: map#2^#(plus_x(x2), Nil()) -> c_3()
, 3: map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2)) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14))
, map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2)) }
Weak DPs: { map#2^#(plus_x(x2), Nil()) -> c_3() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.
{ map#2^#(plus_x(x2), Nil()) -> c_3() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14))
, map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2)) }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
We use the processor 'Small Polynomial Path Order (PS,2-bounded)'
to orient following rules strictly.
DPs:
{ 1: plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14))
, 2: map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2)) }
Sub-proof:
----------
The input was oriented with the instance of 'Small Polynomial Path
Order (PS,2-bounded)' as induced by the safe mapping
safe(S) = {1}, safe(plus_x) = {1}, safe(Cons) = {1, 2},
safe(plus_x#1^#) = {2}, safe(c_2) = {}, safe(map#2^#) = {},
safe(c_4) = {}
and precedence
map#2^# > plus_x#1^# .
Following symbols are considered recursive:
{plus_x#1^#, map#2^#}
The recursion depth is 2.
Further, following argument filtering is employed:
pi(S) = [1], pi(plus_x) = 1, pi(Cons) = [2], pi(plus_x#1^#) = [1],
pi(c_2) = [1], pi(map#2^#) = [1, 2], pi(c_4) = [1, 2]
Usable defined function symbols are a subset of:
{plus_x#1^#, map#2^#}
For your convenience, here are the satisfied ordering constraints:
pi(plus_x#1^#(S(x12), x14)) = plus_x#1^#(S(; x12);)
> c_2(plus_x#1^#(x12;);)
= pi(c_2(plus_x#1^#(x12, x14)))
pi(map#2^#(plus_x(x6), Cons(x4, x2))) = map#2^#(x6, Cons(; x2);)
> c_4(plus_x#1^#(x6;), map#2^#(x6, x2;);)
= pi(c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2)))
The strictly oriented rules are moved into the weak component.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Weak DPs:
{ plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14))
, map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2)) }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.
{ plus_x#1^#(S(x12), x14) -> c_2(plus_x#1^#(x12, x14))
, map#2^#(plus_x(x6), Cons(x4, x2)) ->
c_4(plus_x#1^#(x6, x4), map#2^#(plus_x(x6), x2)) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Rules: Empty
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
Empty rules are trivially bounded
Hurray, we answered YES(O(1),O(n^2))