* Step 1: Sum WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict TRS:
            c(y) -> y
            c(a(a(0(),x),y)) -> a(c(c(c(0()))),y)
            c(c(c(y))) -> c(c(a(y,0())))
        - Signature:
            {c/1} / {0/0,a/2}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {c} and constructors {0,a}
    + Applied Processor:
        Sum {left = someStrategy, right = someStrategy}
    + Details:
        ()
* Step 2: InnermostRuleRemoval WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict TRS:
            c(y) -> y
            c(a(a(0(),x),y)) -> a(c(c(c(0()))),y)
            c(c(c(y))) -> c(c(a(y,0())))
        - Signature:
            {c/1} / {0/0,a/2}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {c} and constructors {0,a}
    + Applied Processor:
        InnermostRuleRemoval
    + Details:
        Arguments of following rules are not normal-forms.
          c(c(c(y))) -> c(c(a(y,0())))
        All above mentioned rules can be savely removed.
* Step 3: DependencyPairs WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict TRS:
            c(y) -> y
            c(a(a(0(),x),y)) -> a(c(c(c(0()))),y)
        - Signature:
            {c/1} / {0/0,a/2}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {c} and constructors {0,a}
    + Applied Processor:
        DependencyPairs {dpKind_ = DT}
    + Details:
        We add the following dependency tuples:
        
        Strict DPs
          c#(y) -> c_1()
          c#(a(a(0(),x),y)) -> c_2(c#(c(c(0()))),c#(c(0())),c#(0()))
        Weak DPs
          
        
        and mark the set of starting terms.
* Step 4: PredecessorEstimation WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            c#(y) -> c_1()
            c#(a(a(0(),x),y)) -> c_2(c#(c(c(0()))),c#(c(0())),c#(0()))
        - Weak TRS:
            c(y) -> y
            c(a(a(0(),x),y)) -> a(c(c(c(0()))),y)
        - Signature:
            {c/1,c#/1} / {0/0,a/2,c_1/0,c_2/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {c#} and constructors {0,a}
    + 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: c#(y) -> c_1()
          2: c#(a(a(0(),x),y)) -> c_2(c#(c(c(0()))),c#(c(0())),c#(0()))
* Step 5: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            c#(a(a(0(),x),y)) -> c_2(c#(c(c(0()))),c#(c(0())),c#(0()))
        - Weak DPs:
            c#(y) -> c_1()
        - Weak TRS:
            c(y) -> y
            c(a(a(0(),x),y)) -> a(c(c(c(0()))),y)
        - Signature:
            {c/1,c#/1} / {0/0,a/2,c_1/0,c_2/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {c#} and constructors {0,a}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:c#(a(a(0(),x),y)) -> c_2(c#(c(c(0()))),c#(c(0())),c#(0()))
             -->_3 c#(y) -> c_1():2
             -->_2 c#(y) -> c_1():2
             -->_1 c#(y) -> c_1():2
             -->_2 c#(a(a(0(),x),y)) -> c_2(c#(c(c(0()))),c#(c(0())),c#(0())):1
             -->_1 c#(a(a(0(),x),y)) -> c_2(c#(c(c(0()))),c#(c(0())),c#(0())):1
          
          2:W:c#(y) -> c_1()
             
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          2: c#(y) -> c_1()
* Step 6: SimplifyRHS WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            c#(a(a(0(),x),y)) -> c_2(c#(c(c(0()))),c#(c(0())),c#(0()))
        - Weak TRS:
            c(y) -> y
            c(a(a(0(),x),y)) -> a(c(c(c(0()))),y)
        - Signature:
            {c/1,c#/1} / {0/0,a/2,c_1/0,c_2/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {c#} and constructors {0,a}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:c#(a(a(0(),x),y)) -> c_2(c#(c(c(0()))),c#(c(0())),c#(0()))
             -->_2 c#(a(a(0(),x),y)) -> c_2(c#(c(c(0()))),c#(c(0())),c#(0())):1
             -->_1 c#(a(a(0(),x),y)) -> c_2(c#(c(c(0()))),c#(c(0())),c#(0())):1
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          c#(a(a(0(),x),y)) -> c_2(c#(c(c(0()))),c#(c(0())))
* Step 7: MI WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            c#(a(a(0(),x),y)) -> c_2(c#(c(c(0()))),c#(c(0())))
        - Weak TRS:
            c(y) -> y
            c(a(a(0(),x),y)) -> a(c(c(c(0()))),y)
        - Signature:
            {c/1,c#/1} / {0/0,a/2,c_1/0,c_2/2}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {c#} and constructors {0,a}
    + Applied Processor:
        MI {miKind = MaximalMatrix (UpperTriangular (Multiplicity (Just 0))), miDimension = 1, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind MaximalMatrix (UpperTriangular (Multiplicity (Just 0))):
        
        The following argument positions are considered usable:
          uargs(c_2) = {1,2}
        
        Following symbols are considered usable:
          {c,c#}
        TcT has computed the following interpretation:
            p(0) = [4]                    
            p(a) = [14]                   
            p(c) = [1] x_1 + [0]          
           p(c#) = [2] x_1 + [0]          
          p(c_1) = [2]                    
          p(c_2) = [2] x_1 + [1] x_2 + [3]
        
        Following rules are strictly oriented:
        c#(a(a(0(),x),y)) = [28]                         
                          > [27]                         
                          = c_2(c#(c(c(0()))),c#(c(0())))
        
        
        Following rules are (at-least) weakly oriented:
                    c(y) =  [1] y + [0]      
                         >= [1] y + [0]      
                         =  y                
        
        c(a(a(0(),x),y)) =  [14]             
                         >= [14]             
                         =  a(c(c(c(0()))),y)
        
* Step 8: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            c#(a(a(0(),x),y)) -> c_2(c#(c(c(0()))),c#(c(0())))
        - Weak TRS:
            c(y) -> y
            c(a(a(0(),x),y)) -> a(c(c(c(0()))),y)
        - Signature:
            {c/1,c#/1} / {0/0,a/2,c_1/0,c_2/2}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {c#} and constructors {0,a}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

WORST_CASE(?,O(1))