*** 1 Progress [(?,O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        f(0()) -> true()
        f(1()) -> false()
        f(s(x)) -> f(x)
        g(x,c(y)) -> g(x,g(s(c(y)),y))
        g(s(x),s(y)) -> if(f(x),s(x),s(y))
        if(false(),x,y) -> y
        if(true(),x,y) -> x
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {f/1,g/2,if/3} / {0/0,1/0,c/1,false/0,s/1,true/0}
      Obligation:
        Innermost
        basic terms: {f,g,if}/{0,1,c,false,s,true}
    Applied Processor:
      DependencyPairs {dpKind_ = DT}
    Proof:
      We add the following dependency tuples:
      
      Strict DPs
        f#(0()) -> c_1()
        f#(1()) -> c_2()
        f#(s(x)) -> c_3(f#(x))
        g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
        g#(s(x),s(y)) -> c_5(if#(f(x),s(x),s(y)),f#(x))
        if#(false(),x,y) -> c_6()
        if#(true(),x,y) -> c_7()
      Weak DPs
        
      
      and mark the set of starting terms.
*** 1.1 Progress [(?,O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        f#(0()) -> c_1()
        f#(1()) -> c_2()
        f#(s(x)) -> c_3(f#(x))
        g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
        g#(s(x),s(y)) -> c_5(if#(f(x),s(x),s(y)),f#(x))
        if#(false(),x,y) -> c_6()
        if#(true(),x,y) -> c_7()
      Strict TRS Rules:
        
      Weak DP Rules:
        
      Weak TRS Rules:
        f(0()) -> true()
        f(1()) -> false()
        f(s(x)) -> f(x)
        g(x,c(y)) -> g(x,g(s(c(y)),y))
        g(s(x),s(y)) -> if(f(x),s(x),s(y))
        if(false(),x,y) -> y
        if(true(),x,y) -> x
      Signature:
        {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/2,c_6/0,c_7/0}
      Obligation:
        Innermost
        basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
    Applied Processor:
      PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    Proof:
      We estimate the number of application of
        {1,2,6,7}
      by application of
        Pre({1,2,6,7}) = {3,5}.
      Here rules are labelled as follows:
        1: f#(0()) -> c_1()                  
        2: f#(1()) -> c_2()                  
        3: f#(s(x)) -> c_3(f#(x))            
        4: g#(x,c(y)) -> c_4(g#(x            
                               ,g(s(c(y)),y))
                            ,g#(s(c(y)),y))  
        5: g#(s(x),s(y)) -> c_5(if#(f(x)     
                                   ,s(x)     
                                   ,s(y))    
                               ,f#(x))       
        6: if#(false(),x,y) -> c_6()         
        7: if#(true(),x,y) -> c_7()          
*** 1.1.1 Progress [(?,O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        f#(s(x)) -> c_3(f#(x))
        g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
        g#(s(x),s(y)) -> c_5(if#(f(x),s(x),s(y)),f#(x))
      Strict TRS Rules:
        
      Weak DP Rules:
        f#(0()) -> c_1()
        f#(1()) -> c_2()
        if#(false(),x,y) -> c_6()
        if#(true(),x,y) -> c_7()
      Weak TRS Rules:
        f(0()) -> true()
        f(1()) -> false()
        f(s(x)) -> f(x)
        g(x,c(y)) -> g(x,g(s(c(y)),y))
        g(s(x),s(y)) -> if(f(x),s(x),s(y))
        if(false(),x,y) -> y
        if(true(),x,y) -> x
      Signature:
        {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/2,c_6/0,c_7/0}
      Obligation:
        Innermost
        basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
    Applied Processor:
      RemoveWeakSuffixes
    Proof:
      Consider the dependency graph
        1:S:f#(s(x)) -> c_3(f#(x))
           -->_1 f#(1()) -> c_2():5
           -->_1 f#(0()) -> c_1():4
           -->_1 f#(s(x)) -> c_3(f#(x)):1
        
        2:S:g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
           -->_2 g#(s(x),s(y)) -> c_5(if#(f(x),s(x),s(y)),f#(x)):3
           -->_1 g#(s(x),s(y)) -> c_5(if#(f(x),s(x),s(y)),f#(x)):3
           -->_2 g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y)):2
           -->_1 g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y)):2
        
        3:S:g#(s(x),s(y)) -> c_5(if#(f(x),s(x),s(y)),f#(x))
           -->_1 if#(true(),x,y) -> c_7():7
           -->_1 if#(false(),x,y) -> c_6():6
           -->_2 f#(1()) -> c_2():5
           -->_2 f#(0()) -> c_1():4
           -->_2 f#(s(x)) -> c_3(f#(x)):1
        
        4:W:f#(0()) -> c_1()
           
        
        5:W:f#(1()) -> c_2()
           
        
        6:W:if#(false(),x,y) -> c_6()
           
        
        7:W:if#(true(),x,y) -> c_7()
           
        
      The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
        6: if#(false(),x,y) -> c_6()
        7: if#(true(),x,y) -> c_7() 
        4: f#(0()) -> c_1()         
        5: f#(1()) -> c_2()         
*** 1.1.1.1 Progress [(?,O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        f#(s(x)) -> c_3(f#(x))
        g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
        g#(s(x),s(y)) -> c_5(if#(f(x),s(x),s(y)),f#(x))
      Strict TRS Rules:
        
      Weak DP Rules:
        
      Weak TRS Rules:
        f(0()) -> true()
        f(1()) -> false()
        f(s(x)) -> f(x)
        g(x,c(y)) -> g(x,g(s(c(y)),y))
        g(s(x),s(y)) -> if(f(x),s(x),s(y))
        if(false(),x,y) -> y
        if(true(),x,y) -> x
      Signature:
        {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/2,c_6/0,c_7/0}
      Obligation:
        Innermost
        basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
    Applied Processor:
      SimplifyRHS
    Proof:
      Consider the dependency graph
        1:S:f#(s(x)) -> c_3(f#(x))
           -->_1 f#(s(x)) -> c_3(f#(x)):1
        
        2:S:g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
           -->_2 g#(s(x),s(y)) -> c_5(if#(f(x),s(x),s(y)),f#(x)):3
           -->_1 g#(s(x),s(y)) -> c_5(if#(f(x),s(x),s(y)),f#(x)):3
           -->_2 g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y)):2
           -->_1 g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y)):2
        
        3:S:g#(s(x),s(y)) -> c_5(if#(f(x),s(x),s(y)),f#(x))
           -->_2 f#(s(x)) -> c_3(f#(x)):1
        
      Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
        g#(s(x),s(y)) -> c_5(f#(x))
*** 1.1.1.1.1 Progress [(?,O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        f#(s(x)) -> c_3(f#(x))
        g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
        g#(s(x),s(y)) -> c_5(f#(x))
      Strict TRS Rules:
        
      Weak DP Rules:
        
      Weak TRS Rules:
        f(0()) -> true()
        f(1()) -> false()
        f(s(x)) -> f(x)
        g(x,c(y)) -> g(x,g(s(c(y)),y))
        g(s(x),s(y)) -> if(f(x),s(x),s(y))
        if(false(),x,y) -> y
        if(true(),x,y) -> x
      Signature:
        {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/1,c_6/0,c_7/0}
      Obligation:
        Innermost
        basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
    Applied Processor:
      Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    Proof:
      We analyse the complexity of following sub-problems (R) and (S).
      Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component.
      
      Problem (R)
        Strict DP Rules:
          f#(s(x)) -> c_3(f#(x))
        Strict TRS Rules:
          
        Weak DP Rules:
          g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
          g#(s(x),s(y)) -> c_5(f#(x))
        Weak TRS Rules:
          f(0()) -> true()
          f(1()) -> false()
          f(s(x)) -> f(x)
          g(x,c(y)) -> g(x,g(s(c(y)),y))
          g(s(x),s(y)) -> if(f(x),s(x),s(y))
          if(false(),x,y) -> y
          if(true(),x,y) -> x
        Signature:
          {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/1,c_6/0,c_7/0}
        Obligation:
          Innermost
          basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
      
      Problem (S)
        Strict DP Rules:
          g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
          g#(s(x),s(y)) -> c_5(f#(x))
        Strict TRS Rules:
          
        Weak DP Rules:
          f#(s(x)) -> c_3(f#(x))
        Weak TRS Rules:
          f(0()) -> true()
          f(1()) -> false()
          f(s(x)) -> f(x)
          g(x,c(y)) -> g(x,g(s(c(y)),y))
          g(s(x),s(y)) -> if(f(x),s(x),s(y))
          if(false(),x,y) -> y
          if(true(),x,y) -> x
        Signature:
          {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/1,c_6/0,c_7/0}
        Obligation:
          Innermost
          basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
  *** 1.1.1.1.1.1 Progress [(?,O(n^1))]  ***
      Considered Problem:
        Strict DP Rules:
          f#(s(x)) -> c_3(f#(x))
        Strict TRS Rules:
          
        Weak DP Rules:
          g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
          g#(s(x),s(y)) -> c_5(f#(x))
        Weak TRS Rules:
          f(0()) -> true()
          f(1()) -> false()
          f(s(x)) -> f(x)
          g(x,c(y)) -> g(x,g(s(c(y)),y))
          g(s(x),s(y)) -> if(f(x),s(x),s(y))
          if(false(),x,y) -> y
          if(true(),x,y) -> x
        Signature:
          {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/1,c_6/0,c_7/0}
        Obligation:
          Innermost
          basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
      Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 3, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}}
      Proof:
        We first use the processor NaturalMI {miDimension = 3, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} to orient following rules strictly:
          1: f#(s(x)) -> c_3(f#(x))
          
        The strictly oriented rules are moved into the weak component.
    *** 1.1.1.1.1.1.1 Progress [(?,O(n^1))]  ***
        Considered Problem:
          Strict DP Rules:
            f#(s(x)) -> c_3(f#(x))
          Strict TRS Rules:
            
          Weak DP Rules:
            g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
            g#(s(x),s(y)) -> c_5(f#(x))
          Weak TRS Rules:
            f(0()) -> true()
            f(1()) -> false()
            f(s(x)) -> f(x)
            g(x,c(y)) -> g(x,g(s(c(y)),y))
            g(s(x),s(y)) -> if(f(x),s(x),s(y))
            if(false(),x,y) -> y
            if(true(),x,y) -> x
          Signature:
            {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/1,c_6/0,c_7/0}
          Obligation:
            Innermost
            basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
        Applied Processor:
          NaturalMI {miDimension = 3, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
        Proof:
          We apply a matrix interpretation of kind constructor based matrix interpretation (containing no more than 1 non-zero interpretation-entries in the diagonal of the component-wise maxima):
          The following argument positions are considered usable:
            uargs(c_3) = {1},
            uargs(c_4) = {1,2},
            uargs(c_5) = {1}
          
          Following symbols are considered usable:
            {f#,g#,if#}
          TcT has computed the following interpretation:
                p(0) = [0]                           
                       [1]                           
                       [0]                           
                p(1) = [1]                           
                       [1]                           
                       [0]                           
                p(c) = [0 0 1]      [0]              
                       [0 0 0] x1 + [0]              
                       [0 0 0]      [0]              
                p(f) = [0 0 0]      [0]              
                       [1 1 0] x1 + [0]              
                       [1 0 1]      [1]              
            p(false) = [0]                           
                       [0]                           
                       [1]                           
                p(g) = [0 0 0]      [0 0 1]      [1] 
                       [0 0 1] x1 + [0 1 0] x2 + [0] 
                       [0 1 0]      [1 0 0]      [0] 
               p(if) = [0 1 0]      [0 0 1]      [0 0
                       0]      [0]                   
                       [0 0 1] x1 + [0 0 1] x2 + [0 0
                       1] x3 + [0]                   
                       [0 0 1]      [0 0 0]      [0 1
                       0]      [1]                   
                p(s) = [0 0 0]      [0]              
                       [0 0 1] x1 + [0]              
                       [0 0 1]      [1]              
             p(true) = [0]                           
                       [0]                           
                       [0]                           
               p(f#) = [0 0 1]      [0]              
                       [0 1 1] x1 + [0]              
                       [0 0 1]      [1]              
               p(g#) = [0 1 0]      [0]              
                       [0 0 0] x1 + [0]              
                       [0 0 0]      [0]              
              p(if#) = [0]                           
                       [0]                           
                       [0]                           
              p(c_1) = [0]                           
                       [0]                           
                       [0]                           
              p(c_2) = [0]                           
                       [0]                           
                       [0]                           
              p(c_3) = [1 0 0]      [0]              
                       [0 0 1] x1 + [0]              
                       [0 0 1]      [1]              
              p(c_4) = [1 0 0]      [1 0 0]      [0] 
                       [0 0 0] x1 + [0 0 0] x2 + [0] 
                       [0 0 0]      [0 0 0]      [0] 
              p(c_5) = [1 0 0]      [0]              
                       [0 0 0] x1 + [0]              
                       [0 0 0]      [0]              
              p(c_6) = [0]                           
                       [0]                           
                       [0]                           
              p(c_7) = [0]                           
                       [0]                           
                       [0]                           
          
          Following rules are strictly oriented:
          f#(s(x)) = [0 0 1]     [1]
                     [0 0 2] x + [1]
                     [0 0 1]     [2]
                   > [0 0 1]     [0]
                     [0 0 1] x + [1]
                     [0 0 1]     [2]
                   = c_3(f#(x))     
          
          
          Following rules are (at-least) weakly oriented:
             g#(x,c(y)) =  [0 1 0]     [0]       
                           [0 0 0] x + [0]       
                           [0 0 0]     [0]       
                        >= [0 1 0]     [0]       
                           [0 0 0] x + [0]       
                           [0 0 0]     [0]       
                        =  c_4(g#(x,g(s(c(y)),y))
                              ,g#(s(c(y)),y))    
          
          g#(s(x),s(y)) =  [0 0 1]     [0]       
                           [0 0 0] x + [0]       
                           [0 0 0]     [0]       
                        >= [0 0 1]     [0]       
                           [0 0 0] x + [0]       
                           [0 0 0]     [0]       
                        =  c_5(f#(x))            
          
    *** 1.1.1.1.1.1.1.1 Progress [(?,O(1))]  ***
        Considered Problem:
          Strict DP Rules:
            
          Strict TRS Rules:
            
          Weak DP Rules:
            f#(s(x)) -> c_3(f#(x))
            g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
            g#(s(x),s(y)) -> c_5(f#(x))
          Weak TRS Rules:
            f(0()) -> true()
            f(1()) -> false()
            f(s(x)) -> f(x)
            g(x,c(y)) -> g(x,g(s(c(y)),y))
            g(s(x),s(y)) -> if(f(x),s(x),s(y))
            if(false(),x,y) -> y
            if(true(),x,y) -> x
          Signature:
            {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/1,c_6/0,c_7/0}
          Obligation:
            Innermost
            basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
        Applied Processor:
          Assumption
        Proof:
          ()
    
    *** 1.1.1.1.1.1.2 Progress [(O(1),O(1))]  ***
        Considered Problem:
          Strict DP Rules:
            
          Strict TRS Rules:
            
          Weak DP Rules:
            f#(s(x)) -> c_3(f#(x))
            g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
            g#(s(x),s(y)) -> c_5(f#(x))
          Weak TRS Rules:
            f(0()) -> true()
            f(1()) -> false()
            f(s(x)) -> f(x)
            g(x,c(y)) -> g(x,g(s(c(y)),y))
            g(s(x),s(y)) -> if(f(x),s(x),s(y))
            if(false(),x,y) -> y
            if(true(),x,y) -> x
          Signature:
            {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/1,c_6/0,c_7/0}
          Obligation:
            Innermost
            basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
        Applied Processor:
          RemoveWeakSuffixes
        Proof:
          Consider the dependency graph
            1:W:f#(s(x)) -> c_3(f#(x))
               -->_1 f#(s(x)) -> c_3(f#(x)):1
            
            2:W:g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
               -->_2 g#(s(x),s(y)) -> c_5(f#(x)):3
               -->_1 g#(s(x),s(y)) -> c_5(f#(x)):3
               -->_2 g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y)):2
               -->_1 g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y)):2
            
            3:W:g#(s(x),s(y)) -> c_5(f#(x))
               -->_1 f#(s(x)) -> c_3(f#(x)):1
            
          The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
            2: g#(x,c(y)) -> c_4(g#(x            
                                   ,g(s(c(y)),y))
                                ,g#(s(c(y)),y))  
            3: g#(s(x),s(y)) -> c_5(f#(x))       
            1: f#(s(x)) -> c_3(f#(x))            
    *** 1.1.1.1.1.1.2.1 Progress [(O(1),O(1))]  ***
        Considered Problem:
          Strict DP Rules:
            
          Strict TRS Rules:
            
          Weak DP Rules:
            
          Weak TRS Rules:
            f(0()) -> true()
            f(1()) -> false()
            f(s(x)) -> f(x)
            g(x,c(y)) -> g(x,g(s(c(y)),y))
            g(s(x),s(y)) -> if(f(x),s(x),s(y))
            if(false(),x,y) -> y
            if(true(),x,y) -> x
          Signature:
            {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/1,c_6/0,c_7/0}
          Obligation:
            Innermost
            basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
        Applied Processor:
          EmptyProcessor
        Proof:
          The problem is already closed. The intended complexity is O(1).
    
  *** 1.1.1.1.1.2 Progress [(?,O(n^1))]  ***
      Considered Problem:
        Strict DP Rules:
          g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
          g#(s(x),s(y)) -> c_5(f#(x))
        Strict TRS Rules:
          
        Weak DP Rules:
          f#(s(x)) -> c_3(f#(x))
        Weak TRS Rules:
          f(0()) -> true()
          f(1()) -> false()
          f(s(x)) -> f(x)
          g(x,c(y)) -> g(x,g(s(c(y)),y))
          g(s(x),s(y)) -> if(f(x),s(x),s(y))
          if(false(),x,y) -> y
          if(true(),x,y) -> x
        Signature:
          {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/1,c_6/0,c_7/0}
        Obligation:
          Innermost
          basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
      Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
      Proof:
        We estimate the number of application of
          {2}
        by application of
          Pre({2}) = {1}.
        Here rules are labelled as follows:
          1: g#(x,c(y)) -> c_4(g#(x            
                                 ,g(s(c(y)),y))
                              ,g#(s(c(y)),y))  
          2: g#(s(x),s(y)) -> c_5(f#(x))       
          3: f#(s(x)) -> c_3(f#(x))            
  *** 1.1.1.1.1.2.1 Progress [(?,O(n^1))]  ***
      Considered Problem:
        Strict DP Rules:
          g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
        Strict TRS Rules:
          
        Weak DP Rules:
          f#(s(x)) -> c_3(f#(x))
          g#(s(x),s(y)) -> c_5(f#(x))
        Weak TRS Rules:
          f(0()) -> true()
          f(1()) -> false()
          f(s(x)) -> f(x)
          g(x,c(y)) -> g(x,g(s(c(y)),y))
          g(s(x),s(y)) -> if(f(x),s(x),s(y))
          if(false(),x,y) -> y
          if(true(),x,y) -> x
        Signature:
          {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/1,c_6/0,c_7/0}
        Obligation:
          Innermost
          basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
      Applied Processor:
        RemoveWeakSuffixes
      Proof:
        Consider the dependency graph
          1:S:g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
             -->_2 g#(s(x),s(y)) -> c_5(f#(x)):3
             -->_1 g#(s(x),s(y)) -> c_5(f#(x)):3
             -->_2 g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y)):1
             -->_1 g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y)):1
          
          2:W:f#(s(x)) -> c_3(f#(x))
             -->_1 f#(s(x)) -> c_3(f#(x)):2
          
          3:W:g#(s(x),s(y)) -> c_5(f#(x))
             -->_1 f#(s(x)) -> c_3(f#(x)):2
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          3: g#(s(x),s(y)) -> c_5(f#(x))
          2: f#(s(x)) -> c_3(f#(x))     
  *** 1.1.1.1.1.2.1.1 Progress [(?,O(n^1))]  ***
      Considered Problem:
        Strict DP Rules:
          g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
        Strict TRS Rules:
          
        Weak DP Rules:
          
        Weak TRS Rules:
          f(0()) -> true()
          f(1()) -> false()
          f(s(x)) -> f(x)
          g(x,c(y)) -> g(x,g(s(c(y)),y))
          g(s(x),s(y)) -> if(f(x),s(x),s(y))
          if(false(),x,y) -> y
          if(true(),x,y) -> x
        Signature:
          {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/1,c_6/0,c_7/0}
        Obligation:
          Innermost
          basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
      Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}}
      Proof:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} to orient following rules strictly:
          1: g#(x,c(y)) -> c_4(g#(x            
                                 ,g(s(c(y)),y))
                              ,g#(s(c(y)),y))  
          
        The strictly oriented rules are moved into the weak component.
    *** 1.1.1.1.1.2.1.1.1 Progress [(?,O(n^1))]  ***
        Considered Problem:
          Strict DP Rules:
            g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
          Strict TRS Rules:
            
          Weak DP Rules:
            
          Weak TRS Rules:
            f(0()) -> true()
            f(1()) -> false()
            f(s(x)) -> f(x)
            g(x,c(y)) -> g(x,g(s(c(y)),y))
            g(s(x),s(y)) -> if(f(x),s(x),s(y))
            if(false(),x,y) -> y
            if(true(),x,y) -> x
          Signature:
            {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/1,c_6/0,c_7/0}
          Obligation:
            Innermost
            basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
        Applied Processor:
          NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
        Proof:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(c_4) = {1,2}
          
          Following symbols are considered usable:
            {g,if,f#,g#,if#}
          TcT has computed the following interpretation:
                p(0) = [0]                  
                p(1) = [0]                  
                p(c) = [1] x1 + [12]        
                p(f) = [2] x1 + [2]         
            p(false) = [0]                  
                p(g) = [1]                  
               p(if) = [2] x2 + [1] x3 + [0]
                p(s) = [0]                  
             p(true) = [8]                  
               p(f#) = [1] x1 + [1]         
               p(g#) = [1] x2 + [1]         
              p(if#) = [1] x1 + [4] x3 + [0]
              p(c_1) = [1]                  
              p(c_2) = [0]                  
              p(c_3) = [1] x1 + [0]         
              p(c_4) = [4] x1 + [1] x2 + [1]
              p(c_5) = [0]                  
              p(c_6) = [8]                  
              p(c_7) = [1]                  
          
          Following rules are strictly oriented:
          g#(x,c(y)) = [1] y + [13]          
                     > [1] y + [10]          
                     = c_4(g#(x,g(s(c(y)),y))
                          ,g#(s(c(y)),y))    
          
          
          Following rules are (at-least) weakly oriented:
                g(x,c(y)) =  [1]                
                          >= [1]                
                          =  g(x,g(s(c(y)),y))  
          
             g(s(x),s(y)) =  [1]                
                          >= [0]                
                          =  if(f(x),s(x),s(y)) 
          
          if(false(),x,y) =  [2] x + [1] y + [0]
                          >= [1] y + [0]        
                          =  y                  
          
           if(true(),x,y) =  [2] x + [1] y + [0]
                          >= [1] x + [0]        
                          =  x                  
          
    *** 1.1.1.1.1.2.1.1.1.1 Progress [(?,O(1))]  ***
        Considered Problem:
          Strict DP Rules:
            
          Strict TRS Rules:
            
          Weak DP Rules:
            g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
          Weak TRS Rules:
            f(0()) -> true()
            f(1()) -> false()
            f(s(x)) -> f(x)
            g(x,c(y)) -> g(x,g(s(c(y)),y))
            g(s(x),s(y)) -> if(f(x),s(x),s(y))
            if(false(),x,y) -> y
            if(true(),x,y) -> x
          Signature:
            {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/1,c_6/0,c_7/0}
          Obligation:
            Innermost
            basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
        Applied Processor:
          Assumption
        Proof:
          ()
    
    *** 1.1.1.1.1.2.1.1.2 Progress [(O(1),O(1))]  ***
        Considered Problem:
          Strict DP Rules:
            
          Strict TRS Rules:
            
          Weak DP Rules:
            g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
          Weak TRS Rules:
            f(0()) -> true()
            f(1()) -> false()
            f(s(x)) -> f(x)
            g(x,c(y)) -> g(x,g(s(c(y)),y))
            g(s(x),s(y)) -> if(f(x),s(x),s(y))
            if(false(),x,y) -> y
            if(true(),x,y) -> x
          Signature:
            {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/1,c_6/0,c_7/0}
          Obligation:
            Innermost
            basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
        Applied Processor:
          RemoveWeakSuffixes
        Proof:
          Consider the dependency graph
            1:W:g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y))
               -->_2 g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y)):1
               -->_1 g#(x,c(y)) -> c_4(g#(x,g(s(c(y)),y)),g#(s(c(y)),y)):1
            
          The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
            1: g#(x,c(y)) -> c_4(g#(x            
                                   ,g(s(c(y)),y))
                                ,g#(s(c(y)),y))  
    *** 1.1.1.1.1.2.1.1.2.1 Progress [(O(1),O(1))]  ***
        Considered Problem:
          Strict DP Rules:
            
          Strict TRS Rules:
            
          Weak DP Rules:
            
          Weak TRS Rules:
            f(0()) -> true()
            f(1()) -> false()
            f(s(x)) -> f(x)
            g(x,c(y)) -> g(x,g(s(c(y)),y))
            g(s(x),s(y)) -> if(f(x),s(x),s(y))
            if(false(),x,y) -> y
            if(true(),x,y) -> x
          Signature:
            {f/1,g/2,if/3,f#/1,g#/2,if#/3} / {0/0,1/0,c/1,false/0,s/1,true/0,c_1/0,c_2/0,c_3/1,c_4/2,c_5/1,c_6/0,c_7/0}
          Obligation:
            Innermost
            basic terms: {f#,g#,if#}/{0,1,c,false,s,true}
        Applied Processor:
          EmptyProcessor
        Proof:
          The problem is already closed. The intended complexity is O(1).