*** 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).