WORST_CASE(?,O(n^2))
* Step 1: DependencyPairs WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2} / {0/0,dd/2,false/0,nil/0,pair/2
            ,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append,bubble,bubble',bubble'',bubblesort,bubblesort'
            ,lt} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        DependencyPairs {dpKind_ = DT}
    + Details:
        We add the following dependency tuples:
        
        Strict DPs
          append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
          append#(nil(),ys) -> c_2()
          bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
          bubble#(dd(x,nil())) -> c_4()
          bubble'#(false(),x,x',xs) -> c_5(bubble''#(x',bubble(dd(x,xs))),bubble#(dd(x,xs)))
          bubble'#(true(),x,x',xs) -> c_6(bubble''#(x,bubble(dd(x',xs))),bubble#(dd(x',xs)))
          bubble''#(x,pair(xs,x')) -> c_7()
          bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
          bubblesort#(nil()) -> c_9()
          bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
          lt#(0(),0()) -> c_11()
          lt#(0(),s(y)) -> c_12()
          lt#(s(x),0()) -> c_13()
          lt#(s(x),s(y)) -> c_14(lt#(x,y))
        Weak DPs
          
        
        and mark the set of starting terms.
* Step 2: PredecessorEstimation WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
            append#(nil(),ys) -> c_2()
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble#(dd(x,nil())) -> c_4()
            bubble'#(false(),x,x',xs) -> c_5(bubble''#(x',bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble''#(x,bubble(dd(x',xs))),bubble#(dd(x',xs)))
            bubble''#(x,pair(xs,x')) -> c_7()
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubblesort#(nil()) -> c_9()
            bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
            lt#(0(),0()) -> c_11()
            lt#(0(),s(y)) -> c_12()
            lt#(s(x),0()) -> c_13()
            lt#(s(x),s(y)) -> c_14(lt#(x,y))
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/2,c_6/2,c_7/0,c_8/2,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {2,4,7,9,11,12,13}
        by application of
          Pre({2,4,7,9,11,12,13}) = {1,3,5,6,8,10,14}.
        Here rules are labelled as follows:
          1: append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
          2: append#(nil(),ys) -> c_2()
          3: bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
          4: bubble#(dd(x,nil())) -> c_4()
          5: bubble'#(false(),x,x',xs) -> c_5(bubble''#(x',bubble(dd(x,xs))),bubble#(dd(x,xs)))
          6: bubble'#(true(),x,x',xs) -> c_6(bubble''#(x,bubble(dd(x',xs))),bubble#(dd(x',xs)))
          7: bubble''#(x,pair(xs,x')) -> c_7()
          8: bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
          9: bubblesort#(nil()) -> c_9()
          10: bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
          11: lt#(0(),0()) -> c_11()
          12: lt#(0(),s(y)) -> c_12()
          13: lt#(s(x),0()) -> c_13()
          14: lt#(s(x),s(y)) -> c_14(lt#(x,y))
* Step 3: RemoveWeakSuffixes WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble'#(false(),x,x',xs) -> c_5(bubble''#(x',bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble''#(x,bubble(dd(x',xs))),bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
            lt#(s(x),s(y)) -> c_14(lt#(x,y))
        - Weak DPs:
            append#(nil(),ys) -> c_2()
            bubble#(dd(x,nil())) -> c_4()
            bubble''#(x,pair(xs,x')) -> c_7()
            bubblesort#(nil()) -> c_9()
            lt#(0(),0()) -> c_11()
            lt#(0(),s(y)) -> c_12()
            lt#(s(x),0()) -> c_13()
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/2,c_6/2,c_7/0,c_8/2,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
             -->_1 append#(nil(),ys) -> c_2():8
             -->_1 append#(dd(x,xs),ys) -> c_1(append#(xs,ys)):1
          
          2:S:bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
             -->_2 lt#(s(x),s(y)) -> c_14(lt#(x,y)):7
             -->_1 bubble'#(true(),x,x',xs) -> c_6(bubble''#(x,bubble(dd(x',xs))),bubble#(dd(x',xs))):4
             -->_1 bubble'#(false(),x,x',xs) -> c_5(bubble''#(x',bubble(dd(x,xs))),bubble#(dd(x,xs))):3
             -->_2 lt#(s(x),0()) -> c_13():14
             -->_2 lt#(0(),s(y)) -> c_12():13
             -->_2 lt#(0(),0()) -> c_11():12
          
          3:S:bubble'#(false(),x,x',xs) -> c_5(bubble''#(x',bubble(dd(x,xs))),bubble#(dd(x,xs)))
             -->_1 bubble''#(x,pair(xs,x')) -> c_7():10
             -->_2 bubble#(dd(x,nil())) -> c_4():9
             -->_2 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):2
          
          4:S:bubble'#(true(),x,x',xs) -> c_6(bubble''#(x,bubble(dd(x',xs))),bubble#(dd(x',xs)))
             -->_1 bubble''#(x,pair(xs,x')) -> c_7():10
             -->_2 bubble#(dd(x,nil())) -> c_4():9
             -->_2 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):2
          
          5:S:bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
             -->_1 bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs)):6
             -->_2 bubble#(dd(x,nil())) -> c_4():9
             -->_2 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):2
          
          6:S:bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
             -->_2 bubblesort#(nil()) -> c_9():11
             -->_1 append#(nil(),ys) -> c_2():8
             -->_2 bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs))):5
             -->_1 append#(dd(x,xs),ys) -> c_1(append#(xs,ys)):1
          
          7:S:lt#(s(x),s(y)) -> c_14(lt#(x,y))
             -->_1 lt#(s(x),0()) -> c_13():14
             -->_1 lt#(0(),s(y)) -> c_12():13
             -->_1 lt#(0(),0()) -> c_11():12
             -->_1 lt#(s(x),s(y)) -> c_14(lt#(x,y)):7
          
          8:W:append#(nil(),ys) -> c_2()
             
          
          9:W:bubble#(dd(x,nil())) -> c_4()
             
          
          10:W:bubble''#(x,pair(xs,x')) -> c_7()
             
          
          11:W:bubblesort#(nil()) -> c_9()
             
          
          12:W:lt#(0(),0()) -> c_11()
             
          
          13:W:lt#(0(),s(y)) -> c_12()
             
          
          14:W:lt#(s(x),0()) -> c_13()
             
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          11: bubblesort#(nil()) -> c_9()
          9: bubble#(dd(x,nil())) -> c_4()
          10: bubble''#(x,pair(xs,x')) -> c_7()
          12: lt#(0(),0()) -> c_11()
          13: lt#(0(),s(y)) -> c_12()
          14: lt#(s(x),0()) -> c_13()
          8: append#(nil(),ys) -> c_2()
* Step 4: SimplifyRHS WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble'#(false(),x,x',xs) -> c_5(bubble''#(x',bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble''#(x,bubble(dd(x',xs))),bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
            lt#(s(x),s(y)) -> c_14(lt#(x,y))
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/2,c_6/2,c_7/0,c_8/2,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
             -->_1 append#(dd(x,xs),ys) -> c_1(append#(xs,ys)):1
          
          2:S:bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
             -->_2 lt#(s(x),s(y)) -> c_14(lt#(x,y)):7
             -->_1 bubble'#(true(),x,x',xs) -> c_6(bubble''#(x,bubble(dd(x',xs))),bubble#(dd(x',xs))):4
             -->_1 bubble'#(false(),x,x',xs) -> c_5(bubble''#(x',bubble(dd(x,xs))),bubble#(dd(x,xs))):3
          
          3:S:bubble'#(false(),x,x',xs) -> c_5(bubble''#(x',bubble(dd(x,xs))),bubble#(dd(x,xs)))
             -->_2 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):2
          
          4:S:bubble'#(true(),x,x',xs) -> c_6(bubble''#(x,bubble(dd(x',xs))),bubble#(dd(x',xs)))
             -->_2 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):2
          
          5:S:bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
             -->_1 bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs)):6
             -->_2 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):2
          
          6:S:bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
             -->_2 bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs))):5
             -->_1 append#(dd(x,xs),ys) -> c_1(append#(xs,ys)):1
          
          7:S:lt#(s(x),s(y)) -> c_14(lt#(x,y))
             -->_1 lt#(s(x),s(y)) -> c_14(lt#(x,y)):7
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
          bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
* Step 5: Decompose WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
            lt#(s(x),s(y)) -> c_14(lt#(x,y))
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    + Details:
        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 DPs:
              append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
          - Weak DPs:
              bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
              bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
              bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
              bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
              bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
              lt#(s(x),s(y)) -> c_14(lt#(x,y))
          - Weak TRS:
              append(dd(x,xs),ys) -> dd(x,append(xs,ys))
              append(nil(),ys) -> ys
              bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
              bubble(dd(x,nil())) -> pair(nil(),x)
              bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
              bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
              bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
              bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
              bubblesort(nil()) -> nil()
              bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
              lt(0(),0()) -> false()
              lt(0(),s(y)) -> true()
              lt(s(x),0()) -> false()
              lt(s(x),s(y)) -> lt(x,y)
          - Signature:
              {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
              ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
              ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
              ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
        
        Problem (S)
          - Strict DPs:
              bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
              bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
              bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
              bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
              bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
              lt#(s(x),s(y)) -> c_14(lt#(x,y))
          - Weak DPs:
              append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
          - Weak TRS:
              append(dd(x,xs),ys) -> dd(x,append(xs,ys))
              append(nil(),ys) -> ys
              bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
              bubble(dd(x,nil())) -> pair(nil(),x)
              bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
              bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
              bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
              bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
              bubblesort(nil()) -> nil()
              bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
              lt(0(),0()) -> false()
              lt(0(),s(y)) -> true()
              lt(s(x),0()) -> false()
              lt(s(x),s(y)) -> lt(x,y)
          - Signature:
              {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
              ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
              ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
              ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
** Step 5.a:1: RemoveWeakSuffixes WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
        - Weak DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
            lt#(s(x),s(y)) -> c_14(lt#(x,y))
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
             -->_1 append#(dd(x,xs),ys) -> c_1(append#(xs,ys)):1
          
          2:W:bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
             -->_2 lt#(s(x),s(y)) -> c_14(lt#(x,y)):7
             -->_1 bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs))):4
             -->_1 bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs))):3
          
          3:W:bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):2
          
          4:W:bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):2
          
          5:W:bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
             -->_2 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):2
             -->_1 bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs)):6
          
          6:W:bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
             -->_1 append#(dd(x,xs),ys) -> c_1(append#(xs,ys)):1
             -->_2 bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs))):5
          
          7:W:lt#(s(x),s(y)) -> c_14(lt#(x,y))
             -->_1 lt#(s(x),s(y)) -> c_14(lt#(x,y)):7
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          2: bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
          4: bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
          3: bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
          7: lt#(s(x),s(y)) -> c_14(lt#(x,y))
** Step 5.a:2: SimplifyRHS WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
        - Weak DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
             -->_1 append#(dd(x,xs),ys) -> c_1(append#(xs,ys)):1
          
          5:W:bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
             -->_1 bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs)):6
          
          6:W:bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
             -->_1 append#(dd(x,xs),ys) -> c_1(append#(xs,ys)):1
             -->_2 bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs))):5
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
** Step 5.a:3: DecomposeDG WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
        - Weak DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
            bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        DecomposeDG {onSelection = all below first cut in WDG, onUpper = Just someStrategy, onLower = Nothing}
    + Details:
        We decompose the input problem according to the dependency graph into the upper component
          bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
          bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
        and a lower component
          append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
        Further, following extension rules are added to the lower component.
          bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
          bubblesort'#(pair(xs,x)) -> append#(bubblesort(xs),dd(x,nil()))
          bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
*** Step 5.a:3.a:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
        - Weak DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,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}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
          
        Consider the set of all dependency pairs
          1: bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
          2: bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
**** Step 5.a:3.a:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
        - Weak DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_8) = {1},
          uargs(c_10) = {1,2}
        
        Following symbols are considered usable:
          {bubble,bubble',bubble'',lt,append#,bubble#,bubble'#,bubble''#,bubblesort#,bubblesort'#,lt#}
        TcT has computed the following interpretation:
                     p(0) = [0]                  
                p(append) = [1] x1 + [6]         
                p(bubble) = [1] x1 + [0]         
               p(bubble') = [1] x4 + [2]         
              p(bubble'') = [1] x2 + [1]         
            p(bubblesort) = [2] x1 + [0]         
           p(bubblesort') = [4] x1 + [1]         
                    p(dd) = [1] x2 + [1]         
                 p(false) = [0]                  
                    p(lt) = [0]                  
                   p(nil) = [7]                  
                  p(pair) = [1] x1 + [1]         
                     p(s) = [1] x1 + [1]         
                  p(true) = [0]                  
               p(append#) = [0]                  
               p(bubble#) = [1] x1 + [4]         
              p(bubble'#) = [1] x4 + [0]         
             p(bubble''#) = [1] x2 + [2]         
           p(bubblesort#) = [1] x1 + [1]         
          p(bubblesort'#) = [1] x1 + [1]         
                   p(lt#) = [1] x2 + [1]         
                   p(c_1) = [4] x1 + [0]         
                   p(c_2) = [1]                  
                   p(c_3) = [1]                  
                   p(c_4) = [1]                  
                   p(c_5) = [4] x1 + [2]         
                   p(c_6) = [2]                  
                   p(c_7) = [0]                  
                   p(c_8) = [1] x1 + [0]         
                   p(c_9) = [1]                  
                  p(c_10) = [2] x1 + [1] x2 + [0]
                  p(c_11) = [1]                  
                  p(c_12) = [0]                  
                  p(c_13) = [4]                  
                  p(c_14) = [1]                  
        
        Following rules are strictly oriented:
        bubblesort'#(pair(xs,x)) = [1] xs + [2]                                             
                                 > [1] xs + [1]                                             
                                 = c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
        
        
        Following rules are (at-least) weakly oriented:
           bubblesort#(dd(x,xs)) =  [1] xs + [2]                       
                                 >= [1] xs + [2]                       
                                 =  c_8(bubblesort'#(bubble(dd(x,xs))))
        
         bubble(dd(x,dd(x',xs))) =  [1] xs + [2]                       
                                 >= [1] xs + [2]                       
                                 =  bubble'(lt(x,x'),x,x',xs)          
        
             bubble(dd(x,nil())) =  [8]                                
                                 >= [8]                                
                                 =  pair(nil(),x)                      
        
        bubble'(false(),x,x',xs) =  [1] xs + [2]                       
                                 >= [1] xs + [2]                       
                                 =  bubble''(x',bubble(dd(x,xs)))      
        
         bubble'(true(),x,x',xs) =  [1] xs + [2]                       
                                 >= [1] xs + [2]                       
                                 =  bubble''(x,bubble(dd(x',xs)))      
        
         bubble''(x,pair(xs,x')) =  [1] xs + [2]                       
                                 >= [1] xs + [2]                       
                                 =  pair(dd(x,xs),x')                  
        
                     lt(0(),0()) =  [0]                                
                                 >= [0]                                
                                 =  false()                            
        
                    lt(0(),s(y)) =  [0]                                
                                 >= [0]                                
                                 =  true()                             
        
                    lt(s(x),0()) =  [0]                                
                                 >= [0]                                
                                 =  false()                            
        
                   lt(s(x),s(y)) =  [0]                                
                                 >= [0]                                
                                 =  lt(x,y)                            
        
**** Step 5.a:3.a:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
            bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

**** Step 5.a:3.a:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
            bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
             -->_1 bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs)):2
          
          2:W:bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
             -->_2 bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs)))):1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          1: bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
          2: bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
**** Step 5.a:3.a:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

*** Step 5.a:3.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
        - Weak DPs:
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> append#(bubblesort(xs),dd(x,nil()))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,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}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
          
        The strictly oriented rules are moved into the weak component.
**** Step 5.a:3.b:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
        - Weak DPs:
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> append#(bubblesort(xs),dd(x,nil()))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_1) = {1}
        
        Following symbols are considered usable:
          {append,bubble,bubble',bubble'',bubblesort,bubblesort',lt,append#,bubble#,bubble'#,bubble''#,bubblesort#
          ,bubblesort'#,lt#}
        TcT has computed the following interpretation:
                     p(0) = [0]                  
                p(append) = [1] x1 + [1] x2 + [0]
                p(bubble) = [1] x1 + [2]         
               p(bubble') = [1] x1 + [1] x4 + [0]
              p(bubble'') = [1] x2 + [2]         
            p(bubblesort) = [2] x1 + [5]         
           p(bubblesort') = [2] x1 + [1]         
                    p(dd) = [1] x2 + [2]         
                 p(false) = [6]                  
                    p(lt) = [6]                  
                   p(nil) = [0]                  
                  p(pair) = [1] x1 + [3]         
                     p(s) = [1] x1 + [0]         
                  p(true) = [6]                  
               p(append#) = [1] x1 + [2] x2 + [0]
               p(bubble#) = [1]                  
              p(bubble'#) = [1] x1 + [1]         
             p(bubble''#) = [1] x2 + [0]         
           p(bubblesort#) = [3] x1 + [7]         
          p(bubblesort'#) = [3] x1 + [0]         
                   p(lt#) = [4] x1 + [0]         
                   p(c_1) = [1] x1 + [0]         
                   p(c_2) = [2]                  
                   p(c_3) = [2] x1 + [0]         
                   p(c_4) = [0]                  
                   p(c_5) = [4]                  
                   p(c_6) = [0]                  
                   p(c_7) = [4]                  
                   p(c_8) = [1]                  
                   p(c_9) = [1]                  
                  p(c_10) = [4] x1 + [0]         
                  p(c_11) = [4]                  
                  p(c_12) = [1]                  
                  p(c_13) = [0]                  
                  p(c_14) = [1]                  
        
        Following rules are strictly oriented:
        append#(dd(x,xs),ys) = [1] xs + [2] ys + [2]
                             > [1] xs + [2] ys + [0]
                             = c_1(append#(xs,ys))  
        
        
        Following rules are (at-least) weakly oriented:
           bubblesort#(dd(x,xs)) =  [3] xs + [13]                      
                                 >= [3] xs + [12]                      
                                 =  bubblesort'#(bubble(dd(x,xs)))     
        
        bubblesort'#(pair(xs,x)) =  [3] xs + [9]                       
                                 >= [2] xs + [9]                       
                                 =  append#(bubblesort(xs),dd(x,nil()))
        
        bubblesort'#(pair(xs,x)) =  [3] xs + [9]                       
                                 >= [3] xs + [7]                       
                                 =  bubblesort#(xs)                    
        
             append(dd(x,xs),ys) =  [1] xs + [1] ys + [2]              
                                 >= [1] xs + [1] ys + [2]              
                                 =  dd(x,append(xs,ys))                
        
                append(nil(),ys) =  [1] ys + [0]                       
                                 >= [1] ys + [0]                       
                                 =  ys                                 
        
         bubble(dd(x,dd(x',xs))) =  [1] xs + [6]                       
                                 >= [1] xs + [6]                       
                                 =  bubble'(lt(x,x'),x,x',xs)          
        
             bubble(dd(x,nil())) =  [4]                                
                                 >= [3]                                
                                 =  pair(nil(),x)                      
        
        bubble'(false(),x,x',xs) =  [1] xs + [6]                       
                                 >= [1] xs + [6]                       
                                 =  bubble''(x',bubble(dd(x,xs)))      
        
         bubble'(true(),x,x',xs) =  [1] xs + [6]                       
                                 >= [1] xs + [6]                       
                                 =  bubble''(x,bubble(dd(x',xs)))      
        
         bubble''(x,pair(xs,x')) =  [1] xs + [5]                       
                                 >= [1] xs + [5]                       
                                 =  pair(dd(x,xs),x')                  
        
            bubblesort(dd(x,xs)) =  [2] xs + [9]                       
                                 >= [2] xs + [9]                       
                                 =  bubblesort'(bubble(dd(x,xs)))      
        
               bubblesort(nil()) =  [5]                                
                                 >= [0]                                
                                 =  nil()                              
        
         bubblesort'(pair(xs,x)) =  [2] xs + [7]                       
                                 >= [2] xs + [7]                       
                                 =  append(bubblesort(xs),dd(x,nil())) 
        
                     lt(0(),0()) =  [6]                                
                                 >= [6]                                
                                 =  false()                            
        
                    lt(0(),s(y)) =  [6]                                
                                 >= [6]                                
                                 =  true()                             
        
                    lt(s(x),0()) =  [6]                                
                                 >= [6]                                
                                 =  false()                            
        
                   lt(s(x),s(y)) =  [6]                                
                                 >= [6]                                
                                 =  lt(x,y)                            
        
**** Step 5.a:3.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> append#(bubblesort(xs),dd(x,nil()))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

**** Step 5.a:3.b:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> append#(bubblesort(xs),dd(x,nil()))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
             -->_1 append#(dd(x,xs),ys) -> c_1(append#(xs,ys)):1
          
          2:W:bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
             -->_1 bubblesort'#(pair(xs,x)) -> bubblesort#(xs):4
             -->_1 bubblesort'#(pair(xs,x)) -> append#(bubblesort(xs),dd(x,nil())):3
          
          3:W:bubblesort'#(pair(xs,x)) -> append#(bubblesort(xs),dd(x,nil()))
             -->_1 append#(dd(x,xs),ys) -> c_1(append#(xs,ys)):1
          
          4:W:bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
             -->_1 bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs))):2
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          2: bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
          4: bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
          3: bubblesort'#(pair(xs,x)) -> append#(bubblesort(xs),dd(x,nil()))
          1: append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
**** Step 5.a:3.b:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

** Step 5.b:1: RemoveWeakSuffixes WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
            lt#(s(x),s(y)) -> c_14(lt#(x,y))
        - Weak DPs:
            append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
             -->_2 lt#(s(x),s(y)) -> c_14(lt#(x,y)):6
             -->_1 bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs))):3
             -->_1 bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs))):2
          
          2:S:bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):1
          
          3:S:bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):1
          
          4:S:bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
             -->_1 bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs)):5
             -->_2 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):1
          
          5:S:bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
             -->_1 append#(dd(x,xs),ys) -> c_1(append#(xs,ys)):7
             -->_2 bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs))):4
          
          6:S:lt#(s(x),s(y)) -> c_14(lt#(x,y))
             -->_1 lt#(s(x),s(y)) -> c_14(lt#(x,y)):6
          
          7:W:append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
             -->_1 append#(dd(x,xs),ys) -> c_1(append#(xs,ys)):7
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          7: append#(dd(x,xs),ys) -> c_1(append#(xs,ys))
** Step 5.b:2: SimplifyRHS WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
            lt#(s(x),s(y)) -> c_14(lt#(x,y))
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/2,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
             -->_2 lt#(s(x),s(y)) -> c_14(lt#(x,y)):6
             -->_1 bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs))):3
             -->_1 bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs))):2
          
          2:S:bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):1
          
          3:S:bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):1
          
          4:S:bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
             -->_1 bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs)):5
             -->_2 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):1
          
          5:S:bubblesort'#(pair(xs,x)) -> c_10(append#(bubblesort(xs),dd(x,nil())),bubblesort#(xs))
             -->_2 bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs))):4
          
          6:S:lt#(s(x),s(y)) -> c_14(lt#(x,y))
             -->_1 lt#(s(x),s(y)) -> c_14(lt#(x,y)):6
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
** Step 5.b:3: UsableRules WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
            lt#(s(x),s(y)) -> c_14(lt#(x,y))
        - Weak TRS:
            append(dd(x,xs),ys) -> dd(x,append(xs,ys))
            append(nil(),ys) -> ys
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            bubblesort(dd(x,xs)) -> bubblesort'(bubble(dd(x,xs)))
            bubblesort(nil()) -> nil()
            bubblesort'(pair(xs,x)) -> append(bubblesort(xs),dd(x,nil()))
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
          bubble(dd(x,nil())) -> pair(nil(),x)
          bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
          bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
          bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
          lt(0(),0()) -> false()
          lt(0(),s(y)) -> true()
          lt(s(x),0()) -> false()
          lt(s(x),s(y)) -> lt(x,y)
          bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
          bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
          bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
          bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
          bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
          lt#(s(x),s(y)) -> c_14(lt#(x,y))
** Step 5.b:4: Decompose WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
            lt#(s(x),s(y)) -> c_14(lt#(x,y))
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    + Details:
        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 DPs:
              bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
              bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
              bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
              lt#(s(x),s(y)) -> c_14(lt#(x,y))
          - Weak DPs:
              bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
              bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
          - Weak TRS:
              bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
              bubble(dd(x,nil())) -> pair(nil(),x)
              bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
              bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
              bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
              lt(0(),0()) -> false()
              lt(0(),s(y)) -> true()
              lt(s(x),0()) -> false()
              lt(s(x),s(y)) -> lt(x,y)
          - Signature:
              {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
              ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
              ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
              ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
        
        Problem (S)
          - Strict DPs:
              bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
              bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
          - Weak DPs:
              bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
              bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
              bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
              lt#(s(x),s(y)) -> c_14(lt#(x,y))
          - Weak TRS:
              bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
              bubble(dd(x,nil())) -> pair(nil(),x)
              bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
              bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
              bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
              lt(0(),0()) -> false()
              lt(0(),s(y)) -> true()
              lt(s(x),0()) -> false()
              lt(s(x),s(y)) -> lt(x,y)
          - Signature:
              {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
              ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
              ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
              ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
*** Step 5.b:4.a:1: DecomposeDG WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            lt#(s(x),s(y)) -> c_14(lt#(x,y))
        - Weak DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        DecomposeDG {onSelection = all below first cut in WDG, onUpper = Just someStrategy, onLower = Nothing}
    + Details:
        We decompose the input problem according to the dependency graph into the upper component
          bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
          bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
        and a lower component
          bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
          bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
          bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
          lt#(s(x),s(y)) -> c_14(lt#(x,y))
        Further, following extension rules are added to the lower component.
          bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
          bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
          bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
**** Step 5.b:4.a:1.a:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
        - Weak DPs:
            bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,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}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
          
        Consider the set of all dependency pairs
          1: bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
          2: bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
***** Step 5.b:4.a:1.a:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
        - Weak DPs:
            bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_8) = {1},
          uargs(c_10) = {1}
        
        Following symbols are considered usable:
          {bubble,bubble',bubble'',lt,append#,bubble#,bubble'#,bubble''#,bubblesort#,bubblesort'#,lt#}
        TcT has computed the following interpretation:
                     p(0) = [0]                   
                p(append) = [1] x1 + [2] x2 + [2] 
                p(bubble) = [1] x1 + [6]          
               p(bubble') = [12] x1 + [1] x4 + [0]
              p(bubble'') = [1] x2 + [9]          
            p(bubblesort) = [8]                   
           p(bubblesort') = [1] x1 + [1]          
                    p(dd) = [1] x2 + [9]          
                 p(false) = [2]                   
                    p(lt) = [2]                   
                   p(nil) = [0]                   
                  p(pair) = [1] x1 + [15]         
                     p(s) = [8]                   
                  p(true) = [2]                   
               p(append#) = [1] x1 + [2] x2 + [1] 
               p(bubble#) = [1]                   
              p(bubble'#) = [1] x2 + [2] x3 + [1] 
             p(bubble''#) = [1] x1 + [1] x2 + [1] 
           p(bubblesort#) = [1] x1 + [15]         
          p(bubblesort'#) = [1] x1 + [0]          
                   p(lt#) = [1] x1 + [1]          
                   p(c_1) = [1] x1 + [1]          
                   p(c_2) = [2]                   
                   p(c_3) = [1] x1 + [1] x2 + [0] 
                   p(c_4) = [1]                   
                   p(c_5) = [0]                   
                   p(c_6) = [1] x1 + [1]          
                   p(c_7) = [2]                   
                   p(c_8) = [1] x1 + [1] x2 + [6] 
                   p(c_9) = [2]                   
                  p(c_10) = [1] x1 + [0]          
                  p(c_11) = [1]                   
                  p(c_12) = [1]                   
                  p(c_13) = [2]                   
                  p(c_14) = [8]                   
        
        Following rules are strictly oriented:
        bubblesort#(dd(x,xs)) = [1] xs + [24]                                        
                              > [1] xs + [22]                                        
                              = c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
        
        
        Following rules are (at-least) weakly oriented:
        bubblesort'#(pair(xs,x)) =  [1] xs + [15]                
                                 >= [1] xs + [15]                
                                 =  c_10(bubblesort#(xs))        
        
         bubble(dd(x,dd(x',xs))) =  [1] xs + [24]                
                                 >= [1] xs + [24]                
                                 =  bubble'(lt(x,x'),x,x',xs)    
        
             bubble(dd(x,nil())) =  [15]                         
                                 >= [15]                         
                                 =  pair(nil(),x)                
        
        bubble'(false(),x,x',xs) =  [1] xs + [24]                
                                 >= [1] xs + [24]                
                                 =  bubble''(x',bubble(dd(x,xs)))
        
         bubble'(true(),x,x',xs) =  [1] xs + [24]                
                                 >= [1] xs + [24]                
                                 =  bubble''(x,bubble(dd(x',xs)))
        
         bubble''(x,pair(xs,x')) =  [1] xs + [24]                
                                 >= [1] xs + [24]                
                                 =  pair(dd(x,xs),x')            
        
                     lt(0(),0()) =  [2]                          
                                 >= [2]                          
                                 =  false()                      
        
                    lt(0(),s(y)) =  [2]                          
                                 >= [2]                          
                                 =  true()                       
        
                    lt(s(x),0()) =  [2]                          
                                 >= [2]                          
                                 =  false()                      
        
                   lt(s(x),s(y)) =  [2]                          
                                 >= [2]                          
                                 =  lt(x,y)                      
        
***** Step 5.b:4.a:1.a:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

***** Step 5.b:4.a:1.a:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
             -->_1 bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs)):2
          
          2:W:bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
             -->_1 bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs))):1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          1: bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
          2: bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
***** Step 5.b:4.a:1.a:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

**** Step 5.b:4.a:1.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            lt#(s(x),s(y)) -> c_14(lt#(x,y))
        - Weak DPs:
            bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 2, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          3: bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
          4: lt#(s(x),s(y)) -> c_14(lt#(x,y))
          
        The strictly oriented rules are moved into the weak component.
***** Step 5.b:4.a:1.b:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            lt#(s(x),s(y)) -> c_14(lt#(x,y))
        - Weak DPs:
            bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 2, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        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,2},
          uargs(c_5) = {1},
          uargs(c_6) = {1},
          uargs(c_14) = {1}
        
        Following symbols are considered usable:
          {bubble,bubble',bubble'',lt,append#,bubble#,bubble'#,bubble''#,bubblesort#,bubblesort'#,lt#}
        TcT has computed the following interpretation:
                     p(0) = [0]                                            
                            [0]                                            
                p(append) = [0 0] x1 + [0 2] x2 + [1]                      
                            [0 2]      [2 0]      [2]                      
                p(bubble) = [0 3] x1 + [0]                                 
                            [2 0]      [0]                                 
               p(bubble') = [0 3] x1 + [0 3] x2 + [0 3] x3 + [0 3] x4 + [3]
                            [2 0]      [0 0]      [0 1]      [0 0]      [0]
              p(bubble'') = [0 3] x1 + [1 0] x2 + [3]                      
                            [0 0]      [0 0]      [0]                      
            p(bubblesort) = [1]                                            
                            [0]                                            
           p(bubblesort') = [0 2] x1 + [0]                                 
                            [0 0]      [0]                                 
                    p(dd) = [0 2] x1 + [0 3] x2 + [0]                      
                            [0 1]      [0 1]      [1]                      
                 p(false) = [0]                                            
                            [1]                                            
                    p(lt) = [0 2] x1 + [0]                                 
                            [0 0]      [1]                                 
                   p(nil) = [0]                                            
                            [0]                                            
                  p(pair) = [0 3] x1 + [1]                                 
                            [0 0]      [0]                                 
                     p(s) = [0 0] x1 + [0]                                 
                            [0 1]      [3]                                 
                  p(true) = [0]                                            
                            [1]                                            
               p(append#) = [1 2] x2 + [2]                                 
                            [2 1]      [0]                                 
               p(bubble#) = [1 0] x1 + [2]                                 
                            [0 0]      [0]                                 
              p(bubble'#) = [0 1] x1 + [0 2] x2 + [0 2] x3 + [0 3] x4 + [3]
                            [0 0]      [0 3]      [1 1]      [0 1]      [0]
             p(bubble''#) = [1]                                            
                            [1]                                            
           p(bubblesort#) = [0 3] x1 + [0]                                 
                            [0 0]      [0]                                 
          p(bubblesort'#) = [1 0] x1 + [0]                                 
                            [0 0]      [0]                                 
                   p(lt#) = [0 0] x1 + [0 1] x2 + [1]                      
                            [2 0]      [0 0]      [2]                      
                   p(c_1) = [0 0] x1 + [0]                                 
                            [0 1]      [0]                                 
                   p(c_2) = [0]                                            
                            [2]                                            
                   p(c_3) = [1 0] x1 + [1 0] x2 + [0]                      
                            [0 0]      [0 0]      [0]                      
                   p(c_4) = [2]                                            
                            [0]                                            
                   p(c_5) = [1 0] x1 + [2]                                 
                            [0 0]      [0]                                 
                   p(c_6) = [1 0] x1 + [0]                                 
                            [0 1]      [0]                                 
                   p(c_7) = [1]                                            
                            [1]                                            
                   p(c_8) = [2 0] x1 + [0]                                 
                            [2 2]      [0]                                 
                   p(c_9) = [0]                                            
                            [0]                                            
                  p(c_10) = [0 1] x1 + [0]                                 
                            [2 0]      [0]                                 
                  p(c_11) = [0]                                            
                            [1]                                            
                  p(c_12) = [0]                                            
                            [0]                                            
                  p(c_13) = [1]                                            
                            [0]                                            
                  p(c_14) = [1 0] x1 + [1]                                 
                            [0 0]      [0]                                 
        
        Following rules are strictly oriented:
        bubble'#(true(),x,x',xs) = [0 2] x + [0 2] x' + [0 3] xs + [4]
                                   [0 3]     [1 1]      [0 1]      [0]
                                 > [0 2] x' + [0 3] xs + [2]          
                                   [0 0]      [0 0]      [0]          
                                 = c_6(bubble#(dd(x',xs)))            
        
                  lt#(s(x),s(y)) = [0 1] y + [4]                      
                                   [0 0]     [2]                      
                                 > [0 1] y + [2]                      
                                   [0 0]     [0]                      
                                 = c_14(lt#(x,y))                     
        
        
        Following rules are (at-least) weakly oriented:
         bubble#(dd(x,dd(x',xs))) =  [0 2] x + [0 3] x' + [0 3] xs + [5]      
                                     [0 0]     [0 0]      [0 0]      [0]      
                                  >= [0 2] x + [0 3] x' + [0 3] xs + [5]      
                                     [0 0]     [0 0]      [0 0]      [0]      
                                  =  c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
        
        bubble'#(false(),x,x',xs) =  [0 2] x + [0 2] x' + [0 3] xs + [4]      
                                     [0 3]     [1 1]      [0 1]      [0]      
                                  >= [0 2] x + [0 3] xs + [4]                 
                                     [0 0]     [0 0]      [0]                 
                                  =  c_5(bubble#(dd(x,xs)))                   
        
            bubblesort#(dd(x,xs)) =  [0 3] x + [0 3] xs + [3]                 
                                     [0 0]     [0 0]      [0]                 
                                  >= [0 2] x + [0 3] xs + [2]                 
                                     [0 0]     [0 0]      [0]                 
                                  =  bubble#(dd(x,xs))                        
        
            bubblesort#(dd(x,xs)) =  [0 3] x + [0 3] xs + [3]                 
                                     [0 0]     [0 0]      [0]                 
                                  >= [0 3] x + [0 3] xs + [3]                 
                                     [0 0]     [0 0]      [0]                 
                                  =  bubblesort'#(bubble(dd(x,xs)))           
        
         bubblesort'#(pair(xs,x)) =  [0 3] xs + [1]                           
                                     [0 0]      [0]                           
                                  >= [0 3] xs + [0]                           
                                     [0 0]      [0]                           
                                  =  bubblesort#(xs)                          
        
          bubble(dd(x,dd(x',xs))) =  [0 3] x + [0 3] x' + [0 3] xs + [6]      
                                     [0 4]     [0 6]      [0 6]      [6]      
                                  >= [0 3] x + [0 3] x' + [0 3] xs + [6]      
                                     [0 4]     [0 1]      [0 0]      [0]      
                                  =  bubble'(lt(x,x'),x,x',xs)                
        
              bubble(dd(x,nil())) =  [0 3] x + [3]                            
                                     [0 4]     [0]                            
                                  >= [1]                                      
                                     [0]                                      
                                  =  pair(nil(),x)                            
        
         bubble'(false(),x,x',xs) =  [0 3] x + [0 3] x' + [0 3] xs + [6]      
                                     [0 0]     [0 1]      [0 0]      [0]      
                                  >= [0 3] x + [0 3] x' + [0 3] xs + [6]      
                                     [0 0]     [0 0]      [0 0]      [0]      
                                  =  bubble''(x',bubble(dd(x,xs)))            
        
          bubble'(true(),x,x',xs) =  [0 3] x + [0 3] x' + [0 3] xs + [6]      
                                     [0 0]     [0 1]      [0 0]      [0]      
                                  >= [0 3] x + [0 3] x' + [0 3] xs + [6]      
                                     [0 0]     [0 0]      [0 0]      [0]      
                                  =  bubble''(x,bubble(dd(x',xs)))            
        
          bubble''(x,pair(xs,x')) =  [0 3] x + [0 3] xs + [4]                 
                                     [0 0]     [0 0]      [0]                 
                                  >= [0 3] x + [0 3] xs + [4]                 
                                     [0 0]     [0 0]      [0]                 
                                  =  pair(dd(x,xs),x')                        
        
                      lt(0(),0()) =  [0]                                      
                                     [1]                                      
                                  >= [0]                                      
                                     [1]                                      
                                  =  false()                                  
        
                     lt(0(),s(y)) =  [0]                                      
                                     [1]                                      
                                  >= [0]                                      
                                     [1]                                      
                                  =  true()                                   
        
                     lt(s(x),0()) =  [0 2] x + [6]                            
                                     [0 0]     [1]                            
                                  >= [0]                                      
                                     [1]                                      
                                  =  false()                                  
        
                    lt(s(x),s(y)) =  [0 2] x + [6]                            
                                     [0 0]     [1]                            
                                  >= [0 2] x + [0]                            
                                     [0 0]     [1]                            
                                  =  lt(x,y)                                  
        
***** Step 5.b:4.a:1.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
        - Weak DPs:
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
            lt#(s(x),s(y)) -> c_14(lt#(x,y))
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

***** Step 5.b:4.a:1.b:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
        - Weak DPs:
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
            lt#(s(x),s(y)) -> c_14(lt#(x,y))
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
             -->_2 lt#(s(x),s(y)) -> c_14(lt#(x,y)):7
             -->_1 bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs))):3
             -->_1 bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs))):2
          
          2:S:bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):1
          
          3:W:bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):1
          
          4:W:bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):1
          
          5:W:bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
             -->_1 bubblesort'#(pair(xs,x)) -> bubblesort#(xs):6
          
          6:W:bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
             -->_1 bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs))):5
             -->_1 bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs)):4
          
          7:W:lt#(s(x),s(y)) -> c_14(lt#(x,y))
             -->_1 lt#(s(x),s(y)) -> c_14(lt#(x,y)):7
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          7: lt#(s(x),s(y)) -> c_14(lt#(x,y))
***** Step 5.b:4.a:1.b:1.b:2: SimplifyRHS WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
        - Weak DPs:
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
             -->_1 bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs))):3
             -->_1 bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs))):2
          
          2:S:bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):1
          
          3:W:bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):1
          
          4:W:bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):1
          
          5:W:bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
             -->_1 bubblesort'#(pair(xs,x)) -> bubblesort#(xs):6
          
          6:W:bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
             -->_1 bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs))):5
             -->_1 bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs)):4
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs))
***** Step 5.b:4.a:1.b:1.b:3: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
        - Weak DPs:
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/1,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,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}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          2: bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
          
        The strictly oriented rules are moved into the weak component.
****** Step 5.b:4.a:1.b:1.b:3.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
        - Weak DPs:
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/1,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_3) = {1},
          uargs(c_5) = {1},
          uargs(c_6) = {1}
        
        Following symbols are considered usable:
          {bubble,bubble',bubble'',lt,append#,bubble#,bubble'#,bubble''#,bubblesort#,bubblesort'#,lt#}
        TcT has computed the following interpretation:
                     p(0) = [1]                                    
                p(append) = [2] x1 + [4] x2 + [0]                  
                p(bubble) = [1] x1 + [0]                           
               p(bubble') = [1] x2 + [1] x3 + [1] x4 + [4]         
              p(bubble'') = [1] x1 + [1] x2 + [2]                  
            p(bubblesort) = [1]                                    
           p(bubblesort') = [1]                                    
                    p(dd) = [1] x1 + [1] x2 + [2]                  
                 p(false) = [1]                                    
                    p(lt) = [1]                                    
                   p(nil) = [6]                                    
                  p(pair) = [1] x1 + [0]                           
                     p(s) = [1]                                    
                  p(true) = [0]                                    
               p(append#) = [1] x1 + [0]                           
               p(bubble#) = [2] x1 + [0]                           
              p(bubble'#) = [4] x1 + [2] x2 + [2] x3 + [2] x4 + [4]
             p(bubble''#) = [2] x2 + [0]                           
           p(bubblesort#) = [4] x1 + [0]                           
          p(bubblesort'#) = [4] x1 + [0]                           
                   p(lt#) = [0]                                    
                   p(c_1) = [1] x1 + [1]                           
                   p(c_2) = [1]                                    
                   p(c_3) = [1] x1 + [0]                           
                   p(c_4) = [4]                                    
                   p(c_5) = [1] x1 + [3]                           
                   p(c_6) = [1] x1 + [0]                           
                   p(c_7) = [1]                                    
                   p(c_8) = [1] x2 + [0]                           
                   p(c_9) = [1]                                    
                  p(c_10) = [4]                                    
                  p(c_11) = [2]                                    
                  p(c_12) = [0]                                    
                  p(c_13) = [0]                                    
                  p(c_14) = [0]                                    
        
        Following rules are strictly oriented:
        bubble'#(false(),x,x',xs) = [2] x + [2] x' + [2] xs + [8]
                                  > [2] x + [2] xs + [7]         
                                  = c_5(bubble#(dd(x,xs)))       
        
        
        Following rules are (at-least) weakly oriented:
        bubble#(dd(x,dd(x',xs))) =  [2] x + [2] x' + [2] xs + [8]  
                                 >= [2] x + [2] x' + [2] xs + [8]  
                                 =  c_3(bubble'#(lt(x,x'),x,x',xs))
        
        bubble'#(true(),x,x',xs) =  [2] x + [2] x' + [2] xs + [4]  
                                 >= [2] x' + [2] xs + [4]          
                                 =  c_6(bubble#(dd(x',xs)))        
        
           bubblesort#(dd(x,xs)) =  [4] x + [4] xs + [8]           
                                 >= [2] x + [2] xs + [4]           
                                 =  bubble#(dd(x,xs))              
        
           bubblesort#(dd(x,xs)) =  [4] x + [4] xs + [8]           
                                 >= [4] x + [4] xs + [8]           
                                 =  bubblesort'#(bubble(dd(x,xs))) 
        
        bubblesort'#(pair(xs,x)) =  [4] xs + [0]                   
                                 >= [4] xs + [0]                   
                                 =  bubblesort#(xs)                
        
         bubble(dd(x,dd(x',xs))) =  [1] x + [1] x' + [1] xs + [4]  
                                 >= [1] x + [1] x' + [1] xs + [4]  
                                 =  bubble'(lt(x,x'),x,x',xs)      
        
             bubble(dd(x,nil())) =  [1] x + [8]                    
                                 >= [6]                            
                                 =  pair(nil(),x)                  
        
        bubble'(false(),x,x',xs) =  [1] x + [1] x' + [1] xs + [4]  
                                 >= [1] x + [1] x' + [1] xs + [4]  
                                 =  bubble''(x',bubble(dd(x,xs)))  
        
         bubble'(true(),x,x',xs) =  [1] x + [1] x' + [1] xs + [4]  
                                 >= [1] x + [1] x' + [1] xs + [4]  
                                 =  bubble''(x,bubble(dd(x',xs)))  
        
         bubble''(x,pair(xs,x')) =  [1] x + [1] xs + [2]           
                                 >= [1] x + [1] xs + [2]           
                                 =  pair(dd(x,xs),x')              
        
                     lt(0(),0()) =  [1]                            
                                 >= [1]                            
                                 =  false()                        
        
                    lt(0(),s(y)) =  [1]                            
                                 >= [0]                            
                                 =  true()                         
        
                    lt(s(x),0()) =  [1]                            
                                 >= [1]                            
                                 =  false()                        
        
                   lt(s(x),s(y)) =  [1]                            
                                 >= [1]                            
                                 =  lt(x,y)                        
        
****** Step 5.b:4.a:1.b:1.b:3.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs))
        - Weak DPs:
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/1,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

****** Step 5.b:4.a:1.b:1.b:3.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs))
        - Weak DPs:
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/1,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,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}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs))
          
        Consider the set of all dependency pairs
          1: bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs))
          2: bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
          3: bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
          4: bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
          5: bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
          6: bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2,3}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
******* Step 5.b:4.a:1.b:1.b:3.b:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs))
        - Weak DPs:
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/1,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_3) = {1},
          uargs(c_5) = {1},
          uargs(c_6) = {1}
        
        Following symbols are considered usable:
          {bubble,bubble',bubble'',lt,append#,bubble#,bubble'#,bubble''#,bubblesort#,bubblesort'#,lt#}
        TcT has computed the following interpretation:
                     p(0) = [0]                  
                p(append) = [1]                  
                p(bubble) = [1] x1 + [0]         
               p(bubble') = [1] x4 + [4]         
              p(bubble'') = [1] x2 + [2]         
            p(bubblesort) = [1] x1 + [1]         
           p(bubblesort') = [0]                  
                    p(dd) = [1] x2 + [2]         
                 p(false) = [1]                  
                    p(lt) = [2]                  
                   p(nil) = [2]                  
                  p(pair) = [1] x1 + [0]         
                     p(s) = [1]                  
                  p(true) = [1]                  
               p(append#) = [4]                  
               p(bubble#) = [3] x1 + [0]         
              p(bubble'#) = [4] x1 + [3] x4 + [2]
             p(bubble''#) = [1] x2 + [0]         
           p(bubblesort#) = [3] x1 + [0]         
          p(bubblesort'#) = [3] x1 + [0]         
                   p(lt#) = [1] x1 + [1] x2 + [1]
                   p(c_1) = [1] x1 + [1]         
                   p(c_2) = [1]                  
                   p(c_3) = [1] x1 + [0]         
                   p(c_4) = [1]                  
                   p(c_5) = [1] x1 + [0]         
                   p(c_6) = [1] x1 + [0]         
                   p(c_7) = [0]                  
                   p(c_8) = [1] x1 + [0]         
                   p(c_9) = [1]                  
                  p(c_10) = [1] x1 + [1]         
                  p(c_11) = [2]                  
                  p(c_12) = [4]                  
                  p(c_13) = [1]                  
                  p(c_14) = [1]                  
        
        Following rules are strictly oriented:
        bubble#(dd(x,dd(x',xs))) = [3] xs + [12]                  
                                 > [3] xs + [10]                  
                                 = c_3(bubble'#(lt(x,x'),x,x',xs))
        
        
        Following rules are (at-least) weakly oriented:
        bubble'#(false(),x,x',xs) =  [3] xs + [6]                  
                                  >= [3] xs + [6]                  
                                  =  c_5(bubble#(dd(x,xs)))        
        
         bubble'#(true(),x,x',xs) =  [3] xs + [6]                  
                                  >= [3] xs + [6]                  
                                  =  c_6(bubble#(dd(x',xs)))       
        
            bubblesort#(dd(x,xs)) =  [3] xs + [6]                  
                                  >= [3] xs + [6]                  
                                  =  bubble#(dd(x,xs))             
        
            bubblesort#(dd(x,xs)) =  [3] xs + [6]                  
                                  >= [3] xs + [6]                  
                                  =  bubblesort'#(bubble(dd(x,xs)))
        
         bubblesort'#(pair(xs,x)) =  [3] xs + [0]                  
                                  >= [3] xs + [0]                  
                                  =  bubblesort#(xs)               
        
          bubble(dd(x,dd(x',xs))) =  [1] xs + [4]                  
                                  >= [1] xs + [4]                  
                                  =  bubble'(lt(x,x'),x,x',xs)     
        
              bubble(dd(x,nil())) =  [4]                           
                                  >= [2]                           
                                  =  pair(nil(),x)                 
        
         bubble'(false(),x,x',xs) =  [1] xs + [4]                  
                                  >= [1] xs + [4]                  
                                  =  bubble''(x',bubble(dd(x,xs))) 
        
          bubble'(true(),x,x',xs) =  [1] xs + [4]                  
                                  >= [1] xs + [4]                  
                                  =  bubble''(x,bubble(dd(x',xs))) 
        
          bubble''(x,pair(xs,x')) =  [1] xs + [2]                  
                                  >= [1] xs + [2]                  
                                  =  pair(dd(x,xs),x')             
        
                      lt(0(),0()) =  [2]                           
                                  >= [1]                           
                                  =  false()                       
        
                     lt(0(),s(y)) =  [2]                           
                                  >= [1]                           
                                  =  true()                        
        
                     lt(s(x),0()) =  [2]                           
                                  >= [1]                           
                                  =  false()                       
        
                    lt(s(x),s(y)) =  [2]                           
                                  >= [2]                           
                                  =  lt(x,y)                       
        
******* Step 5.b:4.a:1.b:1.b:3.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/1,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

******* Step 5.b:4.a:1.b:1.b:3.b:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
            bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/1,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs))
             -->_1 bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs))):3
             -->_1 bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs))):2
          
          2:W:bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs)):1
          
          3:W:bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs)):1
          
          4:W:bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs)):1
          
          5:W:bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
             -->_1 bubblesort'#(pair(xs,x)) -> bubblesort#(xs):6
          
          6:W:bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
             -->_1 bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs))):5
             -->_1 bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs)):4
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          5: bubblesort#(dd(x,xs)) -> bubblesort'#(bubble(dd(x,xs)))
          6: bubblesort'#(pair(xs,x)) -> bubblesort#(xs)
          4: bubblesort#(dd(x,xs)) -> bubble#(dd(x,xs))
          1: bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs))
          3: bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
          2: bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
******* Step 5.b:4.a:1.b:1.b:3.b:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/1,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

*** Step 5.b:4.b:1: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
        - Weak DPs:
            bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
            bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
            bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
            lt#(s(x),s(y)) -> c_14(lt#(x,y))
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
             -->_2 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):3
             -->_1 bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs)):2
          
          2:S:bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
             -->_1 bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs))):1
          
          3:W:bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
             -->_2 lt#(s(x),s(y)) -> c_14(lt#(x,y)):6
             -->_1 bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs))):5
             -->_1 bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs))):4
          
          4:W:bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):3
          
          5:W:bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
             -->_1 bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x')):3
          
          6:W:lt#(s(x),s(y)) -> c_14(lt#(x,y))
             -->_1 lt#(s(x),s(y)) -> c_14(lt#(x,y)):6
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          3: bubble#(dd(x,dd(x',xs))) -> c_3(bubble'#(lt(x,x'),x,x',xs),lt#(x,x'))
          5: bubble'#(true(),x,x',xs) -> c_6(bubble#(dd(x',xs)))
          4: bubble'#(false(),x,x',xs) -> c_5(bubble#(dd(x,xs)))
          6: lt#(s(x),s(y)) -> c_14(lt#(x,y))
*** Step 5.b:4.b:2: SimplifyRHS WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
            bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/2,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs)))
             -->_1 bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs)):2
          
          2:S:bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
             -->_1 bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))),bubble#(dd(x,xs))):1
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
*** Step 5.b:4.b:3: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
            bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,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}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
          
        Consider the set of all dependency pairs
          1: bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
          2: bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
**** Step 5.b:4.b:3.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
            bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_8) = {1},
          uargs(c_10) = {1}
        
        Following symbols are considered usable:
          {bubble,bubble',bubble'',lt,append#,bubble#,bubble'#,bubble''#,bubblesort#,bubblesort'#,lt#}
        TcT has computed the following interpretation:
                     p(0) = [1]                  
                p(append) = [0]                  
                p(bubble) = [1] x1 + [0]         
               p(bubble') = [8] x1 + [1] x4 + [0]
              p(bubble'') = [1] x2 + [8]         
            p(bubblesort) = [2]                  
           p(bubblesort') = [1] x1 + [1]         
                    p(dd) = [1] x2 + [8]         
                 p(false) = [2]                  
                    p(lt) = [2]                  
                   p(nil) = [0]                  
                  p(pair) = [1] x1 + [8]         
                     p(s) = [0]                  
                  p(true) = [2]                  
               p(append#) = [1] x1 + [1] x2 + [1]
               p(bubble#) = [8]                  
              p(bubble'#) = [1] x1 + [1] x2 + [0]
             p(bubble''#) = [1] x2 + [0]         
           p(bubblesort#) = [1] x1 + [8]         
          p(bubblesort'#) = [1] x1 + [4]         
                   p(lt#) = [0]                  
                   p(c_1) = [1]                  
                   p(c_2) = [0]                  
                   p(c_3) = [1] x1 + [1] x2 + [0]
                   p(c_4) = [2]                  
                   p(c_5) = [1] x1 + [1]         
                   p(c_6) = [1] x1 + [1]         
                   p(c_7) = [1]                  
                   p(c_8) = [1] x1 + [0]         
                   p(c_9) = [2]                  
                  p(c_10) = [1] x1 + [4]         
                  p(c_11) = [0]                  
                  p(c_12) = [1]                  
                  p(c_13) = [0]                  
                  p(c_14) = [1]                  
        
        Following rules are strictly oriented:
        bubblesort#(dd(x,xs)) = [1] xs + [16]                      
                              > [1] xs + [12]                      
                              = c_8(bubblesort'#(bubble(dd(x,xs))))
        
        
        Following rules are (at-least) weakly oriented:
        bubblesort'#(pair(xs,x)) =  [1] xs + [12]                
                                 >= [1] xs + [12]                
                                 =  c_10(bubblesort#(xs))        
        
         bubble(dd(x,dd(x',xs))) =  [1] xs + [16]                
                                 >= [1] xs + [16]                
                                 =  bubble'(lt(x,x'),x,x',xs)    
        
             bubble(dd(x,nil())) =  [8]                          
                                 >= [8]                          
                                 =  pair(nil(),x)                
        
        bubble'(false(),x,x',xs) =  [1] xs + [16]                
                                 >= [1] xs + [16]                
                                 =  bubble''(x',bubble(dd(x,xs)))
        
         bubble'(true(),x,x',xs) =  [1] xs + [16]                
                                 >= [1] xs + [16]                
                                 =  bubble''(x,bubble(dd(x',xs)))
        
         bubble''(x,pair(xs,x')) =  [1] xs + [16]                
                                 >= [1] xs + [16]                
                                 =  pair(dd(x,xs),x')            
        
                     lt(0(),0()) =  [2]                          
                                 >= [2]                          
                                 =  false()                      
        
                    lt(0(),s(y)) =  [2]                          
                                 >= [2]                          
                                 =  true()                       
        
                    lt(s(x),0()) =  [2]                          
                                 >= [2]                          
                                 =  false()                      
        
                   lt(s(x),s(y)) =  [2]                          
                                 >= [2]                          
                                 =  lt(x,y)                      
        
**** Step 5.b:4.b:3.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
        - Weak DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

**** Step 5.b:4.b:3.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
            bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
             -->_1 bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs)):2
          
          2:W:bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
             -->_1 bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs)))):1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          1: bubblesort#(dd(x,xs)) -> c_8(bubblesort'#(bubble(dd(x,xs))))
          2: bubblesort'#(pair(xs,x)) -> c_10(bubblesort#(xs))
**** Step 5.b:4.b:3.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            bubble(dd(x,dd(x',xs))) -> bubble'(lt(x,x'),x,x',xs)
            bubble(dd(x,nil())) -> pair(nil(),x)
            bubble'(false(),x,x',xs) -> bubble''(x',bubble(dd(x,xs)))
            bubble'(true(),x,x',xs) -> bubble''(x,bubble(dd(x',xs)))
            bubble''(x,pair(xs,x')) -> pair(dd(x,xs),x')
            lt(0(),0()) -> false()
            lt(0(),s(y)) -> true()
            lt(s(x),0()) -> false()
            lt(s(x),s(y)) -> lt(x,y)
        - Signature:
            {append/2,bubble/1,bubble'/4,bubble''/2,bubblesort/1,bubblesort'/1,lt/2,append#/2,bubble#/1,bubble'#/4
            ,bubble''#/2,bubblesort#/1,bubblesort'#/1,lt#/2} / {0/0,dd/2,false/0,nil/0,pair/2,s/1,true/0,c_1/1,c_2/0
            ,c_3/2,c_4/0,c_5/1,c_6/1,c_7/0,c_8/1,c_9/0,c_10/1,c_11/0,c_12/0,c_13/0,c_14/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {append#,bubble#,bubble'#,bubble''#,bubblesort#
            ,bubblesort'#,lt#} and constructors {0,dd,false,nil,pair,s,true}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

WORST_CASE(?,O(n^2))