MAYBE
* Step 1: DependencyPairs MAYBE
    + Considered Problem:
        - Strict TRS:
            fac(0(),x) -> x
            fac(s(x),y) -> fac(p(s(x)),times(s(x),y))
            factorial(x) -> fac(x,s(0()))
            p(s(0())) -> 0()
            p(s(s(x))) -> s(p(s(x)))
            plus(0(),x) -> x
            plus(s(x),y) -> s(plus(p(s(x)),y))
            times(0(),y) -> 0()
            times(s(x),y) -> plus(y,times(p(s(x)),y))
        - Signature:
            {fac/2,factorial/1,p/1,plus/2,times/2} / {0/0,s/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {fac,factorial,p,plus,times} and constructors {0,s}
    + Applied Processor:
        DependencyPairs {dpKind_ = DT}
    + Details:
        We add the following dependency tuples:
        
        Strict DPs
          fac#(0(),x) -> c_1()
          fac#(s(x),y) -> c_2(fac#(p(s(x)),times(s(x),y)),p#(s(x)),times#(s(x),y))
          factorial#(x) -> c_3(fac#(x,s(0())))
          p#(s(0())) -> c_4()
          p#(s(s(x))) -> c_5(p#(s(x)))
          plus#(0(),x) -> c_6()
          plus#(s(x),y) -> c_7(plus#(p(s(x)),y),p#(s(x)))
          times#(0(),y) -> c_8()
          times#(s(x),y) -> c_9(plus#(y,times(p(s(x)),y)),times#(p(s(x)),y),p#(s(x)))
        Weak DPs
          
        
        and mark the set of starting terms.
* Step 2: UsableRules MAYBE
    + Considered Problem:
        - Strict DPs:
            fac#(0(),x) -> c_1()
            fac#(s(x),y) -> c_2(fac#(p(s(x)),times(s(x),y)),p#(s(x)),times#(s(x),y))
            factorial#(x) -> c_3(fac#(x,s(0())))
            p#(s(0())) -> c_4()
            p#(s(s(x))) -> c_5(p#(s(x)))
            plus#(0(),x) -> c_6()
            plus#(s(x),y) -> c_7(plus#(p(s(x)),y),p#(s(x)))
            times#(0(),y) -> c_8()
            times#(s(x),y) -> c_9(plus#(y,times(p(s(x)),y)),times#(p(s(x)),y),p#(s(x)))
        - Weak TRS:
            fac(0(),x) -> x
            fac(s(x),y) -> fac(p(s(x)),times(s(x),y))
            factorial(x) -> fac(x,s(0()))
            p(s(0())) -> 0()
            p(s(s(x))) -> s(p(s(x)))
            plus(0(),x) -> x
            plus(s(x),y) -> s(plus(p(s(x)),y))
            times(0(),y) -> 0()
            times(s(x),y) -> plus(y,times(p(s(x)),y))
        - Signature:
            {fac/2,factorial/1,p/1,plus/2,times/2,fac#/2,factorial#/1,p#/1,plus#/2,times#/2} / {0/0,s/1,c_1/0,c_2/3
            ,c_3/1,c_4/0,c_5/1,c_6/0,c_7/2,c_8/0,c_9/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {fac#,factorial#,p#,plus#,times#} and constructors {0,s}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          p(s(0())) -> 0()
          p(s(s(x))) -> s(p(s(x)))
          plus(0(),x) -> x
          plus(s(x),y) -> s(plus(p(s(x)),y))
          times(0(),y) -> 0()
          times(s(x),y) -> plus(y,times(p(s(x)),y))
          fac#(0(),x) -> c_1()
          fac#(s(x),y) -> c_2(fac#(p(s(x)),times(s(x),y)),p#(s(x)),times#(s(x),y))
          factorial#(x) -> c_3(fac#(x,s(0())))
          p#(s(0())) -> c_4()
          p#(s(s(x))) -> c_5(p#(s(x)))
          plus#(0(),x) -> c_6()
          plus#(s(x),y) -> c_7(plus#(p(s(x)),y),p#(s(x)))
          times#(0(),y) -> c_8()
          times#(s(x),y) -> c_9(plus#(y,times(p(s(x)),y)),times#(p(s(x)),y),p#(s(x)))
* Step 3: PredecessorEstimation MAYBE
    + Considered Problem:
        - Strict DPs:
            fac#(0(),x) -> c_1()
            fac#(s(x),y) -> c_2(fac#(p(s(x)),times(s(x),y)),p#(s(x)),times#(s(x),y))
            factorial#(x) -> c_3(fac#(x,s(0())))
            p#(s(0())) -> c_4()
            p#(s(s(x))) -> c_5(p#(s(x)))
            plus#(0(),x) -> c_6()
            plus#(s(x),y) -> c_7(plus#(p(s(x)),y),p#(s(x)))
            times#(0(),y) -> c_8()
            times#(s(x),y) -> c_9(plus#(y,times(p(s(x)),y)),times#(p(s(x)),y),p#(s(x)))
        - Weak TRS:
            p(s(0())) -> 0()
            p(s(s(x))) -> s(p(s(x)))
            plus(0(),x) -> x
            plus(s(x),y) -> s(plus(p(s(x)),y))
            times(0(),y) -> 0()
            times(s(x),y) -> plus(y,times(p(s(x)),y))
        - Signature:
            {fac/2,factorial/1,p/1,plus/2,times/2,fac#/2,factorial#/1,p#/1,plus#/2,times#/2} / {0/0,s/1,c_1/0,c_2/3
            ,c_3/1,c_4/0,c_5/1,c_6/0,c_7/2,c_8/0,c_9/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {fac#,factorial#,p#,plus#,times#} and constructors {0,s}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {1,4,6,8}
        by application of
          Pre({1,4,6,8}) = {2,3,5,7,9}.
        Here rules are labelled as follows:
          1: fac#(0(),x) -> c_1()
          2: fac#(s(x),y) -> c_2(fac#(p(s(x)),times(s(x),y)),p#(s(x)),times#(s(x),y))
          3: factorial#(x) -> c_3(fac#(x,s(0())))
          4: p#(s(0())) -> c_4()
          5: p#(s(s(x))) -> c_5(p#(s(x)))
          6: plus#(0(),x) -> c_6()
          7: plus#(s(x),y) -> c_7(plus#(p(s(x)),y),p#(s(x)))
          8: times#(0(),y) -> c_8()
          9: times#(s(x),y) -> c_9(plus#(y,times(p(s(x)),y)),times#(p(s(x)),y),p#(s(x)))
* Step 4: RemoveWeakSuffixes MAYBE
    + Considered Problem:
        - Strict DPs:
            fac#(s(x),y) -> c_2(fac#(p(s(x)),times(s(x),y)),p#(s(x)),times#(s(x),y))
            factorial#(x) -> c_3(fac#(x,s(0())))
            p#(s(s(x))) -> c_5(p#(s(x)))
            plus#(s(x),y) -> c_7(plus#(p(s(x)),y),p#(s(x)))
            times#(s(x),y) -> c_9(plus#(y,times(p(s(x)),y)),times#(p(s(x)),y),p#(s(x)))
        - Weak DPs:
            fac#(0(),x) -> c_1()
            p#(s(0())) -> c_4()
            plus#(0(),x) -> c_6()
            times#(0(),y) -> c_8()
        - Weak TRS:
            p(s(0())) -> 0()
            p(s(s(x))) -> s(p(s(x)))
            plus(0(),x) -> x
            plus(s(x),y) -> s(plus(p(s(x)),y))
            times(0(),y) -> 0()
            times(s(x),y) -> plus(y,times(p(s(x)),y))
        - Signature:
            {fac/2,factorial/1,p/1,plus/2,times/2,fac#/2,factorial#/1,p#/1,plus#/2,times#/2} / {0/0,s/1,c_1/0,c_2/3
            ,c_3/1,c_4/0,c_5/1,c_6/0,c_7/2,c_8/0,c_9/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {fac#,factorial#,p#,plus#,times#} and constructors {0,s}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:fac#(s(x),y) -> c_2(fac#(p(s(x)),times(s(x),y)),p#(s(x)),times#(s(x),y))
             -->_3 times#(s(x),y) -> c_9(plus#(y,times(p(s(x)),y)),times#(p(s(x)),y),p#(s(x))):5
             -->_2 p#(s(s(x))) -> c_5(p#(s(x))):3
             -->_2 p#(s(0())) -> c_4():7
             -->_1 fac#(0(),x) -> c_1():6
             -->_1 fac#(s(x),y) -> c_2(fac#(p(s(x)),times(s(x),y)),p#(s(x)),times#(s(x),y)):1
          
          2:S:factorial#(x) -> c_3(fac#(x,s(0())))
             -->_1 fac#(0(),x) -> c_1():6
             -->_1 fac#(s(x),y) -> c_2(fac#(p(s(x)),times(s(x),y)),p#(s(x)),times#(s(x),y)):1
          
          3:S:p#(s(s(x))) -> c_5(p#(s(x)))
             -->_1 p#(s(0())) -> c_4():7
             -->_1 p#(s(s(x))) -> c_5(p#(s(x))):3
          
          4:S:plus#(s(x),y) -> c_7(plus#(p(s(x)),y),p#(s(x)))
             -->_1 plus#(0(),x) -> c_6():8
             -->_2 p#(s(0())) -> c_4():7
             -->_1 plus#(s(x),y) -> c_7(plus#(p(s(x)),y),p#(s(x))):4
             -->_2 p#(s(s(x))) -> c_5(p#(s(x))):3
          
          5:S:times#(s(x),y) -> c_9(plus#(y,times(p(s(x)),y)),times#(p(s(x)),y),p#(s(x)))
             -->_2 times#(0(),y) -> c_8():9
             -->_1 plus#(0(),x) -> c_6():8
             -->_3 p#(s(0())) -> c_4():7
             -->_2 times#(s(x),y) -> c_9(plus#(y,times(p(s(x)),y)),times#(p(s(x)),y),p#(s(x))):5
             -->_1 plus#(s(x),y) -> c_7(plus#(p(s(x)),y),p#(s(x))):4
             -->_3 p#(s(s(x))) -> c_5(p#(s(x))):3
          
          6:W:fac#(0(),x) -> c_1()
             
          
          7:W:p#(s(0())) -> c_4()
             
          
          8:W:plus#(0(),x) -> c_6()
             
          
          9:W:times#(0(),y) -> c_8()
             
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          6: fac#(0(),x) -> c_1()
          7: p#(s(0())) -> c_4()
          8: plus#(0(),x) -> c_6()
          9: times#(0(),y) -> c_8()
* Step 5: RemoveHeads MAYBE
    + Considered Problem:
        - Strict DPs:
            fac#(s(x),y) -> c_2(fac#(p(s(x)),times(s(x),y)),p#(s(x)),times#(s(x),y))
            factorial#(x) -> c_3(fac#(x,s(0())))
            p#(s(s(x))) -> c_5(p#(s(x)))
            plus#(s(x),y) -> c_7(plus#(p(s(x)),y),p#(s(x)))
            times#(s(x),y) -> c_9(plus#(y,times(p(s(x)),y)),times#(p(s(x)),y),p#(s(x)))
        - Weak TRS:
            p(s(0())) -> 0()
            p(s(s(x))) -> s(p(s(x)))
            plus(0(),x) -> x
            plus(s(x),y) -> s(plus(p(s(x)),y))
            times(0(),y) -> 0()
            times(s(x),y) -> plus(y,times(p(s(x)),y))
        - Signature:
            {fac/2,factorial/1,p/1,plus/2,times/2,fac#/2,factorial#/1,p#/1,plus#/2,times#/2} / {0/0,s/1,c_1/0,c_2/3
            ,c_3/1,c_4/0,c_5/1,c_6/0,c_7/2,c_8/0,c_9/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {fac#,factorial#,p#,plus#,times#} and constructors {0,s}
    + Applied Processor:
        RemoveHeads
    + Details:
        Consider the dependency graph
        
        1:S:fac#(s(x),y) -> c_2(fac#(p(s(x)),times(s(x),y)),p#(s(x)),times#(s(x),y))
           -->_3 times#(s(x),y) -> c_9(plus#(y,times(p(s(x)),y)),times#(p(s(x)),y),p#(s(x))):5
           -->_2 p#(s(s(x))) -> c_5(p#(s(x))):3
           -->_1 fac#(s(x),y) -> c_2(fac#(p(s(x)),times(s(x),y)),p#(s(x)),times#(s(x),y)):1
        
        2:S:factorial#(x) -> c_3(fac#(x,s(0())))
           -->_1 fac#(s(x),y) -> c_2(fac#(p(s(x)),times(s(x),y)),p#(s(x)),times#(s(x),y)):1
        
        3:S:p#(s(s(x))) -> c_5(p#(s(x)))
           -->_1 p#(s(s(x))) -> c_5(p#(s(x))):3
        
        4:S:plus#(s(x),y) -> c_7(plus#(p(s(x)),y),p#(s(x)))
           -->_1 plus#(s(x),y) -> c_7(plus#(p(s(x)),y),p#(s(x))):4
           -->_2 p#(s(s(x))) -> c_5(p#(s(x))):3
        
        5:S:times#(s(x),y) -> c_9(plus#(y,times(p(s(x)),y)),times#(p(s(x)),y),p#(s(x)))
           -->_2 times#(s(x),y) -> c_9(plus#(y,times(p(s(x)),y)),times#(p(s(x)),y),p#(s(x))):5
           -->_1 plus#(s(x),y) -> c_7(plus#(p(s(x)),y),p#(s(x))):4
           -->_3 p#(s(s(x))) -> c_5(p#(s(x))):3
        
        
        Following roots of the dependency graph are removed, as the considered set of starting terms is closed under reduction with respect to these rules (modulo compound contexts).
        
        [(2,factorial#(x) -> c_3(fac#(x,s(0()))))]
* Step 6: Failure MAYBE
  + Considered Problem:
      - Strict DPs:
          fac#(s(x),y) -> c_2(fac#(p(s(x)),times(s(x),y)),p#(s(x)),times#(s(x),y))
          p#(s(s(x))) -> c_5(p#(s(x)))
          plus#(s(x),y) -> c_7(plus#(p(s(x)),y),p#(s(x)))
          times#(s(x),y) -> c_9(plus#(y,times(p(s(x)),y)),times#(p(s(x)),y),p#(s(x)))
      - Weak TRS:
          p(s(0())) -> 0()
          p(s(s(x))) -> s(p(s(x)))
          plus(0(),x) -> x
          plus(s(x),y) -> s(plus(p(s(x)),y))
          times(0(),y) -> 0()
          times(s(x),y) -> plus(y,times(p(s(x)),y))
      - Signature:
          {fac/2,factorial/1,p/1,plus/2,times/2,fac#/2,factorial#/1,p#/1,plus#/2,times#/2} / {0/0,s/1,c_1/0,c_2/3
          ,c_3/1,c_4/0,c_5/1,c_6/0,c_7/2,c_8/0,c_9/3}
      - Obligation:
          innermost runtime complexity wrt. defined symbols {fac#,factorial#,p#,plus#,times#} and constructors {0,s}
  + Applied Processor:
      EmptyProcessor
  + Details:
      The problem is still open.
MAYBE