*** 1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
        choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
        choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
        insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
        insert(x,nil()) -> cons(x,nil())
        sort(cons(x,y)) -> insert(x,sort(y))
        sort(nil()) -> nil()
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {choose/4,insert/2,sort/1} / {0/0,cons/2,nil/0,s/1}
      Obligation:
        Innermost
        basic terms: {choose,insert,sort}/{0,cons,nil,s}
    Applied Processor:
      DependencyPairs {dpKind_ = DT}
    Proof:
      We add the following dependency tuples:
      
      Strict DPs
        choose#(x,cons(v,w),y,0()) -> c_1()
        choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
        choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
        insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
        insert#(x,nil()) -> c_5()
        sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
        sort#(nil()) -> c_7()
      Weak DPs
        
      
      and mark the set of starting terms.
*** 1.1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        choose#(x,cons(v,w),y,0()) -> c_1()
        choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
        choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
        insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
        insert#(x,nil()) -> c_5()
        sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
        sort#(nil()) -> c_7()
      Strict TRS Rules:
        
      Weak DP Rules:
        
      Weak TRS Rules:
        choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
        choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
        choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
        insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
        insert(x,nil()) -> cons(x,nil())
        sort(cons(x,y)) -> insert(x,sort(y))
        sort(nil()) -> nil()
      Signature:
        {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
      Obligation:
        Innermost
        basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
    Applied Processor:
      PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    Proof:
      We estimate the number of application of
        {1,5,7}
      by application of
        Pre({1,5,7}) = {2,3,4,6}.
      Here rules are labelled as follows:
        1: choose#(x,cons(v,w),y,0()) ->         
             c_1()                               
        2: choose#(x,cons(v,w),0(),s(z)) ->      
             c_2(insert#(x,w))                   
        3: choose#(x                             
                  ,cons(v,w)                     
                  ,s(y)                          
                  ,s(z)) -> c_3(choose#(x        
                                       ,cons(v,w)
                                       ,y        
                                       ,z))      
        4: insert#(x,cons(v,w)) ->               
             c_4(choose#(x,cons(v,w),x,v))       
        5: insert#(x,nil()) -> c_5()             
        6: sort#(cons(x,y)) ->                   
             c_6(insert#(x,sort(y)),sort#(y))    
        7: sort#(nil()) -> c_7()                 
*** 1.1.1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
        choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
        insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
        sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
      Strict TRS Rules:
        
      Weak DP Rules:
        choose#(x,cons(v,w),y,0()) -> c_1()
        insert#(x,nil()) -> c_5()
        sort#(nil()) -> c_7()
      Weak TRS Rules:
        choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
        choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
        choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
        insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
        insert(x,nil()) -> cons(x,nil())
        sort(cons(x,y)) -> insert(x,sort(y))
        sort(nil()) -> nil()
      Signature:
        {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
      Obligation:
        Innermost
        basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
    Applied Processor:
      RemoveWeakSuffixes
    Proof:
      Consider the dependency graph
        1:S:choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
           -->_1 insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v)):3
           -->_1 insert#(x,nil()) -> c_5():6
        
        2:S:choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
           -->_1 choose#(x,cons(v,w),y,0()) -> c_1():5
           -->_1 choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z)):2
           -->_1 choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w)):1
        
        3:S:insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
           -->_1 choose#(x,cons(v,w),y,0()) -> c_1():5
           -->_1 choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z)):2
           -->_1 choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w)):1
        
        4:S:sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
           -->_2 sort#(nil()) -> c_7():7
           -->_1 insert#(x,nil()) -> c_5():6
           -->_2 sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y)):4
           -->_1 insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v)):3
        
        5:W:choose#(x,cons(v,w),y,0()) -> c_1()
           
        
        6:W:insert#(x,nil()) -> c_5()
           
        
        7:W:sort#(nil()) -> c_7()
           
        
      The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
        7: sort#(nil()) -> c_7()        
        6: insert#(x,nil()) -> c_5()    
        5: choose#(x,cons(v,w),y,0()) ->
             c_1()                      
*** 1.1.1.1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
        choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
        insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
        sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
      Strict TRS Rules:
        
      Weak DP Rules:
        
      Weak TRS Rules:
        choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
        choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
        choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
        insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
        insert(x,nil()) -> cons(x,nil())
        sort(cons(x,y)) -> insert(x,sort(y))
        sort(nil()) -> nil()
      Signature:
        {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
      Obligation:
        Innermost
        basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
    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:
          choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
          choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
          insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
        Strict TRS Rules:
          
        Weak DP Rules:
          sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
        Weak TRS Rules:
          choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
          choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
          choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
          insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
          insert(x,nil()) -> cons(x,nil())
          sort(cons(x,y)) -> insert(x,sort(y))
          sort(nil()) -> nil()
        Signature:
          {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
        Obligation:
          Innermost
          basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
      
      Problem (S)
        Strict DP Rules:
          sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
        Strict TRS Rules:
          
        Weak DP Rules:
          choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
          choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
          insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
        Weak TRS Rules:
          choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
          choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
          choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
          insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
          insert(x,nil()) -> cons(x,nil())
          sort(cons(x,y)) -> insert(x,sort(y))
          sort(nil()) -> nil()
        Signature:
          {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
        Obligation:
          Innermost
          basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
  *** 1.1.1.1.1 Progress [(?,O(n^2))]  ***
      Considered Problem:
        Strict DP Rules:
          choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
          choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
          insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
        Strict TRS Rules:
          
        Weak DP Rules:
          sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
        Weak TRS Rules:
          choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
          choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
          choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
          insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
          insert(x,nil()) -> cons(x,nil())
          sort(cons(x,y)) -> insert(x,sort(y))
          sort(nil()) -> nil()
        Signature:
          {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
        Obligation:
          Innermost
          basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
      Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}}
      Proof:
        We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} to orient following rules strictly:
          1: choose#(x,cons(v,w),0(),s(z)) ->
               c_2(insert#(x,w))             
          
        The strictly oriented rules are moved into the weak component.
    *** 1.1.1.1.1.1 Progress [(?,O(n^2))]  ***
        Considered Problem:
          Strict DP Rules:
            choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
            choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
            insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
          Strict TRS Rules:
            
          Weak DP Rules:
            sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
          Weak TRS Rules:
            choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
            choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
            choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
            insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
            insert(x,nil()) -> cons(x,nil())
            sort(cons(x,y)) -> insert(x,sort(y))
            sort(nil()) -> nil()
          Signature:
            {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
          Obligation:
            Innermost
            basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
        Applied Processor:
          NaturalMI {miDimension = 2, miDegree = 2, 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_2) = {1},
            uargs(c_3) = {1},
            uargs(c_4) = {1},
            uargs(c_6) = {1,2}
          
          Following symbols are considered usable:
            {choose,insert,sort,choose#,insert#,sort#}
          TcT has computed the following interpretation:
                  p(0) = [1]                      
                         [2]                      
             p(choose) = [2 0] x1 + [1 1] x2 + [0]
                         [0 0]      [0 1]      [1]
               p(cons) = [1 0] x1 + [1 1] x2 + [0]
                         [0 0]      [0 1]      [1]
             p(insert) = [2 0] x1 + [1 1] x2 + [0]
                         [0 0]      [0 1]      [1]
                p(nil) = [0]                      
                         [0]                      
                  p(s) = [0 0] x1 + [0]           
                         [0 1]      [0]           
               p(sort) = [3 0] x1 + [0]           
                         [0 1]      [0]           
            p(choose#) = [0 0] x1 + [0 1] x2 + [0 
                         0] x3 + [0 0] x4 + [0]   
                         [0 3]      [2 2]      [2 
                         0]      [0 2]      [2]   
            p(insert#) = [0 1] x2 + [0]           
                         [0 0]      [1]           
              p(sort#) = [1 2] x1 + [2]           
                         [1 2]      [0]           
                p(c_1) = [0]                      
                         [0]                      
                p(c_2) = [1 0] x1 + [0]           
                         [2 0]      [1]           
                p(c_3) = [1 0] x1 + [0]           
                         [0 0]      [1]           
                p(c_4) = [1 0] x1 + [0]           
                         [0 0]      [0]           
                p(c_5) = [0]                      
                         [0]                      
                p(c_6) = [1 2] x1 + [1 0] x2 + [0]
                         [1 1]      [0 0]      [0]
                p(c_7) = [1]                      
                         [2]                      
          
          Following rules are strictly oriented:
          choose#(x,cons(v,w),0(),s(z)) = [0 0] v + [0 1] w + [0 0] x + [0
                                          0] z + [1]                      
                                          [2 0]     [2 4]     [0 3]     [0
                                          2]     [6]                      
                                        > [0 1] w + [0]                   
                                          [0 2]     [1]                   
                                        = c_2(insert#(x,w))               
          
          
          Following rules are (at-least) weakly oriented:
          choose#(x,cons(v,w),s(y),s(z)) =  [0 0] v + [0 1] w + [0 0] x + [0
                                            0] z + [1]                      
                                            [2 0]     [2 4]     [0 3]     [0
                                            2]     [4]                      
                                         >= [0 1] w + [1]                   
                                            [0 0]     [1]                   
                                         =  c_3(choose#(x,cons(v,w),y,z))   
          
                    insert#(x,cons(v,w)) =  [0 1] w + [1]                   
                                            [0 0]     [1]                   
                                         >= [0 1] w + [1]                   
                                            [0 0]     [0]                   
                                         =  c_4(choose#(x,cons(v,w),x,v))   
          
                        sort#(cons(x,y)) =  [1 0] x + [1 3] y + [4]         
                                            [1 0]     [1 3]     [2]         
                                         >= [1 3] y + [4]                   
                                            [0 1]     [1]                   
                                         =  c_6(insert#(x,sort(y)),sort#(y))
          
               choose(x,cons(v,w),y,0()) =  [1 0] v + [1 2] w + [2          
                                            0] x + [1]                      
                                            [0 0]     [0 1]     [0          
                                            0]     [2]                      
                                         >= [1 0] v + [1 2] w + [1          
                                            0] x + [1]                      
                                            [0 0]     [0 1]     [0          
                                            0]     [2]                      
                                         =  cons(x,cons(v,w))               
          
            choose(x,cons(v,w),0(),s(z)) =  [1 0] v + [1 2] w + [2          
                                            0] x + [1]                      
                                            [0 0]     [0 1]     [0          
                                            0]     [2]                      
                                         >= [1 0] v + [1 2] w + [2          
                                            0] x + [1]                      
                                            [0 0]     [0 1]     [0          
                                            0]     [2]                      
                                         =  cons(v,insert(x,w))             
          
           choose(x,cons(v,w),s(y),s(z)) =  [1 0] v + [1 2] w + [2          
                                            0] x + [1]                      
                                            [0 0]     [0 1]     [0          
                                            0]     [2]                      
                                         >= [1 0] v + [1 2] w + [2          
                                            0] x + [1]                      
                                            [0 0]     [0 1]     [0          
                                            0]     [2]                      
                                         =  choose(x,cons(v,w),y,z)         
          
                     insert(x,cons(v,w)) =  [1 0] v + [1 2] w + [2          
                                            0] x + [1]                      
                                            [0 0]     [0 1]     [0          
                                            0]     [2]                      
                                         >= [1 0] v + [1 2] w + [2          
                                            0] x + [1]                      
                                            [0 0]     [0 1]     [0          
                                            0]     [2]                      
                                         =  choose(x,cons(v,w),x,v)         
          
                         insert(x,nil()) =  [2 0] x + [0]                   
                                            [0 0]     [1]                   
                                         >= [1 0] x + [0]                   
                                            [0 0]     [1]                   
                                         =  cons(x,nil())                   
          
                         sort(cons(x,y)) =  [3 0] x + [3 3] y + [0]         
                                            [0 0]     [0 1]     [1]         
                                         >= [2 0] x + [3 1] y + [0]         
                                            [0 0]     [0 1]     [1]         
                                         =  insert(x,sort(y))               
          
                             sort(nil()) =  [0]                             
                                            [0]                             
                                         >= [0]                             
                                            [0]                             
                                         =  nil()                           
          
    *** 1.1.1.1.1.1.1 Progress [(?,O(1))]  ***
        Considered Problem:
          Strict DP Rules:
            choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
            insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
          Strict TRS Rules:
            
          Weak DP Rules:
            choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
            sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
          Weak TRS Rules:
            choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
            choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
            choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
            insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
            insert(x,nil()) -> cons(x,nil())
            sort(cons(x,y)) -> insert(x,sort(y))
            sort(nil()) -> nil()
          Signature:
            {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
          Obligation:
            Innermost
            basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
        Applied Processor:
          Assumption
        Proof:
          ()
    
    *** 1.1.1.1.1.2 Progress [(?,O(n^2))]  ***
        Considered Problem:
          Strict DP Rules:
            choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
            insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
          Strict TRS Rules:
            
          Weak DP Rules:
            choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
            sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
          Weak TRS Rules:
            choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
            choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
            choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
            insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
            insert(x,nil()) -> cons(x,nil())
            sort(cons(x,y)) -> insert(x,sort(y))
            sort(nil()) -> nil()
          Signature:
            {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
          Obligation:
            Innermost
            basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
        Applied Processor:
          PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}}
        Proof:
          We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} to orient following rules strictly:
            2: insert#(x,cons(v,w)) ->        
                 c_4(choose#(x,cons(v,w),x,v))
            
          The strictly oriented rules are moved into the weak component.
      *** 1.1.1.1.1.2.1 Progress [(?,O(n^2))]  ***
          Considered Problem:
            Strict DP Rules:
              choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
              insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
            Strict TRS Rules:
              
            Weak DP Rules:
              choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
              sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
            Weak TRS Rules:
              choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
              choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
              choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
              insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
              insert(x,nil()) -> cons(x,nil())
              sort(cons(x,y)) -> insert(x,sort(y))
              sort(nil()) -> nil()
            Signature:
              {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
            Obligation:
              Innermost
              basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
          Applied Processor:
            NaturalMI {miDimension = 2, miDegree = 2, 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_2) = {1},
              uargs(c_3) = {1},
              uargs(c_4) = {1},
              uargs(c_6) = {1,2}
            
            Following symbols are considered usable:
              {choose,insert,sort,choose#,insert#,sort#}
            TcT has computed the following interpretation:
                    p(0) = [0]                      
                           [0]                      
               p(choose) = [1 1] x2 + [0]           
                           [0 1]      [1]           
                 p(cons) = [1 1] x2 + [0]           
                           [0 1]      [1]           
               p(insert) = [1 1] x2 + [0]           
                           [0 1]      [1]           
                  p(nil) = [0]                      
                           [0]                      
                    p(s) = [0 1] x1 + [1]           
                           [0 0]      [1]           
                 p(sort) = [2 2] x1 + [0]           
                           [0 2]      [0]           
              p(choose#) = [0 1] x2 + [0 0] x3 + [0 
                           0] x4 + [1]              
                           [2 2]      [1 0]      [2 
                           1]      [0]              
              p(insert#) = [0 1] x2 + [2]           
                           [0 0]      [1]           
                p(sort#) = [2 2] x1 + [0]           
                           [0 1]      [0]           
                  p(c_1) = [0]                      
                           [0]                      
                  p(c_2) = [1 0] x1 + [0]           
                           [1 3]      [0]           
                  p(c_3) = [1 0] x1 + [0]           
                           [2 0]      [0]           
                  p(c_4) = [1 0] x1 + [0]           
                           [0 0]      [1]           
                  p(c_5) = [0]                      
                           [1]                      
                  p(c_6) = [1 0] x1 + [1 0] x2 + [0]
                           [0 0]      [0 1]      [0]
                  p(c_7) = [2]                      
                           [0]                      
            
            Following rules are strictly oriented:
            insert#(x,cons(v,w)) = [0 1] w + [3]                
                                   [0 0]     [1]                
                                 > [0 1] w + [2]                
                                   [0 0]     [1]                
                                 = c_4(choose#(x,cons(v,w),x,v))
            
            
            Following rules are (at-least) weakly oriented:
             choose#(x,cons(v,w),0(),s(z)) =  [0 1] w + [0 0] z + [2]         
                                              [2 4]     [0 2]     [5]         
                                           >= [0 1] w + [2]                   
                                              [0 1]     [5]                   
                                           =  c_2(insert#(x,w))               
            
            choose#(x,cons(v,w),s(y),s(z)) =  [0 1] w + [0 0] y + [0          
                                              0] z + [2]                      
                                              [2 4]     [0 1]     [0          
                                              2]     [6]                      
                                           >= [0 1] w + [2]                   
                                              [0 2]     [4]                   
                                           =  c_3(choose#(x,cons(v,w),y,z))   
            
                          sort#(cons(x,y)) =  [2 4] y + [2]                   
                                              [0 1]     [1]                   
                                           >= [2 4] y + [2]                   
                                              [0 1]     [0]                   
                                           =  c_6(insert#(x,sort(y)),sort#(y))
            
                 choose(x,cons(v,w),y,0()) =  [1 2] w + [1]                   
                                              [0 1]     [2]                   
                                           >= [1 2] w + [1]                   
                                              [0 1]     [2]                   
                                           =  cons(x,cons(v,w))               
            
              choose(x,cons(v,w),0(),s(z)) =  [1 2] w + [1]                   
                                              [0 1]     [2]                   
                                           >= [1 2] w + [1]                   
                                              [0 1]     [2]                   
                                           =  cons(v,insert(x,w))             
            
             choose(x,cons(v,w),s(y),s(z)) =  [1 2] w + [1]                   
                                              [0 1]     [2]                   
                                           >= [1 2] w + [1]                   
                                              [0 1]     [2]                   
                                           =  choose(x,cons(v,w),y,z)         
            
                       insert(x,cons(v,w)) =  [1 2] w + [1]                   
                                              [0 1]     [2]                   
                                           >= [1 2] w + [1]                   
                                              [0 1]     [2]                   
                                           =  choose(x,cons(v,w),x,v)         
            
                           insert(x,nil()) =  [0]                             
                                              [1]                             
                                           >= [0]                             
                                              [1]                             
                                           =  cons(x,nil())                   
            
                           sort(cons(x,y)) =  [2 4] y + [2]                   
                                              [0 2]     [2]                   
                                           >= [2 4] y + [0]                   
                                              [0 2]     [1]                   
                                           =  insert(x,sort(y))               
            
                               sort(nil()) =  [0]                             
                                              [0]                             
                                           >= [0]                             
                                              [0]                             
                                           =  nil()                           
            
      *** 1.1.1.1.1.2.1.1 Progress [(?,O(1))]  ***
          Considered Problem:
            Strict DP Rules:
              choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
            Strict TRS Rules:
              
            Weak DP Rules:
              choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
              insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
              sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
            Weak TRS Rules:
              choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
              choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
              choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
              insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
              insert(x,nil()) -> cons(x,nil())
              sort(cons(x,y)) -> insert(x,sort(y))
              sort(nil()) -> nil()
            Signature:
              {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
            Obligation:
              Innermost
              basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
          Applied Processor:
            Assumption
          Proof:
            ()
      
      *** 1.1.1.1.1.2.2 Progress [(?,O(n^2))]  ***
          Considered Problem:
            Strict DP Rules:
              choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
            Strict TRS Rules:
              
            Weak DP Rules:
              choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
              insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
              sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
            Weak TRS Rules:
              choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
              choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
              choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
              insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
              insert(x,nil()) -> cons(x,nil())
              sort(cons(x,y)) -> insert(x,sort(y))
              sort(nil()) -> nil()
            Signature:
              {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
            Obligation:
              Innermost
              basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
          Applied Processor:
            PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalPI {shape = Mixed 2, restrict = Restrict, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}}
          Proof:
            We first use the processor NaturalPI {shape = Mixed 2, restrict = Restrict, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} to orient following rules strictly:
              1: choose#(x                             
                        ,cons(v,w)                     
                        ,s(y)                          
                        ,s(z)) -> c_3(choose#(x        
                                             ,cons(v,w)
                                             ,y        
                                             ,z))      
              
            The strictly oriented rules are moved into the weak component.
        *** 1.1.1.1.1.2.2.1 Progress [(?,O(n^2))]  ***
            Considered Problem:
              Strict DP Rules:
                choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
              Strict TRS Rules:
                
              Weak DP Rules:
                choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
                insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
                sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
              Weak TRS Rules:
                choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
                choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
                choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
                insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
                insert(x,nil()) -> cons(x,nil())
                sort(cons(x,y)) -> insert(x,sort(y))
                sort(nil()) -> nil()
              Signature:
                {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
              Obligation:
                Innermost
                basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
            Applied Processor:
              NaturalPI {shape = Mixed 2, restrict = Restrict, 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 polynomial interpretation of kind constructor-based(mixed(2)):
              The following argument positions are considered usable:
                uargs(c_2) = {1},
                uargs(c_3) = {1},
                uargs(c_4) = {1},
                uargs(c_6) = {1,2}
              
              Following symbols are considered usable:
                {choose,insert,sort,choose#,insert#,sort#}
              TcT has computed the following interpretation:
                      p(0) = 1                      
                 p(choose) = 1 + 2*x1 + x2          
                   p(cons) = 1 + x1 + x2            
                 p(insert) = 1 + 2*x1 + x2          
                    p(nil) = 0                      
                      p(s) = 1 + x1                 
                   p(sort) = 1 + 2*x1               
                p(choose#) = 2*x1*x2 + x2 + x3      
                p(insert#) = 1 + 2*x1 + 2*x1*x2 + x2
                  p(sort#) = 2*x1 + 2*x1^2          
                    p(c_1) = 0                      
                    p(c_2) = x1                     
                    p(c_3) = x1                     
                    p(c_4) = x1                     
                    p(c_5) = 1                      
                    p(c_6) = x1 + x2                
                    p(c_7) = 0                      
              
              Following rules are strictly oriented:
              choose#(x,cons(v,w),s(y),s(z)) = 2 + v + 2*v*x + w + 2*w*x + 2*x + y
                                             > 1 + v + 2*v*x + w + 2*w*x + 2*x + y
                                             = c_3(choose#(x,cons(v,w),y,z))      
              
              
              Following rules are (at-least) weakly oriented:
              choose#(x,cons(v,w),0(),s(z)) =  2 + v + 2*v*x + w + 2*w*x + 2*x      
                                            >= 1 + w + 2*w*x + 2*x                  
                                            =  c_2(insert#(x,w))                    
              
                       insert#(x,cons(v,w)) =  2 + v + 2*v*x + w + 2*w*x + 4*x      
                                            >= 1 + v + 2*v*x + w + 2*w*x + 3*x      
                                            =  c_4(choose#(x,cons(v,w),x,v))        
              
                           sort#(cons(x,y)) =  4 + 6*x + 4*x*y + 2*x^2 + 6*y + 2*y^2
                                            >= 2 + 4*x + 4*x*y + 4*y + 2*y^2        
                                            =  c_6(insert#(x,sort(y)),sort#(y))     
              
                  choose(x,cons(v,w),y,0()) =  2 + v + w + 2*x                      
                                            >= 2 + v + w + x                        
                                            =  cons(x,cons(v,w))                    
              
               choose(x,cons(v,w),0(),s(z)) =  2 + v + w + 2*x                      
                                            >= 2 + v + w + 2*x                      
                                            =  cons(v,insert(x,w))                  
              
              choose(x,cons(v,w),s(y),s(z)) =  2 + v + w + 2*x                      
                                            >= 2 + v + w + 2*x                      
                                            =  choose(x,cons(v,w),y,z)              
              
                        insert(x,cons(v,w)) =  2 + v + w + 2*x                      
                                            >= 2 + v + w + 2*x                      
                                            =  choose(x,cons(v,w),x,v)              
              
                            insert(x,nil()) =  1 + 2*x                              
                                            >= 1 + x                                
                                            =  cons(x,nil())                        
              
                            sort(cons(x,y)) =  3 + 2*x + 2*y                        
                                            >= 2 + 2*x + 2*y                        
                                            =  insert(x,sort(y))                    
              
                                sort(nil()) =  1                                    
                                            >= 0                                    
                                            =  nil()                                
              
        *** 1.1.1.1.1.2.2.1.1 Progress [(?,O(1))]  ***
            Considered Problem:
              Strict DP Rules:
                
              Strict TRS Rules:
                
              Weak DP Rules:
                choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
                choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
                insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
                sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
              Weak TRS Rules:
                choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
                choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
                choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
                insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
                insert(x,nil()) -> cons(x,nil())
                sort(cons(x,y)) -> insert(x,sort(y))
                sort(nil()) -> nil()
              Signature:
                {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
              Obligation:
                Innermost
                basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
            Applied Processor:
              Assumption
            Proof:
              ()
        
        *** 1.1.1.1.1.2.2.2 Progress [(O(1),O(1))]  ***
            Considered Problem:
              Strict DP Rules:
                
              Strict TRS Rules:
                
              Weak DP Rules:
                choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
                choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
                insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
                sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
              Weak TRS Rules:
                choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
                choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
                choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
                insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
                insert(x,nil()) -> cons(x,nil())
                sort(cons(x,y)) -> insert(x,sort(y))
                sort(nil()) -> nil()
              Signature:
                {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
              Obligation:
                Innermost
                basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
            Applied Processor:
              RemoveWeakSuffixes
            Proof:
              Consider the dependency graph
                1:W:choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
                   -->_1 insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v)):3
                
                2:W:choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
                   -->_1 choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z)):2
                   -->_1 choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w)):1
                
                3:W:insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
                   -->_1 choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z)):2
                   -->_1 choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w)):1
                
                4:W:sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
                   -->_2 sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y)):4
                   -->_1 insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v)):3
                
              The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
                4: sort#(cons(x,y)) ->                   
                     c_6(insert#(x,sort(y)),sort#(y))    
                1: choose#(x,cons(v,w),0(),s(z)) ->      
                     c_2(insert#(x,w))                   
                3: insert#(x,cons(v,w)) ->               
                     c_4(choose#(x,cons(v,w),x,v))       
                2: choose#(x                             
                          ,cons(v,w)                     
                          ,s(y)                          
                          ,s(z)) -> c_3(choose#(x        
                                               ,cons(v,w)
                                               ,y        
                                               ,z))      
        *** 1.1.1.1.1.2.2.2.1 Progress [(O(1),O(1))]  ***
            Considered Problem:
              Strict DP Rules:
                
              Strict TRS Rules:
                
              Weak DP Rules:
                
              Weak TRS Rules:
                choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
                choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
                choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
                insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
                insert(x,nil()) -> cons(x,nil())
                sort(cons(x,y)) -> insert(x,sort(y))
                sort(nil()) -> nil()
              Signature:
                {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
              Obligation:
                Innermost
                basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
            Applied Processor:
              EmptyProcessor
            Proof:
              The problem is already closed. The intended complexity is O(1).
        
  *** 1.1.1.1.2 Progress [(?,O(n^1))]  ***
      Considered Problem:
        Strict DP Rules:
          sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
        Strict TRS Rules:
          
        Weak DP Rules:
          choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
          choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
          insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
        Weak TRS Rules:
          choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
          choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
          choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
          insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
          insert(x,nil()) -> cons(x,nil())
          sort(cons(x,y)) -> insert(x,sort(y))
          sort(nil()) -> nil()
        Signature:
          {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
        Obligation:
          Innermost
          basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
      Applied Processor:
        RemoveWeakSuffixes
      Proof:
        Consider the dependency graph
          1:S:sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
             -->_1 insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v)):4
             -->_2 sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y)):1
          
          2:W:choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w))
             -->_1 insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v)):4
          
          3:W:choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z))
             -->_1 choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z)):3
             -->_1 choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w)):2
          
          4:W:insert#(x,cons(v,w)) -> c_4(choose#(x,cons(v,w),x,v))
             -->_1 choose#(x,cons(v,w),s(y),s(z)) -> c_3(choose#(x,cons(v,w),y,z)):3
             -->_1 choose#(x,cons(v,w),0(),s(z)) -> c_2(insert#(x,w)):2
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          4: insert#(x,cons(v,w)) ->               
               c_4(choose#(x,cons(v,w),x,v))       
          2: choose#(x,cons(v,w),0(),s(z)) ->      
               c_2(insert#(x,w))                   
          3: choose#(x                             
                    ,cons(v,w)                     
                    ,s(y)                          
                    ,s(z)) -> c_3(choose#(x        
                                         ,cons(v,w)
                                         ,y        
                                         ,z))      
  *** 1.1.1.1.2.1 Progress [(?,O(n^1))]  ***
      Considered Problem:
        Strict DP Rules:
          sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
        Strict TRS Rules:
          
        Weak DP Rules:
          
        Weak TRS Rules:
          choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
          choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
          choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
          insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
          insert(x,nil()) -> cons(x,nil())
          sort(cons(x,y)) -> insert(x,sort(y))
          sort(nil()) -> nil()
        Signature:
          {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/2,c_7/0}
        Obligation:
          Innermost
          basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
      Applied Processor:
        SimplifyRHS
      Proof:
        Consider the dependency graph
          1:S:sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y))
             -->_2 sort#(cons(x,y)) -> c_6(insert#(x,sort(y)),sort#(y)):1
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          sort#(cons(x,y)) -> c_6(sort#(y))
  *** 1.1.1.1.2.1.1 Progress [(?,O(n^1))]  ***
      Considered Problem:
        Strict DP Rules:
          sort#(cons(x,y)) -> c_6(sort#(y))
        Strict TRS Rules:
          
        Weak DP Rules:
          
        Weak TRS Rules:
          choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w))
          choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w))
          choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z)
          insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v)
          insert(x,nil()) -> cons(x,nil())
          sort(cons(x,y)) -> insert(x,sort(y))
          sort(nil()) -> nil()
        Signature:
          {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/1,c_7/0}
        Obligation:
          Innermost
          basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
      Applied Processor:
        UsableRules
      Proof:
        We replace rewrite rules by usable rules:
          sort#(cons(x,y)) -> c_6(sort#(y))
  *** 1.1.1.1.2.1.1.1 Progress [(?,O(n^1))]  ***
      Considered Problem:
        Strict DP Rules:
          sort#(cons(x,y)) -> c_6(sort#(y))
        Strict TRS Rules:
          
        Weak DP Rules:
          
        Weak TRS Rules:
          
        Signature:
          {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/1,c_7/0}
        Obligation:
          Innermost
          basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
      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: sort#(cons(x,y)) ->
               c_6(sort#(y))    
          
        The strictly oriented rules are moved into the weak component.
    *** 1.1.1.1.2.1.1.1.1 Progress [(?,O(n^1))]  ***
        Considered Problem:
          Strict DP Rules:
            sort#(cons(x,y)) -> c_6(sort#(y))
          Strict TRS Rules:
            
          Weak DP Rules:
            
          Weak TRS Rules:
            
          Signature:
            {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/1,c_7/0}
          Obligation:
            Innermost
            basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
        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_6) = {1}
          
          Following symbols are considered usable:
            {choose#,insert#,sort#}
          TcT has computed the following interpretation:
                  p(0) = [8]                  
             p(choose) = [8] x4 + [2]         
               p(cons) = [1] x2 + [5]         
             p(insert) = [1] x1 + [1] x2 + [1]
                p(nil) = [1]                  
                  p(s) = [0]                  
               p(sort) = [1]                  
            p(choose#) = [1] x4 + [2]         
            p(insert#) = [2] x1 + [1] x2 + [1]
              p(sort#) = [4] x1 + [8]         
                p(c_1) = [0]                  
                p(c_2) = [2] x1 + [0]         
                p(c_3) = [1]                  
                p(c_4) = [2]                  
                p(c_5) = [0]                  
                p(c_6) = [1] x1 + [15]        
                p(c_7) = [1]                  
          
          Following rules are strictly oriented:
          sort#(cons(x,y)) = [4] y + [28] 
                           > [4] y + [23] 
                           = c_6(sort#(y))
          
          
          Following rules are (at-least) weakly oriented:
          
    *** 1.1.1.1.2.1.1.1.1.1 Progress [(?,O(1))]  ***
        Considered Problem:
          Strict DP Rules:
            
          Strict TRS Rules:
            
          Weak DP Rules:
            sort#(cons(x,y)) -> c_6(sort#(y))
          Weak TRS Rules:
            
          Signature:
            {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/1,c_7/0}
          Obligation:
            Innermost
            basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
        Applied Processor:
          Assumption
        Proof:
          ()
    
    *** 1.1.1.1.2.1.1.1.2 Progress [(O(1),O(1))]  ***
        Considered Problem:
          Strict DP Rules:
            
          Strict TRS Rules:
            
          Weak DP Rules:
            sort#(cons(x,y)) -> c_6(sort#(y))
          Weak TRS Rules:
            
          Signature:
            {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/1,c_7/0}
          Obligation:
            Innermost
            basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
        Applied Processor:
          RemoveWeakSuffixes
        Proof:
          Consider the dependency graph
            1:W:sort#(cons(x,y)) -> c_6(sort#(y))
               -->_1 sort#(cons(x,y)) -> c_6(sort#(y)):1
            
          The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
            1: sort#(cons(x,y)) ->
                 c_6(sort#(y))    
    *** 1.1.1.1.2.1.1.1.2.1 Progress [(O(1),O(1))]  ***
        Considered Problem:
          Strict DP Rules:
            
          Strict TRS Rules:
            
          Weak DP Rules:
            
          Weak TRS Rules:
            
          Signature:
            {choose/4,insert/2,sort/1,choose#/4,insert#/2,sort#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/1,c_3/1,c_4/1,c_5/0,c_6/1,c_7/0}
          Obligation:
            Innermost
            basic terms: {choose#,insert#,sort#}/{0,cons,nil,s}
        Applied Processor:
          EmptyProcessor
        Proof:
          The problem is already closed. The intended complexity is O(1).