* Step 1: ToInnermost WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict TRS:
            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} / {0/0,cons/1,nil/0,s/0}
        - Obligation:
             runtime complexity wrt. defined symbols {add,from,fst,len} and constructors {0,cons,nil,s}
    + Applied Processor:
        ToInnermost
    + Details:
        switch to innermost, as the system is overlay and right linear and does not contain weak rules
* Step 2: DependencyPairs WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict TRS:
            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} / {0/0,cons/1,nil/0,s/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {add,from,fst,len} and constructors {0,cons,nil,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()
          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.
* Step 3: UsableRules WORST_CASE(?,O(1))
    + Considered Problem:
        - 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 TRS:
            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 runtime complexity wrt. defined symbols {add#,from#,fst#,len#} and constructors {0,cons,nil,s}
    + Applied Processor:
        UsableRules
    + Details:
        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()
* Step 4: Trivial WORST_CASE(?,O(1))
    + Considered Problem:
        - 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()
        - 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 runtime complexity wrt. defined symbols {add#,from#,fst#,len#} and constructors {0,cons,nil,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: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.
* Step 5: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        
        - 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 runtime complexity wrt. defined symbols {add#,from#,fst#,len#} and constructors {0,cons,nil,s}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

WORST_CASE(?,O(1))