MAYBE
* Step 1: DependencyPairs MAYBE
    + Considered Problem:
        - Strict TRS:
            diff(X,Y) -> if(leq(X,Y),0(),s(diff(p(X),Y)))
            if(false(),X,Y) -> Y
            if(true(),X,Y) -> X
            leq(0(),Y) -> true()
            leq(s(X),0()) -> false()
            leq(s(X),s(Y)) -> leq(X,Y)
            p(0()) -> 0()
            p(s(X)) -> X
        - Signature:
            {diff/2,if/3,leq/2,p/1} / {0/0,false/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {diff,if,leq,p} and constructors {0,false,s,true}
    + Applied Processor:
        DependencyPairs {dpKind_ = DT}
    + Details:
        We add the following dependency tuples:
        
        Strict DPs
          diff#(X,Y) -> c_1(if#(leq(X,Y),0(),s(diff(p(X),Y))),leq#(X,Y),diff#(p(X),Y),p#(X))
          if#(false(),X,Y) -> c_2()
          if#(true(),X,Y) -> c_3()
          leq#(0(),Y) -> c_4()
          leq#(s(X),0()) -> c_5()
          leq#(s(X),s(Y)) -> c_6(leq#(X,Y))
          p#(0()) -> c_7()
          p#(s(X)) -> c_8()
        Weak DPs
          
        
        and mark the set of starting terms.
* Step 2: PredecessorEstimation MAYBE
    + Considered Problem:
        - Strict DPs:
            diff#(X,Y) -> c_1(if#(leq(X,Y),0(),s(diff(p(X),Y))),leq#(X,Y),diff#(p(X),Y),p#(X))
            if#(false(),X,Y) -> c_2()
            if#(true(),X,Y) -> c_3()
            leq#(0(),Y) -> c_4()
            leq#(s(X),0()) -> c_5()
            leq#(s(X),s(Y)) -> c_6(leq#(X,Y))
            p#(0()) -> c_7()
            p#(s(X)) -> c_8()
        - Weak TRS:
            diff(X,Y) -> if(leq(X,Y),0(),s(diff(p(X),Y)))
            if(false(),X,Y) -> Y
            if(true(),X,Y) -> X
            leq(0(),Y) -> true()
            leq(s(X),0()) -> false()
            leq(s(X),s(Y)) -> leq(X,Y)
            p(0()) -> 0()
            p(s(X)) -> X
        - Signature:
            {diff/2,if/3,leq/2,p/1,diff#/2,if#/3,leq#/2,p#/1} / {0/0,false/0,s/1,true/0,c_1/4,c_2/0,c_3/0,c_4/0,c_5/0
            ,c_6/1,c_7/0,c_8/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {diff#,if#,leq#,p#} and constructors {0,false,s,true}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {2,3,4,5,7,8}
        by application of
          Pre({2,3,4,5,7,8}) = {1,6}.
        Here rules are labelled as follows:
          1: diff#(X,Y) -> c_1(if#(leq(X,Y),0(),s(diff(p(X),Y))),leq#(X,Y),diff#(p(X),Y),p#(X))
          2: if#(false(),X,Y) -> c_2()
          3: if#(true(),X,Y) -> c_3()
          4: leq#(0(),Y) -> c_4()
          5: leq#(s(X),0()) -> c_5()
          6: leq#(s(X),s(Y)) -> c_6(leq#(X,Y))
          7: p#(0()) -> c_7()
          8: p#(s(X)) -> c_8()
* Step 3: RemoveWeakSuffixes MAYBE
    + Considered Problem:
        - Strict DPs:
            diff#(X,Y) -> c_1(if#(leq(X,Y),0(),s(diff(p(X),Y))),leq#(X,Y),diff#(p(X),Y),p#(X))
            leq#(s(X),s(Y)) -> c_6(leq#(X,Y))
        - Weak DPs:
            if#(false(),X,Y) -> c_2()
            if#(true(),X,Y) -> c_3()
            leq#(0(),Y) -> c_4()
            leq#(s(X),0()) -> c_5()
            p#(0()) -> c_7()
            p#(s(X)) -> c_8()
        - Weak TRS:
            diff(X,Y) -> if(leq(X,Y),0(),s(diff(p(X),Y)))
            if(false(),X,Y) -> Y
            if(true(),X,Y) -> X
            leq(0(),Y) -> true()
            leq(s(X),0()) -> false()
            leq(s(X),s(Y)) -> leq(X,Y)
            p(0()) -> 0()
            p(s(X)) -> X
        - Signature:
            {diff/2,if/3,leq/2,p/1,diff#/2,if#/3,leq#/2,p#/1} / {0/0,false/0,s/1,true/0,c_1/4,c_2/0,c_3/0,c_4/0,c_5/0
            ,c_6/1,c_7/0,c_8/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {diff#,if#,leq#,p#} and constructors {0,false,s,true}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:diff#(X,Y) -> c_1(if#(leq(X,Y),0(),s(diff(p(X),Y))),leq#(X,Y),diff#(p(X),Y),p#(X))
             -->_2 leq#(s(X),s(Y)) -> c_6(leq#(X,Y)):2
             -->_4 p#(s(X)) -> c_8():8
             -->_4 p#(0()) -> c_7():7
             -->_2 leq#(s(X),0()) -> c_5():6
             -->_2 leq#(0(),Y) -> c_4():5
             -->_1 if#(true(),X,Y) -> c_3():4
             -->_1 if#(false(),X,Y) -> c_2():3
             -->_3 diff#(X,Y) -> c_1(if#(leq(X,Y),0(),s(diff(p(X),Y))),leq#(X,Y),diff#(p(X),Y),p#(X)):1
          
          2:S:leq#(s(X),s(Y)) -> c_6(leq#(X,Y))
             -->_1 leq#(s(X),0()) -> c_5():6
             -->_1 leq#(0(),Y) -> c_4():5
             -->_1 leq#(s(X),s(Y)) -> c_6(leq#(X,Y)):2
          
          3:W:if#(false(),X,Y) -> c_2()
             
          
          4:W:if#(true(),X,Y) -> c_3()
             
          
          5:W:leq#(0(),Y) -> c_4()
             
          
          6:W:leq#(s(X),0()) -> c_5()
             
          
          7:W:p#(0()) -> c_7()
             
          
          8:W:p#(s(X)) -> c_8()
             
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          3: if#(false(),X,Y) -> c_2()
          4: if#(true(),X,Y) -> c_3()
          7: p#(0()) -> c_7()
          8: p#(s(X)) -> c_8()
          5: leq#(0(),Y) -> c_4()
          6: leq#(s(X),0()) -> c_5()
* Step 4: SimplifyRHS MAYBE
    + Considered Problem:
        - Strict DPs:
            diff#(X,Y) -> c_1(if#(leq(X,Y),0(),s(diff(p(X),Y))),leq#(X,Y),diff#(p(X),Y),p#(X))
            leq#(s(X),s(Y)) -> c_6(leq#(X,Y))
        - Weak TRS:
            diff(X,Y) -> if(leq(X,Y),0(),s(diff(p(X),Y)))
            if(false(),X,Y) -> Y
            if(true(),X,Y) -> X
            leq(0(),Y) -> true()
            leq(s(X),0()) -> false()
            leq(s(X),s(Y)) -> leq(X,Y)
            p(0()) -> 0()
            p(s(X)) -> X
        - Signature:
            {diff/2,if/3,leq/2,p/1,diff#/2,if#/3,leq#/2,p#/1} / {0/0,false/0,s/1,true/0,c_1/4,c_2/0,c_3/0,c_4/0,c_5/0
            ,c_6/1,c_7/0,c_8/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {diff#,if#,leq#,p#} and constructors {0,false,s,true}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:diff#(X,Y) -> c_1(if#(leq(X,Y),0(),s(diff(p(X),Y))),leq#(X,Y),diff#(p(X),Y),p#(X))
             -->_2 leq#(s(X),s(Y)) -> c_6(leq#(X,Y)):2
             -->_3 diff#(X,Y) -> c_1(if#(leq(X,Y),0(),s(diff(p(X),Y))),leq#(X,Y),diff#(p(X),Y),p#(X)):1
          
          2:S:leq#(s(X),s(Y)) -> c_6(leq#(X,Y))
             -->_1 leq#(s(X),s(Y)) -> c_6(leq#(X,Y)):2
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          diff#(X,Y) -> c_1(leq#(X,Y),diff#(p(X),Y))
* Step 5: UsableRules MAYBE
    + Considered Problem:
        - Strict DPs:
            diff#(X,Y) -> c_1(leq#(X,Y),diff#(p(X),Y))
            leq#(s(X),s(Y)) -> c_6(leq#(X,Y))
        - Weak TRS:
            diff(X,Y) -> if(leq(X,Y),0(),s(diff(p(X),Y)))
            if(false(),X,Y) -> Y
            if(true(),X,Y) -> X
            leq(0(),Y) -> true()
            leq(s(X),0()) -> false()
            leq(s(X),s(Y)) -> leq(X,Y)
            p(0()) -> 0()
            p(s(X)) -> X
        - Signature:
            {diff/2,if/3,leq/2,p/1,diff#/2,if#/3,leq#/2,p#/1} / {0/0,false/0,s/1,true/0,c_1/2,c_2/0,c_3/0,c_4/0,c_5/0
            ,c_6/1,c_7/0,c_8/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {diff#,if#,leq#,p#} and constructors {0,false,s,true}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          p(0()) -> 0()
          p(s(X)) -> X
          diff#(X,Y) -> c_1(leq#(X,Y),diff#(p(X),Y))
          leq#(s(X),s(Y)) -> c_6(leq#(X,Y))
* Step 6: Failure MAYBE
  + Considered Problem:
      - Strict DPs:
          diff#(X,Y) -> c_1(leq#(X,Y),diff#(p(X),Y))
          leq#(s(X),s(Y)) -> c_6(leq#(X,Y))
      - Weak TRS:
          p(0()) -> 0()
          p(s(X)) -> X
      - Signature:
          {diff/2,if/3,leq/2,p/1,diff#/2,if#/3,leq#/2,p#/1} / {0/0,false/0,s/1,true/0,c_1/2,c_2/0,c_3/0,c_4/0,c_5/0
          ,c_6/1,c_7/0,c_8/0}
      - Obligation:
          innermost runtime complexity wrt. defined symbols {diff#,if#,leq#,p#} and constructors {0,false,s,true}
  + Applied Processor:
      EmptyProcessor
  + Details:
      The problem is still open.
MAYBE