* Step 1: DependencyPairs WORST_CASE(?,O(1))
+ Considered Problem:
- Strict TRS:
add(0(),X) -> X
add(s(),Y) -> s()
dbl(0()) -> 0()
dbl(s()) -> s()
first(0(),X) -> nil()
first(s(),cons(Y)) -> cons(Y)
sqr(0()) -> 0()
sqr(s()) -> s()
terms(N) -> cons(recip(sqr(N)))
- Signature:
{add/2,dbl/1,first/2,sqr/1,terms/1} / {0/0,cons/1,nil/0,recip/1,s/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {add,dbl,first,sqr,terms} and constructors {0,cons,nil
,recip,s}
+ Applied Processor:
DependencyPairs {dpKind_ = DT}
+ Details:
We add the following dependency tuples:
Strict DPs
add#(0(),X) -> c_1()
add#(s(),Y) -> c_2()
dbl#(0()) -> c_3()
dbl#(s()) -> c_4()
first#(0(),X) -> c_5()
first#(s(),cons(Y)) -> c_6()
sqr#(0()) -> c_7()
sqr#(s()) -> c_8()
terms#(N) -> c_9(sqr#(N))
Weak DPs
and mark the set of starting terms.
* Step 2: UsableRules WORST_CASE(?,O(1))
+ Considered Problem:
- Strict DPs:
add#(0(),X) -> c_1()
add#(s(),Y) -> c_2()
dbl#(0()) -> c_3()
dbl#(s()) -> c_4()
first#(0(),X) -> c_5()
first#(s(),cons(Y)) -> c_6()
sqr#(0()) -> c_7()
sqr#(s()) -> c_8()
terms#(N) -> c_9(sqr#(N))
- Weak TRS:
add(0(),X) -> X
add(s(),Y) -> s()
dbl(0()) -> 0()
dbl(s()) -> s()
first(0(),X) -> nil()
first(s(),cons(Y)) -> cons(Y)
sqr(0()) -> 0()
sqr(s()) -> s()
terms(N) -> cons(recip(sqr(N)))
- Signature:
{add/2,dbl/1,first/2,sqr/1,terms/1,add#/2,dbl#/1,first#/2,sqr#/1,terms#/1} / {0/0,cons/1,nil/0,recip/1,s/0
,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/0,c_9/1}
- Obligation:
innermost runtime complexity wrt. defined symbols {add#,dbl#,first#,sqr#,terms#} and constructors {0,cons
,nil,recip,s}
+ Applied Processor:
UsableRules
+ Details:
We replace rewrite rules by usable rules:
add#(0(),X) -> c_1()
add#(s(),Y) -> c_2()
dbl#(0()) -> c_3()
dbl#(s()) -> c_4()
first#(0(),X) -> c_5()
first#(s(),cons(Y)) -> c_6()
sqr#(0()) -> c_7()
sqr#(s()) -> c_8()
terms#(N) -> c_9(sqr#(N))
* Step 3: Trivial WORST_CASE(?,O(1))
+ Considered Problem:
- Strict DPs:
add#(0(),X) -> c_1()
add#(s(),Y) -> c_2()
dbl#(0()) -> c_3()
dbl#(s()) -> c_4()
first#(0(),X) -> c_5()
first#(s(),cons(Y)) -> c_6()
sqr#(0()) -> c_7()
sqr#(s()) -> c_8()
terms#(N) -> c_9(sqr#(N))
- Signature:
{add/2,dbl/1,first/2,sqr/1,terms/1,add#/2,dbl#/1,first#/2,sqr#/1,terms#/1} / {0/0,cons/1,nil/0,recip/1,s/0
,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/0,c_9/1}
- Obligation:
innermost runtime complexity wrt. defined symbols {add#,dbl#,first#,sqr#,terms#} and constructors {0,cons
,nil,recip,s}
+ Applied Processor:
Trivial
+ Details:
Consider the dependency graph
1:S:add#(0(),X) -> c_1()
2:S:add#(s(),Y) -> c_2()
3:S:dbl#(0()) -> c_3()
4:S:dbl#(s()) -> c_4()
5:S:first#(0(),X) -> c_5()
6:S:first#(s(),cons(Y)) -> c_6()
7:S:sqr#(0()) -> c_7()
8:S:sqr#(s()) -> c_8()
9:S:terms#(N) -> c_9(sqr#(N))
-->_1 sqr#(s()) -> c_8():8
-->_1 sqr#(0()) -> c_7():7
The dependency graph contains no loops, we remove all dependency pairs.
* Step 4: EmptyProcessor WORST_CASE(?,O(1))
+ Considered Problem:
- Signature:
{add/2,dbl/1,first/2,sqr/1,terms/1,add#/2,dbl#/1,first#/2,sqr#/1,terms#/1} / {0/0,cons/1,nil/0,recip/1,s/0
,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/0,c_9/1}
- Obligation:
innermost runtime complexity wrt. defined symbols {add#,dbl#,first#,sqr#,terms#} and constructors {0,cons
,nil,recip,s}
+ Applied Processor:
EmptyProcessor
+ Details:
The problem is already closed. The intended complexity is O(1).
WORST_CASE(?,O(1))