MAYBE
* Step 1: DependencyPairs MAYBE
    + Considered Problem:
        - Strict TRS:
            after(0(),XS) -> XS
            after(s(N),cons(X,XS)) -> after(N,XS)
            from(X) -> cons(X,from(s(X)))
        - Signature:
            {after/2,from/1} / {0/0,cons/2,s/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {after,from} and constructors {0,cons,s}
    + Applied Processor:
        DependencyPairs {dpKind_ = DT}
    + Details:
        We add the following dependency tuples:
        
        Strict DPs
          after#(0(),XS) -> c_1()
          after#(s(N),cons(X,XS)) -> c_2(after#(N,XS))
          from#(X) -> c_3(from#(s(X)))
        Weak DPs
          
        
        and mark the set of starting terms.
* Step 2: UsableRules MAYBE
    + Considered Problem:
        - Strict DPs:
            after#(0(),XS) -> c_1()
            after#(s(N),cons(X,XS)) -> c_2(after#(N,XS))
            from#(X) -> c_3(from#(s(X)))
        - Weak TRS:
            after(0(),XS) -> XS
            after(s(N),cons(X,XS)) -> after(N,XS)
            from(X) -> cons(X,from(s(X)))
        - Signature:
            {after/2,from/1,after#/2,from#/1} / {0/0,cons/2,s/1,c_1/0,c_2/1,c_3/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {after#,from#} and constructors {0,cons,s}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          after#(0(),XS) -> c_1()
          after#(s(N),cons(X,XS)) -> c_2(after#(N,XS))
          from#(X) -> c_3(from#(s(X)))
* Step 3: PredecessorEstimation MAYBE
    + Considered Problem:
        - Strict DPs:
            after#(0(),XS) -> c_1()
            after#(s(N),cons(X,XS)) -> c_2(after#(N,XS))
            from#(X) -> c_3(from#(s(X)))
        - Signature:
            {after/2,from/1,after#/2,from#/1} / {0/0,cons/2,s/1,c_1/0,c_2/1,c_3/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {after#,from#} and constructors {0,cons,s}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {1}
        by application of
          Pre({1}) = {2}.
        Here rules are labelled as follows:
          1: after#(0(),XS) -> c_1()
          2: after#(s(N),cons(X,XS)) -> c_2(after#(N,XS))
          3: from#(X) -> c_3(from#(s(X)))
* Step 4: RemoveWeakSuffixes MAYBE
    + Considered Problem:
        - Strict DPs:
            after#(s(N),cons(X,XS)) -> c_2(after#(N,XS))
            from#(X) -> c_3(from#(s(X)))
        - Weak DPs:
            after#(0(),XS) -> c_1()
        - Signature:
            {after/2,from/1,after#/2,from#/1} / {0/0,cons/2,s/1,c_1/0,c_2/1,c_3/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {after#,from#} and constructors {0,cons,s}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:after#(s(N),cons(X,XS)) -> c_2(after#(N,XS))
             -->_1 after#(0(),XS) -> c_1():3
             -->_1 after#(s(N),cons(X,XS)) -> c_2(after#(N,XS)):1
          
          2:S:from#(X) -> c_3(from#(s(X)))
             -->_1 from#(X) -> c_3(from#(s(X))):2
          
          3:W:after#(0(),XS) -> c_1()
             
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          3: after#(0(),XS) -> c_1()
* Step 5: Failure MAYBE
  + Considered Problem:
      - Strict DPs:
          after#(s(N),cons(X,XS)) -> c_2(after#(N,XS))
          from#(X) -> c_3(from#(s(X)))
      - Signature:
          {after/2,from/1,after#/2,from#/1} / {0/0,cons/2,s/1,c_1/0,c_2/1,c_3/1}
      - Obligation:
          innermost runtime complexity wrt. defined symbols {after#,from#} and constructors {0,cons,s}
  + Applied Processor:
      EmptyProcessor
  + Details:
      The problem is still open.
MAYBE