*** 1 Progress [(O(1),O(1))] ***
Considered Problem:
Strict DP Rules:
Strict TRS Rules:
add(0(),X) -> X
add(s(),Y) -> s()
from(X) -> cons(X)
fst(0(),Z) -> nil()
fst(s(),cons(Y)) -> cons(Y)
len(cons(X)) -> s()
len(nil()) -> 0()
Weak DP Rules:
Weak TRS Rules:
Signature:
{add/2,from/1,fst/2,len/1} / {0/0,cons/1,nil/0,s/0}
Obligation:
Innermost
basic terms: {add,from,fst,len}/{0,cons,nil,s}
Applied Processor:
DependencyPairs {dpKind_ = DT}
Proof:
We add the following dependency tuples:
Strict DPs
add#(0(),X) -> c_1()
add#(s(),Y) -> c_2()
from#(X) -> c_3()
fst#(0(),Z) -> c_4()
fst#(s(),cons(Y)) -> c_5()
len#(cons(X)) -> c_6()
len#(nil()) -> c_7()
Weak DPs
and mark the set of starting terms.
*** 1.1 Progress [(O(1),O(1))] ***
Considered Problem:
Strict DP Rules:
add#(0(),X) -> c_1()
add#(s(),Y) -> c_2()
from#(X) -> c_3()
fst#(0(),Z) -> c_4()
fst#(s(),cons(Y)) -> c_5()
len#(cons(X)) -> c_6()
len#(nil()) -> c_7()
Strict TRS Rules:
Weak DP Rules:
Weak TRS Rules:
add(0(),X) -> X
add(s(),Y) -> s()
from(X) -> cons(X)
fst(0(),Z) -> nil()
fst(s(),cons(Y)) -> cons(Y)
len(cons(X)) -> s()
len(nil()) -> 0()
Signature:
{add/2,from/1,fst/2,len/1,add#/2,from#/1,fst#/2,len#/1} / {0/0,cons/1,nil/0,s/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0}
Obligation:
Innermost
basic terms: {add#,from#,fst#,len#}/{0,cons,nil,s}
Applied Processor:
UsableRules
Proof:
We replace rewrite rules by usable rules:
add#(0(),X) -> c_1()
add#(s(),Y) -> c_2()
from#(X) -> c_3()
fst#(0(),Z) -> c_4()
fst#(s(),cons(Y)) -> c_5()
len#(cons(X)) -> c_6()
len#(nil()) -> c_7()
*** 1.1.1 Progress [(O(1),O(1))] ***
Considered Problem:
Strict DP Rules:
add#(0(),X) -> c_1()
add#(s(),Y) -> c_2()
from#(X) -> c_3()
fst#(0(),Z) -> c_4()
fst#(s(),cons(Y)) -> c_5()
len#(cons(X)) -> c_6()
len#(nil()) -> c_7()
Strict TRS Rules:
Weak DP Rules:
Weak TRS Rules:
Signature:
{add/2,from/1,fst/2,len/1,add#/2,from#/1,fst#/2,len#/1} / {0/0,cons/1,nil/0,s/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0}
Obligation:
Innermost
basic terms: {add#,from#,fst#,len#}/{0,cons,nil,s}
Applied Processor:
Trivial
Proof:
Consider the dependency graph
1:S:add#(0(),X) -> c_1()
2:S:add#(s(),Y) -> c_2()
3:S:from#(X) -> c_3()
4:S:fst#(0(),Z) -> c_4()
5:S:fst#(s(),cons(Y)) -> c_5()
6:S:len#(cons(X)) -> c_6()
7:S:len#(nil()) -> c_7()
The dependency graph contains no loops, we remove all dependency pairs.
*** 1.1.1.1 Progress [(O(1),O(1))] ***
Considered Problem:
Strict DP Rules:
Strict TRS Rules:
Weak DP Rules:
Weak TRS Rules:
Signature:
{add/2,from/1,fst/2,len/1,add#/2,from#/1,fst#/2,len#/1} / {0/0,cons/1,nil/0,s/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0}
Obligation:
Innermost
basic terms: {add#,from#,fst#,len#}/{0,cons,nil,s}
Applied Processor:
EmptyProcessor
Proof:
The problem is already closed. The intended complexity is O(1).