* Step 1: Sum WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict TRS:
            #abs(#0()) -> #0()
            #abs(#neg(@x)) -> #pos(@x)
            #abs(#pos(@x)) -> #pos(@x)
            #abs(#s(@x)) -> #pos(#s(@x))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            bitToInt(@b) -> bitToInt'(@b,#abs(#pos(#s(#0()))))
            bitToInt'(@b,@n) -> bitToInt'#1(@b,@n)
            bitToInt'#1(::(@x,@xs),@n) -> +(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
            bitToInt'#1(nil(),@n) -> #abs(#0())
            compare(@b1,@b2) -> compare#1(@b1,@b2)
            compare#1(::(@x,@xs),@b2) -> compare#2(@b2,@x,@xs)
            compare#1(nil(),@b2) -> #abs(#0())
            compare#2(::(@y,@ys),@x,@xs) -> compare#3(compare(@xs,@ys),@x,@y)
            compare#2(nil(),@x,@xs) -> #abs(#0())
            compare#3(@r,@x,@y) -> compare#4(#equal(@r,#0()),@r,@x,@y)
            compare#4(#false(),@r,@x,@y) -> @r
            compare#4(#true(),@r,@x,@y) -> compare#5(#less(@x,@y),@x,@y)
            compare#5(#false(),@x,@y) -> compare#6(#greater(@x,@y))
            compare#5(#true(),@x,@y) -> -(#0(),#pos(#s(#0())))
            compare#6(#false()) -> #abs(#0())
            compare#6(#true()) -> #abs(#pos(#s(#0())))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            leq(@b1,@b2) -> #less(compare(@b1,@b2),#pos(#s(#0())))
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            mult3(@b1,@b2,@b3) -> mult(mult(@b1,@b2),@b2)
            sub(@b1,@b2) -> sub#1(sub'(@b1,@b2,#abs(#0())))
            sub#1(tuple#2(@b,@_@1)) -> @b
            sub'(@b1,@b2,@r) -> sub'#1(@b1,@b2,@r)
            sub'#1(::(@x,@xs),@b2,@r) -> sub'#2(@b2,@r,@x,@xs)
            sub'#1(nil(),@b2,@r) -> tuple#2(nil(),@r)
            sub'#2(::(@y,@ys),@r,@x,@xs) -> sub'#3(diff(@x,@y,@r),@xs,@ys)
            sub'#2(nil(),@r,@x,@xs) -> tuple#2(nil(),@r)
            sub'#3(tuple#2(@z,@r'),@xs,@ys) -> sub'#4(sub'(@xs,@ys,@r'),@z)
            sub'#4(tuple#2(@zs,@s),@z) -> tuple#2(sub'#5(#equal(@s,#pos(#s(#0()))),@z,@zs),@s)
            sub'#5(#false(),@z,@zs) -> ::(@z,@zs)
            sub'#5(#true(),@z,@zs) -> ::(#abs(#0()),@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Weak TRS:
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1} / {#0/0,#EQ/0,#GT/0,#LT/0
            ,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs,#add,#and,#ckgt,#cklt,#compare,#div,#eq,#equal
            ,#greater,#less,#mult,#natdiv,#natmult,#natsub,#pred,#sub,#succ,*,+,-,add,add',add'#1,add'#2,add'#3,bitToInt
            ,bitToInt',bitToInt'#1,compare,compare#1,compare#2,compare#3,compare#4,compare#5,compare#6,diff,diff#1,div
            ,leq,mod,mult,mult#1,mult#2,mult#3,mult3,sub,sub#1,sub',sub'#1,sub'#2,sub'#3,sub'#4,sub'#5,sum,sum#1,sum#2
            ,sum#3,sum#4} and constructors {#0,#EQ,#GT,#LT,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Sum {left = someStrategy, right = someStrategy}
    + Details:
        ()
* Step 2: DependencyPairs WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict TRS:
            #abs(#0()) -> #0()
            #abs(#neg(@x)) -> #pos(@x)
            #abs(#pos(@x)) -> #pos(@x)
            #abs(#s(@x)) -> #pos(#s(@x))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            bitToInt(@b) -> bitToInt'(@b,#abs(#pos(#s(#0()))))
            bitToInt'(@b,@n) -> bitToInt'#1(@b,@n)
            bitToInt'#1(::(@x,@xs),@n) -> +(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
            bitToInt'#1(nil(),@n) -> #abs(#0())
            compare(@b1,@b2) -> compare#1(@b1,@b2)
            compare#1(::(@x,@xs),@b2) -> compare#2(@b2,@x,@xs)
            compare#1(nil(),@b2) -> #abs(#0())
            compare#2(::(@y,@ys),@x,@xs) -> compare#3(compare(@xs,@ys),@x,@y)
            compare#2(nil(),@x,@xs) -> #abs(#0())
            compare#3(@r,@x,@y) -> compare#4(#equal(@r,#0()),@r,@x,@y)
            compare#4(#false(),@r,@x,@y) -> @r
            compare#4(#true(),@r,@x,@y) -> compare#5(#less(@x,@y),@x,@y)
            compare#5(#false(),@x,@y) -> compare#6(#greater(@x,@y))
            compare#5(#true(),@x,@y) -> -(#0(),#pos(#s(#0())))
            compare#6(#false()) -> #abs(#0())
            compare#6(#true()) -> #abs(#pos(#s(#0())))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            leq(@b1,@b2) -> #less(compare(@b1,@b2),#pos(#s(#0())))
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            mult3(@b1,@b2,@b3) -> mult(mult(@b1,@b2),@b2)
            sub(@b1,@b2) -> sub#1(sub'(@b1,@b2,#abs(#0())))
            sub#1(tuple#2(@b,@_@1)) -> @b
            sub'(@b1,@b2,@r) -> sub'#1(@b1,@b2,@r)
            sub'#1(::(@x,@xs),@b2,@r) -> sub'#2(@b2,@r,@x,@xs)
            sub'#1(nil(),@b2,@r) -> tuple#2(nil(),@r)
            sub'#2(::(@y,@ys),@r,@x,@xs) -> sub'#3(diff(@x,@y,@r),@xs,@ys)
            sub'#2(nil(),@r,@x,@xs) -> tuple#2(nil(),@r)
            sub'#3(tuple#2(@z,@r'),@xs,@ys) -> sub'#4(sub'(@xs,@ys,@r'),@z)
            sub'#4(tuple#2(@zs,@s),@z) -> tuple#2(sub'#5(#equal(@s,#pos(#s(#0()))),@z,@zs),@s)
            sub'#5(#false(),@z,@zs) -> ::(@z,@zs)
            sub'#5(#true(),@z,@zs) -> ::(#abs(#0()),@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Weak TRS:
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1} / {#0/0,#EQ/0,#GT/0,#LT/0
            ,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs,#add,#and,#ckgt,#cklt,#compare,#div,#eq,#equal
            ,#greater,#less,#mult,#natdiv,#natmult,#natsub,#pred,#sub,#succ,*,+,-,add,add',add'#1,add'#2,add'#3,bitToInt
            ,bitToInt',bitToInt'#1,compare,compare#1,compare#2,compare#3,compare#4,compare#5,compare#6,diff,diff#1,div
            ,leq,mod,mult,mult#1,mult#2,mult#3,mult3,sub,sub#1,sub',sub'#1,sub'#2,sub'#3,sub'#4,sub'#5,sum,sum#1,sum#2
            ,sum#3,sum#4} and constructors {#0,#EQ,#GT,#LT,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        DependencyPairs {dpKind_ = DT}
    + Details:
        We add the following dependency tuples:
        
        Strict DPs
          #abs#(#0()) -> c_1()
          #abs#(#neg(@x)) -> c_2()
          #abs#(#pos(@x)) -> c_3()
          #abs#(#s(@x)) -> c_4()
          #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
          *#(@x,@y) -> c_8(#mult#(@x,@y))
          +#(@x,@y) -> c_9(#add#(@x,@y))
          -#(@x,@y) -> c_10(#sub#(@x,@y))
          add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          add'#1#(nil(),@b2,@r) -> c_14()
          add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
          add'#2#(nil(),@r,@x,@xs) -> c_16()
          add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
          bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                             ,*#(@x,@n)
                                             ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                             ,*#(@n,#pos(#s(#s(#0())))))
          bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
          compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
          compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
          compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
          compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
          compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
          compare#4#(#false(),@r,@x,@y) -> c_28()
          compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
          compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
          compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
          compare#6#(#false()) -> c_32(#abs#(#0()))
          compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
          diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                 ,+#(+(@x,@y),@r)
                                 ,+#(@x,@y)
                                 ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                 ,#less#(-(-(@x,@y),@r),#0())
                                 ,-#(-(@x,@y),@r)
                                 ,-#(@x,@y))
          diff#1#(#false()) -> c_35(#abs#(#0()))
          diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
          div#(@x,@y) -> c_37(#div#(@x,@y))
          leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
          mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
          mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
          mult#1#(nil(),@b2) -> c_42()
          mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
          mult#3#(#false(),@b2,@zs) -> c_44()
          mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          sub#1#(tuple#2(@b,@_@1)) -> c_48()
          sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          sub'#1#(nil(),@b2,@r) -> c_51()
          sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
          sub'#2#(nil(),@r,@x,@xs) -> c_53()
          sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
          sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs),#equal#(@s,#pos(#s(#0()))))
          sub'#5#(#false(),@z,@zs) -> c_56()
          sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
          sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
          sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
          sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
          sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
          sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
          sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
          sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
          sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
        Weak DPs
          #add#(#0(),@y) -> c_66()
          #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
          #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
          #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          #and#(#false(),#false()) -> c_71()
          #and#(#false(),#true()) -> c_72()
          #and#(#true(),#false()) -> c_73()
          #and#(#true(),#true()) -> c_74()
          #ckgt#(#EQ()) -> c_75()
          #ckgt#(#GT()) -> c_76()
          #ckgt#(#LT()) -> c_77()
          #cklt#(#EQ()) -> c_78()
          #cklt#(#GT()) -> c_79()
          #cklt#(#LT()) -> c_80()
          #compare#(#0(),#0()) -> c_81()
          #compare#(#0(),#neg(@y)) -> c_82()
          #compare#(#0(),#pos(@y)) -> c_83()
          #compare#(#0(),#s(@y)) -> c_84()
          #compare#(#neg(@x),#0()) -> c_85()
          #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
          #compare#(#neg(@x),#pos(@y)) -> c_87()
          #compare#(#pos(@x),#0()) -> c_88()
          #compare#(#pos(@x),#neg(@y)) -> c_89()
          #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
          #compare#(#s(@x),#0()) -> c_91()
          #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
          #div#(#0(),#0()) -> c_93()
          #div#(#0(),#neg(@y)) -> c_94()
          #div#(#0(),#pos(@y)) -> c_95()
          #div#(#neg(@x),#0()) -> c_96()
          #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
          #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
          #div#(#pos(@x),#0()) -> c_99()
          #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
          #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
          #eq#(#0(),#0()) -> c_102()
          #eq#(#0(),#neg(@y)) -> c_103()
          #eq#(#0(),#pos(@y)) -> c_104()
          #eq#(#0(),#s(@y)) -> c_105()
          #eq#(#neg(@x),#0()) -> c_106()
          #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
          #eq#(#neg(@x),#pos(@y)) -> c_108()
          #eq#(#pos(@x),#0()) -> c_109()
          #eq#(#pos(@x),#neg(@y)) -> c_110()
          #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
          #eq#(#s(@x),#0()) -> c_112()
          #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
          #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                    ,#eq#(@x_1,@y_1)
                                                    ,#eq#(@x_2,@y_2))
          #eq#(::(@x_1,@x_2),nil()) -> c_115()
          #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
          #eq#(nil(),::(@y_1,@y_2)) -> c_117()
          #eq#(nil(),nil()) -> c_118()
          #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
          #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
          #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
          #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                              ,#eq#(@x_1,@y_1)
                                                              ,#eq#(@x_2,@y_2))
          #mult#(#0(),#0()) -> c_123()
          #mult#(#0(),#neg(@y)) -> c_124()
          #mult#(#0(),#pos(@y)) -> c_125()
          #mult#(#neg(@x),#0()) -> c_126()
          #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
          #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
          #mult#(#pos(@x),#0()) -> c_129()
          #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
          #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
          #natdiv#(#0(),#0()) -> c_132()
          #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
          #natmult#(#0(),@y) -> c_134()
          #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
          #natsub#(@x,#0()) -> c_136()
          #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
          #pred#(#0()) -> c_138()
          #pred#(#neg(#s(@x))) -> c_139()
          #pred#(#pos(#s(#0()))) -> c_140()
          #pred#(#pos(#s(#s(@x)))) -> c_141()
          #sub#(@x,#0()) -> c_142()
          #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
          #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
          #succ#(#0()) -> c_145()
          #succ#(#neg(#s(#0()))) -> c_146()
          #succ#(#neg(#s(#s(@x)))) -> c_147()
          #succ#(#pos(#s(@x))) -> c_148()
        
        and mark the set of starting terms.
* Step 3: UsableRules WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            #abs#(#0()) -> c_1()
            #abs#(#neg(@x)) -> c_2()
            #abs#(#pos(@x)) -> c_3()
            #abs#(#s(@x)) -> c_4()
            #equal#(@x,@y) -> c_5(#eq#(@x,@y))
            #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
            *#(@x,@y) -> c_8(#mult#(@x,@y))
            +#(@x,@y) -> c_9(#add#(@x,@y))
            -#(@x,@y) -> c_10(#sub#(@x,@y))
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#1#(nil(),@b2,@r) -> c_14()
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
            add'#2#(nil(),@r,@x,@xs) -> c_16()
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                               ,*#(@x,@n)
                                               ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                               ,*#(@n,#pos(#s(#s(#0())))))
            bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
            compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
            compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
            compare#4#(#false(),@r,@x,@y) -> c_28()
            compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
            compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
            compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
            compare#6#(#false()) -> c_32(#abs#(#0()))
            compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
            diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                   ,+#(+(@x,@y),@r)
                                   ,+#(@x,@y)
                                   ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                   ,#less#(-(-(@x,@y),@r),#0())
                                   ,-#(-(@x,@y),@r)
                                   ,-#(@x,@y))
            diff#1#(#false()) -> c_35(#abs#(#0()))
            diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
            div#(@x,@y) -> c_37(#div#(@x,@y))
            leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
            mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
            mult#1#(nil(),@b2) -> c_42()
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
            mult#3#(#false(),@b2,@zs) -> c_44()
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            sub#1#(tuple#2(@b,@_@1)) -> c_48()
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#1#(nil(),@b2,@r) -> c_51()
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
            sub'#2#(nil(),@r,@x,@xs) -> c_53()
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
            sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs),#equal#(@s,#pos(#s(#0()))))
            sub'#5#(#false(),@z,@zs) -> c_56()
            sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
            sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
            sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
            sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
            sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
            sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
            sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
            sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
            sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
        - Weak DPs:
            #add#(#0(),@y) -> c_66()
            #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #and#(#false(),#false()) -> c_71()
            #and#(#false(),#true()) -> c_72()
            #and#(#true(),#false()) -> c_73()
            #and#(#true(),#true()) -> c_74()
            #ckgt#(#EQ()) -> c_75()
            #ckgt#(#GT()) -> c_76()
            #ckgt#(#LT()) -> c_77()
            #cklt#(#EQ()) -> c_78()
            #cklt#(#GT()) -> c_79()
            #cklt#(#LT()) -> c_80()
            #compare#(#0(),#0()) -> c_81()
            #compare#(#0(),#neg(@y)) -> c_82()
            #compare#(#0(),#pos(@y)) -> c_83()
            #compare#(#0(),#s(@y)) -> c_84()
            #compare#(#neg(@x),#0()) -> c_85()
            #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_87()
            #compare#(#pos(@x),#0()) -> c_88()
            #compare#(#pos(@x),#neg(@y)) -> c_89()
            #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_91()
            #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
            #div#(#0(),#0()) -> c_93()
            #div#(#0(),#neg(@y)) -> c_94()
            #div#(#0(),#pos(@y)) -> c_95()
            #div#(#neg(@x),#0()) -> c_96()
            #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
            #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
            #div#(#pos(@x),#0()) -> c_99()
            #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
            #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
            #eq#(#0(),#0()) -> c_102()
            #eq#(#0(),#neg(@y)) -> c_103()
            #eq#(#0(),#pos(@y)) -> c_104()
            #eq#(#0(),#s(@y)) -> c_105()
            #eq#(#neg(@x),#0()) -> c_106()
            #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_108()
            #eq#(#pos(@x),#0()) -> c_109()
            #eq#(#pos(@x),#neg(@y)) -> c_110()
            #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_112()
            #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                      ,#eq#(@x_1,@y_1)
                                                      ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_115()
            #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
            #eq#(nil(),::(@y_1,@y_2)) -> c_117()
            #eq#(nil(),nil()) -> c_118()
            #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
            #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
            #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
            #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                ,#eq#(@x_1,@y_1)
                                                                ,#eq#(@x_2,@y_2))
            #mult#(#0(),#0()) -> c_123()
            #mult#(#0(),#neg(@y)) -> c_124()
            #mult#(#0(),#pos(@y)) -> c_125()
            #mult#(#neg(@x),#0()) -> c_126()
            #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
            #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
            #mult#(#pos(@x),#0()) -> c_129()
            #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
            #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
            #natdiv#(#0(),#0()) -> c_132()
            #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
            #natmult#(#0(),@y) -> c_134()
            #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
            #natsub#(@x,#0()) -> c_136()
            #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
            #pred#(#0()) -> c_138()
            #pred#(#neg(#s(@x))) -> c_139()
            #pred#(#pos(#s(#0()))) -> c_140()
            #pred#(#pos(#s(#s(@x)))) -> c_141()
            #sub#(@x,#0()) -> c_142()
            #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
            #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
            #succ#(#0()) -> c_145()
            #succ#(#neg(#s(#0()))) -> c_146()
            #succ#(#neg(#s(#s(@x)))) -> c_147()
            #succ#(#pos(#s(@x))) -> c_148()
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#neg(@x)) -> #pos(@x)
            #abs(#pos(@x)) -> #pos(@x)
            #abs(#s(@x)) -> #pos(#s(@x))
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            bitToInt(@b) -> bitToInt'(@b,#abs(#pos(#s(#0()))))
            bitToInt'(@b,@n) -> bitToInt'#1(@b,@n)
            bitToInt'#1(::(@x,@xs),@n) -> +(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
            bitToInt'#1(nil(),@n) -> #abs(#0())
            compare(@b1,@b2) -> compare#1(@b1,@b2)
            compare#1(::(@x,@xs),@b2) -> compare#2(@b2,@x,@xs)
            compare#1(nil(),@b2) -> #abs(#0())
            compare#2(::(@y,@ys),@x,@xs) -> compare#3(compare(@xs,@ys),@x,@y)
            compare#2(nil(),@x,@xs) -> #abs(#0())
            compare#3(@r,@x,@y) -> compare#4(#equal(@r,#0()),@r,@x,@y)
            compare#4(#false(),@r,@x,@y) -> @r
            compare#4(#true(),@r,@x,@y) -> compare#5(#less(@x,@y),@x,@y)
            compare#5(#false(),@x,@y) -> compare#6(#greater(@x,@y))
            compare#5(#true(),@x,@y) -> -(#0(),#pos(#s(#0())))
            compare#6(#false()) -> #abs(#0())
            compare#6(#true()) -> #abs(#pos(#s(#0())))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            leq(@b1,@b2) -> #less(compare(@b1,@b2),#pos(#s(#0())))
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            mult3(@b1,@b2,@b3) -> mult(mult(@b1,@b2),@b2)
            sub(@b1,@b2) -> sub#1(sub'(@b1,@b2,#abs(#0())))
            sub#1(tuple#2(@b,@_@1)) -> @b
            sub'(@b1,@b2,@r) -> sub'#1(@b1,@b2,@r)
            sub'#1(::(@x,@xs),@b2,@r) -> sub'#2(@b2,@r,@x,@xs)
            sub'#1(nil(),@b2,@r) -> tuple#2(nil(),@r)
            sub'#2(::(@y,@ys),@r,@x,@xs) -> sub'#3(diff(@x,@y,@r),@xs,@ys)
            sub'#2(nil(),@r,@x,@xs) -> tuple#2(nil(),@r)
            sub'#3(tuple#2(@z,@r'),@xs,@ys) -> sub'#4(sub'(@xs,@ys,@r'),@z)
            sub'#4(tuple#2(@zs,@s),@z) -> tuple#2(sub'#5(#equal(@s,#pos(#s(#0()))),@z,@zs),@s)
            sub'#5(#false(),@z,@zs) -> ::(@z,@zs)
            sub'#5(#true(),@z,@zs) -> ::(#abs(#0()),@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/2,c_12/1,c_13/1,c_14/0,c_15/2
            ,c_16/0,c_17/1,c_18/2,c_19/1,c_20/4,c_21/1,c_22/1,c_23/1,c_24/1,c_25/2,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/2,c_39/3,c_40/1,c_41/3,c_42/0,c_43/2,c_44/0,c_45/1
            ,c_46/2,c_47/3,c_48/0,c_49/1,c_50/1,c_51/0,c_52/2,c_53/0,c_54/2,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #abs(#0()) -> #0()
          #abs(#pos(@x)) -> #pos(@x)
          #add(#0(),@y) -> @y
          #add(#neg(#s(#0())),@y) -> #pred(@y)
          #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
          #add(#pos(#s(#0())),@y) -> #succ(@y)
          #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
          #and(#false(),#false()) -> #false()
          #and(#false(),#true()) -> #false()
          #and(#true(),#false()) -> #false()
          #and(#true(),#true()) -> #true()
          #ckgt(#EQ()) -> #false()
          #ckgt(#GT()) -> #true()
          #ckgt(#LT()) -> #false()
          #cklt(#EQ()) -> #false()
          #cklt(#GT()) -> #false()
          #cklt(#LT()) -> #true()
          #compare(#0(),#0()) -> #EQ()
          #compare(#0(),#neg(@y)) -> #GT()
          #compare(#0(),#pos(@y)) -> #LT()
          #compare(#0(),#s(@y)) -> #LT()
          #compare(#neg(@x),#0()) -> #LT()
          #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
          #compare(#neg(@x),#pos(@y)) -> #LT()
          #compare(#pos(@x),#0()) -> #GT()
          #compare(#pos(@x),#neg(@y)) -> #GT()
          #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
          #compare(#s(@x),#0()) -> #GT()
          #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
          #div(#0(),#0()) -> #divByZero()
          #div(#0(),#neg(@y)) -> #0()
          #div(#0(),#pos(@y)) -> #0()
          #div(#neg(@x),#0()) -> #divByZero()
          #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
          #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
          #div(#pos(@x),#0()) -> #divByZero()
          #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
          #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
          #eq(#0(),#0()) -> #true()
          #eq(#0(),#neg(@y)) -> #false()
          #eq(#0(),#pos(@y)) -> #false()
          #eq(#0(),#s(@y)) -> #false()
          #eq(#neg(@x),#0()) -> #false()
          #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
          #eq(#neg(@x),#pos(@y)) -> #false()
          #eq(#pos(@x),#0()) -> #false()
          #eq(#pos(@x),#neg(@y)) -> #false()
          #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
          #eq(#s(@x),#0()) -> #false()
          #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
          #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #eq(::(@x_1,@x_2),nil()) -> #false()
          #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
          #eq(nil(),::(@y_1,@y_2)) -> #false()
          #eq(nil(),nil()) -> #true()
          #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
          #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #equal(@x,@y) -> #eq(@x,@y)
          #greater(@x,@y) -> #ckgt(#compare(@x,@y))
          #less(@x,@y) -> #cklt(#compare(@x,@y))
          #mult(#0(),#0()) -> #0()
          #mult(#0(),#neg(@y)) -> #0()
          #mult(#0(),#pos(@y)) -> #0()
          #mult(#neg(@x),#0()) -> #0()
          #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
          #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#0()) -> #0()
          #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
          #natdiv(#0(),#0()) -> #divByZero()
          #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
          #natmult(#0(),@y) -> #0()
          #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
          #natsub(@x,#0()) -> @x
          #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
          #pred(#0()) -> #neg(#s(#0()))
          #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
          #pred(#pos(#s(#0()))) -> #0()
          #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
          #sub(@x,#0()) -> @x
          #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
          #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
          #succ(#0()) -> #pos(#s(#0()))
          #succ(#neg(#s(#0()))) -> #0()
          #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
          #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
          *(@x,@y) -> #mult(@x,@y)
          +(@x,@y) -> #add(@x,@y)
          -(@x,@y) -> #sub(@x,@y)
          add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
          add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
          add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
          add'#1(nil(),@b2,@r) -> nil()
          add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
          add'#2(nil(),@r,@x,@xs) -> nil()
          add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
          bitToInt'(@b,@n) -> bitToInt'#1(@b,@n)
          bitToInt'#1(::(@x,@xs),@n) -> +(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
          bitToInt'#1(nil(),@n) -> #abs(#0())
          compare(@b1,@b2) -> compare#1(@b1,@b2)
          compare#1(::(@x,@xs),@b2) -> compare#2(@b2,@x,@xs)
          compare#1(nil(),@b2) -> #abs(#0())
          compare#2(::(@y,@ys),@x,@xs) -> compare#3(compare(@xs,@ys),@x,@y)
          compare#2(nil(),@x,@xs) -> #abs(#0())
          compare#3(@r,@x,@y) -> compare#4(#equal(@r,#0()),@r,@x,@y)
          compare#4(#false(),@r,@x,@y) -> @r
          compare#4(#true(),@r,@x,@y) -> compare#5(#less(@x,@y),@x,@y)
          compare#5(#false(),@x,@y) -> compare#6(#greater(@x,@y))
          compare#5(#true(),@x,@y) -> -(#0(),#pos(#s(#0())))
          compare#6(#false()) -> #abs(#0())
          compare#6(#true()) -> #abs(#pos(#s(#0())))
          diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
          diff#1(#false()) -> #abs(#0())
          diff#1(#true()) -> #abs(#pos(#s(#0())))
          div(@x,@y) -> #div(@x,@y)
          mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
          mult(@b1,@b2) -> mult#1(@b1,@b2)
          mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
          mult#1(nil(),@b2) -> nil()
          mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
          mult#3(#false(),@b2,@zs) -> @zs
          mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
          sub'(@b1,@b2,@r) -> sub'#1(@b1,@b2,@r)
          sub'#1(::(@x,@xs),@b2,@r) -> sub'#2(@b2,@r,@x,@xs)
          sub'#1(nil(),@b2,@r) -> tuple#2(nil(),@r)
          sub'#2(::(@y,@ys),@r,@x,@xs) -> sub'#3(diff(@x,@y,@r),@xs,@ys)
          sub'#2(nil(),@r,@x,@xs) -> tuple#2(nil(),@r)
          sub'#3(tuple#2(@z,@r'),@xs,@ys) -> sub'#4(sub'(@xs,@ys,@r'),@z)
          sub'#4(tuple#2(@zs,@s),@z) -> tuple#2(sub'#5(#equal(@s,#pos(#s(#0()))),@z,@zs),@s)
          sub'#5(#false(),@z,@zs) -> ::(@z,@zs)
          sub'#5(#true(),@z,@zs) -> ::(#abs(#0()),@zs)
          sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
          sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
          sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
          sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
          sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
          sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
          sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
          sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
          #abs#(#0()) -> c_1()
          #abs#(#neg(@x)) -> c_2()
          #abs#(#pos(@x)) -> c_3()
          #abs#(#s(@x)) -> c_4()
          #add#(#0(),@y) -> c_66()
          #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
          #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
          #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          #and#(#false(),#false()) -> c_71()
          #and#(#false(),#true()) -> c_72()
          #and#(#true(),#false()) -> c_73()
          #and#(#true(),#true()) -> c_74()
          #ckgt#(#EQ()) -> c_75()
          #ckgt#(#GT()) -> c_76()
          #ckgt#(#LT()) -> c_77()
          #cklt#(#EQ()) -> c_78()
          #cklt#(#GT()) -> c_79()
          #cklt#(#LT()) -> c_80()
          #compare#(#0(),#0()) -> c_81()
          #compare#(#0(),#neg(@y)) -> c_82()
          #compare#(#0(),#pos(@y)) -> c_83()
          #compare#(#0(),#s(@y)) -> c_84()
          #compare#(#neg(@x),#0()) -> c_85()
          #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
          #compare#(#neg(@x),#pos(@y)) -> c_87()
          #compare#(#pos(@x),#0()) -> c_88()
          #compare#(#pos(@x),#neg(@y)) -> c_89()
          #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
          #compare#(#s(@x),#0()) -> c_91()
          #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
          #div#(#0(),#0()) -> c_93()
          #div#(#0(),#neg(@y)) -> c_94()
          #div#(#0(),#pos(@y)) -> c_95()
          #div#(#neg(@x),#0()) -> c_96()
          #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
          #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
          #div#(#pos(@x),#0()) -> c_99()
          #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
          #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
          #eq#(#0(),#0()) -> c_102()
          #eq#(#0(),#neg(@y)) -> c_103()
          #eq#(#0(),#pos(@y)) -> c_104()
          #eq#(#0(),#s(@y)) -> c_105()
          #eq#(#neg(@x),#0()) -> c_106()
          #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
          #eq#(#neg(@x),#pos(@y)) -> c_108()
          #eq#(#pos(@x),#0()) -> c_109()
          #eq#(#pos(@x),#neg(@y)) -> c_110()
          #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
          #eq#(#s(@x),#0()) -> c_112()
          #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
          #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                    ,#eq#(@x_1,@y_1)
                                                    ,#eq#(@x_2,@y_2))
          #eq#(::(@x_1,@x_2),nil()) -> c_115()
          #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
          #eq#(nil(),::(@y_1,@y_2)) -> c_117()
          #eq#(nil(),nil()) -> c_118()
          #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
          #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
          #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
          #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                              ,#eq#(@x_1,@y_1)
                                                              ,#eq#(@x_2,@y_2))
          #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
          #mult#(#0(),#0()) -> c_123()
          #mult#(#0(),#neg(@y)) -> c_124()
          #mult#(#0(),#pos(@y)) -> c_125()
          #mult#(#neg(@x),#0()) -> c_126()
          #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
          #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
          #mult#(#pos(@x),#0()) -> c_129()
          #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
          #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
          #natdiv#(#0(),#0()) -> c_132()
          #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
          #natmult#(#0(),@y) -> c_134()
          #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
          #natsub#(@x,#0()) -> c_136()
          #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
          #pred#(#0()) -> c_138()
          #pred#(#neg(#s(@x))) -> c_139()
          #pred#(#pos(#s(#0()))) -> c_140()
          #pred#(#pos(#s(#s(@x)))) -> c_141()
          #sub#(@x,#0()) -> c_142()
          #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
          #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
          #succ#(#0()) -> c_145()
          #succ#(#neg(#s(#0()))) -> c_146()
          #succ#(#neg(#s(#s(@x)))) -> c_147()
          #succ#(#pos(#s(@x))) -> c_148()
          *#(@x,@y) -> c_8(#mult#(@x,@y))
          +#(@x,@y) -> c_9(#add#(@x,@y))
          -#(@x,@y) -> c_10(#sub#(@x,@y))
          add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          add'#1#(nil(),@b2,@r) -> c_14()
          add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
          add'#2#(nil(),@r,@x,@xs) -> c_16()
          add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
          bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                             ,*#(@x,@n)
                                             ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                             ,*#(@n,#pos(#s(#s(#0())))))
          bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
          compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
          compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
          compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
          compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
          compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
          compare#4#(#false(),@r,@x,@y) -> c_28()
          compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
          compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
          compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
          compare#6#(#false()) -> c_32(#abs#(#0()))
          compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
          diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                 ,+#(+(@x,@y),@r)
                                 ,+#(@x,@y)
                                 ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                 ,#less#(-(-(@x,@y),@r),#0())
                                 ,-#(-(@x,@y),@r)
                                 ,-#(@x,@y))
          diff#1#(#false()) -> c_35(#abs#(#0()))
          diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
          div#(@x,@y) -> c_37(#div#(@x,@y))
          leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
          mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
          mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
          mult#1#(nil(),@b2) -> c_42()
          mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
          mult#3#(#false(),@b2,@zs) -> c_44()
          mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          sub#1#(tuple#2(@b,@_@1)) -> c_48()
          sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          sub'#1#(nil(),@b2,@r) -> c_51()
          sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
          sub'#2#(nil(),@r,@x,@xs) -> c_53()
          sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
          sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs),#equal#(@s,#pos(#s(#0()))))
          sub'#5#(#false(),@z,@zs) -> c_56()
          sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
          sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
          sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
          sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
          sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
          sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
          sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
          sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
          sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
* Step 4: PredecessorEstimation WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            #abs#(#0()) -> c_1()
            #abs#(#neg(@x)) -> c_2()
            #abs#(#pos(@x)) -> c_3()
            #abs#(#s(@x)) -> c_4()
            #equal#(@x,@y) -> c_5(#eq#(@x,@y))
            #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
            *#(@x,@y) -> c_8(#mult#(@x,@y))
            +#(@x,@y) -> c_9(#add#(@x,@y))
            -#(@x,@y) -> c_10(#sub#(@x,@y))
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#1#(nil(),@b2,@r) -> c_14()
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
            add'#2#(nil(),@r,@x,@xs) -> c_16()
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                               ,*#(@x,@n)
                                               ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                               ,*#(@n,#pos(#s(#s(#0())))))
            bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
            compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
            compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
            compare#4#(#false(),@r,@x,@y) -> c_28()
            compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
            compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
            compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
            compare#6#(#false()) -> c_32(#abs#(#0()))
            compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
            diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                   ,+#(+(@x,@y),@r)
                                   ,+#(@x,@y)
                                   ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                   ,#less#(-(-(@x,@y),@r),#0())
                                   ,-#(-(@x,@y),@r)
                                   ,-#(@x,@y))
            diff#1#(#false()) -> c_35(#abs#(#0()))
            diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
            div#(@x,@y) -> c_37(#div#(@x,@y))
            leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
            mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
            mult#1#(nil(),@b2) -> c_42()
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
            mult#3#(#false(),@b2,@zs) -> c_44()
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            sub#1#(tuple#2(@b,@_@1)) -> c_48()
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#1#(nil(),@b2,@r) -> c_51()
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
            sub'#2#(nil(),@r,@x,@xs) -> c_53()
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
            sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs),#equal#(@s,#pos(#s(#0()))))
            sub'#5#(#false(),@z,@zs) -> c_56()
            sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
            sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
            sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
            sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
            sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
            sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
            sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
            sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
            sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
        - Weak DPs:
            #add#(#0(),@y) -> c_66()
            #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #and#(#false(),#false()) -> c_71()
            #and#(#false(),#true()) -> c_72()
            #and#(#true(),#false()) -> c_73()
            #and#(#true(),#true()) -> c_74()
            #ckgt#(#EQ()) -> c_75()
            #ckgt#(#GT()) -> c_76()
            #ckgt#(#LT()) -> c_77()
            #cklt#(#EQ()) -> c_78()
            #cklt#(#GT()) -> c_79()
            #cklt#(#LT()) -> c_80()
            #compare#(#0(),#0()) -> c_81()
            #compare#(#0(),#neg(@y)) -> c_82()
            #compare#(#0(),#pos(@y)) -> c_83()
            #compare#(#0(),#s(@y)) -> c_84()
            #compare#(#neg(@x),#0()) -> c_85()
            #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_87()
            #compare#(#pos(@x),#0()) -> c_88()
            #compare#(#pos(@x),#neg(@y)) -> c_89()
            #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_91()
            #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
            #div#(#0(),#0()) -> c_93()
            #div#(#0(),#neg(@y)) -> c_94()
            #div#(#0(),#pos(@y)) -> c_95()
            #div#(#neg(@x),#0()) -> c_96()
            #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
            #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
            #div#(#pos(@x),#0()) -> c_99()
            #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
            #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
            #eq#(#0(),#0()) -> c_102()
            #eq#(#0(),#neg(@y)) -> c_103()
            #eq#(#0(),#pos(@y)) -> c_104()
            #eq#(#0(),#s(@y)) -> c_105()
            #eq#(#neg(@x),#0()) -> c_106()
            #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_108()
            #eq#(#pos(@x),#0()) -> c_109()
            #eq#(#pos(@x),#neg(@y)) -> c_110()
            #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_112()
            #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                      ,#eq#(@x_1,@y_1)
                                                      ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_115()
            #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
            #eq#(nil(),::(@y_1,@y_2)) -> c_117()
            #eq#(nil(),nil()) -> c_118()
            #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
            #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
            #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
            #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                ,#eq#(@x_1,@y_1)
                                                                ,#eq#(@x_2,@y_2))
            #mult#(#0(),#0()) -> c_123()
            #mult#(#0(),#neg(@y)) -> c_124()
            #mult#(#0(),#pos(@y)) -> c_125()
            #mult#(#neg(@x),#0()) -> c_126()
            #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
            #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
            #mult#(#pos(@x),#0()) -> c_129()
            #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
            #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
            #natdiv#(#0(),#0()) -> c_132()
            #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
            #natmult#(#0(),@y) -> c_134()
            #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
            #natsub#(@x,#0()) -> c_136()
            #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
            #pred#(#0()) -> c_138()
            #pred#(#neg(#s(@x))) -> c_139()
            #pred#(#pos(#s(#0()))) -> c_140()
            #pred#(#pos(#s(#s(@x)))) -> c_141()
            #sub#(@x,#0()) -> c_142()
            #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
            #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
            #succ#(#0()) -> c_145()
            #succ#(#neg(#s(#0()))) -> c_146()
            #succ#(#neg(#s(#s(@x)))) -> c_147()
            #succ#(#pos(#s(@x))) -> c_148()
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            bitToInt'(@b,@n) -> bitToInt'#1(@b,@n)
            bitToInt'#1(::(@x,@xs),@n) -> +(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
            bitToInt'#1(nil(),@n) -> #abs(#0())
            compare(@b1,@b2) -> compare#1(@b1,@b2)
            compare#1(::(@x,@xs),@b2) -> compare#2(@b2,@x,@xs)
            compare#1(nil(),@b2) -> #abs(#0())
            compare#2(::(@y,@ys),@x,@xs) -> compare#3(compare(@xs,@ys),@x,@y)
            compare#2(nil(),@x,@xs) -> #abs(#0())
            compare#3(@r,@x,@y) -> compare#4(#equal(@r,#0()),@r,@x,@y)
            compare#4(#false(),@r,@x,@y) -> @r
            compare#4(#true(),@r,@x,@y) -> compare#5(#less(@x,@y),@x,@y)
            compare#5(#false(),@x,@y) -> compare#6(#greater(@x,@y))
            compare#5(#true(),@x,@y) -> -(#0(),#pos(#s(#0())))
            compare#6(#false()) -> #abs(#0())
            compare#6(#true()) -> #abs(#pos(#s(#0())))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sub'(@b1,@b2,@r) -> sub'#1(@b1,@b2,@r)
            sub'#1(::(@x,@xs),@b2,@r) -> sub'#2(@b2,@r,@x,@xs)
            sub'#1(nil(),@b2,@r) -> tuple#2(nil(),@r)
            sub'#2(::(@y,@ys),@r,@x,@xs) -> sub'#3(diff(@x,@y,@r),@xs,@ys)
            sub'#2(nil(),@r,@x,@xs) -> tuple#2(nil(),@r)
            sub'#3(tuple#2(@z,@r'),@xs,@ys) -> sub'#4(sub'(@xs,@ys,@r'),@z)
            sub'#4(tuple#2(@zs,@s),@z) -> tuple#2(sub'#5(#equal(@s,#pos(#s(#0()))),@z,@zs),@s)
            sub'#5(#false(),@z,@zs) -> ::(@z,@zs)
            sub'#5(#true(),@z,@zs) -> ::(#abs(#0()),@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/2,c_12/1,c_13/1,c_14/0,c_15/2
            ,c_16/0,c_17/1,c_18/2,c_19/1,c_20/4,c_21/1,c_22/1,c_23/1,c_24/1,c_25/2,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/2,c_39/3,c_40/1,c_41/3,c_42/0,c_43/2,c_44/0,c_45/1
            ,c_46/2,c_47/3,c_48/0,c_49/1,c_50/1,c_51/0,c_52/2,c_53/0,c_54/2,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {1,2,3,4,5,6,7,8,9,10,14,16,28,37,42,44,48,51,53,56}
        by application of
          Pre({1,2,3,4,5,6,7,8,9,10,14,16,28,37,42,44,48,51,53,56}) = {11,12,13,18,20,21,24,26,27,29,30,31,32,33,34
          ,35,36,38,39,40,41,43,47,49,50,55,57,58,59,60,61,62,63,64,65}.
        Here rules are labelled as follows:
          1: #abs#(#0()) -> c_1()
          2: #abs#(#neg(@x)) -> c_2()
          3: #abs#(#pos(@x)) -> c_3()
          4: #abs#(#s(@x)) -> c_4()
          5: #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          6: #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          7: #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
          8: *#(@x,@y) -> c_8(#mult#(@x,@y))
          9: +#(@x,@y) -> c_9(#add#(@x,@y))
          10: -#(@x,@y) -> c_10(#sub#(@x,@y))
          11: add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          12: add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          13: add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          14: add'#1#(nil(),@b2,@r) -> c_14()
          15: add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
          16: add'#2#(nil(),@r,@x,@xs) -> c_16()
          17: add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          18: bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
          19: bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          20: bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                                 ,*#(@x,@n)
                                                 ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                                 ,*#(@n,#pos(#s(#s(#0())))))
          21: bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
          22: compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          23: compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
          24: compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
          25: compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
          26: compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
          27: compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
          28: compare#4#(#false(),@r,@x,@y) -> c_28()
          29: compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
          30: compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
          31: compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
          32: compare#6#(#false()) -> c_32(#abs#(#0()))
          33: compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
          34: diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                     ,+#(+(@x,@y),@r)
                                     ,+#(@x,@y)
                                     ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                     ,#less#(-(-(@x,@y),@r),#0())
                                     ,-#(-(@x,@y),@r)
                                     ,-#(@x,@y))
          35: diff#1#(#false()) -> c_35(#abs#(#0()))
          36: diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
          37: div#(@x,@y) -> c_37(#div#(@x,@y))
          38: leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
          39: mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
          40: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          41: mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
          42: mult#1#(nil(),@b2) -> c_42()
          43: mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
          44: mult#3#(#false(),@b2,@zs) -> c_44()
          45: mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          46: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          47: sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          48: sub#1#(tuple#2(@b,@_@1)) -> c_48()
          49: sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          50: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          51: sub'#1#(nil(),@b2,@r) -> c_51()
          52: sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
          53: sub'#2#(nil(),@r,@x,@xs) -> c_53()
          54: sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
          55: sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs)
                                                 ,#equal#(@s,#pos(#s(#0()))))
          56: sub'#5#(#false(),@z,@zs) -> c_56()
          57: sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
          58: sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
          59: sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
          60: sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
          61: sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
          62: sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
          63: sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
          64: sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
          65: sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
          66: #add#(#0(),@y) -> c_66()
          67: #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
          68: #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          69: #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
          70: #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          71: #and#(#false(),#false()) -> c_71()
          72: #and#(#false(),#true()) -> c_72()
          73: #and#(#true(),#false()) -> c_73()
          74: #and#(#true(),#true()) -> c_74()
          75: #ckgt#(#EQ()) -> c_75()
          76: #ckgt#(#GT()) -> c_76()
          77: #ckgt#(#LT()) -> c_77()
          78: #cklt#(#EQ()) -> c_78()
          79: #cklt#(#GT()) -> c_79()
          80: #cklt#(#LT()) -> c_80()
          81: #compare#(#0(),#0()) -> c_81()
          82: #compare#(#0(),#neg(@y)) -> c_82()
          83: #compare#(#0(),#pos(@y)) -> c_83()
          84: #compare#(#0(),#s(@y)) -> c_84()
          85: #compare#(#neg(@x),#0()) -> c_85()
          86: #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
          87: #compare#(#neg(@x),#pos(@y)) -> c_87()
          88: #compare#(#pos(@x),#0()) -> c_88()
          89: #compare#(#pos(@x),#neg(@y)) -> c_89()
          90: #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
          91: #compare#(#s(@x),#0()) -> c_91()
          92: #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
          93: #div#(#0(),#0()) -> c_93()
          94: #div#(#0(),#neg(@y)) -> c_94()
          95: #div#(#0(),#pos(@y)) -> c_95()
          96: #div#(#neg(@x),#0()) -> c_96()
          97: #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
          98: #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
          99: #div#(#pos(@x),#0()) -> c_99()
          100: #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
          101: #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
          102: #eq#(#0(),#0()) -> c_102()
          103: #eq#(#0(),#neg(@y)) -> c_103()
          104: #eq#(#0(),#pos(@y)) -> c_104()
          105: #eq#(#0(),#s(@y)) -> c_105()
          106: #eq#(#neg(@x),#0()) -> c_106()
          107: #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
          108: #eq#(#neg(@x),#pos(@y)) -> c_108()
          109: #eq#(#pos(@x),#0()) -> c_109()
          110: #eq#(#pos(@x),#neg(@y)) -> c_110()
          111: #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
          112: #eq#(#s(@x),#0()) -> c_112()
          113: #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
          114: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                         ,#eq#(@x_1,@y_1)
                                                         ,#eq#(@x_2,@y_2))
          115: #eq#(::(@x_1,@x_2),nil()) -> c_115()
          116: #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
          117: #eq#(nil(),::(@y_1,@y_2)) -> c_117()
          118: #eq#(nil(),nil()) -> c_118()
          119: #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
          120: #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
          121: #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
          122: #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                   ,#eq#(@x_1,@y_1)
                                                                   ,#eq#(@x_2,@y_2))
          123: #mult#(#0(),#0()) -> c_123()
          124: #mult#(#0(),#neg(@y)) -> c_124()
          125: #mult#(#0(),#pos(@y)) -> c_125()
          126: #mult#(#neg(@x),#0()) -> c_126()
          127: #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
          128: #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
          129: #mult#(#pos(@x),#0()) -> c_129()
          130: #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
          131: #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
          132: #natdiv#(#0(),#0()) -> c_132()
          133: #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
          134: #natmult#(#0(),@y) -> c_134()
          135: #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
          136: #natsub#(@x,#0()) -> c_136()
          137: #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
          138: #pred#(#0()) -> c_138()
          139: #pred#(#neg(#s(@x))) -> c_139()
          140: #pred#(#pos(#s(#0()))) -> c_140()
          141: #pred#(#pos(#s(#s(@x)))) -> c_141()
          142: #sub#(@x,#0()) -> c_142()
          143: #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
          144: #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
          145: #succ#(#0()) -> c_145()
          146: #succ#(#neg(#s(#0()))) -> c_146()
          147: #succ#(#neg(#s(#s(@x)))) -> c_147()
          148: #succ#(#pos(#s(@x))) -> c_148()
* Step 5: PredecessorEstimation WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                               ,*#(@x,@n)
                                               ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                               ,*#(@n,#pos(#s(#s(#0())))))
            bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
            compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
            compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
            compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
            compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
            compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
            compare#6#(#false()) -> c_32(#abs#(#0()))
            compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
            diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                   ,+#(+(@x,@y),@r)
                                   ,+#(@x,@y)
                                   ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                   ,#less#(-(-(@x,@y),@r),#0())
                                   ,-#(-(@x,@y),@r)
                                   ,-#(@x,@y))
            diff#1#(#false()) -> c_35(#abs#(#0()))
            diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
            leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
            mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
            sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs),#equal#(@s,#pos(#s(#0()))))
            sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
            sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
            sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
            sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
            sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
            sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
            sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
            sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
            sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
        - Weak DPs:
            #abs#(#0()) -> c_1()
            #abs#(#neg(@x)) -> c_2()
            #abs#(#pos(@x)) -> c_3()
            #abs#(#s(@x)) -> c_4()
            #add#(#0(),@y) -> c_66()
            #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #and#(#false(),#false()) -> c_71()
            #and#(#false(),#true()) -> c_72()
            #and#(#true(),#false()) -> c_73()
            #and#(#true(),#true()) -> c_74()
            #ckgt#(#EQ()) -> c_75()
            #ckgt#(#GT()) -> c_76()
            #ckgt#(#LT()) -> c_77()
            #cklt#(#EQ()) -> c_78()
            #cklt#(#GT()) -> c_79()
            #cklt#(#LT()) -> c_80()
            #compare#(#0(),#0()) -> c_81()
            #compare#(#0(),#neg(@y)) -> c_82()
            #compare#(#0(),#pos(@y)) -> c_83()
            #compare#(#0(),#s(@y)) -> c_84()
            #compare#(#neg(@x),#0()) -> c_85()
            #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_87()
            #compare#(#pos(@x),#0()) -> c_88()
            #compare#(#pos(@x),#neg(@y)) -> c_89()
            #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_91()
            #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
            #div#(#0(),#0()) -> c_93()
            #div#(#0(),#neg(@y)) -> c_94()
            #div#(#0(),#pos(@y)) -> c_95()
            #div#(#neg(@x),#0()) -> c_96()
            #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
            #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
            #div#(#pos(@x),#0()) -> c_99()
            #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
            #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
            #eq#(#0(),#0()) -> c_102()
            #eq#(#0(),#neg(@y)) -> c_103()
            #eq#(#0(),#pos(@y)) -> c_104()
            #eq#(#0(),#s(@y)) -> c_105()
            #eq#(#neg(@x),#0()) -> c_106()
            #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_108()
            #eq#(#pos(@x),#0()) -> c_109()
            #eq#(#pos(@x),#neg(@y)) -> c_110()
            #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_112()
            #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                      ,#eq#(@x_1,@y_1)
                                                      ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_115()
            #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
            #eq#(nil(),::(@y_1,@y_2)) -> c_117()
            #eq#(nil(),nil()) -> c_118()
            #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
            #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
            #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
            #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                ,#eq#(@x_1,@y_1)
                                                                ,#eq#(@x_2,@y_2))
            #equal#(@x,@y) -> c_5(#eq#(@x,@y))
            #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
            #mult#(#0(),#0()) -> c_123()
            #mult#(#0(),#neg(@y)) -> c_124()
            #mult#(#0(),#pos(@y)) -> c_125()
            #mult#(#neg(@x),#0()) -> c_126()
            #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
            #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
            #mult#(#pos(@x),#0()) -> c_129()
            #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
            #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
            #natdiv#(#0(),#0()) -> c_132()
            #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
            #natmult#(#0(),@y) -> c_134()
            #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
            #natsub#(@x,#0()) -> c_136()
            #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
            #pred#(#0()) -> c_138()
            #pred#(#neg(#s(@x))) -> c_139()
            #pred#(#pos(#s(#0()))) -> c_140()
            #pred#(#pos(#s(#s(@x)))) -> c_141()
            #sub#(@x,#0()) -> c_142()
            #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
            #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
            #succ#(#0()) -> c_145()
            #succ#(#neg(#s(#0()))) -> c_146()
            #succ#(#neg(#s(#s(@x)))) -> c_147()
            #succ#(#pos(#s(@x))) -> c_148()
            *#(@x,@y) -> c_8(#mult#(@x,@y))
            +#(@x,@y) -> c_9(#add#(@x,@y))
            -#(@x,@y) -> c_10(#sub#(@x,@y))
            add'#1#(nil(),@b2,@r) -> c_14()
            add'#2#(nil(),@r,@x,@xs) -> c_16()
            compare#4#(#false(),@r,@x,@y) -> c_28()
            div#(@x,@y) -> c_37(#div#(@x,@y))
            mult#1#(nil(),@b2) -> c_42()
            mult#3#(#false(),@b2,@zs) -> c_44()
            sub#1#(tuple#2(@b,@_@1)) -> c_48()
            sub'#1#(nil(),@b2,@r) -> c_51()
            sub'#2#(nil(),@r,@x,@xs) -> c_53()
            sub'#5#(#false(),@z,@zs) -> c_56()
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            bitToInt'(@b,@n) -> bitToInt'#1(@b,@n)
            bitToInt'#1(::(@x,@xs),@n) -> +(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
            bitToInt'#1(nil(),@n) -> #abs(#0())
            compare(@b1,@b2) -> compare#1(@b1,@b2)
            compare#1(::(@x,@xs),@b2) -> compare#2(@b2,@x,@xs)
            compare#1(nil(),@b2) -> #abs(#0())
            compare#2(::(@y,@ys),@x,@xs) -> compare#3(compare(@xs,@ys),@x,@y)
            compare#2(nil(),@x,@xs) -> #abs(#0())
            compare#3(@r,@x,@y) -> compare#4(#equal(@r,#0()),@r,@x,@y)
            compare#4(#false(),@r,@x,@y) -> @r
            compare#4(#true(),@r,@x,@y) -> compare#5(#less(@x,@y),@x,@y)
            compare#5(#false(),@x,@y) -> compare#6(#greater(@x,@y))
            compare#5(#true(),@x,@y) -> -(#0(),#pos(#s(#0())))
            compare#6(#false()) -> #abs(#0())
            compare#6(#true()) -> #abs(#pos(#s(#0())))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sub'(@b1,@b2,@r) -> sub'#1(@b1,@b2,@r)
            sub'#1(::(@x,@xs),@b2,@r) -> sub'#2(@b2,@r,@x,@xs)
            sub'#1(nil(),@b2,@r) -> tuple#2(nil(),@r)
            sub'#2(::(@y,@ys),@r,@x,@xs) -> sub'#3(diff(@x,@y,@r),@xs,@ys)
            sub'#2(nil(),@r,@x,@xs) -> tuple#2(nil(),@r)
            sub'#3(tuple#2(@z,@r'),@xs,@ys) -> sub'#4(sub'(@xs,@ys,@r'),@z)
            sub'#4(tuple#2(@zs,@s),@z) -> tuple#2(sub'#5(#equal(@s,#pos(#s(#0()))),@z,@zs),@s)
            sub'#5(#false(),@z,@zs) -> ::(@z,@zs)
            sub'#5(#true(),@z,@zs) -> ::(#abs(#0()),@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/2,c_12/1,c_13/1,c_14/0,c_15/2
            ,c_16/0,c_17/1,c_18/2,c_19/1,c_20/4,c_21/1,c_22/1,c_23/1,c_24/1,c_25/2,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/2,c_39/3,c_40/1,c_41/3,c_42/0,c_43/2,c_44/0,c_45/1
            ,c_46/2,c_47/3,c_48/0,c_49/1,c_50/1,c_51/0,c_52/2,c_53/0,c_54/2,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {9,12,14,18,19,20,22,23,25,37,41,43,44,45}
        by application of
          Pre({9,12,14,18,19,20,22,23,25,37,41,43,44,45}) = {7,10,11,16,17,21,36,39,40,42}.
        Here rules are labelled as follows:
          1: add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          2: add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          3: add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          4: add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
          5: add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          6: bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
          7: bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          8: bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                                ,*#(@x,@n)
                                                ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                                ,*#(@n,#pos(#s(#s(#0())))))
          9: bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
          10: compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          11: compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
          12: compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
          13: compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
          14: compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
          15: compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
          16: compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
          17: compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
          18: compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
          19: compare#6#(#false()) -> c_32(#abs#(#0()))
          20: compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
          21: diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                     ,+#(+(@x,@y),@r)
                                     ,+#(@x,@y)
                                     ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                     ,#less#(-(-(@x,@y),@r),#0())
                                     ,-#(-(@x,@y),@r)
                                     ,-#(@x,@y))
          22: diff#1#(#false()) -> c_35(#abs#(#0()))
          23: diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
          24: leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
          25: mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
          26: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          27: mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
          28: mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
          29: mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          30: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          31: sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          32: sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          33: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          34: sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
          35: sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
          36: sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs)
                                                 ,#equal#(@s,#pos(#s(#0()))))
          37: sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
          38: sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
          39: sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
          40: sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
          41: sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
          42: sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
          43: sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
          44: sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
          45: sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
          46: #abs#(#0()) -> c_1()
          47: #abs#(#neg(@x)) -> c_2()
          48: #abs#(#pos(@x)) -> c_3()
          49: #abs#(#s(@x)) -> c_4()
          50: #add#(#0(),@y) -> c_66()
          51: #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
          52: #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          53: #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
          54: #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          55: #and#(#false(),#false()) -> c_71()
          56: #and#(#false(),#true()) -> c_72()
          57: #and#(#true(),#false()) -> c_73()
          58: #and#(#true(),#true()) -> c_74()
          59: #ckgt#(#EQ()) -> c_75()
          60: #ckgt#(#GT()) -> c_76()
          61: #ckgt#(#LT()) -> c_77()
          62: #cklt#(#EQ()) -> c_78()
          63: #cklt#(#GT()) -> c_79()
          64: #cklt#(#LT()) -> c_80()
          65: #compare#(#0(),#0()) -> c_81()
          66: #compare#(#0(),#neg(@y)) -> c_82()
          67: #compare#(#0(),#pos(@y)) -> c_83()
          68: #compare#(#0(),#s(@y)) -> c_84()
          69: #compare#(#neg(@x),#0()) -> c_85()
          70: #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
          71: #compare#(#neg(@x),#pos(@y)) -> c_87()
          72: #compare#(#pos(@x),#0()) -> c_88()
          73: #compare#(#pos(@x),#neg(@y)) -> c_89()
          74: #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
          75: #compare#(#s(@x),#0()) -> c_91()
          76: #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
          77: #div#(#0(),#0()) -> c_93()
          78: #div#(#0(),#neg(@y)) -> c_94()
          79: #div#(#0(),#pos(@y)) -> c_95()
          80: #div#(#neg(@x),#0()) -> c_96()
          81: #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
          82: #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
          83: #div#(#pos(@x),#0()) -> c_99()
          84: #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
          85: #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
          86: #eq#(#0(),#0()) -> c_102()
          87: #eq#(#0(),#neg(@y)) -> c_103()
          88: #eq#(#0(),#pos(@y)) -> c_104()
          89: #eq#(#0(),#s(@y)) -> c_105()
          90: #eq#(#neg(@x),#0()) -> c_106()
          91: #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
          92: #eq#(#neg(@x),#pos(@y)) -> c_108()
          93: #eq#(#pos(@x),#0()) -> c_109()
          94: #eq#(#pos(@x),#neg(@y)) -> c_110()
          95: #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
          96: #eq#(#s(@x),#0()) -> c_112()
          97: #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
          98: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                        ,#eq#(@x_1,@y_1)
                                                        ,#eq#(@x_2,@y_2))
          99: #eq#(::(@x_1,@x_2),nil()) -> c_115()
          100: #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
          101: #eq#(nil(),::(@y_1,@y_2)) -> c_117()
          102: #eq#(nil(),nil()) -> c_118()
          103: #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
          104: #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
          105: #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
          106: #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                   ,#eq#(@x_1,@y_1)
                                                                   ,#eq#(@x_2,@y_2))
          107: #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          108: #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          109: #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
          110: #mult#(#0(),#0()) -> c_123()
          111: #mult#(#0(),#neg(@y)) -> c_124()
          112: #mult#(#0(),#pos(@y)) -> c_125()
          113: #mult#(#neg(@x),#0()) -> c_126()
          114: #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
          115: #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
          116: #mult#(#pos(@x),#0()) -> c_129()
          117: #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
          118: #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
          119: #natdiv#(#0(),#0()) -> c_132()
          120: #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
          121: #natmult#(#0(),@y) -> c_134()
          122: #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
          123: #natsub#(@x,#0()) -> c_136()
          124: #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
          125: #pred#(#0()) -> c_138()
          126: #pred#(#neg(#s(@x))) -> c_139()
          127: #pred#(#pos(#s(#0()))) -> c_140()
          128: #pred#(#pos(#s(#s(@x)))) -> c_141()
          129: #sub#(@x,#0()) -> c_142()
          130: #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
          131: #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
          132: #succ#(#0()) -> c_145()
          133: #succ#(#neg(#s(#0()))) -> c_146()
          134: #succ#(#neg(#s(#s(@x)))) -> c_147()
          135: #succ#(#pos(#s(@x))) -> c_148()
          136: *#(@x,@y) -> c_8(#mult#(@x,@y))
          137: +#(@x,@y) -> c_9(#add#(@x,@y))
          138: -#(@x,@y) -> c_10(#sub#(@x,@y))
          139: add'#1#(nil(),@b2,@r) -> c_14()
          140: add'#2#(nil(),@r,@x,@xs) -> c_16()
          141: compare#4#(#false(),@r,@x,@y) -> c_28()
          142: div#(@x,@y) -> c_37(#div#(@x,@y))
          143: mult#1#(nil(),@b2) -> c_42()
          144: mult#3#(#false(),@b2,@zs) -> c_44()
          145: sub#1#(tuple#2(@b,@_@1)) -> c_48()
          146: sub'#1#(nil(),@b2,@r) -> c_51()
          147: sub'#2#(nil(),@r,@x,@xs) -> c_53()
          148: sub'#5#(#false(),@z,@zs) -> c_56()
* Step 6: PredecessorEstimation WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                               ,*#(@x,@n)
                                               ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                               ,*#(@n,#pos(#s(#s(#0())))))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
            compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
            compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
            compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
            diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                   ,+#(+(@x,@y),@r)
                                   ,+#(@x,@y)
                                   ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                   ,#less#(-(-(@x,@y),@r),#0())
                                   ,-#(-(@x,@y),@r)
                                   ,-#(@x,@y))
            leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
            sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs),#equal#(@s,#pos(#s(#0()))))
            sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
            sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
            sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
            sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
        - Weak DPs:
            #abs#(#0()) -> c_1()
            #abs#(#neg(@x)) -> c_2()
            #abs#(#pos(@x)) -> c_3()
            #abs#(#s(@x)) -> c_4()
            #add#(#0(),@y) -> c_66()
            #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #and#(#false(),#false()) -> c_71()
            #and#(#false(),#true()) -> c_72()
            #and#(#true(),#false()) -> c_73()
            #and#(#true(),#true()) -> c_74()
            #ckgt#(#EQ()) -> c_75()
            #ckgt#(#GT()) -> c_76()
            #ckgt#(#LT()) -> c_77()
            #cklt#(#EQ()) -> c_78()
            #cklt#(#GT()) -> c_79()
            #cklt#(#LT()) -> c_80()
            #compare#(#0(),#0()) -> c_81()
            #compare#(#0(),#neg(@y)) -> c_82()
            #compare#(#0(),#pos(@y)) -> c_83()
            #compare#(#0(),#s(@y)) -> c_84()
            #compare#(#neg(@x),#0()) -> c_85()
            #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_87()
            #compare#(#pos(@x),#0()) -> c_88()
            #compare#(#pos(@x),#neg(@y)) -> c_89()
            #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_91()
            #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
            #div#(#0(),#0()) -> c_93()
            #div#(#0(),#neg(@y)) -> c_94()
            #div#(#0(),#pos(@y)) -> c_95()
            #div#(#neg(@x),#0()) -> c_96()
            #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
            #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
            #div#(#pos(@x),#0()) -> c_99()
            #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
            #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
            #eq#(#0(),#0()) -> c_102()
            #eq#(#0(),#neg(@y)) -> c_103()
            #eq#(#0(),#pos(@y)) -> c_104()
            #eq#(#0(),#s(@y)) -> c_105()
            #eq#(#neg(@x),#0()) -> c_106()
            #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_108()
            #eq#(#pos(@x),#0()) -> c_109()
            #eq#(#pos(@x),#neg(@y)) -> c_110()
            #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_112()
            #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                      ,#eq#(@x_1,@y_1)
                                                      ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_115()
            #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
            #eq#(nil(),::(@y_1,@y_2)) -> c_117()
            #eq#(nil(),nil()) -> c_118()
            #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
            #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
            #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
            #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                ,#eq#(@x_1,@y_1)
                                                                ,#eq#(@x_2,@y_2))
            #equal#(@x,@y) -> c_5(#eq#(@x,@y))
            #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
            #mult#(#0(),#0()) -> c_123()
            #mult#(#0(),#neg(@y)) -> c_124()
            #mult#(#0(),#pos(@y)) -> c_125()
            #mult#(#neg(@x),#0()) -> c_126()
            #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
            #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
            #mult#(#pos(@x),#0()) -> c_129()
            #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
            #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
            #natdiv#(#0(),#0()) -> c_132()
            #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
            #natmult#(#0(),@y) -> c_134()
            #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
            #natsub#(@x,#0()) -> c_136()
            #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
            #pred#(#0()) -> c_138()
            #pred#(#neg(#s(@x))) -> c_139()
            #pred#(#pos(#s(#0()))) -> c_140()
            #pred#(#pos(#s(#s(@x)))) -> c_141()
            #sub#(@x,#0()) -> c_142()
            #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
            #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
            #succ#(#0()) -> c_145()
            #succ#(#neg(#s(#0()))) -> c_146()
            #succ#(#neg(#s(#s(@x)))) -> c_147()
            #succ#(#pos(#s(@x))) -> c_148()
            *#(@x,@y) -> c_8(#mult#(@x,@y))
            +#(@x,@y) -> c_9(#add#(@x,@y))
            -#(@x,@y) -> c_10(#sub#(@x,@y))
            add'#1#(nil(),@b2,@r) -> c_14()
            add'#2#(nil(),@r,@x,@xs) -> c_16()
            bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
            compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
            compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
            compare#4#(#false(),@r,@x,@y) -> c_28()
            compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
            compare#6#(#false()) -> c_32(#abs#(#0()))
            compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
            diff#1#(#false()) -> c_35(#abs#(#0()))
            diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
            div#(@x,@y) -> c_37(#div#(@x,@y))
            mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
            mult#1#(nil(),@b2) -> c_42()
            mult#3#(#false(),@b2,@zs) -> c_44()
            sub#1#(tuple#2(@b,@_@1)) -> c_48()
            sub'#1#(nil(),@b2,@r) -> c_51()
            sub'#2#(nil(),@r,@x,@xs) -> c_53()
            sub'#5#(#false(),@z,@zs) -> c_56()
            sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
            sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
            sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
            sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
            sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            bitToInt'(@b,@n) -> bitToInt'#1(@b,@n)
            bitToInt'#1(::(@x,@xs),@n) -> +(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
            bitToInt'#1(nil(),@n) -> #abs(#0())
            compare(@b1,@b2) -> compare#1(@b1,@b2)
            compare#1(::(@x,@xs),@b2) -> compare#2(@b2,@x,@xs)
            compare#1(nil(),@b2) -> #abs(#0())
            compare#2(::(@y,@ys),@x,@xs) -> compare#3(compare(@xs,@ys),@x,@y)
            compare#2(nil(),@x,@xs) -> #abs(#0())
            compare#3(@r,@x,@y) -> compare#4(#equal(@r,#0()),@r,@x,@y)
            compare#4(#false(),@r,@x,@y) -> @r
            compare#4(#true(),@r,@x,@y) -> compare#5(#less(@x,@y),@x,@y)
            compare#5(#false(),@x,@y) -> compare#6(#greater(@x,@y))
            compare#5(#true(),@x,@y) -> -(#0(),#pos(#s(#0())))
            compare#6(#false()) -> #abs(#0())
            compare#6(#true()) -> #abs(#pos(#s(#0())))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sub'(@b1,@b2,@r) -> sub'#1(@b1,@b2,@r)
            sub'#1(::(@x,@xs),@b2,@r) -> sub'#2(@b2,@r,@x,@xs)
            sub'#1(nil(),@b2,@r) -> tuple#2(nil(),@r)
            sub'#2(::(@y,@ys),@r,@x,@xs) -> sub'#3(diff(@x,@y,@r),@xs,@ys)
            sub'#2(nil(),@r,@x,@xs) -> tuple#2(nil(),@r)
            sub'#3(tuple#2(@z,@r'),@xs,@ys) -> sub'#4(sub'(@xs,@ys,@r'),@z)
            sub'#4(tuple#2(@zs,@s),@z) -> tuple#2(sub'#5(#equal(@s,#pos(#s(#0()))),@z,@zs),@s)
            sub'#5(#false(),@z,@zs) -> ::(@z,@zs)
            sub'#5(#true(),@z,@zs) -> ::(#abs(#0()),@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/2,c_12/1,c_13/1,c_14/0,c_15/2
            ,c_16/0,c_17/1,c_18/2,c_19/1,c_20/4,c_21/1,c_22/1,c_23/1,c_24/1,c_25/2,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/2,c_39/3,c_40/1,c_41/3,c_42/0,c_43/2,c_44/0,c_45/1
            ,c_46/2,c_47/3,c_48/0,c_49/1,c_50/1,c_51/0,c_52/2,c_53/0,c_54/2,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {14,15,27,31}
        by application of
          Pre({14,15,27,31}) = {13,25,26,30}.
        Here rules are labelled as follows:
          1: add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          2: add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          3: add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          4: add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
          5: add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          6: bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
          7: bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          8: bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                                ,*#(@x,@n)
                                                ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                                ,*#(@n,#pos(#s(#s(#0())))))
          9: compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          10: compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
          11: compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
          12: compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
          13: compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
          14: compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
          15: diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                     ,+#(+(@x,@y),@r)
                                     ,+#(@x,@y)
                                     ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                     ,#less#(-(-(@x,@y),@r),#0())
                                     ,-#(-(@x,@y),@r)
                                     ,-#(@x,@y))
          16: leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
          17: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          18: mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
          19: mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
          20: mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          21: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          22: sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          23: sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          24: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          25: sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
          26: sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
          27: sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs)
                                                 ,#equal#(@s,#pos(#s(#0()))))
          28: sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
          29: sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
          30: sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
          31: sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
          32: #abs#(#0()) -> c_1()
          33: #abs#(#neg(@x)) -> c_2()
          34: #abs#(#pos(@x)) -> c_3()
          35: #abs#(#s(@x)) -> c_4()
          36: #add#(#0(),@y) -> c_66()
          37: #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
          38: #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          39: #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
          40: #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          41: #and#(#false(),#false()) -> c_71()
          42: #and#(#false(),#true()) -> c_72()
          43: #and#(#true(),#false()) -> c_73()
          44: #and#(#true(),#true()) -> c_74()
          45: #ckgt#(#EQ()) -> c_75()
          46: #ckgt#(#GT()) -> c_76()
          47: #ckgt#(#LT()) -> c_77()
          48: #cklt#(#EQ()) -> c_78()
          49: #cklt#(#GT()) -> c_79()
          50: #cklt#(#LT()) -> c_80()
          51: #compare#(#0(),#0()) -> c_81()
          52: #compare#(#0(),#neg(@y)) -> c_82()
          53: #compare#(#0(),#pos(@y)) -> c_83()
          54: #compare#(#0(),#s(@y)) -> c_84()
          55: #compare#(#neg(@x),#0()) -> c_85()
          56: #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
          57: #compare#(#neg(@x),#pos(@y)) -> c_87()
          58: #compare#(#pos(@x),#0()) -> c_88()
          59: #compare#(#pos(@x),#neg(@y)) -> c_89()
          60: #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
          61: #compare#(#s(@x),#0()) -> c_91()
          62: #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
          63: #div#(#0(),#0()) -> c_93()
          64: #div#(#0(),#neg(@y)) -> c_94()
          65: #div#(#0(),#pos(@y)) -> c_95()
          66: #div#(#neg(@x),#0()) -> c_96()
          67: #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
          68: #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
          69: #div#(#pos(@x),#0()) -> c_99()
          70: #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
          71: #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
          72: #eq#(#0(),#0()) -> c_102()
          73: #eq#(#0(),#neg(@y)) -> c_103()
          74: #eq#(#0(),#pos(@y)) -> c_104()
          75: #eq#(#0(),#s(@y)) -> c_105()
          76: #eq#(#neg(@x),#0()) -> c_106()
          77: #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
          78: #eq#(#neg(@x),#pos(@y)) -> c_108()
          79: #eq#(#pos(@x),#0()) -> c_109()
          80: #eq#(#pos(@x),#neg(@y)) -> c_110()
          81: #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
          82: #eq#(#s(@x),#0()) -> c_112()
          83: #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
          84: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                        ,#eq#(@x_1,@y_1)
                                                        ,#eq#(@x_2,@y_2))
          85: #eq#(::(@x_1,@x_2),nil()) -> c_115()
          86: #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
          87: #eq#(nil(),::(@y_1,@y_2)) -> c_117()
          88: #eq#(nil(),nil()) -> c_118()
          89: #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
          90: #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
          91: #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
          92: #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                  ,#eq#(@x_1,@y_1)
                                                                  ,#eq#(@x_2,@y_2))
          93: #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          94: #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          95: #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
          96: #mult#(#0(),#0()) -> c_123()
          97: #mult#(#0(),#neg(@y)) -> c_124()
          98: #mult#(#0(),#pos(@y)) -> c_125()
          99: #mult#(#neg(@x),#0()) -> c_126()
          100: #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
          101: #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
          102: #mult#(#pos(@x),#0()) -> c_129()
          103: #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
          104: #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
          105: #natdiv#(#0(),#0()) -> c_132()
          106: #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
          107: #natmult#(#0(),@y) -> c_134()
          108: #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
          109: #natsub#(@x,#0()) -> c_136()
          110: #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
          111: #pred#(#0()) -> c_138()
          112: #pred#(#neg(#s(@x))) -> c_139()
          113: #pred#(#pos(#s(#0()))) -> c_140()
          114: #pred#(#pos(#s(#s(@x)))) -> c_141()
          115: #sub#(@x,#0()) -> c_142()
          116: #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
          117: #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
          118: #succ#(#0()) -> c_145()
          119: #succ#(#neg(#s(#0()))) -> c_146()
          120: #succ#(#neg(#s(#s(@x)))) -> c_147()
          121: #succ#(#pos(#s(@x))) -> c_148()
          122: *#(@x,@y) -> c_8(#mult#(@x,@y))
          123: +#(@x,@y) -> c_9(#add#(@x,@y))
          124: -#(@x,@y) -> c_10(#sub#(@x,@y))
          125: add'#1#(nil(),@b2,@r) -> c_14()
          126: add'#2#(nil(),@r,@x,@xs) -> c_16()
          127: bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
          128: compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
          129: compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
          130: compare#4#(#false(),@r,@x,@y) -> c_28()
          131: compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
          132: compare#6#(#false()) -> c_32(#abs#(#0()))
          133: compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
          134: diff#1#(#false()) -> c_35(#abs#(#0()))
          135: diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
          136: div#(@x,@y) -> c_37(#div#(@x,@y))
          137: mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
          138: mult#1#(nil(),@b2) -> c_42()
          139: mult#3#(#false(),@b2,@zs) -> c_44()
          140: sub#1#(tuple#2(@b,@_@1)) -> c_48()
          141: sub'#1#(nil(),@b2,@r) -> c_51()
          142: sub'#2#(nil(),@r,@x,@xs) -> c_53()
          143: sub'#5#(#false(),@z,@zs) -> c_56()
          144: sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
          145: sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
          146: sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
          147: sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
          148: sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
* Step 7: PredecessorEstimation WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                               ,*#(@x,@n)
                                               ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                               ,*#(@n,#pos(#s(#s(#0())))))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
            compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
            compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
            leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
            sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
            sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
            sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
        - Weak DPs:
            #abs#(#0()) -> c_1()
            #abs#(#neg(@x)) -> c_2()
            #abs#(#pos(@x)) -> c_3()
            #abs#(#s(@x)) -> c_4()
            #add#(#0(),@y) -> c_66()
            #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #and#(#false(),#false()) -> c_71()
            #and#(#false(),#true()) -> c_72()
            #and#(#true(),#false()) -> c_73()
            #and#(#true(),#true()) -> c_74()
            #ckgt#(#EQ()) -> c_75()
            #ckgt#(#GT()) -> c_76()
            #ckgt#(#LT()) -> c_77()
            #cklt#(#EQ()) -> c_78()
            #cklt#(#GT()) -> c_79()
            #cklt#(#LT()) -> c_80()
            #compare#(#0(),#0()) -> c_81()
            #compare#(#0(),#neg(@y)) -> c_82()
            #compare#(#0(),#pos(@y)) -> c_83()
            #compare#(#0(),#s(@y)) -> c_84()
            #compare#(#neg(@x),#0()) -> c_85()
            #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_87()
            #compare#(#pos(@x),#0()) -> c_88()
            #compare#(#pos(@x),#neg(@y)) -> c_89()
            #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_91()
            #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
            #div#(#0(),#0()) -> c_93()
            #div#(#0(),#neg(@y)) -> c_94()
            #div#(#0(),#pos(@y)) -> c_95()
            #div#(#neg(@x),#0()) -> c_96()
            #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
            #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
            #div#(#pos(@x),#0()) -> c_99()
            #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
            #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
            #eq#(#0(),#0()) -> c_102()
            #eq#(#0(),#neg(@y)) -> c_103()
            #eq#(#0(),#pos(@y)) -> c_104()
            #eq#(#0(),#s(@y)) -> c_105()
            #eq#(#neg(@x),#0()) -> c_106()
            #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_108()
            #eq#(#pos(@x),#0()) -> c_109()
            #eq#(#pos(@x),#neg(@y)) -> c_110()
            #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_112()
            #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                      ,#eq#(@x_1,@y_1)
                                                      ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_115()
            #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
            #eq#(nil(),::(@y_1,@y_2)) -> c_117()
            #eq#(nil(),nil()) -> c_118()
            #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
            #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
            #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
            #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                ,#eq#(@x_1,@y_1)
                                                                ,#eq#(@x_2,@y_2))
            #equal#(@x,@y) -> c_5(#eq#(@x,@y))
            #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
            #mult#(#0(),#0()) -> c_123()
            #mult#(#0(),#neg(@y)) -> c_124()
            #mult#(#0(),#pos(@y)) -> c_125()
            #mult#(#neg(@x),#0()) -> c_126()
            #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
            #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
            #mult#(#pos(@x),#0()) -> c_129()
            #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
            #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
            #natdiv#(#0(),#0()) -> c_132()
            #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
            #natmult#(#0(),@y) -> c_134()
            #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
            #natsub#(@x,#0()) -> c_136()
            #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
            #pred#(#0()) -> c_138()
            #pred#(#neg(#s(@x))) -> c_139()
            #pred#(#pos(#s(#0()))) -> c_140()
            #pred#(#pos(#s(#s(@x)))) -> c_141()
            #sub#(@x,#0()) -> c_142()
            #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
            #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
            #succ#(#0()) -> c_145()
            #succ#(#neg(#s(#0()))) -> c_146()
            #succ#(#neg(#s(#s(@x)))) -> c_147()
            #succ#(#pos(#s(@x))) -> c_148()
            *#(@x,@y) -> c_8(#mult#(@x,@y))
            +#(@x,@y) -> c_9(#add#(@x,@y))
            -#(@x,@y) -> c_10(#sub#(@x,@y))
            add'#1#(nil(),@b2,@r) -> c_14()
            add'#2#(nil(),@r,@x,@xs) -> c_16()
            bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
            compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
            compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
            compare#4#(#false(),@r,@x,@y) -> c_28()
            compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
            compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
            compare#6#(#false()) -> c_32(#abs#(#0()))
            compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
            diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                   ,+#(+(@x,@y),@r)
                                   ,+#(@x,@y)
                                   ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                   ,#less#(-(-(@x,@y),@r),#0())
                                   ,-#(-(@x,@y),@r)
                                   ,-#(@x,@y))
            diff#1#(#false()) -> c_35(#abs#(#0()))
            diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
            div#(@x,@y) -> c_37(#div#(@x,@y))
            mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
            mult#1#(nil(),@b2) -> c_42()
            mult#3#(#false(),@b2,@zs) -> c_44()
            sub#1#(tuple#2(@b,@_@1)) -> c_48()
            sub'#1#(nil(),@b2,@r) -> c_51()
            sub'#2#(nil(),@r,@x,@xs) -> c_53()
            sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs),#equal#(@s,#pos(#s(#0()))))
            sub'#5#(#false(),@z,@zs) -> c_56()
            sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
            sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
            sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
            sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
            sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
            sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            bitToInt'(@b,@n) -> bitToInt'#1(@b,@n)
            bitToInt'#1(::(@x,@xs),@n) -> +(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
            bitToInt'#1(nil(),@n) -> #abs(#0())
            compare(@b1,@b2) -> compare#1(@b1,@b2)
            compare#1(::(@x,@xs),@b2) -> compare#2(@b2,@x,@xs)
            compare#1(nil(),@b2) -> #abs(#0())
            compare#2(::(@y,@ys),@x,@xs) -> compare#3(compare(@xs,@ys),@x,@y)
            compare#2(nil(),@x,@xs) -> #abs(#0())
            compare#3(@r,@x,@y) -> compare#4(#equal(@r,#0()),@r,@x,@y)
            compare#4(#false(),@r,@x,@y) -> @r
            compare#4(#true(),@r,@x,@y) -> compare#5(#less(@x,@y),@x,@y)
            compare#5(#false(),@x,@y) -> compare#6(#greater(@x,@y))
            compare#5(#true(),@x,@y) -> -(#0(),#pos(#s(#0())))
            compare#6(#false()) -> #abs(#0())
            compare#6(#true()) -> #abs(#pos(#s(#0())))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sub'(@b1,@b2,@r) -> sub'#1(@b1,@b2,@r)
            sub'#1(::(@x,@xs),@b2,@r) -> sub'#2(@b2,@r,@x,@xs)
            sub'#1(nil(),@b2,@r) -> tuple#2(nil(),@r)
            sub'#2(::(@y,@ys),@r,@x,@xs) -> sub'#3(diff(@x,@y,@r),@xs,@ys)
            sub'#2(nil(),@r,@x,@xs) -> tuple#2(nil(),@r)
            sub'#3(tuple#2(@z,@r'),@xs,@ys) -> sub'#4(sub'(@xs,@ys,@r'),@z)
            sub'#4(tuple#2(@zs,@s),@z) -> tuple#2(sub'#5(#equal(@s,#pos(#s(#0()))),@z,@zs),@s)
            sub'#5(#false(),@z,@zs) -> ::(@z,@zs)
            sub'#5(#true(),@z,@zs) -> ::(#abs(#0()),@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/2,c_12/1,c_13/1,c_14/0,c_15/2
            ,c_16/0,c_17/1,c_18/2,c_19/1,c_20/4,c_21/1,c_22/1,c_23/1,c_24/1,c_25/2,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/2,c_39/3,c_40/1,c_41/3,c_42/0,c_43/2,c_44/0,c_45/1
            ,c_46/2,c_47/3,c_48/0,c_49/1,c_50/1,c_51/0,c_52/2,c_53/0,c_54/2,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {13,27}
        by application of
          Pre({13,27}) = {12,26}.
        Here rules are labelled as follows:
          1: add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          2: add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          3: add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          4: add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
          5: add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          6: bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
          7: bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          8: bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                                ,*#(@x,@n)
                                                ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                                ,*#(@n,#pos(#s(#s(#0())))))
          9: compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          10: compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
          11: compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
          12: compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
          13: compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
          14: leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
          15: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          16: mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
          17: mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
          18: mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          19: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          20: sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          21: sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          22: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          23: sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
          24: sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
          25: sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
          26: sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
          27: sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
          28: #abs#(#0()) -> c_1()
          29: #abs#(#neg(@x)) -> c_2()
          30: #abs#(#pos(@x)) -> c_3()
          31: #abs#(#s(@x)) -> c_4()
          32: #add#(#0(),@y) -> c_66()
          33: #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
          34: #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          35: #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
          36: #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          37: #and#(#false(),#false()) -> c_71()
          38: #and#(#false(),#true()) -> c_72()
          39: #and#(#true(),#false()) -> c_73()
          40: #and#(#true(),#true()) -> c_74()
          41: #ckgt#(#EQ()) -> c_75()
          42: #ckgt#(#GT()) -> c_76()
          43: #ckgt#(#LT()) -> c_77()
          44: #cklt#(#EQ()) -> c_78()
          45: #cklt#(#GT()) -> c_79()
          46: #cklt#(#LT()) -> c_80()
          47: #compare#(#0(),#0()) -> c_81()
          48: #compare#(#0(),#neg(@y)) -> c_82()
          49: #compare#(#0(),#pos(@y)) -> c_83()
          50: #compare#(#0(),#s(@y)) -> c_84()
          51: #compare#(#neg(@x),#0()) -> c_85()
          52: #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
          53: #compare#(#neg(@x),#pos(@y)) -> c_87()
          54: #compare#(#pos(@x),#0()) -> c_88()
          55: #compare#(#pos(@x),#neg(@y)) -> c_89()
          56: #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
          57: #compare#(#s(@x),#0()) -> c_91()
          58: #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
          59: #div#(#0(),#0()) -> c_93()
          60: #div#(#0(),#neg(@y)) -> c_94()
          61: #div#(#0(),#pos(@y)) -> c_95()
          62: #div#(#neg(@x),#0()) -> c_96()
          63: #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
          64: #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
          65: #div#(#pos(@x),#0()) -> c_99()
          66: #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
          67: #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
          68: #eq#(#0(),#0()) -> c_102()
          69: #eq#(#0(),#neg(@y)) -> c_103()
          70: #eq#(#0(),#pos(@y)) -> c_104()
          71: #eq#(#0(),#s(@y)) -> c_105()
          72: #eq#(#neg(@x),#0()) -> c_106()
          73: #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
          74: #eq#(#neg(@x),#pos(@y)) -> c_108()
          75: #eq#(#pos(@x),#0()) -> c_109()
          76: #eq#(#pos(@x),#neg(@y)) -> c_110()
          77: #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
          78: #eq#(#s(@x),#0()) -> c_112()
          79: #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
          80: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                        ,#eq#(@x_1,@y_1)
                                                        ,#eq#(@x_2,@y_2))
          81: #eq#(::(@x_1,@x_2),nil()) -> c_115()
          82: #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
          83: #eq#(nil(),::(@y_1,@y_2)) -> c_117()
          84: #eq#(nil(),nil()) -> c_118()
          85: #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
          86: #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
          87: #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
          88: #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                  ,#eq#(@x_1,@y_1)
                                                                  ,#eq#(@x_2,@y_2))
          89: #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          90: #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          91: #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
          92: #mult#(#0(),#0()) -> c_123()
          93: #mult#(#0(),#neg(@y)) -> c_124()
          94: #mult#(#0(),#pos(@y)) -> c_125()
          95: #mult#(#neg(@x),#0()) -> c_126()
          96: #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
          97: #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
          98: #mult#(#pos(@x),#0()) -> c_129()
          99: #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
          100: #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
          101: #natdiv#(#0(),#0()) -> c_132()
          102: #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
          103: #natmult#(#0(),@y) -> c_134()
          104: #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
          105: #natsub#(@x,#0()) -> c_136()
          106: #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
          107: #pred#(#0()) -> c_138()
          108: #pred#(#neg(#s(@x))) -> c_139()
          109: #pred#(#pos(#s(#0()))) -> c_140()
          110: #pred#(#pos(#s(#s(@x)))) -> c_141()
          111: #sub#(@x,#0()) -> c_142()
          112: #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
          113: #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
          114: #succ#(#0()) -> c_145()
          115: #succ#(#neg(#s(#0()))) -> c_146()
          116: #succ#(#neg(#s(#s(@x)))) -> c_147()
          117: #succ#(#pos(#s(@x))) -> c_148()
          118: *#(@x,@y) -> c_8(#mult#(@x,@y))
          119: +#(@x,@y) -> c_9(#add#(@x,@y))
          120: -#(@x,@y) -> c_10(#sub#(@x,@y))
          121: add'#1#(nil(),@b2,@r) -> c_14()
          122: add'#2#(nil(),@r,@x,@xs) -> c_16()
          123: bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
          124: compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
          125: compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
          126: compare#4#(#false(),@r,@x,@y) -> c_28()
          127: compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
          128: compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
          129: compare#6#(#false()) -> c_32(#abs#(#0()))
          130: compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
          131: diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                      ,+#(+(@x,@y),@r)
                                      ,+#(@x,@y)
                                      ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                      ,#less#(-(-(@x,@y),@r),#0())
                                      ,-#(-(@x,@y),@r)
                                      ,-#(@x,@y))
          132: diff#1#(#false()) -> c_35(#abs#(#0()))
          133: diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
          134: div#(@x,@y) -> c_37(#div#(@x,@y))
          135: mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
          136: mult#1#(nil(),@b2) -> c_42()
          137: mult#3#(#false(),@b2,@zs) -> c_44()
          138: sub#1#(tuple#2(@b,@_@1)) -> c_48()
          139: sub'#1#(nil(),@b2,@r) -> c_51()
          140: sub'#2#(nil(),@r,@x,@xs) -> c_53()
          141: sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs)
                                                  ,#equal#(@s,#pos(#s(#0()))))
          142: sub'#5#(#false(),@z,@zs) -> c_56()
          143: sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
          144: sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
          145: sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
          146: sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
          147: sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
          148: sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
* Step 8: PredecessorEstimation WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                               ,*#(@x,@n)
                                               ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                               ,*#(@n,#pos(#s(#s(#0())))))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
            compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
            leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
            sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
            sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
        - Weak DPs:
            #abs#(#0()) -> c_1()
            #abs#(#neg(@x)) -> c_2()
            #abs#(#pos(@x)) -> c_3()
            #abs#(#s(@x)) -> c_4()
            #add#(#0(),@y) -> c_66()
            #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #and#(#false(),#false()) -> c_71()
            #and#(#false(),#true()) -> c_72()
            #and#(#true(),#false()) -> c_73()
            #and#(#true(),#true()) -> c_74()
            #ckgt#(#EQ()) -> c_75()
            #ckgt#(#GT()) -> c_76()
            #ckgt#(#LT()) -> c_77()
            #cklt#(#EQ()) -> c_78()
            #cklt#(#GT()) -> c_79()
            #cklt#(#LT()) -> c_80()
            #compare#(#0(),#0()) -> c_81()
            #compare#(#0(),#neg(@y)) -> c_82()
            #compare#(#0(),#pos(@y)) -> c_83()
            #compare#(#0(),#s(@y)) -> c_84()
            #compare#(#neg(@x),#0()) -> c_85()
            #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_87()
            #compare#(#pos(@x),#0()) -> c_88()
            #compare#(#pos(@x),#neg(@y)) -> c_89()
            #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_91()
            #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
            #div#(#0(),#0()) -> c_93()
            #div#(#0(),#neg(@y)) -> c_94()
            #div#(#0(),#pos(@y)) -> c_95()
            #div#(#neg(@x),#0()) -> c_96()
            #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
            #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
            #div#(#pos(@x),#0()) -> c_99()
            #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
            #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
            #eq#(#0(),#0()) -> c_102()
            #eq#(#0(),#neg(@y)) -> c_103()
            #eq#(#0(),#pos(@y)) -> c_104()
            #eq#(#0(),#s(@y)) -> c_105()
            #eq#(#neg(@x),#0()) -> c_106()
            #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_108()
            #eq#(#pos(@x),#0()) -> c_109()
            #eq#(#pos(@x),#neg(@y)) -> c_110()
            #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_112()
            #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                      ,#eq#(@x_1,@y_1)
                                                      ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_115()
            #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
            #eq#(nil(),::(@y_1,@y_2)) -> c_117()
            #eq#(nil(),nil()) -> c_118()
            #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
            #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
            #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
            #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                ,#eq#(@x_1,@y_1)
                                                                ,#eq#(@x_2,@y_2))
            #equal#(@x,@y) -> c_5(#eq#(@x,@y))
            #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
            #mult#(#0(),#0()) -> c_123()
            #mult#(#0(),#neg(@y)) -> c_124()
            #mult#(#0(),#pos(@y)) -> c_125()
            #mult#(#neg(@x),#0()) -> c_126()
            #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
            #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
            #mult#(#pos(@x),#0()) -> c_129()
            #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
            #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
            #natdiv#(#0(),#0()) -> c_132()
            #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
            #natmult#(#0(),@y) -> c_134()
            #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
            #natsub#(@x,#0()) -> c_136()
            #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
            #pred#(#0()) -> c_138()
            #pred#(#neg(#s(@x))) -> c_139()
            #pred#(#pos(#s(#0()))) -> c_140()
            #pred#(#pos(#s(#s(@x)))) -> c_141()
            #sub#(@x,#0()) -> c_142()
            #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
            #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
            #succ#(#0()) -> c_145()
            #succ#(#neg(#s(#0()))) -> c_146()
            #succ#(#neg(#s(#s(@x)))) -> c_147()
            #succ#(#pos(#s(@x))) -> c_148()
            *#(@x,@y) -> c_8(#mult#(@x,@y))
            +#(@x,@y) -> c_9(#add#(@x,@y))
            -#(@x,@y) -> c_10(#sub#(@x,@y))
            add'#1#(nil(),@b2,@r) -> c_14()
            add'#2#(nil(),@r,@x,@xs) -> c_16()
            bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
            compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
            compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
            compare#4#(#false(),@r,@x,@y) -> c_28()
            compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
            compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
            compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
            compare#6#(#false()) -> c_32(#abs#(#0()))
            compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
            diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                   ,+#(+(@x,@y),@r)
                                   ,+#(@x,@y)
                                   ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                   ,#less#(-(-(@x,@y),@r),#0())
                                   ,-#(-(@x,@y),@r)
                                   ,-#(@x,@y))
            diff#1#(#false()) -> c_35(#abs#(#0()))
            diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
            div#(@x,@y) -> c_37(#div#(@x,@y))
            mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
            mult#1#(nil(),@b2) -> c_42()
            mult#3#(#false(),@b2,@zs) -> c_44()
            sub#1#(tuple#2(@b,@_@1)) -> c_48()
            sub'#1#(nil(),@b2,@r) -> c_51()
            sub'#2#(nil(),@r,@x,@xs) -> c_53()
            sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs),#equal#(@s,#pos(#s(#0()))))
            sub'#5#(#false(),@z,@zs) -> c_56()
            sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
            sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
            sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
            sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
            sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
            sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
            sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            bitToInt'(@b,@n) -> bitToInt'#1(@b,@n)
            bitToInt'#1(::(@x,@xs),@n) -> +(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
            bitToInt'#1(nil(),@n) -> #abs(#0())
            compare(@b1,@b2) -> compare#1(@b1,@b2)
            compare#1(::(@x,@xs),@b2) -> compare#2(@b2,@x,@xs)
            compare#1(nil(),@b2) -> #abs(#0())
            compare#2(::(@y,@ys),@x,@xs) -> compare#3(compare(@xs,@ys),@x,@y)
            compare#2(nil(),@x,@xs) -> #abs(#0())
            compare#3(@r,@x,@y) -> compare#4(#equal(@r,#0()),@r,@x,@y)
            compare#4(#false(),@r,@x,@y) -> @r
            compare#4(#true(),@r,@x,@y) -> compare#5(#less(@x,@y),@x,@y)
            compare#5(#false(),@x,@y) -> compare#6(#greater(@x,@y))
            compare#5(#true(),@x,@y) -> -(#0(),#pos(#s(#0())))
            compare#6(#false()) -> #abs(#0())
            compare#6(#true()) -> #abs(#pos(#s(#0())))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sub'(@b1,@b2,@r) -> sub'#1(@b1,@b2,@r)
            sub'#1(::(@x,@xs),@b2,@r) -> sub'#2(@b2,@r,@x,@xs)
            sub'#1(nil(),@b2,@r) -> tuple#2(nil(),@r)
            sub'#2(::(@y,@ys),@r,@x,@xs) -> sub'#3(diff(@x,@y,@r),@xs,@ys)
            sub'#2(nil(),@r,@x,@xs) -> tuple#2(nil(),@r)
            sub'#3(tuple#2(@z,@r'),@xs,@ys) -> sub'#4(sub'(@xs,@ys,@r'),@z)
            sub'#4(tuple#2(@zs,@s),@z) -> tuple#2(sub'#5(#equal(@s,#pos(#s(#0()))),@z,@zs),@s)
            sub'#5(#false(),@z,@zs) -> ::(@z,@zs)
            sub'#5(#true(),@z,@zs) -> ::(#abs(#0()),@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/2,c_12/1,c_13/1,c_14/0,c_15/2
            ,c_16/0,c_17/1,c_18/2,c_19/1,c_20/4,c_21/1,c_22/1,c_23/1,c_24/1,c_25/2,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/2,c_39/3,c_40/1,c_41/3,c_42/0,c_43/2,c_44/0,c_45/1
            ,c_46/2,c_47/3,c_48/0,c_49/1,c_50/1,c_51/0,c_52/2,c_53/0,c_54/2,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {12,25}
        by application of
          Pre({12,25}) = {11,24}.
        Here rules are labelled as follows:
          1: add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          2: add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          3: add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          4: add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
          5: add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          6: bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
          7: bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          8: bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                                ,*#(@x,@n)
                                                ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                                ,*#(@n,#pos(#s(#s(#0())))))
          9: compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          10: compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
          11: compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
          12: compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
          13: leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
          14: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          15: mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
          16: mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
          17: mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          18: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          19: sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          20: sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          21: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          22: sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
          23: sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
          24: sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
          25: sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
          26: #abs#(#0()) -> c_1()
          27: #abs#(#neg(@x)) -> c_2()
          28: #abs#(#pos(@x)) -> c_3()
          29: #abs#(#s(@x)) -> c_4()
          30: #add#(#0(),@y) -> c_66()
          31: #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
          32: #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          33: #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
          34: #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          35: #and#(#false(),#false()) -> c_71()
          36: #and#(#false(),#true()) -> c_72()
          37: #and#(#true(),#false()) -> c_73()
          38: #and#(#true(),#true()) -> c_74()
          39: #ckgt#(#EQ()) -> c_75()
          40: #ckgt#(#GT()) -> c_76()
          41: #ckgt#(#LT()) -> c_77()
          42: #cklt#(#EQ()) -> c_78()
          43: #cklt#(#GT()) -> c_79()
          44: #cklt#(#LT()) -> c_80()
          45: #compare#(#0(),#0()) -> c_81()
          46: #compare#(#0(),#neg(@y)) -> c_82()
          47: #compare#(#0(),#pos(@y)) -> c_83()
          48: #compare#(#0(),#s(@y)) -> c_84()
          49: #compare#(#neg(@x),#0()) -> c_85()
          50: #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
          51: #compare#(#neg(@x),#pos(@y)) -> c_87()
          52: #compare#(#pos(@x),#0()) -> c_88()
          53: #compare#(#pos(@x),#neg(@y)) -> c_89()
          54: #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
          55: #compare#(#s(@x),#0()) -> c_91()
          56: #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
          57: #div#(#0(),#0()) -> c_93()
          58: #div#(#0(),#neg(@y)) -> c_94()
          59: #div#(#0(),#pos(@y)) -> c_95()
          60: #div#(#neg(@x),#0()) -> c_96()
          61: #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
          62: #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
          63: #div#(#pos(@x),#0()) -> c_99()
          64: #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
          65: #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
          66: #eq#(#0(),#0()) -> c_102()
          67: #eq#(#0(),#neg(@y)) -> c_103()
          68: #eq#(#0(),#pos(@y)) -> c_104()
          69: #eq#(#0(),#s(@y)) -> c_105()
          70: #eq#(#neg(@x),#0()) -> c_106()
          71: #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
          72: #eq#(#neg(@x),#pos(@y)) -> c_108()
          73: #eq#(#pos(@x),#0()) -> c_109()
          74: #eq#(#pos(@x),#neg(@y)) -> c_110()
          75: #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
          76: #eq#(#s(@x),#0()) -> c_112()
          77: #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
          78: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                        ,#eq#(@x_1,@y_1)
                                                        ,#eq#(@x_2,@y_2))
          79: #eq#(::(@x_1,@x_2),nil()) -> c_115()
          80: #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
          81: #eq#(nil(),::(@y_1,@y_2)) -> c_117()
          82: #eq#(nil(),nil()) -> c_118()
          83: #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
          84: #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
          85: #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
          86: #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                  ,#eq#(@x_1,@y_1)
                                                                  ,#eq#(@x_2,@y_2))
          87: #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          88: #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          89: #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
          90: #mult#(#0(),#0()) -> c_123()
          91: #mult#(#0(),#neg(@y)) -> c_124()
          92: #mult#(#0(),#pos(@y)) -> c_125()
          93: #mult#(#neg(@x),#0()) -> c_126()
          94: #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
          95: #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
          96: #mult#(#pos(@x),#0()) -> c_129()
          97: #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
          98: #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
          99: #natdiv#(#0(),#0()) -> c_132()
          100: #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
          101: #natmult#(#0(),@y) -> c_134()
          102: #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
          103: #natsub#(@x,#0()) -> c_136()
          104: #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
          105: #pred#(#0()) -> c_138()
          106: #pred#(#neg(#s(@x))) -> c_139()
          107: #pred#(#pos(#s(#0()))) -> c_140()
          108: #pred#(#pos(#s(#s(@x)))) -> c_141()
          109: #sub#(@x,#0()) -> c_142()
          110: #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
          111: #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
          112: #succ#(#0()) -> c_145()
          113: #succ#(#neg(#s(#0()))) -> c_146()
          114: #succ#(#neg(#s(#s(@x)))) -> c_147()
          115: #succ#(#pos(#s(@x))) -> c_148()
          116: *#(@x,@y) -> c_8(#mult#(@x,@y))
          117: +#(@x,@y) -> c_9(#add#(@x,@y))
          118: -#(@x,@y) -> c_10(#sub#(@x,@y))
          119: add'#1#(nil(),@b2,@r) -> c_14()
          120: add'#2#(nil(),@r,@x,@xs) -> c_16()
          121: bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
          122: compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
          123: compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
          124: compare#4#(#false(),@r,@x,@y) -> c_28()
          125: compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
          126: compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
          127: compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
          128: compare#6#(#false()) -> c_32(#abs#(#0()))
          129: compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
          130: diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                      ,+#(+(@x,@y),@r)
                                      ,+#(@x,@y)
                                      ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                      ,#less#(-(-(@x,@y),@r),#0())
                                      ,-#(-(@x,@y),@r)
                                      ,-#(@x,@y))
          131: diff#1#(#false()) -> c_35(#abs#(#0()))
          132: diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
          133: div#(@x,@y) -> c_37(#div#(@x,@y))
          134: mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
          135: mult#1#(nil(),@b2) -> c_42()
          136: mult#3#(#false(),@b2,@zs) -> c_44()
          137: sub#1#(tuple#2(@b,@_@1)) -> c_48()
          138: sub'#1#(nil(),@b2,@r) -> c_51()
          139: sub'#2#(nil(),@r,@x,@xs) -> c_53()
          140: sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs)
                                                  ,#equal#(@s,#pos(#s(#0()))))
          141: sub'#5#(#false(),@z,@zs) -> c_56()
          142: sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
          143: sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
          144: sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
          145: sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
          146: sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
          147: sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
          148: sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
* Step 9: PredecessorEstimation WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                               ,*#(@x,@n)
                                               ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                               ,*#(@n,#pos(#s(#s(#0())))))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
            leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
            sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
        - Weak DPs:
            #abs#(#0()) -> c_1()
            #abs#(#neg(@x)) -> c_2()
            #abs#(#pos(@x)) -> c_3()
            #abs#(#s(@x)) -> c_4()
            #add#(#0(),@y) -> c_66()
            #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #and#(#false(),#false()) -> c_71()
            #and#(#false(),#true()) -> c_72()
            #and#(#true(),#false()) -> c_73()
            #and#(#true(),#true()) -> c_74()
            #ckgt#(#EQ()) -> c_75()
            #ckgt#(#GT()) -> c_76()
            #ckgt#(#LT()) -> c_77()
            #cklt#(#EQ()) -> c_78()
            #cklt#(#GT()) -> c_79()
            #cklt#(#LT()) -> c_80()
            #compare#(#0(),#0()) -> c_81()
            #compare#(#0(),#neg(@y)) -> c_82()
            #compare#(#0(),#pos(@y)) -> c_83()
            #compare#(#0(),#s(@y)) -> c_84()
            #compare#(#neg(@x),#0()) -> c_85()
            #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_87()
            #compare#(#pos(@x),#0()) -> c_88()
            #compare#(#pos(@x),#neg(@y)) -> c_89()
            #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_91()
            #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
            #div#(#0(),#0()) -> c_93()
            #div#(#0(),#neg(@y)) -> c_94()
            #div#(#0(),#pos(@y)) -> c_95()
            #div#(#neg(@x),#0()) -> c_96()
            #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
            #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
            #div#(#pos(@x),#0()) -> c_99()
            #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
            #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
            #eq#(#0(),#0()) -> c_102()
            #eq#(#0(),#neg(@y)) -> c_103()
            #eq#(#0(),#pos(@y)) -> c_104()
            #eq#(#0(),#s(@y)) -> c_105()
            #eq#(#neg(@x),#0()) -> c_106()
            #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_108()
            #eq#(#pos(@x),#0()) -> c_109()
            #eq#(#pos(@x),#neg(@y)) -> c_110()
            #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_112()
            #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                      ,#eq#(@x_1,@y_1)
                                                      ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_115()
            #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
            #eq#(nil(),::(@y_1,@y_2)) -> c_117()
            #eq#(nil(),nil()) -> c_118()
            #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
            #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
            #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
            #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                ,#eq#(@x_1,@y_1)
                                                                ,#eq#(@x_2,@y_2))
            #equal#(@x,@y) -> c_5(#eq#(@x,@y))
            #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
            #mult#(#0(),#0()) -> c_123()
            #mult#(#0(),#neg(@y)) -> c_124()
            #mult#(#0(),#pos(@y)) -> c_125()
            #mult#(#neg(@x),#0()) -> c_126()
            #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
            #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
            #mult#(#pos(@x),#0()) -> c_129()
            #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
            #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
            #natdiv#(#0(),#0()) -> c_132()
            #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
            #natmult#(#0(),@y) -> c_134()
            #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
            #natsub#(@x,#0()) -> c_136()
            #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
            #pred#(#0()) -> c_138()
            #pred#(#neg(#s(@x))) -> c_139()
            #pred#(#pos(#s(#0()))) -> c_140()
            #pred#(#pos(#s(#s(@x)))) -> c_141()
            #sub#(@x,#0()) -> c_142()
            #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
            #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
            #succ#(#0()) -> c_145()
            #succ#(#neg(#s(#0()))) -> c_146()
            #succ#(#neg(#s(#s(@x)))) -> c_147()
            #succ#(#pos(#s(@x))) -> c_148()
            *#(@x,@y) -> c_8(#mult#(@x,@y))
            +#(@x,@y) -> c_9(#add#(@x,@y))
            -#(@x,@y) -> c_10(#sub#(@x,@y))
            add'#1#(nil(),@b2,@r) -> c_14()
            add'#2#(nil(),@r,@x,@xs) -> c_16()
            bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
            compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
            compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
            compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
            compare#4#(#false(),@r,@x,@y) -> c_28()
            compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
            compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
            compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
            compare#6#(#false()) -> c_32(#abs#(#0()))
            compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
            diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                   ,+#(+(@x,@y),@r)
                                   ,+#(@x,@y)
                                   ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                   ,#less#(-(-(@x,@y),@r),#0())
                                   ,-#(-(@x,@y),@r)
                                   ,-#(@x,@y))
            diff#1#(#false()) -> c_35(#abs#(#0()))
            diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
            div#(@x,@y) -> c_37(#div#(@x,@y))
            mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
            mult#1#(nil(),@b2) -> c_42()
            mult#3#(#false(),@b2,@zs) -> c_44()
            sub#1#(tuple#2(@b,@_@1)) -> c_48()
            sub'#1#(nil(),@b2,@r) -> c_51()
            sub'#2#(nil(),@r,@x,@xs) -> c_53()
            sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs),#equal#(@s,#pos(#s(#0()))))
            sub'#5#(#false(),@z,@zs) -> c_56()
            sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
            sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
            sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
            sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
            sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
            sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
            sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
            sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            bitToInt'(@b,@n) -> bitToInt'#1(@b,@n)
            bitToInt'#1(::(@x,@xs),@n) -> +(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
            bitToInt'#1(nil(),@n) -> #abs(#0())
            compare(@b1,@b2) -> compare#1(@b1,@b2)
            compare#1(::(@x,@xs),@b2) -> compare#2(@b2,@x,@xs)
            compare#1(nil(),@b2) -> #abs(#0())
            compare#2(::(@y,@ys),@x,@xs) -> compare#3(compare(@xs,@ys),@x,@y)
            compare#2(nil(),@x,@xs) -> #abs(#0())
            compare#3(@r,@x,@y) -> compare#4(#equal(@r,#0()),@r,@x,@y)
            compare#4(#false(),@r,@x,@y) -> @r
            compare#4(#true(),@r,@x,@y) -> compare#5(#less(@x,@y),@x,@y)
            compare#5(#false(),@x,@y) -> compare#6(#greater(@x,@y))
            compare#5(#true(),@x,@y) -> -(#0(),#pos(#s(#0())))
            compare#6(#false()) -> #abs(#0())
            compare#6(#true()) -> #abs(#pos(#s(#0())))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sub'(@b1,@b2,@r) -> sub'#1(@b1,@b2,@r)
            sub'#1(::(@x,@xs),@b2,@r) -> sub'#2(@b2,@r,@x,@xs)
            sub'#1(nil(),@b2,@r) -> tuple#2(nil(),@r)
            sub'#2(::(@y,@ys),@r,@x,@xs) -> sub'#3(diff(@x,@y,@r),@xs,@ys)
            sub'#2(nil(),@r,@x,@xs) -> tuple#2(nil(),@r)
            sub'#3(tuple#2(@z,@r'),@xs,@ys) -> sub'#4(sub'(@xs,@ys,@r'),@z)
            sub'#4(tuple#2(@zs,@s),@z) -> tuple#2(sub'#5(#equal(@s,#pos(#s(#0()))),@z,@zs),@s)
            sub'#5(#false(),@z,@zs) -> ::(@z,@zs)
            sub'#5(#true(),@z,@zs) -> ::(#abs(#0()),@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/2,c_12/1,c_13/1,c_14/0,c_15/2
            ,c_16/0,c_17/1,c_18/2,c_19/1,c_20/4,c_21/1,c_22/1,c_23/1,c_24/1,c_25/2,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/2,c_39/3,c_40/1,c_41/3,c_42/0,c_43/2,c_44/0,c_45/1
            ,c_46/2,c_47/3,c_48/0,c_49/1,c_50/1,c_51/0,c_52/2,c_53/0,c_54/2,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {23}
        by application of
          Pre({23}) = {4}.
        Here rules are labelled as follows:
          1: add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          2: add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          3: add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          4: add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
          5: add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          6: bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
          7: bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          8: bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                                ,*#(@x,@n)
                                                ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                                ,*#(@n,#pos(#s(#s(#0())))))
          9: compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          10: compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
          11: compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
          12: leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
          13: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          14: mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
          15: mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
          16: mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          17: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          18: sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
          19: sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          20: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          21: sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
          22: sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
          23: sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
          24: #abs#(#0()) -> c_1()
          25: #abs#(#neg(@x)) -> c_2()
          26: #abs#(#pos(@x)) -> c_3()
          27: #abs#(#s(@x)) -> c_4()
          28: #add#(#0(),@y) -> c_66()
          29: #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
          30: #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          31: #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
          32: #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          33: #and#(#false(),#false()) -> c_71()
          34: #and#(#false(),#true()) -> c_72()
          35: #and#(#true(),#false()) -> c_73()
          36: #and#(#true(),#true()) -> c_74()
          37: #ckgt#(#EQ()) -> c_75()
          38: #ckgt#(#GT()) -> c_76()
          39: #ckgt#(#LT()) -> c_77()
          40: #cklt#(#EQ()) -> c_78()
          41: #cklt#(#GT()) -> c_79()
          42: #cklt#(#LT()) -> c_80()
          43: #compare#(#0(),#0()) -> c_81()
          44: #compare#(#0(),#neg(@y)) -> c_82()
          45: #compare#(#0(),#pos(@y)) -> c_83()
          46: #compare#(#0(),#s(@y)) -> c_84()
          47: #compare#(#neg(@x),#0()) -> c_85()
          48: #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
          49: #compare#(#neg(@x),#pos(@y)) -> c_87()
          50: #compare#(#pos(@x),#0()) -> c_88()
          51: #compare#(#pos(@x),#neg(@y)) -> c_89()
          52: #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
          53: #compare#(#s(@x),#0()) -> c_91()
          54: #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
          55: #div#(#0(),#0()) -> c_93()
          56: #div#(#0(),#neg(@y)) -> c_94()
          57: #div#(#0(),#pos(@y)) -> c_95()
          58: #div#(#neg(@x),#0()) -> c_96()
          59: #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
          60: #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
          61: #div#(#pos(@x),#0()) -> c_99()
          62: #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
          63: #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
          64: #eq#(#0(),#0()) -> c_102()
          65: #eq#(#0(),#neg(@y)) -> c_103()
          66: #eq#(#0(),#pos(@y)) -> c_104()
          67: #eq#(#0(),#s(@y)) -> c_105()
          68: #eq#(#neg(@x),#0()) -> c_106()
          69: #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
          70: #eq#(#neg(@x),#pos(@y)) -> c_108()
          71: #eq#(#pos(@x),#0()) -> c_109()
          72: #eq#(#pos(@x),#neg(@y)) -> c_110()
          73: #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
          74: #eq#(#s(@x),#0()) -> c_112()
          75: #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
          76: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                        ,#eq#(@x_1,@y_1)
                                                        ,#eq#(@x_2,@y_2))
          77: #eq#(::(@x_1,@x_2),nil()) -> c_115()
          78: #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
          79: #eq#(nil(),::(@y_1,@y_2)) -> c_117()
          80: #eq#(nil(),nil()) -> c_118()
          81: #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
          82: #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
          83: #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
          84: #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                  ,#eq#(@x_1,@y_1)
                                                                  ,#eq#(@x_2,@y_2))
          85: #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          86: #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          87: #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
          88: #mult#(#0(),#0()) -> c_123()
          89: #mult#(#0(),#neg(@y)) -> c_124()
          90: #mult#(#0(),#pos(@y)) -> c_125()
          91: #mult#(#neg(@x),#0()) -> c_126()
          92: #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
          93: #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
          94: #mult#(#pos(@x),#0()) -> c_129()
          95: #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
          96: #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
          97: #natdiv#(#0(),#0()) -> c_132()
          98: #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
          99: #natmult#(#0(),@y) -> c_134()
          100: #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
          101: #natsub#(@x,#0()) -> c_136()
          102: #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
          103: #pred#(#0()) -> c_138()
          104: #pred#(#neg(#s(@x))) -> c_139()
          105: #pred#(#pos(#s(#0()))) -> c_140()
          106: #pred#(#pos(#s(#s(@x)))) -> c_141()
          107: #sub#(@x,#0()) -> c_142()
          108: #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
          109: #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
          110: #succ#(#0()) -> c_145()
          111: #succ#(#neg(#s(#0()))) -> c_146()
          112: #succ#(#neg(#s(#s(@x)))) -> c_147()
          113: #succ#(#pos(#s(@x))) -> c_148()
          114: *#(@x,@y) -> c_8(#mult#(@x,@y))
          115: +#(@x,@y) -> c_9(#add#(@x,@y))
          116: -#(@x,@y) -> c_10(#sub#(@x,@y))
          117: add'#1#(nil(),@b2,@r) -> c_14()
          118: add'#2#(nil(),@r,@x,@xs) -> c_16()
          119: bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
          120: compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
          121: compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
          122: compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
          123: compare#4#(#false(),@r,@x,@y) -> c_28()
          124: compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
          125: compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
          126: compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
          127: compare#6#(#false()) -> c_32(#abs#(#0()))
          128: compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
          129: diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                      ,+#(+(@x,@y),@r)
                                      ,+#(@x,@y)
                                      ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                      ,#less#(-(-(@x,@y),@r),#0())
                                      ,-#(-(@x,@y),@r)
                                      ,-#(@x,@y))
          130: diff#1#(#false()) -> c_35(#abs#(#0()))
          131: diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
          132: div#(@x,@y) -> c_37(#div#(@x,@y))
          133: mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
          134: mult#1#(nil(),@b2) -> c_42()
          135: mult#3#(#false(),@b2,@zs) -> c_44()
          136: sub#1#(tuple#2(@b,@_@1)) -> c_48()
          137: sub'#1#(nil(),@b2,@r) -> c_51()
          138: sub'#2#(nil(),@r,@x,@xs) -> c_53()
          139: sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs)
                                                  ,#equal#(@s,#pos(#s(#0()))))
          140: sub'#5#(#false(),@z,@zs) -> c_56()
          141: sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
          142: sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
          143: sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
          144: sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
          145: sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
          146: sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
          147: sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
          148: sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
* Step 10: RemoveWeakSuffixes WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                               ,*#(@x,@n)
                                               ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                               ,*#(@n,#pos(#s(#s(#0())))))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
            leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
        - Weak DPs:
            #abs#(#0()) -> c_1()
            #abs#(#neg(@x)) -> c_2()
            #abs#(#pos(@x)) -> c_3()
            #abs#(#s(@x)) -> c_4()
            #add#(#0(),@y) -> c_66()
            #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #and#(#false(),#false()) -> c_71()
            #and#(#false(),#true()) -> c_72()
            #and#(#true(),#false()) -> c_73()
            #and#(#true(),#true()) -> c_74()
            #ckgt#(#EQ()) -> c_75()
            #ckgt#(#GT()) -> c_76()
            #ckgt#(#LT()) -> c_77()
            #cklt#(#EQ()) -> c_78()
            #cklt#(#GT()) -> c_79()
            #cklt#(#LT()) -> c_80()
            #compare#(#0(),#0()) -> c_81()
            #compare#(#0(),#neg(@y)) -> c_82()
            #compare#(#0(),#pos(@y)) -> c_83()
            #compare#(#0(),#s(@y)) -> c_84()
            #compare#(#neg(@x),#0()) -> c_85()
            #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_87()
            #compare#(#pos(@x),#0()) -> c_88()
            #compare#(#pos(@x),#neg(@y)) -> c_89()
            #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_91()
            #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
            #div#(#0(),#0()) -> c_93()
            #div#(#0(),#neg(@y)) -> c_94()
            #div#(#0(),#pos(@y)) -> c_95()
            #div#(#neg(@x),#0()) -> c_96()
            #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
            #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
            #div#(#pos(@x),#0()) -> c_99()
            #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
            #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
            #eq#(#0(),#0()) -> c_102()
            #eq#(#0(),#neg(@y)) -> c_103()
            #eq#(#0(),#pos(@y)) -> c_104()
            #eq#(#0(),#s(@y)) -> c_105()
            #eq#(#neg(@x),#0()) -> c_106()
            #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_108()
            #eq#(#pos(@x),#0()) -> c_109()
            #eq#(#pos(@x),#neg(@y)) -> c_110()
            #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_112()
            #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                      ,#eq#(@x_1,@y_1)
                                                      ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_115()
            #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
            #eq#(nil(),::(@y_1,@y_2)) -> c_117()
            #eq#(nil(),nil()) -> c_118()
            #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
            #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
            #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
            #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                ,#eq#(@x_1,@y_1)
                                                                ,#eq#(@x_2,@y_2))
            #equal#(@x,@y) -> c_5(#eq#(@x,@y))
            #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
            #mult#(#0(),#0()) -> c_123()
            #mult#(#0(),#neg(@y)) -> c_124()
            #mult#(#0(),#pos(@y)) -> c_125()
            #mult#(#neg(@x),#0()) -> c_126()
            #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
            #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
            #mult#(#pos(@x),#0()) -> c_129()
            #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
            #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
            #natdiv#(#0(),#0()) -> c_132()
            #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
            #natmult#(#0(),@y) -> c_134()
            #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
            #natsub#(@x,#0()) -> c_136()
            #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
            #pred#(#0()) -> c_138()
            #pred#(#neg(#s(@x))) -> c_139()
            #pred#(#pos(#s(#0()))) -> c_140()
            #pred#(#pos(#s(#s(@x)))) -> c_141()
            #sub#(@x,#0()) -> c_142()
            #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
            #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
            #succ#(#0()) -> c_145()
            #succ#(#neg(#s(#0()))) -> c_146()
            #succ#(#neg(#s(#s(@x)))) -> c_147()
            #succ#(#pos(#s(@x))) -> c_148()
            *#(@x,@y) -> c_8(#mult#(@x,@y))
            +#(@x,@y) -> c_9(#add#(@x,@y))
            -#(@x,@y) -> c_10(#sub#(@x,@y))
            add'#1#(nil(),@b2,@r) -> c_14()
            add'#2#(nil(),@r,@x,@xs) -> c_16()
            bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
            compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
            compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
            compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
            compare#4#(#false(),@r,@x,@y) -> c_28()
            compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
            compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
            compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
            compare#6#(#false()) -> c_32(#abs#(#0()))
            compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
            diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                   ,+#(+(@x,@y),@r)
                                   ,+#(@x,@y)
                                   ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                   ,#less#(-(-(@x,@y),@r),#0())
                                   ,-#(-(@x,@y),@r)
                                   ,-#(@x,@y))
            diff#1#(#false()) -> c_35(#abs#(#0()))
            diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
            div#(@x,@y) -> c_37(#div#(@x,@y))
            mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
            mult#1#(nil(),@b2) -> c_42()
            mult#3#(#false(),@b2,@zs) -> c_44()
            sub#1#(tuple#2(@b,@_@1)) -> c_48()
            sub'#1#(nil(),@b2,@r) -> c_51()
            sub'#2#(nil(),@r,@x,@xs) -> c_53()
            sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs),#equal#(@s,#pos(#s(#0()))))
            sub'#5#(#false(),@z,@zs) -> c_56()
            sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
            sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
            sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
            sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
            sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
            sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
            sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
            sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
            sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            bitToInt'(@b,@n) -> bitToInt'#1(@b,@n)
            bitToInt'#1(::(@x,@xs),@n) -> +(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
            bitToInt'#1(nil(),@n) -> #abs(#0())
            compare(@b1,@b2) -> compare#1(@b1,@b2)
            compare#1(::(@x,@xs),@b2) -> compare#2(@b2,@x,@xs)
            compare#1(nil(),@b2) -> #abs(#0())
            compare#2(::(@y,@ys),@x,@xs) -> compare#3(compare(@xs,@ys),@x,@y)
            compare#2(nil(),@x,@xs) -> #abs(#0())
            compare#3(@r,@x,@y) -> compare#4(#equal(@r,#0()),@r,@x,@y)
            compare#4(#false(),@r,@x,@y) -> @r
            compare#4(#true(),@r,@x,@y) -> compare#5(#less(@x,@y),@x,@y)
            compare#5(#false(),@x,@y) -> compare#6(#greater(@x,@y))
            compare#5(#true(),@x,@y) -> -(#0(),#pos(#s(#0())))
            compare#6(#false()) -> #abs(#0())
            compare#6(#true()) -> #abs(#pos(#s(#0())))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sub'(@b1,@b2,@r) -> sub'#1(@b1,@b2,@r)
            sub'#1(::(@x,@xs),@b2,@r) -> sub'#2(@b2,@r,@x,@xs)
            sub'#1(nil(),@b2,@r) -> tuple#2(nil(),@r)
            sub'#2(::(@y,@ys),@r,@x,@xs) -> sub'#3(diff(@x,@y,@r),@xs,@ys)
            sub'#2(nil(),@r,@x,@xs) -> tuple#2(nil(),@r)
            sub'#3(tuple#2(@z,@r'),@xs,@ys) -> sub'#4(sub'(@xs,@ys,@r'),@z)
            sub'#4(tuple#2(@zs,@s),@z) -> tuple#2(sub'#5(#equal(@s,#pos(#s(#0()))),@z,@zs),@s)
            sub'#5(#false(),@z,@zs) -> ::(@z,@zs)
            sub'#5(#true(),@z,@zs) -> ::(#abs(#0()),@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/2,c_12/1,c_13/1,c_14/0,c_15/2
            ,c_16/0,c_17/1,c_18/2,c_19/1,c_20/4,c_21/1,c_22/1,c_23/1,c_24/1,c_25/2,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/2,c_39/3,c_40/1,c_41/3,c_42/0,c_43/2,c_44/0,c_45/1
            ,c_46/2,c_47/3,c_48/0,c_49/1,c_50/1,c_51/0,c_52/2,c_53/0,c_54/2,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
             -->_1 add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r)):2
             -->_2 #abs#(#0()) -> c_1():23
          
          2:S:add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
             -->_1 add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs)):3
             -->_1 add'#1#(nil(),@b2,@r) -> c_14():116
          
          3:S:add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
             -->_1 add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r)):4
             -->_1 add'#2#(nil(),@r,@x,@xs) -> c_16():117
          
          4:S:add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
             -->_2 sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y)):141
             -->_1 add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r')):5
          
          5:S:add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
             -->_1 add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r)):2
          
          6:S:bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
             -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):7
             -->_2 #abs#(#pos(@x)) -> c_3():25
          
          7:S:bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
             -->_1 bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0())):118
             -->_1 bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                                      ,*#(@x,@n)
                                                      ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                                      ,*#(@n,#pos(#s(#s(#0()))))):8
          
          8:S:bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                                 ,*#(@x,@n)
                                                 ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                                 ,*#(@n,#pos(#s(#s(#0())))))
             -->_1 +#(@x,@y) -> c_9(#add#(@x,@y)):114
             -->_4 *#(@x,@y) -> c_8(#mult#(@x,@y)):113
             -->_2 *#(@x,@y) -> c_8(#mult#(@x,@y)):113
             -->_3 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):7
          
          9:S:compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
             -->_1 compare#1#(nil(),@b2) -> c_24(#abs#(#0())):119
             -->_1 compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs)):10
          
          10:S:compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
             -->_1 compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0())):120
             -->_1 compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys)):11
          
          11:S:compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
             -->_1 compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0())):121
             -->_2 compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2)):9
          
          12:S:leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
             -->_1 #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y)):86
             -->_2 compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2)):9
          
          13:S:mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
             -->_1 mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
                                                  ,#abs#(#0())
                                                  ,mult#(@xs,@b2)):14
             -->_1 mult#1#(nil(),@b2) -> c_42():133
          
          14:S:mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
                                              ,#abs#(#0())
                                              ,mult#(@xs,@b2))
             -->_1 mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs)
                                              ,#equal#(@x,#pos(#s(#0())))):15
             -->_2 #abs#(#0()) -> c_1():23
             -->_3 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):13
          
          15:S:mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
             -->_2 #equal#(@x,@y) -> c_5(#eq#(@x,@y)):84
             -->_1 mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs)):16
             -->_1 mult#3#(#false(),@b2,@zs) -> c_44():134
          
          16:S:mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
             -->_1 add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0())):1
          
          17:S:mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):13
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):13
          
          18:S:sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
             -->_2 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):19
             -->_1 sub#1#(tuple#2(@b,@_@1)) -> c_48():135
             -->_3 #abs#(#0()) -> c_1():23
          
          19:S:sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
             -->_1 sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs)):20
             -->_1 sub'#1#(nil(),@b2,@r) -> c_51():136
          
          20:S:sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
             -->_1 sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r)):21
             -->_1 sub'#2#(nil(),@r,@x,@xs) -> c_53():137
          
          21:S:sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
             -->_2 diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                          ,+#(+(@x,@y),@r)
                                          ,+#(@x,@y)
                                          ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                          ,#less#(-(-(@x,@y),@r),#0())
                                          ,-#(-(@x,@y),@r)
                                          ,-#(@x,@y)):128
             -->_1 sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r')):22
          
          22:S:sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
             -->_1 sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs)
                                                      ,#equal#(@s,#pos(#s(#0())))):138
             -->_2 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):19
          
          23:W:#abs#(#0()) -> c_1()
             
          
          24:W:#abs#(#neg(@x)) -> c_2()
             
          
          25:W:#abs#(#pos(@x)) -> c_3()
             
          
          26:W:#abs#(#s(@x)) -> c_4()
             
          
          27:W:#add#(#0(),@y) -> c_66()
             
          
          28:W:#add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
             -->_1 #pred#(#pos(#s(#s(@x)))) -> c_141():105
             -->_1 #pred#(#pos(#s(#0()))) -> c_140():104
             -->_1 #pred#(#neg(#s(@x))) -> c_139():103
             -->_1 #pred#(#0()) -> c_138():102
          
          29:W:#add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
             -->_2 #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):31
             -->_2 #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y)):30
             -->_1 #pred#(#pos(#s(#s(@x)))) -> c_141():105
             -->_1 #pred#(#pos(#s(#0()))) -> c_140():104
             -->_1 #pred#(#neg(#s(@x))) -> c_139():103
             -->_1 #pred#(#0()) -> c_138():102
          
          30:W:#add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
             -->_1 #succ#(#pos(#s(@x))) -> c_148():112
             -->_1 #succ#(#neg(#s(#s(@x)))) -> c_147():111
             -->_1 #succ#(#neg(#s(#0()))) -> c_146():110
             -->_1 #succ#(#0()) -> c_145():109
          
          31:W:#add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
             -->_1 #succ#(#pos(#s(@x))) -> c_148():112
             -->_1 #succ#(#neg(#s(#s(@x)))) -> c_147():111
             -->_1 #succ#(#neg(#s(#0()))) -> c_146():110
             -->_1 #succ#(#0()) -> c_145():109
             -->_2 #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):31
             -->_2 #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y)):30
          
          32:W:#and#(#false(),#false()) -> c_71()
             
          
          33:W:#and#(#false(),#true()) -> c_72()
             
          
          34:W:#and#(#true(),#false()) -> c_73()
             
          
          35:W:#and#(#true(),#true()) -> c_74()
             
          
          36:W:#ckgt#(#EQ()) -> c_75()
             
          
          37:W:#ckgt#(#GT()) -> c_76()
             
          
          38:W:#ckgt#(#LT()) -> c_77()
             
          
          39:W:#cklt#(#EQ()) -> c_78()
             
          
          40:W:#cklt#(#GT()) -> c_79()
             
          
          41:W:#cklt#(#LT()) -> c_80()
             
          
          42:W:#compare#(#0(),#0()) -> c_81()
             
          
          43:W:#compare#(#0(),#neg(@y)) -> c_82()
             
          
          44:W:#compare#(#0(),#pos(@y)) -> c_83()
             
          
          45:W:#compare#(#0(),#s(@y)) -> c_84()
             
          
          46:W:#compare#(#neg(@x),#0()) -> c_85()
             
          
          47:W:#compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
             -->_1 #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y)):53
             -->_1 #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y)):51
             -->_1 #compare#(#s(@x),#0()) -> c_91():52
             -->_1 #compare#(#pos(@x),#neg(@y)) -> c_89():50
             -->_1 #compare#(#pos(@x),#0()) -> c_88():49
             -->_1 #compare#(#neg(@x),#pos(@y)) -> c_87():48
             -->_1 #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x)):47
             -->_1 #compare#(#neg(@x),#0()) -> c_85():46
             -->_1 #compare#(#0(),#s(@y)) -> c_84():45
             -->_1 #compare#(#0(),#pos(@y)) -> c_83():44
             -->_1 #compare#(#0(),#neg(@y)) -> c_82():43
             -->_1 #compare#(#0(),#0()) -> c_81():42
          
          48:W:#compare#(#neg(@x),#pos(@y)) -> c_87()
             
          
          49:W:#compare#(#pos(@x),#0()) -> c_88()
             
          
          50:W:#compare#(#pos(@x),#neg(@y)) -> c_89()
             
          
          51:W:#compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
             -->_1 #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y)):53
             -->_1 #compare#(#s(@x),#0()) -> c_91():52
             -->_1 #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y)):51
             -->_1 #compare#(#pos(@x),#neg(@y)) -> c_89():50
             -->_1 #compare#(#pos(@x),#0()) -> c_88():49
             -->_1 #compare#(#neg(@x),#pos(@y)) -> c_87():48
             -->_1 #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x)):47
             -->_1 #compare#(#neg(@x),#0()) -> c_85():46
             -->_1 #compare#(#0(),#s(@y)) -> c_84():45
             -->_1 #compare#(#0(),#pos(@y)) -> c_83():44
             -->_1 #compare#(#0(),#neg(@y)) -> c_82():43
             -->_1 #compare#(#0(),#0()) -> c_81():42
          
          52:W:#compare#(#s(@x),#0()) -> c_91()
             
          
          53:W:#compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
             -->_1 #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y)):53
             -->_1 #compare#(#s(@x),#0()) -> c_91():52
             -->_1 #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y)):51
             -->_1 #compare#(#pos(@x),#neg(@y)) -> c_89():50
             -->_1 #compare#(#pos(@x),#0()) -> c_88():49
             -->_1 #compare#(#neg(@x),#pos(@y)) -> c_87():48
             -->_1 #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x)):47
             -->_1 #compare#(#neg(@x),#0()) -> c_85():46
             -->_1 #compare#(#0(),#s(@y)) -> c_84():45
             -->_1 #compare#(#0(),#pos(@y)) -> c_83():44
             -->_1 #compare#(#0(),#neg(@y)) -> c_82():43
             -->_1 #compare#(#0(),#0()) -> c_81():42
          
          54:W:#div#(#0(),#0()) -> c_93()
             
          
          55:W:#div#(#0(),#neg(@y)) -> c_94()
             
          
          56:W:#div#(#0(),#pos(@y)) -> c_95()
             
          
          57:W:#div#(#neg(@x),#0()) -> c_96()
             
          
          58:W:#div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
             -->_1 #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y)):97
             -->_1 #natdiv#(#0(),#0()) -> c_132():96
          
          59:W:#div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
             -->_1 #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y)):97
             -->_1 #natdiv#(#0(),#0()) -> c_132():96
          
          60:W:#div#(#pos(@x),#0()) -> c_99()
             
          
          61:W:#div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
             -->_1 #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y)):97
             -->_1 #natdiv#(#0(),#0()) -> c_132():96
          
          62:W:#div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
             -->_1 #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y)):97
             -->_1 #natdiv#(#0(),#0()) -> c_132():96
          
          63:W:#eq#(#0(),#0()) -> c_102()
             
          
          64:W:#eq#(#0(),#neg(@y)) -> c_103()
             
          
          65:W:#eq#(#0(),#pos(@y)) -> c_104()
             
          
          66:W:#eq#(#0(),#s(@y)) -> c_105()
             
          
          67:W:#eq#(#neg(@x),#0()) -> c_106()
             
          
          68:W:#eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
             -->_1 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                       ,#eq#(@x_1,@y_1)
                                                                       ,#eq#(@x_2,@y_2)):83
             -->_1 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                             ,#eq#(@x_1,@y_1)
                                                             ,#eq#(@x_2,@y_2)):75
             -->_1 #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y)):74
             -->_1 #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y)):72
             -->_1 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121():82
             -->_1 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120():81
             -->_1 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119():80
             -->_1 #eq#(nil(),nil()) -> c_118():79
             -->_1 #eq#(nil(),::(@y_1,@y_2)) -> c_117():78
             -->_1 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116():77
             -->_1 #eq#(::(@x_1,@x_2),nil()) -> c_115():76
             -->_1 #eq#(#s(@x),#0()) -> c_112():73
             -->_1 #eq#(#pos(@x),#neg(@y)) -> c_110():71
             -->_1 #eq#(#pos(@x),#0()) -> c_109():70
             -->_1 #eq#(#neg(@x),#pos(@y)) -> c_108():69
             -->_1 #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y)):68
             -->_1 #eq#(#neg(@x),#0()) -> c_106():67
             -->_1 #eq#(#0(),#s(@y)) -> c_105():66
             -->_1 #eq#(#0(),#pos(@y)) -> c_104():65
             -->_1 #eq#(#0(),#neg(@y)) -> c_103():64
             -->_1 #eq#(#0(),#0()) -> c_102():63
          
          69:W:#eq#(#neg(@x),#pos(@y)) -> c_108()
             
          
          70:W:#eq#(#pos(@x),#0()) -> c_109()
             
          
          71:W:#eq#(#pos(@x),#neg(@y)) -> c_110()
             
          
          72:W:#eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
             -->_1 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                       ,#eq#(@x_1,@y_1)
                                                                       ,#eq#(@x_2,@y_2)):83
             -->_1 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                             ,#eq#(@x_1,@y_1)
                                                             ,#eq#(@x_2,@y_2)):75
             -->_1 #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y)):74
             -->_1 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121():82
             -->_1 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120():81
             -->_1 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119():80
             -->_1 #eq#(nil(),nil()) -> c_118():79
             -->_1 #eq#(nil(),::(@y_1,@y_2)) -> c_117():78
             -->_1 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116():77
             -->_1 #eq#(::(@x_1,@x_2),nil()) -> c_115():76
             -->_1 #eq#(#s(@x),#0()) -> c_112():73
             -->_1 #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y)):72
             -->_1 #eq#(#pos(@x),#neg(@y)) -> c_110():71
             -->_1 #eq#(#pos(@x),#0()) -> c_109():70
             -->_1 #eq#(#neg(@x),#pos(@y)) -> c_108():69
             -->_1 #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y)):68
             -->_1 #eq#(#neg(@x),#0()) -> c_106():67
             -->_1 #eq#(#0(),#s(@y)) -> c_105():66
             -->_1 #eq#(#0(),#pos(@y)) -> c_104():65
             -->_1 #eq#(#0(),#neg(@y)) -> c_103():64
             -->_1 #eq#(#0(),#0()) -> c_102():63
          
          73:W:#eq#(#s(@x),#0()) -> c_112()
             
          
          74:W:#eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
             -->_1 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                       ,#eq#(@x_1,@y_1)
                                                                       ,#eq#(@x_2,@y_2)):83
             -->_1 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                             ,#eq#(@x_1,@y_1)
                                                             ,#eq#(@x_2,@y_2)):75
             -->_1 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121():82
             -->_1 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120():81
             -->_1 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119():80
             -->_1 #eq#(nil(),nil()) -> c_118():79
             -->_1 #eq#(nil(),::(@y_1,@y_2)) -> c_117():78
             -->_1 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116():77
             -->_1 #eq#(::(@x_1,@x_2),nil()) -> c_115():76
             -->_1 #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y)):74
             -->_1 #eq#(#s(@x),#0()) -> c_112():73
             -->_1 #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y)):72
             -->_1 #eq#(#pos(@x),#neg(@y)) -> c_110():71
             -->_1 #eq#(#pos(@x),#0()) -> c_109():70
             -->_1 #eq#(#neg(@x),#pos(@y)) -> c_108():69
             -->_1 #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y)):68
             -->_1 #eq#(#neg(@x),#0()) -> c_106():67
             -->_1 #eq#(#0(),#s(@y)) -> c_105():66
             -->_1 #eq#(#0(),#pos(@y)) -> c_104():65
             -->_1 #eq#(#0(),#neg(@y)) -> c_103():64
             -->_1 #eq#(#0(),#0()) -> c_102():63
          
          75:W:#eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                         ,#eq#(@x_1,@y_1)
                                                         ,#eq#(@x_2,@y_2))
             -->_3 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                       ,#eq#(@x_1,@y_1)
                                                                       ,#eq#(@x_2,@y_2)):83
             -->_2 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                       ,#eq#(@x_1,@y_1)
                                                                       ,#eq#(@x_2,@y_2)):83
             -->_3 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121():82
             -->_2 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121():82
             -->_3 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120():81
             -->_2 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120():81
             -->_3 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119():80
             -->_2 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119():80
             -->_3 #eq#(nil(),nil()) -> c_118():79
             -->_2 #eq#(nil(),nil()) -> c_118():79
             -->_3 #eq#(nil(),::(@y_1,@y_2)) -> c_117():78
             -->_2 #eq#(nil(),::(@y_1,@y_2)) -> c_117():78
             -->_3 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116():77
             -->_2 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116():77
             -->_3 #eq#(::(@x_1,@x_2),nil()) -> c_115():76
             -->_2 #eq#(::(@x_1,@x_2),nil()) -> c_115():76
             -->_3 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                             ,#eq#(@x_1,@y_1)
                                                             ,#eq#(@x_2,@y_2)):75
             -->_2 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                             ,#eq#(@x_1,@y_1)
                                                             ,#eq#(@x_2,@y_2)):75
             -->_3 #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y)):74
             -->_2 #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y)):74
             -->_3 #eq#(#s(@x),#0()) -> c_112():73
             -->_2 #eq#(#s(@x),#0()) -> c_112():73
             -->_3 #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y)):72
             -->_2 #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y)):72
             -->_3 #eq#(#pos(@x),#neg(@y)) -> c_110():71
             -->_2 #eq#(#pos(@x),#neg(@y)) -> c_110():71
             -->_3 #eq#(#pos(@x),#0()) -> c_109():70
             -->_2 #eq#(#pos(@x),#0()) -> c_109():70
             -->_3 #eq#(#neg(@x),#pos(@y)) -> c_108():69
             -->_2 #eq#(#neg(@x),#pos(@y)) -> c_108():69
             -->_3 #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y)):68
             -->_2 #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y)):68
             -->_3 #eq#(#neg(@x),#0()) -> c_106():67
             -->_2 #eq#(#neg(@x),#0()) -> c_106():67
             -->_3 #eq#(#0(),#s(@y)) -> c_105():66
             -->_2 #eq#(#0(),#s(@y)) -> c_105():66
             -->_3 #eq#(#0(),#pos(@y)) -> c_104():65
             -->_2 #eq#(#0(),#pos(@y)) -> c_104():65
             -->_3 #eq#(#0(),#neg(@y)) -> c_103():64
             -->_2 #eq#(#0(),#neg(@y)) -> c_103():64
             -->_3 #eq#(#0(),#0()) -> c_102():63
             -->_2 #eq#(#0(),#0()) -> c_102():63
             -->_1 #and#(#true(),#true()) -> c_74():35
             -->_1 #and#(#true(),#false()) -> c_73():34
             -->_1 #and#(#false(),#true()) -> c_72():33
             -->_1 #and#(#false(),#false()) -> c_71():32
          
          76:W:#eq#(::(@x_1,@x_2),nil()) -> c_115()
             
          
          77:W:#eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
             
          
          78:W:#eq#(nil(),::(@y_1,@y_2)) -> c_117()
             
          
          79:W:#eq#(nil(),nil()) -> c_118()
             
          
          80:W:#eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
             
          
          81:W:#eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
             
          
          82:W:#eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
             
          
          83:W:#eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                   ,#eq#(@x_1,@y_1)
                                                                   ,#eq#(@x_2,@y_2))
             -->_3 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                       ,#eq#(@x_1,@y_1)
                                                                       ,#eq#(@x_2,@y_2)):83
             -->_2 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                       ,#eq#(@x_1,@y_1)
                                                                       ,#eq#(@x_2,@y_2)):83
             -->_3 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121():82
             -->_2 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121():82
             -->_3 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120():81
             -->_2 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120():81
             -->_3 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119():80
             -->_2 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119():80
             -->_3 #eq#(nil(),nil()) -> c_118():79
             -->_2 #eq#(nil(),nil()) -> c_118():79
             -->_3 #eq#(nil(),::(@y_1,@y_2)) -> c_117():78
             -->_2 #eq#(nil(),::(@y_1,@y_2)) -> c_117():78
             -->_3 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116():77
             -->_2 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116():77
             -->_3 #eq#(::(@x_1,@x_2),nil()) -> c_115():76
             -->_2 #eq#(::(@x_1,@x_2),nil()) -> c_115():76
             -->_3 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                             ,#eq#(@x_1,@y_1)
                                                             ,#eq#(@x_2,@y_2)):75
             -->_2 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                             ,#eq#(@x_1,@y_1)
                                                             ,#eq#(@x_2,@y_2)):75
             -->_3 #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y)):74
             -->_2 #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y)):74
             -->_3 #eq#(#s(@x),#0()) -> c_112():73
             -->_2 #eq#(#s(@x),#0()) -> c_112():73
             -->_3 #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y)):72
             -->_2 #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y)):72
             -->_3 #eq#(#pos(@x),#neg(@y)) -> c_110():71
             -->_2 #eq#(#pos(@x),#neg(@y)) -> c_110():71
             -->_3 #eq#(#pos(@x),#0()) -> c_109():70
             -->_2 #eq#(#pos(@x),#0()) -> c_109():70
             -->_3 #eq#(#neg(@x),#pos(@y)) -> c_108():69
             -->_2 #eq#(#neg(@x),#pos(@y)) -> c_108():69
             -->_3 #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y)):68
             -->_2 #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y)):68
             -->_3 #eq#(#neg(@x),#0()) -> c_106():67
             -->_2 #eq#(#neg(@x),#0()) -> c_106():67
             -->_3 #eq#(#0(),#s(@y)) -> c_105():66
             -->_2 #eq#(#0(),#s(@y)) -> c_105():66
             -->_3 #eq#(#0(),#pos(@y)) -> c_104():65
             -->_2 #eq#(#0(),#pos(@y)) -> c_104():65
             -->_3 #eq#(#0(),#neg(@y)) -> c_103():64
             -->_2 #eq#(#0(),#neg(@y)) -> c_103():64
             -->_3 #eq#(#0(),#0()) -> c_102():63
             -->_2 #eq#(#0(),#0()) -> c_102():63
             -->_1 #and#(#true(),#true()) -> c_74():35
             -->_1 #and#(#true(),#false()) -> c_73():34
             -->_1 #and#(#false(),#true()) -> c_72():33
             -->_1 #and#(#false(),#false()) -> c_71():32
          
          84:W:#equal#(@x,@y) -> c_5(#eq#(@x,@y))
             -->_1 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                       ,#eq#(@x_1,@y_1)
                                                                       ,#eq#(@x_2,@y_2)):83
             -->_1 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121():82
             -->_1 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120():81
             -->_1 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119():80
             -->_1 #eq#(nil(),nil()) -> c_118():79
             -->_1 #eq#(nil(),::(@y_1,@y_2)) -> c_117():78
             -->_1 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116():77
             -->_1 #eq#(::(@x_1,@x_2),nil()) -> c_115():76
             -->_1 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                             ,#eq#(@x_1,@y_1)
                                                             ,#eq#(@x_2,@y_2)):75
             -->_1 #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y)):74
             -->_1 #eq#(#s(@x),#0()) -> c_112():73
             -->_1 #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y)):72
             -->_1 #eq#(#pos(@x),#neg(@y)) -> c_110():71
             -->_1 #eq#(#pos(@x),#0()) -> c_109():70
             -->_1 #eq#(#neg(@x),#pos(@y)) -> c_108():69
             -->_1 #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y)):68
             -->_1 #eq#(#neg(@x),#0()) -> c_106():67
             -->_1 #eq#(#0(),#s(@y)) -> c_105():66
             -->_1 #eq#(#0(),#pos(@y)) -> c_104():65
             -->_1 #eq#(#0(),#neg(@y)) -> c_103():64
             -->_1 #eq#(#0(),#0()) -> c_102():63
          
          85:W:#greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
             -->_2 #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y)):53
             -->_2 #compare#(#s(@x),#0()) -> c_91():52
             -->_2 #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y)):51
             -->_2 #compare#(#pos(@x),#neg(@y)) -> c_89():50
             -->_2 #compare#(#pos(@x),#0()) -> c_88():49
             -->_2 #compare#(#neg(@x),#pos(@y)) -> c_87():48
             -->_2 #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x)):47
             -->_2 #compare#(#neg(@x),#0()) -> c_85():46
             -->_2 #compare#(#0(),#s(@y)) -> c_84():45
             -->_2 #compare#(#0(),#pos(@y)) -> c_83():44
             -->_2 #compare#(#0(),#neg(@y)) -> c_82():43
             -->_2 #compare#(#0(),#0()) -> c_81():42
             -->_1 #ckgt#(#LT()) -> c_77():38
             -->_1 #ckgt#(#GT()) -> c_76():37
             -->_1 #ckgt#(#EQ()) -> c_75():36
          
          86:W:#less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
             -->_2 #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y)):53
             -->_2 #compare#(#s(@x),#0()) -> c_91():52
             -->_2 #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y)):51
             -->_2 #compare#(#pos(@x),#neg(@y)) -> c_89():50
             -->_2 #compare#(#pos(@x),#0()) -> c_88():49
             -->_2 #compare#(#neg(@x),#pos(@y)) -> c_87():48
             -->_2 #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x)):47
             -->_2 #compare#(#neg(@x),#0()) -> c_85():46
             -->_2 #compare#(#0(),#s(@y)) -> c_84():45
             -->_2 #compare#(#0(),#pos(@y)) -> c_83():44
             -->_2 #compare#(#0(),#neg(@y)) -> c_82():43
             -->_2 #compare#(#0(),#0()) -> c_81():42
             -->_1 #cklt#(#LT()) -> c_80():41
             -->_1 #cklt#(#GT()) -> c_79():40
             -->_1 #cklt#(#EQ()) -> c_78():39
          
          87:W:#mult#(#0(),#0()) -> c_123()
             
          
          88:W:#mult#(#0(),#neg(@y)) -> c_124()
             
          
          89:W:#mult#(#0(),#pos(@y)) -> c_125()
             
          
          90:W:#mult#(#neg(@x),#0()) -> c_126()
             
          
          91:W:#mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
             -->_1 #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y)):99
             -->_1 #natmult#(#0(),@y) -> c_134():98
          
          92:W:#mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
             -->_1 #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y)):99
             -->_1 #natmult#(#0(),@y) -> c_134():98
          
          93:W:#mult#(#pos(@x),#0()) -> c_129()
             
          
          94:W:#mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
             -->_1 #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y)):99
             -->_1 #natmult#(#0(),@y) -> c_134():98
          
          95:W:#mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
             -->_1 #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y)):99
             -->_1 #natmult#(#0(),@y) -> c_134():98
          
          96:W:#natdiv#(#0(),#0()) -> c_132()
             
          
          97:W:#natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
             -->_2 #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y)):101
             -->_2 #natsub#(@x,#0()) -> c_136():100
             -->_1 #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y)):97
          
          98:W:#natmult#(#0(),@y) -> c_134()
             
          
          99:W:#natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
             -->_2 #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y)):99
             -->_2 #natmult#(#0(),@y) -> c_134():98
             -->_1 #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):31
             -->_1 #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y)):30
          
          100:W:#natsub#(@x,#0()) -> c_136()
             
          
          101:W:#natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
             -->_1 #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y)):101
             -->_1 #natsub#(@x,#0()) -> c_136():100
          
          102:W:#pred#(#0()) -> c_138()
             
          
          103:W:#pred#(#neg(#s(@x))) -> c_139()
             
          
          104:W:#pred#(#pos(#s(#0()))) -> c_140()
             
          
          105:W:#pred#(#pos(#s(#s(@x)))) -> c_141()
             
          
          106:W:#sub#(@x,#0()) -> c_142()
             
          
          107:W:#sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
             -->_1 #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):31
             -->_1 #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y)):30
             -->_1 #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):29
             -->_1 #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y)):28
             -->_1 #add#(#0(),@y) -> c_66():27
          
          108:W:#sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
             -->_1 #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):31
             -->_1 #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y)):30
             -->_1 #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):29
             -->_1 #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y)):28
             -->_1 #add#(#0(),@y) -> c_66():27
          
          109:W:#succ#(#0()) -> c_145()
             
          
          110:W:#succ#(#neg(#s(#0()))) -> c_146()
             
          
          111:W:#succ#(#neg(#s(#s(@x)))) -> c_147()
             
          
          112:W:#succ#(#pos(#s(@x))) -> c_148()
             
          
          113:W:*#(@x,@y) -> c_8(#mult#(@x,@y))
             -->_1 #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y)):95
             -->_1 #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y)):94
             -->_1 #mult#(#pos(@x),#0()) -> c_129():93
             -->_1 #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y)):92
             -->_1 #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y)):91
             -->_1 #mult#(#neg(@x),#0()) -> c_126():90
             -->_1 #mult#(#0(),#pos(@y)) -> c_125():89
             -->_1 #mult#(#0(),#neg(@y)) -> c_124():88
             -->_1 #mult#(#0(),#0()) -> c_123():87
          
          114:W:+#(@x,@y) -> c_9(#add#(@x,@y))
             -->_1 #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):31
             -->_1 #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y)):30
             -->_1 #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):29
             -->_1 #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y)):28
             -->_1 #add#(#0(),@y) -> c_66():27
          
          115:W:-#(@x,@y) -> c_10(#sub#(@x,@y))
             -->_1 #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y))):108
             -->_1 #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y))):107
             -->_1 #sub#(@x,#0()) -> c_142():106
          
          116:W:add'#1#(nil(),@b2,@r) -> c_14()
             
          
          117:W:add'#2#(nil(),@r,@x,@xs) -> c_16()
             
          
          118:W:bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
             -->_1 #abs#(#0()) -> c_1():23
          
          119:W:compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
             -->_1 #abs#(#0()) -> c_1():23
          
          120:W:compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
             -->_1 #abs#(#0()) -> c_1():23
          
          121:W:compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
             -->_1 compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y)):123
             -->_1 compare#4#(#false(),@r,@x,@y) -> c_28():122
             -->_2 #equal#(@x,@y) -> c_5(#eq#(@x,@y)):84
          
          122:W:compare#4#(#false(),@r,@x,@y) -> c_28()
             
          
          123:W:compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
             -->_1 compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0())))):125
             -->_1 compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y)):124
             -->_2 #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y)):86
          
          124:W:compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
             -->_1 compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0())))):127
             -->_1 compare#6#(#false()) -> c_32(#abs#(#0())):126
             -->_2 #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y)):85
          
          125:W:compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
             -->_1 -#(@x,@y) -> c_10(#sub#(@x,@y)):115
          
          126:W:compare#6#(#false()) -> c_32(#abs#(#0()))
             -->_1 #abs#(#0()) -> c_1():23
          
          127:W:compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
             -->_1 #abs#(#pos(@x)) -> c_3():25
          
          128:W:diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                       ,+#(+(@x,@y),@r)
                                       ,+#(@x,@y)
                                       ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                       ,#less#(-(-(@x,@y),@r),#0())
                                       ,-#(-(@x,@y),@r)
                                       ,-#(@x,@y))
             -->_1 mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y)):132
             -->_4 diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0())))):130
             -->_4 diff#1#(#false()) -> c_35(#abs#(#0())):129
             -->_7 -#(@x,@y) -> c_10(#sub#(@x,@y)):115
             -->_6 -#(@x,@y) -> c_10(#sub#(@x,@y)):115
             -->_3 +#(@x,@y) -> c_9(#add#(@x,@y)):114
             -->_2 +#(@x,@y) -> c_9(#add#(@x,@y)):114
             -->_5 #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y)):86
          
          129:W:diff#1#(#false()) -> c_35(#abs#(#0()))
             -->_1 #abs#(#0()) -> c_1():23
          
          130:W:diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
             -->_1 #abs#(#pos(@x)) -> c_3():25
          
          131:W:div#(@x,@y) -> c_37(#div#(@x,@y))
             -->_1 #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y)):62
             -->_1 #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y)):61
             -->_1 #div#(#pos(@x),#0()) -> c_99():60
             -->_1 #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y)):59
             -->_1 #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y)):58
             -->_1 #div#(#neg(@x),#0()) -> c_96():57
             -->_1 #div#(#0(),#pos(@y)) -> c_95():56
             -->_1 #div#(#0(),#neg(@y)) -> c_94():55
             -->_1 #div#(#0(),#0()) -> c_93():54
          
          132:W:mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
             -->_3 div#(@x,@y) -> c_37(#div#(@x,@y)):131
             -->_1 -#(@x,@y) -> c_10(#sub#(@x,@y)):115
             -->_2 *#(@x,@y) -> c_8(#mult#(@x,@y)):113
          
          133:W:mult#1#(nil(),@b2) -> c_42()
             
          
          134:W:mult#3#(#false(),@b2,@zs) -> c_44()
             
          
          135:W:sub#1#(tuple#2(@b,@_@1)) -> c_48()
             
          
          136:W:sub'#1#(nil(),@b2,@r) -> c_51()
             
          
          137:W:sub'#2#(nil(),@r,@x,@xs) -> c_53()
             
          
          138:W:sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs)
                                                   ,#equal#(@s,#pos(#s(#0()))))
             -->_1 sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0())):140
             -->_1 sub'#5#(#false(),@z,@zs) -> c_56():139
             -->_2 #equal#(@x,@y) -> c_5(#eq#(@x,@y)):84
          
          139:W:sub'#5#(#false(),@z,@zs) -> c_56()
             
          
          140:W:sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
             -->_1 #abs#(#0()) -> c_1():23
          
          141:W:sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
             -->_1 sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0())):142
             -->_3 +#(@x,@y) -> c_9(#add#(@x,@y)):114
             -->_2 +#(@x,@y) -> c_9(#add#(@x,@y)):114
          
          142:W:sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
             -->_1 sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0())):144
             -->_1 sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0())))):143
             -->_2 #equal#(@x,@y) -> c_5(#eq#(@x,@y)):84
          
          143:W:sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
             -->_1 sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0())):146
             -->_1 sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0()))))):145
             -->_2 #equal#(@x,@y) -> c_5(#eq#(@x,@y)):84
          
          144:W:sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
             -->_2 #abs#(#0()) -> c_1():23
             -->_1 #abs#(#0()) -> c_1():23
          
          145:W:sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
             -->_1 sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0())))):148
             -->_1 sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0())))):147
             -->_2 #equal#(@x,@y) -> c_5(#eq#(@x,@y)):84
          
          146:W:sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
             -->_1 #abs#(#pos(@x)) -> c_3():25
             -->_2 #abs#(#0()) -> c_1():23
          
          147:W:sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
             -->_2 #abs#(#pos(@x)) -> c_3():25
             -->_1 #abs#(#pos(@x)) -> c_3():25
          
          148:W:sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
             -->_2 #abs#(#pos(@x)) -> c_3():25
             -->_1 #abs#(#0()) -> c_1():23
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          26: #abs#(#s(@x)) -> c_4()
          24: #abs#(#neg(@x)) -> c_2()
          135: sub#1#(tuple#2(@b,@_@1)) -> c_48()
          136: sub'#1#(nil(),@b2,@r) -> c_51()
          137: sub'#2#(nil(),@r,@x,@xs) -> c_53()
          138: sub'#4#(tuple#2(@zs,@s),@z) -> c_55(sub'#5#(#equal(@s,#pos(#s(#0()))),@z,@zs)
                                                  ,#equal#(@s,#pos(#s(#0()))))
          139: sub'#5#(#false(),@z,@zs) -> c_56()
          140: sub'#5#(#true(),@z,@zs) -> c_57(#abs#(#0()))
          128: diff#(@x,@y,@r) -> c_34(mod#(+(+(@x,@y),@r),#pos(#s(#s(#0()))))
                                      ,+#(+(@x,@y),@r)
                                      ,+#(@x,@y)
                                      ,diff#1#(#less(-(-(@x,@y),@r),#0()))
                                      ,#less#(-(-(@x,@y),@r),#0())
                                      ,-#(-(@x,@y),@r)
                                      ,-#(@x,@y))
          129: diff#1#(#false()) -> c_35(#abs#(#0()))
          130: diff#1#(#true()) -> c_36(#abs#(#pos(#s(#0()))))
          132: mod#(@x,@y) -> c_39(-#(@x,*(@x,div(@x,@y))),*#(@x,div(@x,@y)),div#(@x,@y))
          131: div#(@x,@y) -> c_37(#div#(@x,@y))
          54: #div#(#0(),#0()) -> c_93()
          55: #div#(#0(),#neg(@y)) -> c_94()
          56: #div#(#0(),#pos(@y)) -> c_95()
          57: #div#(#neg(@x),#0()) -> c_96()
          58: #div#(#neg(@x),#neg(@y)) -> c_97(#natdiv#(@x,@y))
          59: #div#(#neg(@x),#pos(@y)) -> c_98(#natdiv#(@x,@y))
          60: #div#(#pos(@x),#0()) -> c_99()
          61: #div#(#pos(@x),#neg(@y)) -> c_100(#natdiv#(@x,@y))
          62: #div#(#pos(@x),#pos(@y)) -> c_101(#natdiv#(@x,@y))
          96: #natdiv#(#0(),#0()) -> c_132()
          97: #natdiv#(#s(@x),#s(@y)) -> c_133(#natdiv#(#natsub(@x,@y),#s(@y)),#natsub#(@x,@y))
          101: #natsub#(#s(@x),#s(@y)) -> c_137(#natsub#(@x,@y))
          100: #natsub#(@x,#0()) -> c_136()
          133: mult#1#(nil(),@b2) -> c_42()
          134: mult#3#(#false(),@b2,@zs) -> c_44()
          121: compare#3#(@r,@x,@y) -> c_27(compare#4#(#equal(@r,#0()),@r,@x,@y),#equal#(@r,#0()))
          122: compare#4#(#false(),@r,@x,@y) -> c_28()
          123: compare#4#(#true(),@r,@x,@y) -> c_29(compare#5#(#less(@x,@y),@x,@y),#less#(@x,@y))
          86: #less#(@x,@y) -> c_7(#cklt#(#compare(@x,@y)),#compare#(@x,@y))
          39: #cklt#(#EQ()) -> c_78()
          40: #cklt#(#GT()) -> c_79()
          41: #cklt#(#LT()) -> c_80()
          124: compare#5#(#false(),@x,@y) -> c_30(compare#6#(#greater(@x,@y)),#greater#(@x,@y))
          85: #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          36: #ckgt#(#EQ()) -> c_75()
          37: #ckgt#(#GT()) -> c_76()
          38: #ckgt#(#LT()) -> c_77()
          53: #compare#(#s(@x),#s(@y)) -> c_92(#compare#(@x,@y))
          51: #compare#(#pos(@x),#pos(@y)) -> c_90(#compare#(@x,@y))
          47: #compare#(#neg(@x),#neg(@y)) -> c_86(#compare#(@y,@x))
          42: #compare#(#0(),#0()) -> c_81()
          43: #compare#(#0(),#neg(@y)) -> c_82()
          44: #compare#(#0(),#pos(@y)) -> c_83()
          45: #compare#(#0(),#s(@y)) -> c_84()
          46: #compare#(#neg(@x),#0()) -> c_85()
          48: #compare#(#neg(@x),#pos(@y)) -> c_87()
          49: #compare#(#pos(@x),#0()) -> c_88()
          50: #compare#(#pos(@x),#neg(@y)) -> c_89()
          52: #compare#(#s(@x),#0()) -> c_91()
          126: compare#6#(#false()) -> c_32(#abs#(#0()))
          127: compare#6#(#true()) -> c_33(#abs#(#pos(#s(#0()))))
          125: compare#5#(#true(),@x,@y) -> c_31(-#(#0(),#pos(#s(#0()))))
          115: -#(@x,@y) -> c_10(#sub#(@x,@y))
          106: #sub#(@x,#0()) -> c_142()
          107: #sub#(@x,#neg(@y)) -> c_143(#add#(@x,#pos(@y)))
          108: #sub#(@x,#pos(@y)) -> c_144(#add#(@x,#neg(@y)))
          120: compare#2#(nil(),@x,@xs) -> c_26(#abs#(#0()))
          119: compare#1#(nil(),@b2) -> c_24(#abs#(#0()))
          113: *#(@x,@y) -> c_8(#mult#(@x,@y))
          87: #mult#(#0(),#0()) -> c_123()
          88: #mult#(#0(),#neg(@y)) -> c_124()
          89: #mult#(#0(),#pos(@y)) -> c_125()
          90: #mult#(#neg(@x),#0()) -> c_126()
          91: #mult#(#neg(@x),#neg(@y)) -> c_127(#natmult#(@x,@y))
          92: #mult#(#neg(@x),#pos(@y)) -> c_128(#natmult#(@x,@y))
          93: #mult#(#pos(@x),#0()) -> c_129()
          94: #mult#(#pos(@x),#neg(@y)) -> c_130(#natmult#(@x,@y))
          95: #mult#(#pos(@x),#pos(@y)) -> c_131(#natmult#(@x,@y))
          99: #natmult#(#s(@x),@y) -> c_135(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
          98: #natmult#(#0(),@y) -> c_134()
          118: bitToInt'#1#(nil(),@n) -> c_21(#abs#(#0()))
          116: add'#1#(nil(),@b2,@r) -> c_14()
          117: add'#2#(nil(),@r,@x,@xs) -> c_16()
          141: sum#(@x,@y,@r) -> c_58(sum#1#(+(+(@x,@y),@r)),+#(+(@x,@y),@r),+#(@x,@y))
          114: +#(@x,@y) -> c_9(#add#(@x,@y))
          27: #add#(#0(),@y) -> c_66()
          28: #add#(#neg(#s(#0())),@y) -> c_67(#pred#(@y))
          29: #add#(#neg(#s(#s(@x))),@y) -> c_68(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          102: #pred#(#0()) -> c_138()
          103: #pred#(#neg(#s(@x))) -> c_139()
          104: #pred#(#pos(#s(#0()))) -> c_140()
          105: #pred#(#pos(#s(#s(@x)))) -> c_141()
          31: #add#(#pos(#s(#s(@x))),@y) -> c_70(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          30: #add#(#pos(#s(#0())),@y) -> c_69(#succ#(@y))
          109: #succ#(#0()) -> c_145()
          110: #succ#(#neg(#s(#0()))) -> c_146()
          111: #succ#(#neg(#s(#s(@x)))) -> c_147()
          112: #succ#(#pos(#s(@x))) -> c_148()
          142: sum#1#(@s) -> c_59(sum#2#(#equal(@s,#0()),@s),#equal#(@s,#0()))
          143: sum#2#(#false(),@s) -> c_60(sum#3#(#equal(@s,#pos(#s(#0()))),@s),#equal#(@s,#pos(#s(#0()))))
          145: sum#3#(#false(),@s) -> c_62(sum#4#(#equal(@s,#pos(#s(#s(#0()))))),#equal#(@s,#pos(#s(#s(#0())))))
          84: #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          83: #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_122(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                  ,#eq#(@x_1,@y_1)
                                                                  ,#eq#(@x_2,@y_2))
          75: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_114(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                        ,#eq#(@x_1,@y_1)
                                                        ,#eq#(@x_2,@y_2))
          74: #eq#(#s(@x),#s(@y)) -> c_113(#eq#(@x,@y))
          72: #eq#(#pos(@x),#pos(@y)) -> c_111(#eq#(@x,@y))
          68: #eq#(#neg(@x),#neg(@y)) -> c_107(#eq#(@x,@y))
          32: #and#(#false(),#false()) -> c_71()
          33: #and#(#false(),#true()) -> c_72()
          34: #and#(#true(),#false()) -> c_73()
          35: #and#(#true(),#true()) -> c_74()
          63: #eq#(#0(),#0()) -> c_102()
          64: #eq#(#0(),#neg(@y)) -> c_103()
          65: #eq#(#0(),#pos(@y)) -> c_104()
          66: #eq#(#0(),#s(@y)) -> c_105()
          67: #eq#(#neg(@x),#0()) -> c_106()
          69: #eq#(#neg(@x),#pos(@y)) -> c_108()
          70: #eq#(#pos(@x),#0()) -> c_109()
          71: #eq#(#pos(@x),#neg(@y)) -> c_110()
          73: #eq#(#s(@x),#0()) -> c_112()
          76: #eq#(::(@x_1,@x_2),nil()) -> c_115()
          77: #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_116()
          78: #eq#(nil(),::(@y_1,@y_2)) -> c_117()
          79: #eq#(nil(),nil()) -> c_118()
          80: #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_119()
          81: #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_120()
          82: #eq#(tuple#2(@x_1,@x_2),nil()) -> c_121()
          147: sum#4#(#false()) -> c_64(#abs#(#pos(#s(#0()))),#abs#(#pos(#s(#0()))))
          148: sum#4#(#true()) -> c_65(#abs#(#0()),#abs#(#pos(#s(#0()))))
          146: sum#3#(#true(),@s) -> c_63(#abs#(#pos(#s(#0()))),#abs#(#0()))
          25: #abs#(#pos(@x)) -> c_3()
          144: sum#2#(#true(),@s) -> c_61(#abs#(#0()),#abs#(#0()))
          23: #abs#(#0()) -> c_1()
* Step 11: SimplifyRHS WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                               ,*#(@x,@n)
                                               ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                               ,*#(@n,#pos(#s(#s(#0())))))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
            leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),#abs#(#0()),mult#(@xs,@b2))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            bitToInt'(@b,@n) -> bitToInt'#1(@b,@n)
            bitToInt'#1(::(@x,@xs),@n) -> +(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
            bitToInt'#1(nil(),@n) -> #abs(#0())
            compare(@b1,@b2) -> compare#1(@b1,@b2)
            compare#1(::(@x,@xs),@b2) -> compare#2(@b2,@x,@xs)
            compare#1(nil(),@b2) -> #abs(#0())
            compare#2(::(@y,@ys),@x,@xs) -> compare#3(compare(@xs,@ys),@x,@y)
            compare#2(nil(),@x,@xs) -> #abs(#0())
            compare#3(@r,@x,@y) -> compare#4(#equal(@r,#0()),@r,@x,@y)
            compare#4(#false(),@r,@x,@y) -> @r
            compare#4(#true(),@r,@x,@y) -> compare#5(#less(@x,@y),@x,@y)
            compare#5(#false(),@x,@y) -> compare#6(#greater(@x,@y))
            compare#5(#true(),@x,@y) -> -(#0(),#pos(#s(#0())))
            compare#6(#false()) -> #abs(#0())
            compare#6(#true()) -> #abs(#pos(#s(#0())))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sub'(@b1,@b2,@r) -> sub'#1(@b1,@b2,@r)
            sub'#1(::(@x,@xs),@b2,@r) -> sub'#2(@b2,@r,@x,@xs)
            sub'#1(nil(),@b2,@r) -> tuple#2(nil(),@r)
            sub'#2(::(@y,@ys),@r,@x,@xs) -> sub'#3(diff(@x,@y,@r),@xs,@ys)
            sub'#2(nil(),@r,@x,@xs) -> tuple#2(nil(),@r)
            sub'#3(tuple#2(@z,@r'),@xs,@ys) -> sub'#4(sub'(@xs,@ys,@r'),@z)
            sub'#4(tuple#2(@zs,@s),@z) -> tuple#2(sub'#5(#equal(@s,#pos(#s(#0()))),@z,@zs),@s)
            sub'#5(#false(),@z,@zs) -> ::(@z,@zs)
            sub'#5(#true(),@z,@zs) -> ::(#abs(#0()),@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/2,c_12/1,c_13/1,c_14/0,c_15/2
            ,c_16/0,c_17/1,c_18/2,c_19/1,c_20/4,c_21/1,c_22/1,c_23/1,c_24/1,c_25/2,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/2,c_39/3,c_40/1,c_41/3,c_42/0,c_43/2,c_44/0,c_45/1
            ,c_46/2,c_47/3,c_48/0,c_49/1,c_50/1,c_51/0,c_52/2,c_53/0,c_54/2,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0()))
             -->_1 add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r)):2
          
          2:S:add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
             -->_1 add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs)):3
          
          3:S:add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
             -->_1 add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r)):4
          
          4:S:add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys),sum#(@x,@y,@r))
             -->_1 add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r')):5
          
          5:S:add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
             -->_1 add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r)):2
          
          6:S:bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))),#abs#(#pos(#s(#0()))))
             -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):7
          
          7:S:bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
             -->_1 bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                                      ,*#(@x,@n)
                                                      ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                                      ,*#(@n,#pos(#s(#s(#0()))))):8
          
          8:S:bitToInt'#1#(::(@x,@xs),@n) -> c_20(+#(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
                                                 ,*#(@x,@n)
                                                 ,bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))
                                                 ,*#(@n,#pos(#s(#s(#0())))))
             -->_3 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):7
          
          9:S:compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
             -->_1 compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs)):10
          
          10:S:compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
             -->_1 compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys)):11
          
          11:S:compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#3#(compare(@xs,@ys),@x,@y),compare#(@xs,@ys))
             -->_2 compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2)):9
          
          12:S:leq#(@b1,@b2) -> c_38(#less#(compare(@b1,@b2),#pos(#s(#0()))),compare#(@b1,@b2))
             -->_2 compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2)):9
          
          13:S:mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
             -->_1 mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
                                                  ,#abs#(#0())
                                                  ,mult#(@xs,@b2)):14
          
          14:S:mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
                                              ,#abs#(#0())
                                              ,mult#(@xs,@b2))
             -->_1 mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs)
                                              ,#equal#(@x,#pos(#s(#0())))):15
             -->_3 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):13
          
          15:S:mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs),#equal#(@x,#pos(#s(#0()))))
             -->_1 mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs)):16
          
          16:S:mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
             -->_1 add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())),#abs#(#0())):1
          
          17:S:mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):13
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):13
          
          18:S:sub#(@b1,@b2) -> c_47(sub#1#(sub'(@b1,@b2,#abs(#0()))),sub'#(@b1,@b2,#abs(#0())),#abs#(#0()))
             -->_2 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):19
          
          19:S:sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
             -->_1 sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs)):20
          
          20:S:sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
             -->_1 sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r)):21
          
          21:S:sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys),diff#(@x,@y,@r))
             -->_1 sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r')):22
          
          22:S:sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#4#(sub'(@xs,@ys,@r'),@z),sub'#(@xs,@ys,@r'))
             -->_2 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):19
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
          add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
          bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
          bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
          compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
          leq#(@b1,@b2) -> c_38(compare#(@b1,@b2))
          mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
          mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
          sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
          sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
          sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
* Step 12: UsableRules WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
            leq#(@b1,@b2) -> c_38(compare#(@b1,@b2))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            bitToInt'(@b,@n) -> bitToInt'#1(@b,@n)
            bitToInt'#1(::(@x,@xs),@n) -> +(*(@x,@n),bitToInt'(@xs,*(@n,#pos(#s(#s(#0()))))))
            bitToInt'#1(nil(),@n) -> #abs(#0())
            compare(@b1,@b2) -> compare#1(@b1,@b2)
            compare#1(::(@x,@xs),@b2) -> compare#2(@b2,@x,@xs)
            compare#1(nil(),@b2) -> #abs(#0())
            compare#2(::(@y,@ys),@x,@xs) -> compare#3(compare(@xs,@ys),@x,@y)
            compare#2(nil(),@x,@xs) -> #abs(#0())
            compare#3(@r,@x,@y) -> compare#4(#equal(@r,#0()),@r,@x,@y)
            compare#4(#false(),@r,@x,@y) -> @r
            compare#4(#true(),@r,@x,@y) -> compare#5(#less(@x,@y),@x,@y)
            compare#5(#false(),@x,@y) -> compare#6(#greater(@x,@y))
            compare#5(#true(),@x,@y) -> -(#0(),#pos(#s(#0())))
            compare#6(#false()) -> #abs(#0())
            compare#6(#true()) -> #abs(#pos(#s(#0())))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sub'(@b1,@b2,@r) -> sub'#1(@b1,@b2,@r)
            sub'#1(::(@x,@xs),@b2,@r) -> sub'#2(@b2,@r,@x,@xs)
            sub'#1(nil(),@b2,@r) -> tuple#2(nil(),@r)
            sub'#2(::(@y,@ys),@r,@x,@xs) -> sub'#3(diff(@x,@y,@r),@xs,@ys)
            sub'#2(nil(),@r,@x,@xs) -> tuple#2(nil(),@r)
            sub'#3(tuple#2(@z,@r'),@xs,@ys) -> sub'#4(sub'(@xs,@ys,@r'),@z)
            sub'#4(tuple#2(@zs,@s),@z) -> tuple#2(sub'#5(#equal(@s,#pos(#s(#0()))),@z,@zs),@s)
            sub'#5(#false(),@z,@zs) -> ::(@z,@zs)
            sub'#5(#true(),@z,@zs) -> ::(#abs(#0()),@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #abs(#0()) -> #0()
          #abs(#pos(@x)) -> #pos(@x)
          #add(#0(),@y) -> @y
          #add(#neg(#s(#0())),@y) -> #pred(@y)
          #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
          #add(#pos(#s(#0())),@y) -> #succ(@y)
          #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
          #and(#false(),#false()) -> #false()
          #and(#false(),#true()) -> #false()
          #and(#true(),#false()) -> #false()
          #and(#true(),#true()) -> #true()
          #cklt(#EQ()) -> #false()
          #cklt(#GT()) -> #false()
          #cklt(#LT()) -> #true()
          #compare(#0(),#0()) -> #EQ()
          #compare(#0(),#neg(@y)) -> #GT()
          #compare(#0(),#pos(@y)) -> #LT()
          #compare(#0(),#s(@y)) -> #LT()
          #compare(#neg(@x),#0()) -> #LT()
          #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
          #compare(#neg(@x),#pos(@y)) -> #LT()
          #compare(#pos(@x),#0()) -> #GT()
          #compare(#pos(@x),#neg(@y)) -> #GT()
          #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
          #compare(#s(@x),#0()) -> #GT()
          #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
          #div(#0(),#0()) -> #divByZero()
          #div(#0(),#neg(@y)) -> #0()
          #div(#0(),#pos(@y)) -> #0()
          #div(#neg(@x),#0()) -> #divByZero()
          #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
          #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
          #div(#pos(@x),#0()) -> #divByZero()
          #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
          #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
          #eq(#0(),#0()) -> #true()
          #eq(#0(),#neg(@y)) -> #false()
          #eq(#0(),#pos(@y)) -> #false()
          #eq(#0(),#s(@y)) -> #false()
          #eq(#neg(@x),#0()) -> #false()
          #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
          #eq(#neg(@x),#pos(@y)) -> #false()
          #eq(#pos(@x),#0()) -> #false()
          #eq(#pos(@x),#neg(@y)) -> #false()
          #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
          #eq(#s(@x),#0()) -> #false()
          #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
          #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #eq(::(@x_1,@x_2),nil()) -> #false()
          #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
          #eq(nil(),::(@y_1,@y_2)) -> #false()
          #eq(nil(),nil()) -> #true()
          #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
          #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #equal(@x,@y) -> #eq(@x,@y)
          #less(@x,@y) -> #cklt(#compare(@x,@y))
          #mult(#0(),#0()) -> #0()
          #mult(#0(),#neg(@y)) -> #0()
          #mult(#0(),#pos(@y)) -> #0()
          #mult(#neg(@x),#0()) -> #0()
          #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
          #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#0()) -> #0()
          #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
          #natdiv(#0(),#0()) -> #divByZero()
          #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
          #natmult(#0(),@y) -> #0()
          #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
          #natsub(@x,#0()) -> @x
          #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
          #pred(#0()) -> #neg(#s(#0()))
          #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
          #pred(#pos(#s(#0()))) -> #0()
          #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
          #sub(@x,#0()) -> @x
          #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
          #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
          #succ(#0()) -> #pos(#s(#0()))
          #succ(#neg(#s(#0()))) -> #0()
          #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
          #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
          *(@x,@y) -> #mult(@x,@y)
          +(@x,@y) -> #add(@x,@y)
          -(@x,@y) -> #sub(@x,@y)
          add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
          add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
          add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
          add'#1(nil(),@b2,@r) -> nil()
          add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
          add'#2(nil(),@r,@x,@xs) -> nil()
          add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
          diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
          diff#1(#false()) -> #abs(#0())
          diff#1(#true()) -> #abs(#pos(#s(#0())))
          div(@x,@y) -> #div(@x,@y)
          mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
          mult(@b1,@b2) -> mult#1(@b1,@b2)
          mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
          mult#1(nil(),@b2) -> nil()
          mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
          mult#3(#false(),@b2,@zs) -> @zs
          mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
          sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
          sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
          sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
          sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
          sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
          sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
          sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
          sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
          add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
          add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
          add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
          bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
          compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
          compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
          leq#(@b1,@b2) -> c_38(compare#(@b1,@b2))
          mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
          mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
          mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
          sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
          sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
* Step 13: RemoveHeads WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
            leq#(@b1,@b2) -> c_38(compare#(@b1,@b2))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveHeads
    + Details:
        Consider the dependency graph
        
        1:S:add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
           -->_1 add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r)):2
        
        2:S:add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
           -->_1 add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs)):3
        
        3:S:add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
           -->_1 add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys)):4
        
        4:S:add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
           -->_1 add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r')):5
        
        5:S:add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
           -->_1 add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r)):2
        
        6:S:bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
           -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):7
        
        7:S:bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
           -->_1 bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))):8
        
        8:S:bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
           -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):7
        
        9:S:compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
           -->_1 compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs)):10
        
        10:S:compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
           -->_1 compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys)):11
        
        11:S:compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
           -->_1 compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2)):9
        
        12:S:leq#(@b1,@b2) -> c_38(compare#(@b1,@b2))
           -->_1 compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2)):9
        
        13:S:mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
           -->_1 mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2)):14
        
        14:S:mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
           -->_1 mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs)):15
           -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):13
        
        15:S:mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
           -->_1 mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs)):16
        
        16:S:mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
           -->_1 add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0()))):1
        
        17:S:mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
           -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):13
           -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):13
        
        18:S:sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
           -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):19
        
        19:S:sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
           -->_1 sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs)):20
        
        20:S:sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
           -->_1 sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys)):21
        
        21:S:sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
           -->_1 sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r')):22
        
        22:S:sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
           -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):19
        
        
        Following roots of the dependency graph are removed, as the considered set of starting terms is closed under reduction with respect to these rules (modulo compound contexts).
        
        [(12,leq#(@b1,@b2) -> c_38(compare#(@b1,@b2)))]
* Step 14: Decompose WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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:
              add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
              add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
              add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
              add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
              add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          - Weak DPs:
              bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
              bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
              bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
              compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
              compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
              compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
              mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
              mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
              mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
              mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
              mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
              sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
              sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
              sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
              sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
              sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          - Weak TRS:
              #abs(#0()) -> #0()
              #abs(#pos(@x)) -> #pos(@x)
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #cklt(#EQ()) -> #false()
              #cklt(#GT()) -> #false()
              #cklt(#LT()) -> #true()
              #compare(#0(),#0()) -> #EQ()
              #compare(#0(),#neg(@y)) -> #GT()
              #compare(#0(),#pos(@y)) -> #LT()
              #compare(#0(),#s(@y)) -> #LT()
              #compare(#neg(@x),#0()) -> #LT()
              #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
              #compare(#neg(@x),#pos(@y)) -> #LT()
              #compare(#pos(@x),#0()) -> #GT()
              #compare(#pos(@x),#neg(@y)) -> #GT()
              #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
              #compare(#s(@x),#0()) -> #GT()
              #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
              #div(#0(),#0()) -> #divByZero()
              #div(#0(),#neg(@y)) -> #0()
              #div(#0(),#pos(@y)) -> #0()
              #div(#neg(@x),#0()) -> #divByZero()
              #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
              #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#0()) -> #divByZero()
              #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              #less(@x,@y) -> #cklt(#compare(@x,@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natdiv(#0(),#0()) -> #divByZero()
              #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #natsub(@x,#0()) -> @x
              #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #sub(@x,#0()) -> @x
              #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
              #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              -(@x,@y) -> #sub(@x,@y)
              add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
              add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
              add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
              add'#1(nil(),@b2,@r) -> nil()
              add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
              add'#2(nil(),@r,@x,@xs) -> nil()
              add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
              diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
              diff#1(#false()) -> #abs(#0())
              diff#1(#true()) -> #abs(#pos(#s(#0())))
              div(@x,@y) -> #div(@x,@y)
              mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
              mult(@b1,@b2) -> mult#1(@b1,@b2)
              mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
              mult#1(nil(),@b2) -> nil()
              mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
              mult#3(#false(),@b2,@zs) -> @zs
              mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
              sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
              sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
              sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
              sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
              sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
              sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
              sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
              sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
          - Signature:
              {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2
              ,#natdiv/2,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3
              ,bitToInt/1,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4
              ,compare#5/3,compare#6/1,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2
              ,sub#1/1,sub'/3,sub'#1/3,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1
              ,#add#/2,#and#/2,#ckgt#/1,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2
              ,#natdiv#/2,#natmult#/2,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3
              ,add'#2#/4,add'#3#/3,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3
              ,compare#3#/3,compare#4#/4,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2
              ,mult#1#/2,mult#2#/3,mult#3#/3,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2
              ,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0
              ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1
              ,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1
              ,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3
              ,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1
              ,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1
              ,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0
              ,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0
              ,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0
              ,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0
              ,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0
              ,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
              ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#
              ,add'#1#,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#
              ,compare#4#,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#
              ,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#
              ,sum#4#} and constructors {#0,#EQ,#GT,#LT,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        
        Problem (S)
          - Strict DPs:
              bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
              bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
              bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
              compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
              compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
              compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
              mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
              mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
              mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
              mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
              mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
              sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
              sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
              sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
              sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
              sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          - Weak DPs:
              add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
              add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
              add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
              add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
              add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          - Weak TRS:
              #abs(#0()) -> #0()
              #abs(#pos(@x)) -> #pos(@x)
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #cklt(#EQ()) -> #false()
              #cklt(#GT()) -> #false()
              #cklt(#LT()) -> #true()
              #compare(#0(),#0()) -> #EQ()
              #compare(#0(),#neg(@y)) -> #GT()
              #compare(#0(),#pos(@y)) -> #LT()
              #compare(#0(),#s(@y)) -> #LT()
              #compare(#neg(@x),#0()) -> #LT()
              #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
              #compare(#neg(@x),#pos(@y)) -> #LT()
              #compare(#pos(@x),#0()) -> #GT()
              #compare(#pos(@x),#neg(@y)) -> #GT()
              #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
              #compare(#s(@x),#0()) -> #GT()
              #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
              #div(#0(),#0()) -> #divByZero()
              #div(#0(),#neg(@y)) -> #0()
              #div(#0(),#pos(@y)) -> #0()
              #div(#neg(@x),#0()) -> #divByZero()
              #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
              #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#0()) -> #divByZero()
              #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              #less(@x,@y) -> #cklt(#compare(@x,@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natdiv(#0(),#0()) -> #divByZero()
              #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #natsub(@x,#0()) -> @x
              #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #sub(@x,#0()) -> @x
              #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
              #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              -(@x,@y) -> #sub(@x,@y)
              add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
              add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
              add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
              add'#1(nil(),@b2,@r) -> nil()
              add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
              add'#2(nil(),@r,@x,@xs) -> nil()
              add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
              diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
              diff#1(#false()) -> #abs(#0())
              diff#1(#true()) -> #abs(#pos(#s(#0())))
              div(@x,@y) -> #div(@x,@y)
              mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
              mult(@b1,@b2) -> mult#1(@b1,@b2)
              mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
              mult#1(nil(),@b2) -> nil()
              mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
              mult#3(#false(),@b2,@zs) -> @zs
              mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
              sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
              sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
              sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
              sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
              sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
              sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
              sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
              sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
          - Signature:
              {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2
              ,#natdiv/2,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3
              ,bitToInt/1,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4
              ,compare#5/3,compare#6/1,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2
              ,sub#1/1,sub'/3,sub'#1/3,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1
              ,#add#/2,#and#/2,#ckgt#/1,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2
              ,#natdiv#/2,#natmult#/2,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3
              ,add'#2#/4,add'#3#/3,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3
              ,compare#3#/3,compare#4#/4,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2
              ,mult#1#/2,mult#2#/3,mult#3#/3,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2
              ,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0
              ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1
              ,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1
              ,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3
              ,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1
              ,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1
              ,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0
              ,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0
              ,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0
              ,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0
              ,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0
              ,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
              ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#
              ,add'#1#,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#
              ,compare#4#,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#
              ,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#
              ,sum#4#} and constructors {#0,#EQ,#GT,#LT,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
** Step 14.a:1: RemoveWeakSuffixes WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
        - Weak DPs:
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
             -->_1 add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r)):2
          
          2:S:add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
             -->_1 add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs)):3
          
          3:S:add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
             -->_1 add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys)):4
          
          4:S:add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
             -->_1 add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r')):5
          
          5:S:add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
             -->_1 add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r)):2
          
          6:W:bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
             -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):7
          
          7:W:bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
             -->_1 bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))):8
          
          8:W:bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
             -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):7
          
          9:W:compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
             -->_1 compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs)):10
          
          10:W:compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
             -->_1 compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys)):11
          
          11:W:compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
             -->_1 compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2)):9
          
          13:W:mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
             -->_1 mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2)):14
          
          14:W:mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):13
             -->_1 mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs)):15
          
          15:W:mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
             -->_1 mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs)):16
          
          16:W:mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
             -->_1 add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0()))):1
          
          17:W:mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):13
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):13
          
          18:W:sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):19
          
          19:W:sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
             -->_1 sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs)):20
          
          20:W:sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
             -->_1 sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys)):21
          
          21:W:sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
             -->_1 sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r')):22
          
          22:W:sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):19
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          18: sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
          19: sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          22: sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          21: sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
          20: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          9: compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          11: compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
          10: compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
          6: bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
          7: bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          8: bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
** Step 14.a:2: UsableRules WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
        - Weak DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #abs(#0()) -> #0()
          #abs(#pos(@x)) -> #pos(@x)
          #add(#0(),@y) -> @y
          #add(#neg(#s(#0())),@y) -> #pred(@y)
          #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
          #add(#pos(#s(#0())),@y) -> #succ(@y)
          #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
          #and(#false(),#false()) -> #false()
          #and(#false(),#true()) -> #false()
          #and(#true(),#false()) -> #false()
          #and(#true(),#true()) -> #true()
          #eq(#0(),#0()) -> #true()
          #eq(#0(),#neg(@y)) -> #false()
          #eq(#0(),#pos(@y)) -> #false()
          #eq(#0(),#s(@y)) -> #false()
          #eq(#neg(@x),#0()) -> #false()
          #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
          #eq(#neg(@x),#pos(@y)) -> #false()
          #eq(#pos(@x),#0()) -> #false()
          #eq(#pos(@x),#neg(@y)) -> #false()
          #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
          #eq(#s(@x),#0()) -> #false()
          #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
          #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #eq(::(@x_1,@x_2),nil()) -> #false()
          #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
          #eq(nil(),::(@y_1,@y_2)) -> #false()
          #eq(nil(),nil()) -> #true()
          #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
          #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #equal(@x,@y) -> #eq(@x,@y)
          #pred(#0()) -> #neg(#s(#0()))
          #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
          #pred(#pos(#s(#0()))) -> #0()
          #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
          #succ(#0()) -> #pos(#s(#0()))
          #succ(#neg(#s(#0()))) -> #0()
          #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
          #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
          +(@x,@y) -> #add(@x,@y)
          add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
          add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
          add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
          add'#1(nil(),@b2,@r) -> nil()
          add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
          add'#2(nil(),@r,@x,@xs) -> nil()
          add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
          mult(@b1,@b2) -> mult#1(@b1,@b2)
          mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
          mult#1(nil(),@b2) -> nil()
          mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
          mult#3(#false(),@b2,@zs) -> @zs
          mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
          sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
          sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
          sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
          sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
          sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
          sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
          sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
          sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
          add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
          add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
          add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
          mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
          mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
** Step 14.a:3: DecomposeDG WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
        - Weak DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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
          mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
          mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        and a lower component
          add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
          add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
          add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
          mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
        Further, following extension rules are added to the lower component.
          mult#(@b1,@b2) -> mult#1#(@b1,@b2)
          mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
          mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
          mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
          mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
*** Step 14.a:3.a:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
        - Weak DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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: mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
          
        Consider the set of all dependency pairs
          1: mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
          2: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          3: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        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 14.a:3.a:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
        - Weak DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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_40) = {1},
          uargs(c_41) = {1,2},
          uargs(c_46) = {1,2}
        
        Following symbols are considered usable:
          {add,add',add'#1,add'#2,add'#3,mult,mult#1,mult#2,mult#3,#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#
          ,#eq#,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#
          ,add'#1#,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#
          ,compare#4#,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#
          ,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#}
        TcT has computed the following interpretation:
                    p(#0) = [4]                                    
                   p(#EQ) = [0]                                    
                   p(#GT) = [0]                                    
                   p(#LT) = [0]                                    
                  p(#abs) = [2] x1 + [6]                           
                  p(#add) = [5]                                    
                  p(#and) = [0]                                    
                 p(#ckgt) = [0]                                    
                 p(#cklt) = [0]                                    
              p(#compare) = [0]                                    
                  p(#div) = [0]                                    
            p(#divByZero) = [0]                                    
                   p(#eq) = [0]                                    
                p(#equal) = [1] x1 + [0]                           
                p(#false) = [0]                                    
              p(#greater) = [0]                                    
                 p(#less) = [0]                                    
                 p(#mult) = [0]                                    
               p(#natdiv) = [0]                                    
              p(#natmult) = [0]                                    
               p(#natsub) = [0]                                    
                  p(#neg) = [0]                                    
                  p(#pos) = [0]                                    
                 p(#pred) = [2] x1 + [4]                           
                    p(#s) = [1] x1 + [0]                           
                  p(#sub) = [0]                                    
                 p(#succ) = [3]                                    
                 p(#true) = [1]                                    
                     p(*) = [0]                                    
                     p(+) = [0]                                    
                     p(-) = [0]                                    
                    p(::) = [1] x2 + [2]                           
                   p(add) = [1] x2 + [2]                           
                  p(add') = [1] x2 + [0]                           
                p(add'#1) = [1] x2 + [0]                           
                p(add'#2) = [1] x1 + [0]                           
                p(add'#3) = [1] x3 + [2]                           
              p(bitToInt) = [0]                                    
             p(bitToInt') = [0]                                    
           p(bitToInt'#1) = [0]                                    
               p(compare) = [0]                                    
             p(compare#1) = [0]                                    
             p(compare#2) = [0]                                    
             p(compare#3) = [0]                                    
             p(compare#4) = [0]                                    
             p(compare#5) = [0]                                    
             p(compare#6) = [0]                                    
                  p(diff) = [0]                                    
                p(diff#1) = [0]                                    
                   p(div) = [0]                                    
                   p(leq) = [0]                                    
                   p(mod) = [0]                                    
                  p(mult) = [2] x1 + [2]                           
                p(mult#1) = [2] x1 + [2]                           
                p(mult#2) = [1] x1 + [2]                           
                p(mult#3) = [1] x3 + [2]                           
                 p(mult3) = [0]                                    
                   p(nil) = [0]                                    
                   p(sub) = [0]                                    
                 p(sub#1) = [0]                                    
                  p(sub') = [0]                                    
                p(sub'#1) = [0]                                    
                p(sub'#2) = [0]                                    
                p(sub'#3) = [0]                                    
                p(sub'#4) = [0]                                    
                p(sub'#5) = [0]                                    
                   p(sum) = [0]                                    
                 p(sum#1) = [7]                                    
                 p(sum#2) = [4] x1 + [1]                           
                 p(sum#3) = [3]                                    
                 p(sum#4) = [1] x1 + [0]                           
               p(tuple#2) = [1] x2 + [0]                           
                 p(#abs#) = [0]                                    
                 p(#add#) = [0]                                    
                 p(#and#) = [0]                                    
                p(#ckgt#) = [0]                                    
                p(#cklt#) = [0]                                    
             p(#compare#) = [0]                                    
                 p(#div#) = [0]                                    
                  p(#eq#) = [0]                                    
               p(#equal#) = [0]                                    
             p(#greater#) = [0]                                    
                p(#less#) = [0]                                    
                p(#mult#) = [0]                                    
              p(#natdiv#) = [0]                                    
             p(#natmult#) = [0]                                    
              p(#natsub#) = [0]                                    
                p(#pred#) = [0]                                    
                 p(#sub#) = [0]                                    
                p(#succ#) = [0]                                    
                    p(*#) = [0]                                    
                    p(+#) = [0]                                    
                    p(-#) = [0]                                    
                  p(add#) = [0]                                    
                 p(add'#) = [0]                                    
               p(add'#1#) = [0]                                    
               p(add'#2#) = [0]                                    
               p(add'#3#) = [0]                                    
             p(bitToInt#) = [0]                                    
            p(bitToInt'#) = [0]                                    
          p(bitToInt'#1#) = [0]                                    
              p(compare#) = [0]                                    
            p(compare#1#) = [0]                                    
            p(compare#2#) = [0]                                    
            p(compare#3#) = [0]                                    
            p(compare#4#) = [0]                                    
            p(compare#5#) = [0]                                    
            p(compare#6#) = [0]                                    
                 p(diff#) = [0]                                    
               p(diff#1#) = [0]                                    
                  p(div#) = [0]                                    
                  p(leq#) = [0]                                    
                  p(mod#) = [0]                                    
                 p(mult#) = [2] x1 + [1]                           
               p(mult#1#) = [2] x1 + [0]                           
               p(mult#2#) = [0]                                    
               p(mult#3#) = [0]                                    
                p(mult3#) = [6] x1 + [4] x3 + [6]                  
                  p(sub#) = [1] x2 + [0]                           
                p(sub#1#) = [2] x1 + [0]                           
                 p(sub'#) = [2] x2 + [0]                           
               p(sub'#1#) = [1] x1 + [0]                           
               p(sub'#2#) = [1] x1 + [4] x2 + [1] x3 + [1] x4 + [0]
               p(sub'#3#) = [4] x2 + [4] x3 + [0]                  
               p(sub'#4#) = [2] x2 + [0]                           
               p(sub'#5#) = [0]                                    
                  p(sum#) = [1] x1 + [0]                           
                p(sum#1#) = [0]                                    
                p(sum#2#) = [1] x1 + [1] x2 + [0]                  
                p(sum#3#) = [0]                                    
                p(sum#4#) = [0]                                    
                   p(c_1) = [0]                                    
                   p(c_2) = [0]                                    
                   p(c_3) = [0]                                    
                   p(c_4) = [0]                                    
                   p(c_5) = [0]                                    
                   p(c_6) = [2] x2 + [0]                           
                   p(c_7) = [0]                                    
                   p(c_8) = [0]                                    
                   p(c_9) = [0]                                    
                  p(c_10) = [0]                                    
                  p(c_11) = [2] x1 + [0]                           
                  p(c_12) = [0]                                    
                  p(c_13) = [1] x1 + [0]                           
                  p(c_14) = [0]                                    
                  p(c_15) = [1] x1 + [0]                           
                  p(c_16) = [0]                                    
                  p(c_17) = [0]                                    
                  p(c_18) = [0]                                    
                  p(c_19) = [0]                                    
                  p(c_20) = [0]                                    
                  p(c_21) = [1] x1 + [0]                           
                  p(c_22) = [2] x1 + [0]                           
                  p(c_23) = [0]                                    
                  p(c_24) = [0]                                    
                  p(c_25) = [1] x1 + [0]                           
                  p(c_26) = [1] x1 + [0]                           
                  p(c_27) = [4] x1 + [2] x2 + [0]                  
                  p(c_28) = [0]                                    
                  p(c_29) = [4] x1 + [0]                           
                  p(c_30) = [0]                                    
                  p(c_31) = [0]                                    
                  p(c_32) = [0]                                    
                  p(c_33) = [2] x1 + [0]                           
                  p(c_34) = [1] x3 + [4] x4 + [1] x6 + [0]         
                  p(c_35) = [0]                                    
                  p(c_36) = [1] x1 + [0]                           
                  p(c_37) = [0]                                    
                  p(c_38) = [4] x1 + [0]                           
                  p(c_39) = [4] x1 + [2] x2 + [0]                  
                  p(c_40) = [1] x1 + [1]                           
                  p(c_41) = [1] x1 + [1] x2 + [1]                  
                  p(c_42) = [0]                                    
                  p(c_43) = [1] x1 + [0]                           
                  p(c_44) = [0]                                    
                  p(c_45) = [1] x1 + [0]                           
                  p(c_46) = [1] x1 + [1] x2 + [0]                  
                  p(c_47) = [0]                                    
                  p(c_48) = [0]                                    
                  p(c_49) = [2]                                    
                  p(c_50) = [0]                                    
                  p(c_51) = [0]                                    
                  p(c_52) = [0]                                    
                  p(c_53) = [0]                                    
                  p(c_54) = [0]                                    
                  p(c_55) = [1] x2 + [0]                           
                  p(c_56) = [0]                                    
                  p(c_57) = [1] x1 + [0]                           
                  p(c_58) = [4] x2 + [0]                           
                  p(c_59) = [0]                                    
                  p(c_60) = [2] x1 + [2] x2 + [0]                  
                  p(c_61) = [1] x1 + [0]                           
                  p(c_62) = [4] x2 + [0]                           
                  p(c_63) = [4] x2 + [0]                           
                  p(c_64) = [1] x1 + [1] x2 + [0]                  
                  p(c_65) = [1] x1 + [0]                           
                  p(c_66) = [0]                                    
                  p(c_67) = [0]                                    
                  p(c_68) = [1] x2 + [0]                           
                  p(c_69) = [2] x1 + [0]                           
                  p(c_70) = [0]                                    
                  p(c_71) = [0]                                    
                  p(c_72) = [0]                                    
                  p(c_73) = [0]                                    
                  p(c_74) = [0]                                    
                  p(c_75) = [0]                                    
                  p(c_76) = [0]                                    
                  p(c_77) = [0]                                    
                  p(c_78) = [0]                                    
                  p(c_79) = [0]                                    
                  p(c_80) = [0]                                    
                  p(c_81) = [0]                                    
                  p(c_82) = [0]                                    
                  p(c_83) = [0]                                    
                  p(c_84) = [0]                                    
                  p(c_85) = [0]                                    
                  p(c_86) = [0]                                    
                  p(c_87) = [0]                                    
                  p(c_88) = [0]                                    
                  p(c_89) = [0]                                    
                  p(c_90) = [0]                                    
                  p(c_91) = [0]                                    
                  p(c_92) = [1] x1 + [0]                           
                  p(c_93) = [0]                                    
                  p(c_94) = [0]                                    
                  p(c_95) = [0]                                    
                  p(c_96) = [0]                                    
                  p(c_97) = [0]                                    
                  p(c_98) = [1] x1 + [0]                           
                  p(c_99) = [0]                                    
                 p(c_100) = [0]                                    
                 p(c_101) = [1] x1 + [0]                           
                 p(c_102) = [0]                                    
                 p(c_103) = [0]                                    
                 p(c_104) = [0]                                    
                 p(c_105) = [0]                                    
                 p(c_106) = [0]                                    
                 p(c_107) = [0]                                    
                 p(c_108) = [0]                                    
                 p(c_109) = [0]                                    
                 p(c_110) = [0]                                    
                 p(c_111) = [0]                                    
                 p(c_112) = [0]                                    
                 p(c_113) = [0]                                    
                 p(c_114) = [2] x1 + [4] x3 + [0]                  
                 p(c_115) = [0]                                    
                 p(c_116) = [0]                                    
                 p(c_117) = [0]                                    
                 p(c_118) = [0]                                    
                 p(c_119) = [0]                                    
                 p(c_120) = [0]                                    
                 p(c_121) = [0]                                    
                 p(c_122) = [1] x2 + [0]                           
                 p(c_123) = [0]                                    
                 p(c_124) = [0]                                    
                 p(c_125) = [0]                                    
                 p(c_126) = [0]                                    
                 p(c_127) = [0]                                    
                 p(c_128) = [0]                                    
                 p(c_129) = [0]                                    
                 p(c_130) = [0]                                    
                 p(c_131) = [1] x1 + [0]                           
                 p(c_132) = [0]                                    
                 p(c_133) = [0]                                    
                 p(c_134) = [0]                                    
                 p(c_135) = [4] x1 + [0]                           
                 p(c_136) = [0]                                    
                 p(c_137) = [0]                                    
                 p(c_138) = [0]                                    
                 p(c_139) = [0]                                    
                 p(c_140) = [0]                                    
                 p(c_141) = [0]                                    
                 p(c_142) = [0]                                    
                 p(c_143) = [1] x1 + [0]                           
                 p(c_144) = [4] x1 + [0]                           
                 p(c_145) = [0]                                    
                 p(c_146) = [0]                                    
                 p(c_147) = [0]                                    
                 p(c_148) = [0]                                    
        
        Following rules are strictly oriented:
        mult#1#(::(@x,@xs),@b2) = [2] @xs + [4]                                                    
                                > [2] @xs + [2]                                                    
                                = c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
        
        
        Following rules are (at-least) weakly oriented:
                         mult#(@b1,@b2) =  [2] @b1 + [1]                                
                                        >= [2] @b1 + [1]                                
                                        =  c_40(mult#1#(@b1,@b2))                       
        
                    mult3#(@b1,@b2,@b3) =  [6] @b1 + [4] @b3 + [6]                      
                                        >= [6] @b1 + [6]                                
                                        =  c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        
                           add(@b1,@b2) =  [1] @b2 + [2]                                
                                        >= [1] @b2 + [0]                                
                                        =  add'(@b1,@b2,#abs(#0()))                     
        
                       add'(@b1,@b2,@r) =  [1] @b2 + [0]                                
                                        >= [1] @b2 + [0]                                
                                        =  add'#1(@b1,@b2,@r)                           
        
              add'#1(::(@x,@xs),@b2,@r) =  [1] @b2 + [0]                                
                                        >= [1] @b2 + [0]                                
                                        =  add'#2(@b2,@r,@x,@xs)                        
        
                   add'#1(nil(),@b2,@r) =  [1] @b2 + [0]                                
                                        >= [0]                                          
                                        =  nil()                                        
        
           add'#2(::(@y,@ys),@r,@x,@xs) =  [1] @ys + [2]                                
                                        >= [1] @ys + [2]                                
                                        =  add'#3(sum(@x,@y,@r),@xs,@ys)                
        
                add'#2(nil(),@r,@x,@xs) =  [0]                                          
                                        >= [0]                                          
                                        =  nil()                                        
        
        add'#3(tuple#2(@z,@r'),@xs,@ys) =  [1] @ys + [2]                                
                                        >= [1] @ys + [2]                                
                                        =  ::(@z,add'(@xs,@ys,@r'))                     
        
                          mult(@b1,@b2) =  [2] @b1 + [2]                                
                                        >= [2] @b1 + [2]                                
                                        =  mult#1(@b1,@b2)                              
        
                 mult#1(::(@x,@xs),@b2) =  [2] @xs + [6]                                
                                        >= [2] @xs + [6]                                
                                        =  mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)  
        
                      mult#1(nil(),@b2) =  [2]                                          
                                        >= [0]                                          
                                        =  nil()                                        
        
                     mult#2(@zs,@b2,@x) =  [1] @zs + [2]                                
                                        >= [1] @zs + [2]                                
                                        =  mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)    
        
               mult#3(#false(),@b2,@zs) =  [1] @zs + [2]                                
                                        >= [1] @zs + [0]                                
                                        =  @zs                                          
        
                mult#3(#true(),@b2,@zs) =  [1] @zs + [2]                                
                                        >= [1] @zs + [2]                                
                                        =  add(@b2,@zs)                                 
        
**** Step 14.a:3.a:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

**** Step 14.a:3.a:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
             -->_1 mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2)):2
          
          2:W:mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):1
          
          3:W:mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):1
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          3: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          1: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          2: mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
**** Step 14.a:3.a:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

*** Step 14.a:3.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
        - Weak DPs:
            mult#(@b1,@b2) -> mult#1#(@b1,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
            mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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:
          3: add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          
        Consider the set of all dependency pairs
          1: add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
          2: add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          3: add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          4: add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
          5: add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          6: mult#(@b1,@b2) -> mult#1#(@b1,@b2)
          7: mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
          8: mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
          9: mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
          10: mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          11: mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
          12: mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
        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
          {3}
        These cover all (indirect) predecessors of dependency pairs
          {3,4,5,11,12}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
**** Step 14.a:3.b:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
        - Weak DPs:
            mult#(@b1,@b2) -> mult#1#(@b1,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
            mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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_11) = {1},
          uargs(c_12) = {1},
          uargs(c_13) = {1},
          uargs(c_15) = {1},
          uargs(c_17) = {1},
          uargs(c_43) = {1},
          uargs(c_45) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#
          ,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#
          ,compare#,compare#1#,compare#2#,compare#3#,compare#4#,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#
          ,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#
          ,sum#2#,sum#3#,sum#4#}
        TcT has computed the following interpretation:
                    p(#0) = [3]                                                      
                   p(#EQ) = [0]                                                      
                   p(#GT) = [0]                                                      
                   p(#LT) = [0]                                                      
                  p(#abs) = [0]                                                      
                  p(#add) = [6]                                                      
                  p(#and) = [6] x1 + [2]                                             
                 p(#ckgt) = [0]                                                      
                 p(#cklt) = [0]                                                      
              p(#compare) = [0]                                                      
                  p(#div) = [0]                                                      
            p(#divByZero) = [0]                                                      
                   p(#eq) = [2] x2 + [1]                                             
                p(#equal) = [1] x1 + [1] x2 + [0]                                    
                p(#false) = [1]                                                      
              p(#greater) = [0]                                                      
                 p(#less) = [0]                                                      
                 p(#mult) = [0]                                                      
               p(#natdiv) = [0]                                                      
              p(#natmult) = [0]                                                      
               p(#natsub) = [0]                                                      
                  p(#neg) = [0]                                                      
                  p(#pos) = [0]                                                      
                 p(#pred) = [6]                                                      
                    p(#s) = [4]                                                      
                  p(#sub) = [0]                                                      
                 p(#succ) = [7]                                                      
                 p(#true) = [0]                                                      
                     p(*) = [0]                                                      
                     p(+) = [5]                                                      
                     p(-) = [0]                                                      
                    p(::) = [1] x2 + [2]                                             
                   p(add) = [0]                                                      
                  p(add') = [2]                                                      
                p(add'#1) = [0]                                                      
                p(add'#2) = [5]                                                      
                p(add'#3) = [3]                                                      
              p(bitToInt) = [0]                                                      
             p(bitToInt') = [0]                                                      
           p(bitToInt'#1) = [0]                                                      
               p(compare) = [0]                                                      
             p(compare#1) = [0]                                                      
             p(compare#2) = [0]                                                      
             p(compare#3) = [0]                                                      
             p(compare#4) = [0]                                                      
             p(compare#5) = [0]                                                      
             p(compare#6) = [0]                                                      
                  p(diff) = [0]                                                      
                p(diff#1) = [0]                                                      
                   p(div) = [0]                                                      
                   p(leq) = [0]                                                      
                   p(mod) = [0]                                                      
                  p(mult) = [7]                                                      
                p(mult#1) = [1] x1 + [5]                                             
                p(mult#2) = [3]                                                      
                p(mult#3) = [0]                                                      
                 p(mult3) = [0]                                                      
                   p(nil) = [0]                                                      
                   p(sub) = [0]                                                      
                 p(sub#1) = [0]                                                      
                  p(sub') = [0]                                                      
                p(sub'#1) = [0]                                                      
                p(sub'#2) = [0]                                                      
                p(sub'#3) = [0]                                                      
                p(sub'#4) = [0]                                                      
                p(sub'#5) = [0]                                                      
                   p(sum) = [0]                                                      
                 p(sum#1) = [0]                                                      
                 p(sum#2) = [4] x1 + [6] x2 + [1]                                    
                 p(sum#3) = [4]                                                      
                 p(sum#4) = [1]                                                      
               p(tuple#2) = [0]                                                      
                 p(#abs#) = [0]                                                      
                 p(#add#) = [0]                                                      
                 p(#and#) = [0]                                                      
                p(#ckgt#) = [0]                                                      
                p(#cklt#) = [0]                                                      
             p(#compare#) = [0]                                                      
                 p(#div#) = [0]                                                      
                  p(#eq#) = [1] x1 + [1] x2 + [0]                                    
               p(#equal#) = [1]                                                      
             p(#greater#) = [0]                                                      
                p(#less#) = [4] x2 + [1]                                             
                p(#mult#) = [0]                                                      
              p(#natdiv#) = [1] x2 + [4]                                             
             p(#natmult#) = [0]                                                      
              p(#natsub#) = [2]                                                      
                p(#pred#) = [0]                                                      
                 p(#sub#) = [0]                                                      
                p(#succ#) = [1] x1 + [0]                                             
                    p(*#) = [2] x1 + [1] x2 + [1]                                    
                    p(+#) = [0]                                                      
                    p(-#) = [0]                                                      
                  p(add#) = [4] x1 + [0]                                             
                 p(add'#) = [4] x1 + [0]                                             
               p(add'#1#) = [4] x1 + [0]                                             
               p(add'#2#) = [4] x4 + [0]                                             
               p(add'#3#) = [4] x2 + [0]                                             
             p(bitToInt#) = [1]                                                      
            p(bitToInt'#) = [2] x2 + [1]                                             
          p(bitToInt'#1#) = [1] x2 + [1]                                             
              p(compare#) = [2] x1 + [1]                                             
            p(compare#1#) = [2] x1 + [0]                                             
            p(compare#2#) = [1] x1 + [4]                                             
            p(compare#3#) = [1] x3 + [1]                                             
            p(compare#4#) = [2] x2 + [1] x3 + [4] x4 + [1]                           
            p(compare#5#) = [1] x1 + [4] x2 + [1] x3 + [4]                           
            p(compare#6#) = [4]                                                      
                 p(diff#) = [1] x2 + [2] x3 + [4]                                    
               p(diff#1#) = [1] x1 + [0]                                             
                  p(div#) = [1] x1 + [4]                                             
                  p(leq#) = [4] x2 + [0]                                             
                  p(mod#) = [1]                                                      
                 p(mult#) = [4] x2 + [2]                                             
               p(mult#1#) = [4] x2 + [2]                                             
               p(mult#2#) = [4] x2 + [2]                                             
               p(mult#3#) = [4] x2 + [0]                                             
                p(mult3#) = [1] x1 + [7] x2 + [2]                                    
                  p(sub#) = [1] x1 + [0]                                             
                p(sub#1#) = [1] x1 + [1]                                             
                 p(sub'#) = [1] x1 + [1] x2 + [2] x3 + [0]                           
               p(sub'#1#) = [1] x1 + [1] x2 + [1]                                    
               p(sub'#2#) = [2] x2 + [0]                                             
               p(sub'#3#) = [1] x2 + [4]                                             
               p(sub'#4#) = [1] x1 + [1]                                             
               p(sub'#5#) = [1] x2 + [1] x3 + [0]                                    
                  p(sum#) = [4] x1 + [0]                                             
                p(sum#1#) = [0]                                                      
                p(sum#2#) = [1] x1 + [2] x2 + [1]                                    
                p(sum#3#) = [1] x1 + [1]                                             
                p(sum#4#) = [0]                                                      
                   p(c_1) = [2]                                                      
                   p(c_2) = [1]                                                      
                   p(c_3) = [4]                                                      
                   p(c_4) = [1]                                                      
                   p(c_5) = [1]                                                      
                   p(c_6) = [1] x2 + [0]                                             
                   p(c_7) = [1] x2 + [0]                                             
                   p(c_8) = [1] x1 + [2]                                             
                   p(c_9) = [1] x1 + [0]                                             
                  p(c_10) = [1] x1 + [0]                                             
                  p(c_11) = [1] x1 + [0]                                             
                  p(c_12) = [1] x1 + [0]                                             
                  p(c_13) = [1] x1 + [7]                                             
                  p(c_14) = [1]                                                      
                  p(c_15) = [1] x1 + [0]                                             
                  p(c_16) = [0]                                                      
                  p(c_17) = [1] x1 + [0]                                             
                  p(c_18) = [4] x1 + [0]                                             
                  p(c_19) = [1] x1 + [2]                                             
                  p(c_20) = [4] x1 + [4]                                             
                  p(c_21) = [0]                                                      
                  p(c_22) = [0]                                                      
                  p(c_23) = [4]                                                      
                  p(c_24) = [4]                                                      
                  p(c_25) = [1] x1 + [0]                                             
                  p(c_26) = [0]                                                      
                  p(c_27) = [4]                                                      
                  p(c_28) = [2]                                                      
                  p(c_29) = [1] x1 + [2] x2 + [2]                                    
                  p(c_30) = [0]                                                      
                  p(c_31) = [4] x1 + [1]                                             
                  p(c_32) = [1]                                                      
                  p(c_33) = [0]                                                      
                  p(c_34) = [1] x1 + [4] x2 + [2] x3 + [1] x5 + [1] x6 + [1] x7 + [1]
                  p(c_35) = [1] x1 + [1]                                             
                  p(c_36) = [1] x1 + [4]                                             
                  p(c_37) = [1] x1 + [1]                                             
                  p(c_38) = [1] x1 + [1]                                             
                  p(c_39) = [1] x3 + [1]                                             
                  p(c_40) = [1] x1 + [0]                                             
                  p(c_41) = [1] x2 + [0]                                             
                  p(c_42) = [2]                                                      
                  p(c_43) = [1] x1 + [0]                                             
                  p(c_44) = [0]                                                      
                  p(c_45) = [1] x1 + [0]                                             
                  p(c_46) = [0]                                                      
                  p(c_47) = [2] x1 + [1]                                             
                  p(c_48) = [1]                                                      
                  p(c_49) = [1] x1 + [1]                                             
                  p(c_50) = [1] x1 + [0]                                             
                  p(c_51) = [2]                                                      
                  p(c_52) = [2]                                                      
                  p(c_53) = [0]                                                      
                  p(c_54) = [1] x1 + [1]                                             
                  p(c_55) = [1] x1 + [1] x2 + [0]                                    
                  p(c_56) = [0]                                                      
                  p(c_57) = [1] x1 + [1]                                             
                  p(c_58) = [1] x3 + [0]                                             
                  p(c_59) = [1] x2 + [0]                                             
                  p(c_60) = [4] x2 + [0]                                             
                  p(c_61) = [1] x1 + [1]                                             
                  p(c_62) = [4] x2 + [2]                                             
                  p(c_63) = [1] x1 + [1]                                             
                  p(c_64) = [1]                                                      
                  p(c_65) = [0]                                                      
                  p(c_66) = [1]                                                      
                  p(c_67) = [0]                                                      
                  p(c_68) = [2] x1 + [1]                                             
                  p(c_69) = [1] x1 + [1]                                             
                  p(c_70) = [1]                                                      
                  p(c_71) = [0]                                                      
                  p(c_72) = [1]                                                      
                  p(c_73) = [4]                                                      
                  p(c_74) = [0]                                                      
                  p(c_75) = [0]                                                      
                  p(c_76) = [2]                                                      
                  p(c_77) = [0]                                                      
                  p(c_78) = [0]                                                      
                  p(c_79) = [0]                                                      
                  p(c_80) = [0]                                                      
                  p(c_81) = [1]                                                      
                  p(c_82) = [2]                                                      
                  p(c_83) = [0]                                                      
                  p(c_84) = [1]                                                      
                  p(c_85) = [1]                                                      
                  p(c_86) = [1] x1 + [4]                                             
                  p(c_87) = [2]                                                      
                  p(c_88) = [1]                                                      
                  p(c_89) = [0]                                                      
                  p(c_90) = [1] x1 + [0]                                             
                  p(c_91) = [1]                                                      
                  p(c_92) = [2]                                                      
                  p(c_93) = [1]                                                      
                  p(c_94) = [1]                                                      
                  p(c_95) = [0]                                                      
                  p(c_96) = [1]                                                      
                  p(c_97) = [4] x1 + [4]                                             
                  p(c_98) = [1]                                                      
                  p(c_99) = [4]                                                      
                 p(c_100) = [1] x1 + [0]                                             
                 p(c_101) = [4] x1 + [1]                                             
                 p(c_102) = [4]                                                      
                 p(c_103) = [0]                                                      
                 p(c_104) = [1]                                                      
                 p(c_105) = [2]                                                      
                 p(c_106) = [2]                                                      
                 p(c_107) = [0]                                                      
                 p(c_108) = [0]                                                      
                 p(c_109) = [2]                                                      
                 p(c_110) = [4]                                                      
                 p(c_111) = [2]                                                      
                 p(c_112) = [0]                                                      
                 p(c_113) = [1]                                                      
                 p(c_114) = [1] x1 + [0]                                             
                 p(c_115) = [1]                                                      
                 p(c_116) = [0]                                                      
                 p(c_117) = [0]                                                      
                 p(c_118) = [0]                                                      
                 p(c_119) = [4]                                                      
                 p(c_120) = [2]                                                      
                 p(c_121) = [1]                                                      
                 p(c_122) = [1] x1 + [2] x3 + [1]                                    
                 p(c_123) = [2]                                                      
                 p(c_124) = [0]                                                      
                 p(c_125) = [0]                                                      
                 p(c_126) = [4]                                                      
                 p(c_127) = [2]                                                      
                 p(c_128) = [4]                                                      
                 p(c_129) = [4]                                                      
                 p(c_130) = [1] x1 + [1]                                             
                 p(c_131) = [4]                                                      
                 p(c_132) = [0]                                                      
                 p(c_133) = [1] x1 + [4] x2 + [1]                                    
                 p(c_134) = [1]                                                      
                 p(c_135) = [1] x2 + [4]                                             
                 p(c_136) = [4]                                                      
                 p(c_137) = [1] x1 + [0]                                             
                 p(c_138) = [0]                                                      
                 p(c_139) = [2]                                                      
                 p(c_140) = [1]                                                      
                 p(c_141) = [1]                                                      
                 p(c_142) = [0]                                                      
                 p(c_143) = [4]                                                      
                 p(c_144) = [2] x1 + [4]                                             
                 p(c_145) = [4]                                                      
                 p(c_146) = [0]                                                      
                 p(c_147) = [4]                                                      
                 p(c_148) = [0]                                                      
        
        Following rules are strictly oriented:
        add'#1#(::(@x,@xs),@b2,@r) = [4] @xs + [8]               
                                   > [4] @xs + [7]               
                                   = c_13(add'#2#(@b2,@r,@x,@xs))
        
        
        Following rules are (at-least) weakly oriented:
                           add#(@b1,@b2) =  [4] @b1 + [0]                                   
                                         >= [4] @b1 + [0]                                   
                                         =  c_11(add'#(@b1,@b2,#abs(#0())))                 
        
                       add'#(@b1,@b2,@r) =  [4] @b1 + [0]                                   
                                         >= [4] @b1 + [0]                                   
                                         =  c_12(add'#1#(@b1,@b2,@r))                       
        
           add'#2#(::(@y,@ys),@r,@x,@xs) =  [4] @xs + [0]                                   
                                         >= [4] @xs + [0]                                   
                                         =  c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))            
        
        add'#3#(tuple#2(@z,@r'),@xs,@ys) =  [4] @xs + [0]                                   
                                         >= [4] @xs + [0]                                   
                                         =  c_17(add'#(@xs,@ys,@r'))                        
        
                          mult#(@b1,@b2) =  [4] @b2 + [2]                                   
                                         >= [4] @b2 + [2]                                   
                                         =  mult#1#(@b1,@b2)                                
        
                 mult#1#(::(@x,@xs),@b2) =  [4] @b2 + [2]                                   
                                         >= [4] @b2 + [2]                                   
                                         =  mult#(@xs,@b2)                                  
        
                 mult#1#(::(@x,@xs),@b2) =  [4] @b2 + [2]                                   
                                         >= [4] @b2 + [2]                                   
                                         =  mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)    
        
                     mult#2#(@zs,@b2,@x) =  [4] @b2 + [2]                                   
                                         >= [4] @b2 + [0]                                   
                                         =  c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
        
                mult#3#(#true(),@b2,@zs) =  [4] @b2 + [0]                                   
                                         >= [4] @b2 + [0]                                   
                                         =  c_45(add#(@b2,@zs))                             
        
                     mult3#(@b1,@b2,@b3) =  [1] @b1 + [7] @b2 + [2]                         
                                         >= [4] @b2 + [2]                                   
                                         =  mult#(@b1,@b2)                                  
        
                     mult3#(@b1,@b2,@b3) =  [1] @b1 + [7] @b2 + [2]                         
                                         >= [4] @b2 + [2]                                   
                                         =  mult#(mult(@b1,@b2),@b2)                        
        
**** Step 14.a:3.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
        - Weak DPs:
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            mult#(@b1,@b2) -> mult#1#(@b1,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
            mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

**** Step 14.a:3.b:1.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
        - Weak DPs:
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            mult#(@b1,@b2) -> mult#1#(@b1,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
            mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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: add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
          
        Consider the set of all dependency pairs
          1: add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
          2: add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          3: add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          4: add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
          5: add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          6: mult#(@b1,@b2) -> mult#1#(@b1,@b2)
          7: mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
          8: mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
          9: mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
          10: mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          11: mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
          12: mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
        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,11,12}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
***** Step 14.a:3.b:1.b:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
        - Weak DPs:
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            mult#(@b1,@b2) -> mult#1#(@b1,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
            mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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_11) = {1},
          uargs(c_12) = {1},
          uargs(c_13) = {1},
          uargs(c_15) = {1},
          uargs(c_17) = {1},
          uargs(c_43) = {1},
          uargs(c_45) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#
          ,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#
          ,compare#,compare#1#,compare#2#,compare#3#,compare#4#,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#
          ,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#
          ,sum#2#,sum#3#,sum#4#}
        TcT has computed the following interpretation:
                    p(#0) = [2]                           
                   p(#EQ) = [0]                           
                   p(#GT) = [0]                           
                   p(#LT) = [1]                           
                  p(#abs) = [4]                           
                  p(#add) = [1]                           
                  p(#and) = [5] x2 + [0]                  
                 p(#ckgt) = [0]                           
                 p(#cklt) = [4]                           
              p(#compare) = [1] x2 + [1]                  
                  p(#div) = [2] x2 + [1]                  
            p(#divByZero) = [2]                           
                   p(#eq) = [1] x1 + [0]                  
                p(#equal) = [4] x1 + [0]                  
                p(#false) = [2]                           
              p(#greater) = [2] x2 + [4]                  
                 p(#less) = [2]                           
                 p(#mult) = [1] x1 + [2]                  
               p(#natdiv) = [1]                           
              p(#natmult) = [1]                           
               p(#natsub) = [1] x1 + [0]                  
                  p(#neg) = [2]                           
                  p(#pos) = [1] x1 + [0]                  
                 p(#pred) = [1] x1 + [6]                  
                    p(#s) = [0]                           
                  p(#sub) = [1]                           
                 p(#succ) = [1] x1 + [2]                  
                 p(#true) = [0]                           
                     p(*) = [1]                           
                     p(+) = [5]                           
                     p(-) = [1]                           
                    p(::) = [0]                           
                   p(add) = [4] x2 + [0]                  
                  p(add') = [0]                           
                p(add'#1) = [1] x2 + [0]                  
                p(add'#2) = [4] x1 + [1] x4 + [2]         
                p(add'#3) = [2]                           
              p(bitToInt) = [0]                           
             p(bitToInt') = [4] x2 + [0]                  
           p(bitToInt'#1) = [1] x2 + [0]                  
               p(compare) = [1] x2 + [1]                  
             p(compare#1) = [1] x2 + [0]                  
             p(compare#2) = [1] x2 + [0]                  
             p(compare#3) = [1] x3 + [0]                  
             p(compare#4) = [2]                           
             p(compare#5) = [1] x3 + [2]                  
             p(compare#6) = [1]                           
                  p(diff) = [2] x1 + [2]                  
                p(diff#1) = [2]                           
                   p(div) = [0]                           
                   p(leq) = [1] x1 + [1]                  
                   p(mod) = [1]                           
                  p(mult) = [0]                           
                p(mult#1) = [0]                           
                p(mult#2) = [1] x2 + [4] x3 + [0]         
                p(mult#3) = [0]                           
                 p(mult3) = [1] x2 + [0]                  
                   p(nil) = [1]                           
                   p(sub) = [0]                           
                 p(sub#1) = [1]                           
                  p(sub') = [1] x2 + [0]                  
                p(sub'#1) = [1] x1 + [1] x3 + [0]         
                p(sub'#2) = [1] x2 + [1] x4 + [2]         
                p(sub'#3) = [4] x1 + [0]                  
                p(sub'#4) = [4] x1 + [1] x2 + [2]         
                p(sub'#5) = [1] x2 + [0]                  
                   p(sum) = [0]                           
                 p(sum#1) = [1] x1 + [1]                  
                 p(sum#2) = [1]                           
                 p(sum#3) = [1]                           
                 p(sum#4) = [0]                           
               p(tuple#2) = [4]                           
                 p(#abs#) = [1] x1 + [1]                  
                 p(#add#) = [1]                           
                 p(#and#) = [0]                           
                p(#ckgt#) = [1]                           
                p(#cklt#) = [0]                           
             p(#compare#) = [2] x2 + [1]                  
                 p(#div#) = [0]                           
                  p(#eq#) = [1] x2 + [0]                  
               p(#equal#) = [4] x2 + [1]                  
             p(#greater#) = [0]                           
                p(#less#) = [0]                           
                p(#mult#) = [0]                           
              p(#natdiv#) = [4] x1 + [1] x2 + [0]         
             p(#natmult#) = [1] x1 + [1]                  
              p(#natsub#) = [1] x1 + [2] x2 + [2]         
                p(#pred#) = [2]                           
                 p(#sub#) = [1] x2 + [1]                  
                p(#succ#) = [0]                           
                    p(*#) = [1] x1 + [0]                  
                    p(+#) = [2] x1 + [0]                  
                    p(-#) = [0]                           
                  p(add#) = [1]                           
                 p(add'#) = [0]                           
               p(add'#1#) = [0]                           
               p(add'#2#) = [0]                           
               p(add'#3#) = [0]                           
             p(bitToInt#) = [0]                           
            p(bitToInt'#) = [0]                           
          p(bitToInt'#1#) = [2] x1 + [1]                  
              p(compare#) = [1] x2 + [0]                  
            p(compare#1#) = [1] x2 + [2]                  
            p(compare#2#) = [1] x1 + [4]                  
            p(compare#3#) = [2] x1 + [1] x2 + [1]         
            p(compare#4#) = [1] x3 + [1]                  
            p(compare#5#) = [1] x3 + [0]                  
            p(compare#6#) = [4]                           
                 p(diff#) = [1]                           
               p(diff#1#) = [1]                           
                  p(div#) = [1] x1 + [1] x2 + [1]         
                  p(leq#) = [4] x1 + [2] x2 + [1]         
                  p(mod#) = [1] x1 + [1] x2 + [4]         
                 p(mult#) = [7]                           
               p(mult#1#) = [7]                           
               p(mult#2#) = [4] x1 + [7]                  
               p(mult#3#) = [1] x3 + [1]                  
                p(mult3#) = [7]                           
                  p(sub#) = [2] x2 + [1]                  
                p(sub#1#) = [0]                           
                 p(sub'#) = [0]                           
               p(sub'#1#) = [1] x2 + [0]                  
               p(sub'#2#) = [1] x3 + [1]                  
               p(sub'#3#) = [4] x1 + [0]                  
               p(sub'#4#) = [1] x2 + [1]                  
               p(sub'#5#) = [2] x1 + [4] x3 + [1]         
                  p(sum#) = [2] x1 + [1] x3 + [0]         
                p(sum#1#) = [4] x1 + [0]                  
                p(sum#2#) = [1] x1 + [1]                  
                p(sum#3#) = [0]                           
                p(sum#4#) = [4] x1 + [4]                  
                   p(c_1) = [0]                           
                   p(c_2) = [0]                           
                   p(c_3) = [0]                           
                   p(c_4) = [2]                           
                   p(c_5) = [1]                           
                   p(c_6) = [1] x1 + [1] x2 + [0]         
                   p(c_7) = [1] x1 + [1] x2 + [0]         
                   p(c_8) = [4]                           
                   p(c_9) = [2]                           
                  p(c_10) = [1]                           
                  p(c_11) = [1] x1 + [0]                  
                  p(c_12) = [2] x1 + [0]                  
                  p(c_13) = [4] x1 + [0]                  
                  p(c_14) = [4]                           
                  p(c_15) = [4] x1 + [0]                  
                  p(c_16) = [1]                           
                  p(c_17) = [4] x1 + [0]                  
                  p(c_18) = [1]                           
                  p(c_19) = [1] x1 + [1]                  
                  p(c_20) = [1]                           
                  p(c_21) = [0]                           
                  p(c_22) = [0]                           
                  p(c_23) = [1] x1 + [0]                  
                  p(c_24) = [1] x1 + [1]                  
                  p(c_25) = [0]                           
                  p(c_26) = [0]                           
                  p(c_27) = [0]                           
                  p(c_28) = [0]                           
                  p(c_29) = [4]                           
                  p(c_30) = [4] x1 + [1] x2 + [0]         
                  p(c_31) = [1]                           
                  p(c_32) = [1] x1 + [0]                  
                  p(c_33) = [0]                           
                  p(c_34) = [4] x1 + [1] x2 + [4] x7 + [0]
                  p(c_35) = [1] x1 + [2]                  
                  p(c_36) = [0]                           
                  p(c_37) = [1] x1 + [1]                  
                  p(c_38) = [1] x1 + [1]                  
                  p(c_39) = [2] x1 + [1] x2 + [1]         
                  p(c_40) = [0]                           
                  p(c_41) = [4] x1 + [1]                  
                  p(c_42) = [0]                           
                  p(c_43) = [4] x1 + [3]                  
                  p(c_44) = [0]                           
                  p(c_45) = [1] x1 + [0]                  
                  p(c_46) = [2]                           
                  p(c_47) = [0]                           
                  p(c_48) = [0]                           
                  p(c_49) = [0]                           
                  p(c_50) = [0]                           
                  p(c_51) = [0]                           
                  p(c_52) = [0]                           
                  p(c_53) = [0]                           
                  p(c_54) = [0]                           
                  p(c_55) = [0]                           
                  p(c_56) = [0]                           
                  p(c_57) = [0]                           
                  p(c_58) = [0]                           
                  p(c_59) = [0]                           
                  p(c_60) = [0]                           
                  p(c_61) = [1] x2 + [0]                  
                  p(c_62) = [0]                           
                  p(c_63) = [0]                           
                  p(c_64) = [0]                           
                  p(c_65) = [0]                           
                  p(c_66) = [0]                           
                  p(c_67) = [0]                           
                  p(c_68) = [0]                           
                  p(c_69) = [0]                           
                  p(c_70) = [0]                           
                  p(c_71) = [0]                           
                  p(c_72) = [0]                           
                  p(c_73) = [0]                           
                  p(c_74) = [0]                           
                  p(c_75) = [0]                           
                  p(c_76) = [0]                           
                  p(c_77) = [0]                           
                  p(c_78) = [0]                           
                  p(c_79) = [0]                           
                  p(c_80) = [0]                           
                  p(c_81) = [0]                           
                  p(c_82) = [0]                           
                  p(c_83) = [0]                           
                  p(c_84) = [0]                           
                  p(c_85) = [0]                           
                  p(c_86) = [0]                           
                  p(c_87) = [0]                           
                  p(c_88) = [0]                           
                  p(c_89) = [0]                           
                  p(c_90) = [0]                           
                  p(c_91) = [0]                           
                  p(c_92) = [0]                           
                  p(c_93) = [0]                           
                  p(c_94) = [0]                           
                  p(c_95) = [0]                           
                  p(c_96) = [0]                           
                  p(c_97) = [0]                           
                  p(c_98) = [0]                           
                  p(c_99) = [0]                           
                 p(c_100) = [0]                           
                 p(c_101) = [0]                           
                 p(c_102) = [0]                           
                 p(c_103) = [2]                           
                 p(c_104) = [0]                           
                 p(c_105) = [0]                           
                 p(c_106) = [0]                           
                 p(c_107) = [0]                           
                 p(c_108) = [0]                           
                 p(c_109) = [1]                           
                 p(c_110) = [0]                           
                 p(c_111) = [1] x1 + [0]                  
                 p(c_112) = [0]                           
                 p(c_113) = [0]                           
                 p(c_114) = [0]                           
                 p(c_115) = [0]                           
                 p(c_116) = [0]                           
                 p(c_117) = [0]                           
                 p(c_118) = [0]                           
                 p(c_119) = [0]                           
                 p(c_120) = [0]                           
                 p(c_121) = [0]                           
                 p(c_122) = [0]                           
                 p(c_123) = [0]                           
                 p(c_124) = [0]                           
                 p(c_125) = [0]                           
                 p(c_126) = [0]                           
                 p(c_127) = [0]                           
                 p(c_128) = [0]                           
                 p(c_129) = [0]                           
                 p(c_130) = [0]                           
                 p(c_131) = [0]                           
                 p(c_132) = [0]                           
                 p(c_133) = [0]                           
                 p(c_134) = [0]                           
                 p(c_135) = [0]                           
                 p(c_136) = [0]                           
                 p(c_137) = [0]                           
                 p(c_138) = [0]                           
                 p(c_139) = [0]                           
                 p(c_140) = [0]                           
                 p(c_141) = [0]                           
                 p(c_142) = [0]                           
                 p(c_143) = [0]                           
                 p(c_144) = [0]                           
                 p(c_145) = [0]                           
                 p(c_146) = [0]                           
                 p(c_147) = [0]                           
                 p(c_148) = [0]                           
        
        Following rules are strictly oriented:
        add#(@b1,@b2) = [1]                            
                      > [0]                            
                      = c_11(add'#(@b1,@b2,#abs(#0())))
        
        
        Following rules are (at-least) weakly oriented:
                       add'#(@b1,@b2,@r) =  [0]                                             
                                         >= [0]                                             
                                         =  c_12(add'#1#(@b1,@b2,@r))                       
        
              add'#1#(::(@x,@xs),@b2,@r) =  [0]                                             
                                         >= [0]                                             
                                         =  c_13(add'#2#(@b2,@r,@x,@xs))                    
        
           add'#2#(::(@y,@ys),@r,@x,@xs) =  [0]                                             
                                         >= [0]                                             
                                         =  c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))            
        
        add'#3#(tuple#2(@z,@r'),@xs,@ys) =  [0]                                             
                                         >= [0]                                             
                                         =  c_17(add'#(@xs,@ys,@r'))                        
        
                          mult#(@b1,@b2) =  [7]                                             
                                         >= [7]                                             
                                         =  mult#1#(@b1,@b2)                                
        
                 mult#1#(::(@x,@xs),@b2) =  [7]                                             
                                         >= [7]                                             
                                         =  mult#(@xs,@b2)                                  
        
                 mult#1#(::(@x,@xs),@b2) =  [7]                                             
                                         >= [7]                                             
                                         =  mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)    
        
                     mult#2#(@zs,@b2,@x) =  [4] @zs + [7]                                   
                                         >= [4] @zs + [7]                                   
                                         =  c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
        
                mult#3#(#true(),@b2,@zs) =  [1] @zs + [1]                                   
                                         >= [1]                                             
                                         =  c_45(add#(@b2,@zs))                             
        
                     mult3#(@b1,@b2,@b3) =  [7]                                             
                                         >= [7]                                             
                                         =  mult#(@b1,@b2)                                  
        
                     mult3#(@b1,@b2,@b3) =  [7]                                             
                                         >= [7]                                             
                                         =  mult#(mult(@b1,@b2),@b2)                        
        
***** Step 14.a:3.b:1.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
        - Weak DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            mult#(@b1,@b2) -> mult#1#(@b1,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
            mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

***** Step 14.a:3.b:1.b:1.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
        - Weak DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            mult#(@b1,@b2) -> mult#1#(@b1,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
            mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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: add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          
        Consider the set of all dependency pairs
          1: add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          2: add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
          3: add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          4: add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
          5: add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          6: mult#(@b1,@b2) -> mult#1#(@b1,@b2)
          7: mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
          8: mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
          9: mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
          10: mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          11: mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
          12: mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
        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,3,4,5,11,12}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
****** Step 14.a:3.b:1.b:1.b:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
        - Weak DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            mult#(@b1,@b2) -> mult#1#(@b1,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
            mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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_11) = {1},
          uargs(c_12) = {1},
          uargs(c_13) = {1},
          uargs(c_15) = {1},
          uargs(c_17) = {1},
          uargs(c_43) = {1},
          uargs(c_45) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#
          ,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#
          ,compare#,compare#1#,compare#2#,compare#3#,compare#4#,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#
          ,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#
          ,sum#2#,sum#3#,sum#4#}
        TcT has computed the following interpretation:
                    p(#0) = [0]                           
                   p(#EQ) = [0]                           
                   p(#GT) = [0]                           
                   p(#LT) = [0]                           
                  p(#abs) = [2] x1 + [3]                  
                  p(#add) = [6] x1 + [0]                  
                  p(#and) = [0]                           
                 p(#ckgt) = [0]                           
                 p(#cklt) = [0]                           
              p(#compare) = [0]                           
                  p(#div) = [0]                           
            p(#divByZero) = [0]                           
                   p(#eq) = [0]                           
                p(#equal) = [1]                           
                p(#false) = [0]                           
              p(#greater) = [0]                           
                 p(#less) = [0]                           
                 p(#mult) = [0]                           
               p(#natdiv) = [0]                           
              p(#natmult) = [0]                           
               p(#natsub) = [0]                           
                  p(#neg) = [1] x1 + [0]                  
                  p(#pos) = [2]                           
                 p(#pred) = [0]                           
                    p(#s) = [1] x1 + [0]                  
                  p(#sub) = [0]                           
                 p(#succ) = [0]                           
                 p(#true) = [0]                           
                     p(*) = [0]                           
                     p(+) = [4] x2 + [5]                  
                     p(-) = [0]                           
                    p(::) = [1] x2 + [1]                  
                   p(add) = [0]                           
                  p(add') = [3]                           
                p(add'#1) = [0]                           
                p(add'#2) = [0]                           
                p(add'#3) = [0]                           
              p(bitToInt) = [0]                           
             p(bitToInt') = [0]                           
           p(bitToInt'#1) = [0]                           
               p(compare) = [0]                           
             p(compare#1) = [0]                           
             p(compare#2) = [0]                           
             p(compare#3) = [0]                           
             p(compare#4) = [0]                           
             p(compare#5) = [0]                           
             p(compare#6) = [0]                           
                  p(diff) = [0]                           
                p(diff#1) = [0]                           
                   p(div) = [0]                           
                   p(leq) = [0]                           
                   p(mod) = [0]                           
                  p(mult) = [0]                           
                p(mult#1) = [4] x1 + [0]                  
                p(mult#2) = [0]                           
                p(mult#3) = [0]                           
                 p(mult3) = [0]                           
                   p(nil) = [0]                           
                   p(sub) = [0]                           
                 p(sub#1) = [0]                           
                  p(sub') = [0]                           
                p(sub'#1) = [0]                           
                p(sub'#2) = [0]                           
                p(sub'#3) = [0]                           
                p(sub'#4) = [0]                           
                p(sub'#5) = [0]                           
                   p(sum) = [0]                           
                 p(sum#1) = [1] x1 + [0]                  
                 p(sum#2) = [4] x2 + [0]                  
                 p(sum#3) = [1] x1 + [1]                  
                 p(sum#4) = [0]                           
               p(tuple#2) = [1] x2 + [2]                  
                 p(#abs#) = [0]                           
                 p(#add#) = [0]                           
                 p(#and#) = [0]                           
                p(#ckgt#) = [0]                           
                p(#cklt#) = [0]                           
             p(#compare#) = [0]                           
                 p(#div#) = [0]                           
                  p(#eq#) = [0]                           
               p(#equal#) = [0]                           
             p(#greater#) = [0]                           
                p(#less#) = [0]                           
                p(#mult#) = [0]                           
              p(#natdiv#) = [0]                           
             p(#natmult#) = [0]                           
              p(#natsub#) = [0]                           
                p(#pred#) = [0]                           
                 p(#sub#) = [0]                           
                p(#succ#) = [0]                           
                    p(*#) = [0]                           
                    p(+#) = [0]                           
                    p(-#) = [0]                           
                  p(add#) = [4] x1 + [6]                  
                 p(add'#) = [4] x1 + [5]                  
               p(add'#1#) = [4] x1 + [4]                  
               p(add'#2#) = [4] x4 + [5]                  
               p(add'#3#) = [4] x2 + [5]                  
             p(bitToInt#) = [0]                           
            p(bitToInt'#) = [0]                           
          p(bitToInt'#1#) = [0]                           
              p(compare#) = [0]                           
            p(compare#1#) = [0]                           
            p(compare#2#) = [0]                           
            p(compare#3#) = [0]                           
            p(compare#4#) = [0]                           
            p(compare#5#) = [0]                           
            p(compare#6#) = [0]                           
                 p(diff#) = [0]                           
               p(diff#1#) = [0]                           
                  p(div#) = [0]                           
                  p(leq#) = [0]                           
                  p(mod#) = [0]                           
                 p(mult#) = [4] x2 + [6]                  
               p(mult#1#) = [4] x2 + [6]                  
               p(mult#2#) = [4] x2 + [6]                  
               p(mult#3#) = [4] x2 + [6]                  
                p(mult3#) = [6] x2 + [6]                  
                  p(sub#) = [0]                           
                p(sub#1#) = [0]                           
                 p(sub'#) = [0]                           
               p(sub'#1#) = [0]                           
               p(sub'#2#) = [0]                           
               p(sub'#3#) = [0]                           
               p(sub'#4#) = [0]                           
               p(sub'#5#) = [0]                           
                  p(sum#) = [0]                           
                p(sum#1#) = [0]                           
                p(sum#2#) = [0]                           
                p(sum#3#) = [0]                           
                p(sum#4#) = [0]                           
                   p(c_1) = [0]                           
                   p(c_2) = [0]                           
                   p(c_3) = [0]                           
                   p(c_4) = [0]                           
                   p(c_5) = [0]                           
                   p(c_6) = [0]                           
                   p(c_7) = [0]                           
                   p(c_8) = [0]                           
                   p(c_9) = [0]                           
                  p(c_10) = [0]                           
                  p(c_11) = [1] x1 + [0]                  
                  p(c_12) = [1] x1 + [0]                  
                  p(c_13) = [1] x1 + [0]                  
                  p(c_14) = [0]                           
                  p(c_15) = [1] x1 + [0]                  
                  p(c_16) = [0]                           
                  p(c_17) = [1] x1 + [0]                  
                  p(c_18) = [2] x1 + [0]                  
                  p(c_19) = [1] x1 + [0]                  
                  p(c_20) = [0]                           
                  p(c_21) = [2] x1 + [0]                  
                  p(c_22) = [1] x1 + [0]                  
                  p(c_23) = [0]                           
                  p(c_24) = [1] x1 + [0]                  
                  p(c_25) = [2] x1 + [0]                  
                  p(c_26) = [0]                           
                  p(c_27) = [2] x1 + [1] x2 + [0]         
                  p(c_28) = [0]                           
                  p(c_29) = [2] x1 + [1] x2 + [0]         
                  p(c_30) = [4] x1 + [1] x2 + [0]         
                  p(c_31) = [1] x1 + [0]                  
                  p(c_32) = [0]                           
                  p(c_33) = [1] x1 + [0]                  
                  p(c_34) = [4] x1 + [1] x2 + [1] x4 + [0]
                  p(c_35) = [0]                           
                  p(c_36) = [2] x1 + [0]                  
                  p(c_37) = [0]                           
                  p(c_38) = [0]                           
                  p(c_39) = [1] x1 + [2] x2 + [1] x3 + [0]
                  p(c_40) = [1] x1 + [0]                  
                  p(c_41) = [4] x2 + [0]                  
                  p(c_42) = [0]                           
                  p(c_43) = [1] x1 + [0]                  
                  p(c_44) = [0]                           
                  p(c_45) = [1] x1 + [0]                  
                  p(c_46) = [2] x2 + [0]                  
                  p(c_47) = [1] x1 + [0]                  
                  p(c_48) = [0]                           
                  p(c_49) = [1] x1 + [0]                  
                  p(c_50) = [0]                           
                  p(c_51) = [0]                           
                  p(c_52) = [0]                           
                  p(c_53) = [0]                           
                  p(c_54) = [0]                           
                  p(c_55) = [4] x2 + [0]                  
                  p(c_56) = [0]                           
                  p(c_57) = [4] x1 + [0]                  
                  p(c_58) = [1] x1 + [0]                  
                  p(c_59) = [0]                           
                  p(c_60) = [1] x1 + [0]                  
                  p(c_61) = [0]                           
                  p(c_62) = [2] x1 + [0]                  
                  p(c_63) = [0]                           
                  p(c_64) = [0]                           
                  p(c_65) = [1] x1 + [2] x2 + [0]         
                  p(c_66) = [0]                           
                  p(c_67) = [0]                           
                  p(c_68) = [0]                           
                  p(c_69) = [2] x1 + [0]                  
                  p(c_70) = [1] x1 + [4] x2 + [0]         
                  p(c_71) = [0]                           
                  p(c_72) = [0]                           
                  p(c_73) = [0]                           
                  p(c_74) = [0]                           
                  p(c_75) = [0]                           
                  p(c_76) = [0]                           
                  p(c_77) = [0]                           
                  p(c_78) = [0]                           
                  p(c_79) = [0]                           
                  p(c_80) = [0]                           
                  p(c_81) = [0]                           
                  p(c_82) = [0]                           
                  p(c_83) = [0]                           
                  p(c_84) = [0]                           
                  p(c_85) = [0]                           
                  p(c_86) = [1] x1 + [0]                  
                  p(c_87) = [0]                           
                  p(c_88) = [0]                           
                  p(c_89) = [0]                           
                  p(c_90) = [1] x1 + [0]                  
                  p(c_91) = [0]                           
                  p(c_92) = [2] x1 + [0]                  
                  p(c_93) = [0]                           
                  p(c_94) = [0]                           
                  p(c_95) = [0]                           
                  p(c_96) = [0]                           
                  p(c_97) = [1] x1 + [0]                  
                  p(c_98) = [0]                           
                  p(c_99) = [0]                           
                 p(c_100) = [0]                           
                 p(c_101) = [0]                           
                 p(c_102) = [0]                           
                 p(c_103) = [0]                           
                 p(c_104) = [0]                           
                 p(c_105) = [0]                           
                 p(c_106) = [0]                           
                 p(c_107) = [4] x1 + [0]                  
                 p(c_108) = [0]                           
                 p(c_109) = [0]                           
                 p(c_110) = [0]                           
                 p(c_111) = [0]                           
                 p(c_112) = [0]                           
                 p(c_113) = [0]                           
                 p(c_114) = [2] x2 + [0]                  
                 p(c_115) = [0]                           
                 p(c_116) = [0]                           
                 p(c_117) = [0]                           
                 p(c_118) = [0]                           
                 p(c_119) = [0]                           
                 p(c_120) = [0]                           
                 p(c_121) = [0]                           
                 p(c_122) = [1] x1 + [1] x2 + [0]         
                 p(c_123) = [0]                           
                 p(c_124) = [0]                           
                 p(c_125) = [0]                           
                 p(c_126) = [0]                           
                 p(c_127) = [4] x1 + [0]                  
                 p(c_128) = [1] x1 + [0]                  
                 p(c_129) = [0]                           
                 p(c_130) = [0]                           
                 p(c_131) = [0]                           
                 p(c_132) = [0]                           
                 p(c_133) = [2] x2 + [0]                  
                 p(c_134) = [0]                           
                 p(c_135) = [1] x2 + [2]                  
                 p(c_136) = [0]                           
                 p(c_137) = [0]                           
                 p(c_138) = [0]                           
                 p(c_139) = [0]                           
                 p(c_140) = [0]                           
                 p(c_141) = [0]                           
                 p(c_142) = [0]                           
                 p(c_143) = [0]                           
                 p(c_144) = [1] x1 + [0]                  
                 p(c_145) = [0]                           
                 p(c_146) = [0]                           
                 p(c_147) = [0]                           
                 p(c_148) = [0]                           
        
        Following rules are strictly oriented:
        add'#(@b1,@b2,@r) = [4] @b1 + [5]            
                          > [4] @b1 + [4]            
                          = c_12(add'#1#(@b1,@b2,@r))
        
        
        Following rules are (at-least) weakly oriented:
                           add#(@b1,@b2) =  [4] @b1 + [6]                                   
                                         >= [4] @b1 + [5]                                   
                                         =  c_11(add'#(@b1,@b2,#abs(#0())))                 
        
              add'#1#(::(@x,@xs),@b2,@r) =  [4] @xs + [8]                                   
                                         >= [4] @xs + [5]                                   
                                         =  c_13(add'#2#(@b2,@r,@x,@xs))                    
        
           add'#2#(::(@y,@ys),@r,@x,@xs) =  [4] @xs + [5]                                   
                                         >= [4] @xs + [5]                                   
                                         =  c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))            
        
        add'#3#(tuple#2(@z,@r'),@xs,@ys) =  [4] @xs + [5]                                   
                                         >= [4] @xs + [5]                                   
                                         =  c_17(add'#(@xs,@ys,@r'))                        
        
                          mult#(@b1,@b2) =  [4] @b2 + [6]                                   
                                         >= [4] @b2 + [6]                                   
                                         =  mult#1#(@b1,@b2)                                
        
                 mult#1#(::(@x,@xs),@b2) =  [4] @b2 + [6]                                   
                                         >= [4] @b2 + [6]                                   
                                         =  mult#(@xs,@b2)                                  
        
                 mult#1#(::(@x,@xs),@b2) =  [4] @b2 + [6]                                   
                                         >= [4] @b2 + [6]                                   
                                         =  mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)    
        
                     mult#2#(@zs,@b2,@x) =  [4] @b2 + [6]                                   
                                         >= [4] @b2 + [6]                                   
                                         =  c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
        
                mult#3#(#true(),@b2,@zs) =  [4] @b2 + [6]                                   
                                         >= [4] @b2 + [6]                                   
                                         =  c_45(add#(@b2,@zs))                             
        
                     mult3#(@b1,@b2,@b3) =  [6] @b2 + [6]                                   
                                         >= [4] @b2 + [6]                                   
                                         =  mult#(@b1,@b2)                                  
        
                     mult3#(@b1,@b2,@b3) =  [6] @b2 + [6]                                   
                                         >= [4] @b2 + [6]                                   
                                         =  mult#(mult(@b1,@b2),@b2)                        
        
****** Step 14.a:3.b:1.b:1.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            mult#(@b1,@b2) -> mult#1#(@b1,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
            mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

****** Step 14.a:3.b:1.b:1.b:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            mult#(@b1,@b2) -> mult#1#(@b1,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
            mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
            mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
             -->_1 add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r)):2
          
          2:W:add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
             -->_1 add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs)):3
          
          3:W:add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
             -->_1 add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys)):4
          
          4:W:add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
             -->_1 add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r')):5
          
          5:W:add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
             -->_1 add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r)):2
          
          6:W:mult#(@b1,@b2) -> mult#1#(@b1,@b2)
             -->_1 mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x):8
             -->_1 mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2):7
          
          7:W:mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
             -->_1 mult#(@b1,@b2) -> mult#1#(@b1,@b2):6
          
          8:W:mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
             -->_1 mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs)):9
          
          9:W:mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
             -->_1 mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs)):10
          
          10:W:mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
             -->_1 add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0()))):1
          
          11:W:mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
             -->_1 mult#(@b1,@b2) -> mult#1#(@b1,@b2):6
          
          12:W:mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
             -->_1 mult#(@b1,@b2) -> mult#1#(@b1,@b2):6
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          12: mult3#(@b1,@b2,@b3) -> mult#(mult(@b1,@b2),@b2)
          11: mult3#(@b1,@b2,@b3) -> mult#(@b1,@b2)
          6: mult#(@b1,@b2) -> mult#1#(@b1,@b2)
          7: mult#1#(::(@x,@xs),@b2) -> mult#(@xs,@b2)
          8: mult#1#(::(@x,@xs),@b2) -> mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
          9: mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
          10: mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          1: add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
          2: add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          5: add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          4: add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
          3: add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
****** Step 14.a:3.b:1.b:1.b:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

** Step 14.b:1: PredecessorEstimation WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {10}
        by application of
          Pre({10}) = {9}.
        Here rules are labelled as follows:
          1: bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
          2: bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          3: bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
          4: compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          5: compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
          6: compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
          7: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          8: mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
          9: mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
          10: mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          11: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          12: sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
          13: sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          14: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          15: sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
          16: sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          17: add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
          18: add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          19: add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          20: add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
          21: add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
** Step 14.b:2: PredecessorEstimation WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {9}
        by application of
          Pre({9}) = {8}.
        Here rules are labelled as follows:
          1: bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
          2: bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          3: bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
          4: compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          5: compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
          6: compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
          7: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          8: mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
          9: mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
          10: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          11: sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
          12: sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          13: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          14: sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
          15: sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          16: add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
          17: add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          18: add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
          19: add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
          20: add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          21: mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
** Step 14.b:3: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak DPs:
            add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
            add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
            add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
            add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
            add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
            mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
            mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
             -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):2
          
          2:S:bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
             -->_1 bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))):3
          
          3:S:bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
             -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):2
          
          4:S:compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
             -->_1 compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs)):5
          
          5:S:compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
             -->_1 compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys)):6
          
          6:S:compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
             -->_1 compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2)):4
          
          7:S:mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
             -->_1 mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2)):8
          
          8:S:mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
             -->_1 mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs)):20
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):7
          
          9:S:mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):7
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):7
          
          10:S:sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):11
          
          11:S:sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
             -->_1 sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs)):12
          
          12:S:sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
             -->_1 sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys)):13
          
          13:S:sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
             -->_1 sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r')):14
          
          14:S:sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):11
          
          15:W:add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
             -->_1 add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r)):16
          
          16:W:add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
             -->_1 add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs)):17
          
          17:W:add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
             -->_1 add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys)):18
          
          18:W:add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
             -->_1 add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r')):19
          
          19:W:add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
             -->_1 add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r)):16
          
          20:W:mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
             -->_1 mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs)):21
          
          21:W:mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
             -->_1 add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0()))):15
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          20: mult#2#(@zs,@b2,@x) -> c_43(mult#3#(#equal(@x,#pos(#s(#0()))),@b2,@zs))
          21: mult#3#(#true(),@b2,@zs) -> c_45(add#(@b2,@zs))
          15: add#(@b1,@b2) -> c_11(add'#(@b1,@b2,#abs(#0())))
          16: add'#(@b1,@b2,@r) -> c_12(add'#1#(@b1,@b2,@r))
          19: add'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_17(add'#(@xs,@ys,@r'))
          18: add'#2#(::(@y,@ys),@r,@x,@xs) -> c_15(add'#3#(sum(@x,@y,@r),@xs,@ys))
          17: add'#1#(::(@x,@xs),@b2,@r) -> c_13(add'#2#(@b2,@r,@x,@xs))
** Step 14.b:4: SimplifyRHS WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/2,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
             -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):2
          
          2:S:bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
             -->_1 bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))):3
          
          3:S:bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
             -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):2
          
          4:S:compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
             -->_1 compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs)):5
          
          5:S:compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
             -->_1 compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys)):6
          
          6:S:compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
             -->_1 compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2)):4
          
          7:S:mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
             -->_1 mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2)):8
          
          8:S:mult#1#(::(@x,@xs),@b2) -> c_41(mult#2#(::(#abs(#0()),mult(@xs,@b2)),@b2,@x),mult#(@xs,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):7
          
          9:S:mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):7
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):7
          
          10:S:sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):11
          
          11:S:sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
             -->_1 sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs)):12
          
          12:S:sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
             -->_1 sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys)):13
          
          13:S:sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
             -->_1 sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r')):14
          
          14:S:sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):11
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
** Step 14.b:5: Decompose WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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:
              bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
              bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
              bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
          - Weak DPs:
              compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
              compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
              compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
              mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
              mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
              mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
              sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
              sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
              sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
              sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
              sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          - Weak TRS:
              #abs(#0()) -> #0()
              #abs(#pos(@x)) -> #pos(@x)
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #cklt(#EQ()) -> #false()
              #cklt(#GT()) -> #false()
              #cklt(#LT()) -> #true()
              #compare(#0(),#0()) -> #EQ()
              #compare(#0(),#neg(@y)) -> #GT()
              #compare(#0(),#pos(@y)) -> #LT()
              #compare(#0(),#s(@y)) -> #LT()
              #compare(#neg(@x),#0()) -> #LT()
              #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
              #compare(#neg(@x),#pos(@y)) -> #LT()
              #compare(#pos(@x),#0()) -> #GT()
              #compare(#pos(@x),#neg(@y)) -> #GT()
              #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
              #compare(#s(@x),#0()) -> #GT()
              #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
              #div(#0(),#0()) -> #divByZero()
              #div(#0(),#neg(@y)) -> #0()
              #div(#0(),#pos(@y)) -> #0()
              #div(#neg(@x),#0()) -> #divByZero()
              #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
              #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#0()) -> #divByZero()
              #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              #less(@x,@y) -> #cklt(#compare(@x,@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natdiv(#0(),#0()) -> #divByZero()
              #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #natsub(@x,#0()) -> @x
              #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #sub(@x,#0()) -> @x
              #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
              #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              -(@x,@y) -> #sub(@x,@y)
              add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
              add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
              add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
              add'#1(nil(),@b2,@r) -> nil()
              add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
              add'#2(nil(),@r,@x,@xs) -> nil()
              add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
              diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
              diff#1(#false()) -> #abs(#0())
              diff#1(#true()) -> #abs(#pos(#s(#0())))
              div(@x,@y) -> #div(@x,@y)
              mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
              mult(@b1,@b2) -> mult#1(@b1,@b2)
              mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
              mult#1(nil(),@b2) -> nil()
              mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
              mult#3(#false(),@b2,@zs) -> @zs
              mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
              sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
              sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
              sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
              sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
              sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
              sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
              sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
              sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
          - Signature:
              {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2
              ,#natdiv/2,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3
              ,bitToInt/1,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4
              ,compare#5/3,compare#6/1,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2
              ,sub#1/1,sub'/3,sub'#1/3,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1
              ,#add#/2,#and#/2,#ckgt#/1,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2
              ,#natdiv#/2,#natmult#/2,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3
              ,add'#2#/4,add'#3#/3,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3
              ,compare#3#/3,compare#4#/4,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2
              ,mult#1#/2,mult#2#/3,mult#3#/3,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2
              ,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0
              ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1
              ,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1
              ,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3
              ,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1
              ,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1
              ,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0
              ,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0
              ,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0
              ,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0
              ,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0
              ,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
              ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#
              ,add'#1#,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#
              ,compare#4#,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#
              ,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#
              ,sum#4#} and constructors {#0,#EQ,#GT,#LT,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        
        Problem (S)
          - Strict DPs:
              compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
              compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
              compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
              mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
              mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
              mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
              sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
              sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
              sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
              sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
              sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          - Weak DPs:
              bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
              bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
              bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
          - Weak TRS:
              #abs(#0()) -> #0()
              #abs(#pos(@x)) -> #pos(@x)
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #cklt(#EQ()) -> #false()
              #cklt(#GT()) -> #false()
              #cklt(#LT()) -> #true()
              #compare(#0(),#0()) -> #EQ()
              #compare(#0(),#neg(@y)) -> #GT()
              #compare(#0(),#pos(@y)) -> #LT()
              #compare(#0(),#s(@y)) -> #LT()
              #compare(#neg(@x),#0()) -> #LT()
              #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
              #compare(#neg(@x),#pos(@y)) -> #LT()
              #compare(#pos(@x),#0()) -> #GT()
              #compare(#pos(@x),#neg(@y)) -> #GT()
              #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
              #compare(#s(@x),#0()) -> #GT()
              #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
              #div(#0(),#0()) -> #divByZero()
              #div(#0(),#neg(@y)) -> #0()
              #div(#0(),#pos(@y)) -> #0()
              #div(#neg(@x),#0()) -> #divByZero()
              #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
              #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#0()) -> #divByZero()
              #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              #less(@x,@y) -> #cklt(#compare(@x,@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natdiv(#0(),#0()) -> #divByZero()
              #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #natsub(@x,#0()) -> @x
              #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #sub(@x,#0()) -> @x
              #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
              #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              -(@x,@y) -> #sub(@x,@y)
              add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
              add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
              add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
              add'#1(nil(),@b2,@r) -> nil()
              add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
              add'#2(nil(),@r,@x,@xs) -> nil()
              add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
              diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
              diff#1(#false()) -> #abs(#0())
              diff#1(#true()) -> #abs(#pos(#s(#0())))
              div(@x,@y) -> #div(@x,@y)
              mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
              mult(@b1,@b2) -> mult#1(@b1,@b2)
              mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
              mult#1(nil(),@b2) -> nil()
              mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
              mult#3(#false(),@b2,@zs) -> @zs
              mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
              sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
              sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
              sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
              sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
              sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
              sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
              sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
              sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
          - Signature:
              {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2
              ,#natdiv/2,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3
              ,bitToInt/1,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4
              ,compare#5/3,compare#6/1,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2
              ,sub#1/1,sub'/3,sub'#1/3,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1
              ,#add#/2,#and#/2,#ckgt#/1,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2
              ,#natdiv#/2,#natmult#/2,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3
              ,add'#2#/4,add'#3#/3,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3
              ,compare#3#/3,compare#4#/4,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2
              ,mult#1#/2,mult#2#/3,mult#3#/3,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2
              ,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0
              ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1
              ,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1
              ,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3
              ,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1
              ,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1
              ,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0
              ,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0
              ,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0
              ,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0
              ,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0
              ,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
              ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#
              ,add'#1#,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#
              ,compare#4#,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#
              ,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#
              ,sum#4#} and constructors {#0,#EQ,#GT,#LT,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
*** Step 14.b:5.a:1: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
        - Weak DPs:
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
             -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):2
          
          2:S:bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
             -->_1 bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))):3
          
          3:S:bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
             -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):2
          
          4:W:compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
             -->_1 compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs)):5
          
          5:W:compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
             -->_1 compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys)):6
          
          6:W:compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
             -->_1 compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2)):4
          
          7:W:mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
             -->_1 mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2)):8
          
          8:W:mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):7
          
          9:W:mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):7
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):7
          
          10:W:sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):11
          
          11:W:sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
             -->_1 sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs)):12
          
          12:W:sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
             -->_1 sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys)):13
          
          13:W:sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
             -->_1 sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r')):14
          
          14:W:sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):11
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          10: sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
          11: sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          14: sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          13: sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
          12: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          9: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          7: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          8: mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
          4: compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          6: compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
          5: compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
*** Step 14.b:5.a:2: UsableRules WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #abs(#pos(@x)) -> #pos(@x)
          #add(#pos(#s(#0())),@y) -> #succ(@y)
          #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
          #mult(#0(),#0()) -> #0()
          #mult(#0(),#neg(@y)) -> #0()
          #mult(#0(),#pos(@y)) -> #0()
          #mult(#neg(@x),#0()) -> #0()
          #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
          #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#0()) -> #0()
          #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
          #natmult(#0(),@y) -> #0()
          #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
          #succ(#0()) -> #pos(#s(#0()))
          #succ(#neg(#s(#0()))) -> #0()
          #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
          #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
          *(@x,@y) -> #mult(@x,@y)
          bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
          bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
*** Step 14.b:5.a:3: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
        - Weak TRS:
            #abs(#pos(@x)) -> #pos(@x)
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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:
          3: bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
          
        Consider the set of all dependency pairs
          1: bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
          2: bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          3: bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
        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
          {3}
        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 14.b:5.a:3.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
        - Weak TRS:
            #abs(#pos(@x)) -> #pos(@x)
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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_18) = {1},
          uargs(c_19) = {1},
          uargs(c_20) = {1}
        
        Following symbols are considered usable:
          {#abs,#mult,*,#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#,#equal#,#greater#,#less#,#mult#
          ,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#,add'#2#,add'#3#,bitToInt#
          ,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#,compare#5#,compare#6#,diff#
          ,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#
          ,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#}
        TcT has computed the following interpretation:
                    p(#0) = [0]                  
                   p(#EQ) = [0]                  
                   p(#GT) = [0]                  
                   p(#LT) = [0]                  
                  p(#abs) = [0]                  
                  p(#add) = [2] x2 + [7]         
                  p(#and) = [0]                  
                 p(#ckgt) = [0]                  
                 p(#cklt) = [0]                  
              p(#compare) = [0]                  
                  p(#div) = [0]                  
            p(#divByZero) = [0]                  
                   p(#eq) = [0]                  
                p(#equal) = [0]                  
                p(#false) = [0]                  
              p(#greater) = [0]                  
                 p(#less) = [0]                  
                 p(#mult) = [1] x1 + [2] x2 + [0]
               p(#natdiv) = [0]                  
              p(#natmult) = [4] x1 + [0]         
               p(#natsub) = [0]                  
                  p(#neg) = [2]                  
                  p(#pos) = [0]                  
                 p(#pred) = [0]                  
                    p(#s) = [0]                  
                  p(#sub) = [0]                  
                 p(#succ) = [0]                  
                 p(#true) = [0]                  
                     p(*) = [1] x1 + [2] x2 + [1]
                     p(+) = [0]                  
                     p(-) = [0]                  
                    p(::) = [1] x1 + [1] x2 + [2]
                   p(add) = [0]                  
                  p(add') = [0]                  
                p(add'#1) = [0]                  
                p(add'#2) = [0]                  
                p(add'#3) = [0]                  
              p(bitToInt) = [0]                  
             p(bitToInt') = [0]                  
           p(bitToInt'#1) = [0]                  
               p(compare) = [0]                  
             p(compare#1) = [1]                  
             p(compare#2) = [0]                  
             p(compare#3) = [0]                  
             p(compare#4) = [0]                  
             p(compare#5) = [0]                  
             p(compare#6) = [0]                  
                  p(diff) = [0]                  
                p(diff#1) = [0]                  
                   p(div) = [0]                  
                   p(leq) = [0]                  
                   p(mod) = [0]                  
                  p(mult) = [0]                  
                p(mult#1) = [0]                  
                p(mult#2) = [0]                  
                p(mult#3) = [0]                  
                 p(mult3) = [0]                  
                   p(nil) = [0]                  
                   p(sub) = [0]                  
                 p(sub#1) = [0]                  
                  p(sub') = [0]                  
                p(sub'#1) = [0]                  
                p(sub'#2) = [0]                  
                p(sub'#3) = [0]                  
                p(sub'#4) = [0]                  
                p(sub'#5) = [0]                  
                   p(sum) = [0]                  
                 p(sum#1) = [0]                  
                 p(sum#2) = [0]                  
                 p(sum#3) = [0]                  
                 p(sum#4) = [0]                  
               p(tuple#2) = [1] x1 + [1] x2 + [0]
                 p(#abs#) = [0]                  
                 p(#add#) = [0]                  
                 p(#and#) = [0]                  
                p(#ckgt#) = [0]                  
                p(#cklt#) = [0]                  
             p(#compare#) = [0]                  
                 p(#div#) = [0]                  
                  p(#eq#) = [0]                  
               p(#equal#) = [0]                  
             p(#greater#) = [0]                  
                p(#less#) = [0]                  
                p(#mult#) = [0]                  
              p(#natdiv#) = [0]                  
             p(#natmult#) = [0]                  
              p(#natsub#) = [0]                  
                p(#pred#) = [0]                  
                 p(#sub#) = [0]                  
                p(#succ#) = [0]                  
                    p(*#) = [0]                  
                    p(+#) = [0]                  
                    p(-#) = [0]                  
                  p(add#) = [0]                  
                 p(add'#) = [0]                  
               p(add'#1#) = [0]                  
               p(add'#2#) = [0]                  
               p(add'#3#) = [0]                  
             p(bitToInt#) = [4] x1 + [0]         
            p(bitToInt'#) = [4] x1 + [4] x2 + [0]
          p(bitToInt'#1#) = [4] x1 + [4] x2 + [0]
              p(compare#) = [0]                  
            p(compare#1#) = [0]                  
            p(compare#2#) = [0]                  
            p(compare#3#) = [0]                  
            p(compare#4#) = [0]                  
            p(compare#5#) = [0]                  
            p(compare#6#) = [0]                  
                 p(diff#) = [0]                  
               p(diff#1#) = [0]                  
                  p(div#) = [0]                  
                  p(leq#) = [0]                  
                  p(mod#) = [0]                  
                 p(mult#) = [0]                  
               p(mult#1#) = [0]                  
               p(mult#2#) = [0]                  
               p(mult#3#) = [0]                  
                p(mult3#) = [0]                  
                  p(sub#) = [0]                  
                p(sub#1#) = [0]                  
                 p(sub'#) = [0]                  
               p(sub'#1#) = [0]                  
               p(sub'#2#) = [0]                  
               p(sub'#3#) = [0]                  
               p(sub'#4#) = [0]                  
               p(sub'#5#) = [0]                  
                  p(sum#) = [0]                  
                p(sum#1#) = [0]                  
                p(sum#2#) = [0]                  
                p(sum#3#) = [0]                  
                p(sum#4#) = [0]                  
                   p(c_1) = [0]                  
                   p(c_2) = [0]                  
                   p(c_3) = [0]                  
                   p(c_4) = [0]                  
                   p(c_5) = [0]                  
                   p(c_6) = [0]                  
                   p(c_7) = [0]                  
                   p(c_8) = [0]                  
                   p(c_9) = [0]                  
                  p(c_10) = [0]                  
                  p(c_11) = [0]                  
                  p(c_12) = [0]                  
                  p(c_13) = [0]                  
                  p(c_14) = [0]                  
                  p(c_15) = [0]                  
                  p(c_16) = [0]                  
                  p(c_17) = [0]                  
                  p(c_18) = [1] x1 + [0]         
                  p(c_19) = [1] x1 + [0]         
                  p(c_20) = [1] x1 + [0]         
                  p(c_21) = [0]                  
                  p(c_22) = [0]                  
                  p(c_23) = [0]                  
                  p(c_24) = [0]                  
                  p(c_25) = [0]                  
                  p(c_26) = [2] x1 + [0]         
                  p(c_27) = [2] x2 + [0]         
                  p(c_28) = [0]                  
                  p(c_29) = [0]                  
                  p(c_30) = [0]                  
                  p(c_31) = [0]                  
                  p(c_32) = [1] x1 + [0]         
                  p(c_33) = [4] x1 + [0]         
                  p(c_34) = [4] x5 + [0]         
                  p(c_35) = [2]                  
                  p(c_36) = [0]                  
                  p(c_37) = [0]                  
                  p(c_38) = [0]                  
                  p(c_39) = [0]                  
                  p(c_40) = [0]                  
                  p(c_41) = [0]                  
                  p(c_42) = [0]                  
                  p(c_43) = [0]                  
                  p(c_44) = [0]                  
                  p(c_45) = [0]                  
                  p(c_46) = [0]                  
                  p(c_47) = [0]                  
                  p(c_48) = [0]                  
                  p(c_49) = [0]                  
                  p(c_50) = [0]                  
                  p(c_51) = [0]                  
                  p(c_52) = [0]                  
                  p(c_53) = [0]                  
                  p(c_54) = [0]                  
                  p(c_55) = [0]                  
                  p(c_56) = [0]                  
                  p(c_57) = [0]                  
                  p(c_58) = [0]                  
                  p(c_59) = [0]                  
                  p(c_60) = [0]                  
                  p(c_61) = [0]                  
                  p(c_62) = [0]                  
                  p(c_63) = [0]                  
                  p(c_64) = [0]                  
                  p(c_65) = [0]                  
                  p(c_66) = [0]                  
                  p(c_67) = [0]                  
                  p(c_68) = [0]                  
                  p(c_69) = [0]                  
                  p(c_70) = [0]                  
                  p(c_71) = [0]                  
                  p(c_72) = [0]                  
                  p(c_73) = [0]                  
                  p(c_74) = [0]                  
                  p(c_75) = [0]                  
                  p(c_76) = [0]                  
                  p(c_77) = [0]                  
                  p(c_78) = [0]                  
                  p(c_79) = [0]                  
                  p(c_80) = [0]                  
                  p(c_81) = [0]                  
                  p(c_82) = [0]                  
                  p(c_83) = [0]                  
                  p(c_84) = [0]                  
                  p(c_85) = [0]                  
                  p(c_86) = [0]                  
                  p(c_87) = [0]                  
                  p(c_88) = [0]                  
                  p(c_89) = [0]                  
                  p(c_90) = [0]                  
                  p(c_91) = [0]                  
                  p(c_92) = [0]                  
                  p(c_93) = [0]                  
                  p(c_94) = [0]                  
                  p(c_95) = [0]                  
                  p(c_96) = [0]                  
                  p(c_97) = [0]                  
                  p(c_98) = [0]                  
                  p(c_99) = [0]                  
                 p(c_100) = [0]                  
                 p(c_101) = [0]                  
                 p(c_102) = [0]                  
                 p(c_103) = [0]                  
                 p(c_104) = [0]                  
                 p(c_105) = [0]                  
                 p(c_106) = [0]                  
                 p(c_107) = [0]                  
                 p(c_108) = [0]                  
                 p(c_109) = [0]                  
                 p(c_110) = [0]                  
                 p(c_111) = [0]                  
                 p(c_112) = [0]                  
                 p(c_113) = [0]                  
                 p(c_114) = [0]                  
                 p(c_115) = [0]                  
                 p(c_116) = [0]                  
                 p(c_117) = [0]                  
                 p(c_118) = [0]                  
                 p(c_119) = [0]                  
                 p(c_120) = [0]                  
                 p(c_121) = [0]                  
                 p(c_122) = [0]                  
                 p(c_123) = [0]                  
                 p(c_124) = [0]                  
                 p(c_125) = [0]                  
                 p(c_126) = [0]                  
                 p(c_127) = [0]                  
                 p(c_128) = [0]                  
                 p(c_129) = [0]                  
                 p(c_130) = [0]                  
                 p(c_131) = [0]                  
                 p(c_132) = [0]                  
                 p(c_133) = [0]                  
                 p(c_134) = [0]                  
                 p(c_135) = [0]                  
                 p(c_136) = [0]                  
                 p(c_137) = [0]                  
                 p(c_138) = [0]                  
                 p(c_139) = [0]                  
                 p(c_140) = [0]                  
                 p(c_141) = [0]                  
                 p(c_142) = [0]                  
                 p(c_143) = [0]                  
                 p(c_144) = [0]                  
                 p(c_145) = [0]                  
                 p(c_146) = [0]                  
                 p(c_147) = [0]                  
                 p(c_148) = [0]                  
        
        Following rules are strictly oriented:
        bitToInt'#1#(::(@x,@xs),@n) = [4] @n + [4] @x + [4] @xs + [8]               
                                    > [4] @n + [4] @xs + [4]                        
                                    = c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
        
        
        Following rules are (at-least) weakly oriented:
                   bitToInt#(@b) =  [4] @b + [0]                             
                                 >= [4] @b + [0]                             
                                 =  c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
        
               bitToInt'#(@b,@n) =  [4] @b + [4] @n + [0]                    
                                 >= [4] @b + [4] @n + [0]                    
                                 =  c_19(bitToInt'#1#(@b,@n))                
        
                  #abs(#pos(@x)) =  [0]                                      
                                 >= [0]                                      
                                 =  #pos(@x)                                 
        
                #mult(#0(),#0()) =  [0]                                      
                                 >= [0]                                      
                                 =  #0()                                     
        
            #mult(#0(),#neg(@y)) =  [4]                                      
                                 >= [0]                                      
                                 =  #0()                                     
        
            #mult(#0(),#pos(@y)) =  [0]                                      
                                 >= [0]                                      
                                 =  #0()                                     
        
            #mult(#neg(@x),#0()) =  [2]                                      
                                 >= [0]                                      
                                 =  #0()                                     
        
        #mult(#neg(@x),#neg(@y)) =  [6]                                      
                                 >= [0]                                      
                                 =  #pos(#natmult(@x,@y))                    
        
        #mult(#neg(@x),#pos(@y)) =  [2]                                      
                                 >= [2]                                      
                                 =  #neg(#natmult(@x,@y))                    
        
            #mult(#pos(@x),#0()) =  [0]                                      
                                 >= [0]                                      
                                 =  #0()                                     
        
        #mult(#pos(@x),#neg(@y)) =  [4]                                      
                                 >= [2]                                      
                                 =  #neg(#natmult(@x,@y))                    
        
        #mult(#pos(@x),#pos(@y)) =  [0]                                      
                                 >= [0]                                      
                                 =  #pos(#natmult(@x,@y))                    
        
                        *(@x,@y) =  [1] @x + [2] @y + [1]                    
                                 >= [1] @x + [2] @y + [0]                    
                                 =  #mult(@x,@y)                             
        
**** Step 14.b:5.a:3.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
        - Weak DPs:
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
        - Weak TRS:
            #abs(#pos(@x)) -> #pos(@x)
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

**** Step 14.b:5.a:3.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
        - Weak TRS:
            #abs(#pos(@x)) -> #pos(@x)
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
             -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):2
          
          2:W:bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
             -->_1 bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))):3
          
          3:W:bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
             -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):2
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          1: bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
          2: bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          3: bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
**** Step 14.b:5.a:3.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #abs(#pos(@x)) -> #pos(@x)
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

*** Step 14.b:5.b:1: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak DPs:
            bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
            bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
            bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
             -->_1 compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs)):2
          
          2:S:compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
             -->_1 compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys)):3
          
          3:S:compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
             -->_1 compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2)):1
          
          4:S:mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
             -->_1 mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2)):5
          
          5:S:mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):4
          
          6:S:mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):4
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):4
          
          7:S:sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):8
          
          8:S:sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
             -->_1 sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs)):9
          
          9:S:sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
             -->_1 sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys)):10
          
          10:S:sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
             -->_1 sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r')):11
          
          11:S:sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):8
          
          12:W:bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
             -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):13
          
          13:W:bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
             -->_1 bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0())))))):14
          
          14:W:bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
             -->_1 bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n)):13
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          12: bitToInt#(@b) -> c_18(bitToInt'#(@b,#abs(#pos(#s(#0())))))
          13: bitToInt'#(@b,@n) -> c_19(bitToInt'#1#(@b,@n))
          14: bitToInt'#1#(::(@x,@xs),@n) -> c_20(bitToInt'#(@xs,*(@n,#pos(#s(#s(#0()))))))
*** Step 14.b:5.b:2: Decompose WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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:
              compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
              compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
              compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
          - Weak DPs:
              mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
              mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
              mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
              sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
              sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
              sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
              sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
              sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          - Weak TRS:
              #abs(#0()) -> #0()
              #abs(#pos(@x)) -> #pos(@x)
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #cklt(#EQ()) -> #false()
              #cklt(#GT()) -> #false()
              #cklt(#LT()) -> #true()
              #compare(#0(),#0()) -> #EQ()
              #compare(#0(),#neg(@y)) -> #GT()
              #compare(#0(),#pos(@y)) -> #LT()
              #compare(#0(),#s(@y)) -> #LT()
              #compare(#neg(@x),#0()) -> #LT()
              #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
              #compare(#neg(@x),#pos(@y)) -> #LT()
              #compare(#pos(@x),#0()) -> #GT()
              #compare(#pos(@x),#neg(@y)) -> #GT()
              #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
              #compare(#s(@x),#0()) -> #GT()
              #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
              #div(#0(),#0()) -> #divByZero()
              #div(#0(),#neg(@y)) -> #0()
              #div(#0(),#pos(@y)) -> #0()
              #div(#neg(@x),#0()) -> #divByZero()
              #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
              #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#0()) -> #divByZero()
              #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              #less(@x,@y) -> #cklt(#compare(@x,@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natdiv(#0(),#0()) -> #divByZero()
              #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #natsub(@x,#0()) -> @x
              #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #sub(@x,#0()) -> @x
              #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
              #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              -(@x,@y) -> #sub(@x,@y)
              add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
              add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
              add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
              add'#1(nil(),@b2,@r) -> nil()
              add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
              add'#2(nil(),@r,@x,@xs) -> nil()
              add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
              diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
              diff#1(#false()) -> #abs(#0())
              diff#1(#true()) -> #abs(#pos(#s(#0())))
              div(@x,@y) -> #div(@x,@y)
              mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
              mult(@b1,@b2) -> mult#1(@b1,@b2)
              mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
              mult#1(nil(),@b2) -> nil()
              mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
              mult#3(#false(),@b2,@zs) -> @zs
              mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
              sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
              sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
              sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
              sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
              sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
              sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
              sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
              sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
          - Signature:
              {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2
              ,#natdiv/2,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3
              ,bitToInt/1,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4
              ,compare#5/3,compare#6/1,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2
              ,sub#1/1,sub'/3,sub'#1/3,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1
              ,#add#/2,#and#/2,#ckgt#/1,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2
              ,#natdiv#/2,#natmult#/2,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3
              ,add'#2#/4,add'#3#/3,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3
              ,compare#3#/3,compare#4#/4,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2
              ,mult#1#/2,mult#2#/3,mult#3#/3,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2
              ,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0
              ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1
              ,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1
              ,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3
              ,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1
              ,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1
              ,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0
              ,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0
              ,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0
              ,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0
              ,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0
              ,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
              ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#
              ,add'#1#,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#
              ,compare#4#,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#
              ,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#
              ,sum#4#} and constructors {#0,#EQ,#GT,#LT,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        
        Problem (S)
          - Strict DPs:
              mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
              mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
              mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
              sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
              sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
              sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
              sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
              sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          - Weak DPs:
              compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
              compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
              compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
          - Weak TRS:
              #abs(#0()) -> #0()
              #abs(#pos(@x)) -> #pos(@x)
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #cklt(#EQ()) -> #false()
              #cklt(#GT()) -> #false()
              #cklt(#LT()) -> #true()
              #compare(#0(),#0()) -> #EQ()
              #compare(#0(),#neg(@y)) -> #GT()
              #compare(#0(),#pos(@y)) -> #LT()
              #compare(#0(),#s(@y)) -> #LT()
              #compare(#neg(@x),#0()) -> #LT()
              #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
              #compare(#neg(@x),#pos(@y)) -> #LT()
              #compare(#pos(@x),#0()) -> #GT()
              #compare(#pos(@x),#neg(@y)) -> #GT()
              #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
              #compare(#s(@x),#0()) -> #GT()
              #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
              #div(#0(),#0()) -> #divByZero()
              #div(#0(),#neg(@y)) -> #0()
              #div(#0(),#pos(@y)) -> #0()
              #div(#neg(@x),#0()) -> #divByZero()
              #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
              #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#0()) -> #divByZero()
              #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              #less(@x,@y) -> #cklt(#compare(@x,@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natdiv(#0(),#0()) -> #divByZero()
              #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #natsub(@x,#0()) -> @x
              #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #sub(@x,#0()) -> @x
              #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
              #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              -(@x,@y) -> #sub(@x,@y)
              add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
              add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
              add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
              add'#1(nil(),@b2,@r) -> nil()
              add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
              add'#2(nil(),@r,@x,@xs) -> nil()
              add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
              diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
              diff#1(#false()) -> #abs(#0())
              diff#1(#true()) -> #abs(#pos(#s(#0())))
              div(@x,@y) -> #div(@x,@y)
              mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
              mult(@b1,@b2) -> mult#1(@b1,@b2)
              mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
              mult#1(nil(),@b2) -> nil()
              mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
              mult#3(#false(),@b2,@zs) -> @zs
              mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
              sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
              sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
              sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
              sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
              sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
              sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
              sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
              sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
          - Signature:
              {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2
              ,#natdiv/2,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3
              ,bitToInt/1,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4
              ,compare#5/3,compare#6/1,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2
              ,sub#1/1,sub'/3,sub'#1/3,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1
              ,#add#/2,#and#/2,#ckgt#/1,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2
              ,#natdiv#/2,#natmult#/2,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3
              ,add'#2#/4,add'#3#/3,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3
              ,compare#3#/3,compare#4#/4,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2
              ,mult#1#/2,mult#2#/3,mult#3#/3,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2
              ,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0
              ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1
              ,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1
              ,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3
              ,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1
              ,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1
              ,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0
              ,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0
              ,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0
              ,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0
              ,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0
              ,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
              ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#
              ,add'#1#,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#
              ,compare#4#,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#
              ,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#
              ,sum#4#} and constructors {#0,#EQ,#GT,#LT,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
**** Step 14.b:5.b:2.a:1: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
        - Weak DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
             -->_1 compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs)):2
          
          2:S:compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
             -->_1 compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys)):3
          
          3:S:compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
             -->_1 compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2)):1
          
          4:W:mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
             -->_1 mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2)):5
          
          5:W:mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):4
          
          6:W:mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):4
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):4
          
          7:W:sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):8
          
          8:W:sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
             -->_1 sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs)):9
          
          9:W:sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
             -->_1 sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys)):10
          
          10:W:sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
             -->_1 sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r')):11
          
          11:W:sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):8
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          7: sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
          8: sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          11: sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          10: sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
          9: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          6: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          4: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          5: mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
**** Step 14.b:5.b:2.a:2: UsableRules WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
          compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
**** Step 14.b:5.b:2.a:3: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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:
          3: compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
          
        Consider the set of all dependency pairs
          1: compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          2: compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
          3: compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
        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
          {3}
        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 14.b:5.b:2.a:3.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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_22) = {1},
          uargs(c_23) = {1},
          uargs(c_25) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#
          ,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#
          ,compare#,compare#1#,compare#2#,compare#3#,compare#4#,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#
          ,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#
          ,sum#2#,sum#3#,sum#4#}
        TcT has computed the following interpretation:
                    p(#0) = [0]                                                               
                   p(#EQ) = [1]                                                               
                   p(#GT) = [1]                                                               
                   p(#LT) = [0]                                                               
                  p(#abs) = [1]                                                               
                  p(#add) = [1] x1 + [1] x2 + [1]                                             
                  p(#and) = [0]                                                               
                 p(#ckgt) = [1] x1 + [0]                                                      
                 p(#cklt) = [2] x1 + [8]                                                      
              p(#compare) = [2] x2 + [2]                                                      
                  p(#div) = [0]                                                               
            p(#divByZero) = [0]                                                               
                   p(#eq) = [1] x2 + [4]                                                      
                p(#equal) = [1]                                                               
                p(#false) = [0]                                                               
              p(#greater) = [0]                                                               
                 p(#less) = [0]                                                               
                 p(#mult) = [0]                                                               
               p(#natdiv) = [0]                                                               
              p(#natmult) = [0]                                                               
               p(#natsub) = [0]                                                               
                  p(#neg) = [1] x1 + [0]                                                      
                  p(#pos) = [1] x1 + [0]                                                      
                 p(#pred) = [0]                                                               
                    p(#s) = [0]                                                               
                  p(#sub) = [1]                                                               
                 p(#succ) = [0]                                                               
                 p(#true) = [0]                                                               
                     p(*) = [0]                                                               
                     p(+) = [0]                                                               
                     p(-) = [0]                                                               
                    p(::) = [1] x2 + [4]                                                      
                   p(add) = [0]                                                               
                  p(add') = [0]                                                               
                p(add'#1) = [0]                                                               
                p(add'#2) = [0]                                                               
                p(add'#3) = [0]                                                               
              p(bitToInt) = [0]                                                               
             p(bitToInt') = [2] x2 + [0]                                                      
           p(bitToInt'#1) = [0]                                                               
               p(compare) = [0]                                                               
             p(compare#1) = [0]                                                               
             p(compare#2) = [0]                                                               
             p(compare#3) = [0]                                                               
             p(compare#4) = [0]                                                               
             p(compare#5) = [0]                                                               
             p(compare#6) = [0]                                                               
                  p(diff) = [1] x2 + [0]                                                      
                p(diff#1) = [0]                                                               
                   p(div) = [0]                                                               
                   p(leq) = [0]                                                               
                   p(mod) = [0]                                                               
                  p(mult) = [0]                                                               
                p(mult#1) = [0]                                                               
                p(mult#2) = [0]                                                               
                p(mult#3) = [0]                                                               
                 p(mult3) = [1] x3 + [0]                                                      
                   p(nil) = [1]                                                               
                   p(sub) = [1] x1 + [4]                                                      
                 p(sub#1) = [0]                                                               
                  p(sub') = [8]                                                               
                p(sub'#1) = [0]                                                               
                p(sub'#2) = [0]                                                               
                p(sub'#3) = [0]                                                               
                p(sub'#4) = [0]                                                               
                p(sub'#5) = [0]                                                               
                   p(sum) = [0]                                                               
                 p(sum#1) = [0]                                                               
                 p(sum#2) = [0]                                                               
                 p(sum#3) = [1] x2 + [0]                                                      
                 p(sum#4) = [1] x1 + [2]                                                      
               p(tuple#2) = [1] x1 + [1] x2 + [4]                                             
                 p(#abs#) = [1] x1 + [1]                                                      
                 p(#add#) = [2] x1 + [0]                                                      
                 p(#and#) = [1] x1 + [0]                                                      
                p(#ckgt#) = [1]                                                               
                p(#cklt#) = [4]                                                               
             p(#compare#) = [0]                                                               
                 p(#div#) = [1] x1 + [1] x2 + [0]                                             
                  p(#eq#) = [2] x1 + [2] x2 + [1]                                             
               p(#equal#) = [1] x1 + [1] x2 + [1]                                             
             p(#greater#) = [1] x2 + [0]                                                      
                p(#less#) = [1] x1 + [2]                                                      
                p(#mult#) = [1] x1 + [1] x2 + [2]                                             
              p(#natdiv#) = [8] x1 + [1] x2 + [1]                                             
             p(#natmult#) = [1] x1 + [1]                                                      
              p(#natsub#) = [2] x1 + [1] x2 + [1]                                             
                p(#pred#) = [4] x1 + [0]                                                      
                 p(#sub#) = [0]                                                               
                p(#succ#) = [1] x1 + [1]                                                      
                    p(*#) = [1] x2 + [4]                                                      
                    p(+#) = [1] x1 + [1] x2 + [1]                                             
                    p(-#) = [1] x1 + [1]                                                      
                  p(add#) = [2] x2 + [8]                                                      
                 p(add'#) = [0]                                                               
               p(add'#1#) = [0]                                                               
               p(add'#2#) = [0]                                                               
               p(add'#3#) = [0]                                                               
             p(bitToInt#) = [0]                                                               
            p(bitToInt'#) = [0]                                                               
          p(bitToInt'#1#) = [0]                                                               
              p(compare#) = [4] x2 + [0]                                                      
            p(compare#1#) = [4] x2 + [0]                                                      
            p(compare#2#) = [4] x1 + [0]                                                      
            p(compare#3#) = [0]                                                               
            p(compare#4#) = [0]                                                               
            p(compare#5#) = [0]                                                               
            p(compare#6#) = [0]                                                               
                 p(diff#) = [0]                                                               
               p(diff#1#) = [0]                                                               
                  p(div#) = [0]                                                               
                  p(leq#) = [0]                                                               
                  p(mod#) = [0]                                                               
                 p(mult#) = [0]                                                               
               p(mult#1#) = [0]                                                               
               p(mult#2#) = [0]                                                               
               p(mult#3#) = [0]                                                               
                p(mult3#) = [0]                                                               
                  p(sub#) = [0]                                                               
                p(sub#1#) = [0]                                                               
                 p(sub'#) = [0]                                                               
               p(sub'#1#) = [0]                                                               
               p(sub'#2#) = [0]                                                               
               p(sub'#3#) = [0]                                                               
               p(sub'#4#) = [0]                                                               
               p(sub'#5#) = [0]                                                               
                  p(sum#) = [0]                                                               
                p(sum#1#) = [0]                                                               
                p(sum#2#) = [0]                                                               
                p(sum#3#) = [0]                                                               
                p(sum#4#) = [0]                                                               
                   p(c_1) = [0]                                                               
                   p(c_2) = [0]                                                               
                   p(c_3) = [0]                                                               
                   p(c_4) = [0]                                                               
                   p(c_5) = [0]                                                               
                   p(c_6) = [0]                                                               
                   p(c_7) = [0]                                                               
                   p(c_8) = [0]                                                               
                   p(c_9) = [0]                                                               
                  p(c_10) = [0]                                                               
                  p(c_11) = [0]                                                               
                  p(c_12) = [0]                                                               
                  p(c_13) = [0]                                                               
                  p(c_14) = [0]                                                               
                  p(c_15) = [0]                                                               
                  p(c_16) = [0]                                                               
                  p(c_17) = [0]                                                               
                  p(c_18) = [0]                                                               
                  p(c_19) = [0]                                                               
                  p(c_20) = [0]                                                               
                  p(c_21) = [0]                                                               
                  p(c_22) = [1] x1 + [0]                                                      
                  p(c_23) = [1] x1 + [0]                                                      
                  p(c_24) = [0]                                                               
                  p(c_25) = [1] x1 + [14]                                                     
                  p(c_26) = [1] x1 + [0]                                                      
                  p(c_27) = [2] x1 + [0]                                                      
                  p(c_28) = [0]                                                               
                  p(c_29) = [0]                                                               
                  p(c_30) = [2] x1 + [0]                                                      
                  p(c_31) = [1] x1 + [0]                                                      
                  p(c_32) = [1] x1 + [0]                                                      
                  p(c_33) = [0]                                                               
                  p(c_34) = [1] x1 + [1] x2 + [1] x3 + [2] x4 + [1] x5 + [1] x6 + [1] x7 + [0]
                  p(c_35) = [1] x1 + [0]                                                      
                  p(c_36) = [1] x1 + [0]                                                      
                  p(c_37) = [0]                                                               
                  p(c_38) = [1] x1 + [0]                                                      
                  p(c_39) = [4] x1 + [0]                                                      
                  p(c_40) = [0]                                                               
                  p(c_41) = [0]                                                               
                  p(c_42) = [0]                                                               
                  p(c_43) = [1] x1 + [0]                                                      
                  p(c_44) = [0]                                                               
                  p(c_45) = [0]                                                               
                  p(c_46) = [4] x2 + [0]                                                      
                  p(c_47) = [2] x1 + [0]                                                      
                  p(c_48) = [0]                                                               
                  p(c_49) = [1] x1 + [0]                                                      
                  p(c_50) = [1] x1 + [0]                                                      
                  p(c_51) = [0]                                                               
                  p(c_52) = [0]                                                               
                  p(c_53) = [0]                                                               
                  p(c_54) = [0]                                                               
                  p(c_55) = [2] x1 + [1] x2 + [0]                                             
                  p(c_56) = [0]                                                               
                  p(c_57) = [0]                                                               
                  p(c_58) = [2] x1 + [1] x2 + [0]                                             
                  p(c_59) = [0]                                                               
                  p(c_60) = [2] x2 + [0]                                                      
                  p(c_61) = [0]                                                               
                  p(c_62) = [1] x2 + [0]                                                      
                  p(c_63) = [0]                                                               
                  p(c_64) = [2] x1 + [0]                                                      
                  p(c_65) = [0]                                                               
                  p(c_66) = [0]                                                               
                  p(c_67) = [0]                                                               
                  p(c_68) = [4] x1 + [2] x2 + [0]                                             
                  p(c_69) = [1] x1 + [0]                                                      
                  p(c_70) = [4] x1 + [1] x2 + [0]                                             
                  p(c_71) = [0]                                                               
                  p(c_72) = [0]                                                               
                  p(c_73) = [0]                                                               
                  p(c_74) = [0]                                                               
                  p(c_75) = [0]                                                               
                  p(c_76) = [0]                                                               
                  p(c_77) = [0]                                                               
                  p(c_78) = [0]                                                               
                  p(c_79) = [0]                                                               
                  p(c_80) = [0]                                                               
                  p(c_81) = [0]                                                               
                  p(c_82) = [0]                                                               
                  p(c_83) = [0]                                                               
                  p(c_84) = [0]                                                               
                  p(c_85) = [0]                                                               
                  p(c_86) = [1] x1 + [0]                                                      
                  p(c_87) = [0]                                                               
                  p(c_88) = [0]                                                               
                  p(c_89) = [0]                                                               
                  p(c_90) = [0]                                                               
                  p(c_91) = [0]                                                               
                  p(c_92) = [1] x1 + [0]                                                      
                  p(c_93) = [0]                                                               
                  p(c_94) = [0]                                                               
                  p(c_95) = [0]                                                               
                  p(c_96) = [0]                                                               
                  p(c_97) = [2] x1 + [0]                                                      
                  p(c_98) = [0]                                                               
                  p(c_99) = [0]                                                               
                 p(c_100) = [8] x1 + [2]                                                      
                 p(c_101) = [0]                                                               
                 p(c_102) = [0]                                                               
                 p(c_103) = [0]                                                               
                 p(c_104) = [0]                                                               
                 p(c_105) = [0]                                                               
                 p(c_106) = [0]                                                               
                 p(c_107) = [1] x1 + [0]                                                      
                 p(c_108) = [0]                                                               
                 p(c_109) = [0]                                                               
                 p(c_110) = [0]                                                               
                 p(c_111) = [0]                                                               
                 p(c_112) = [0]                                                               
                 p(c_113) = [2] x1 + [0]                                                      
                 p(c_114) = [2] x1 + [2] x3 + [0]                                             
                 p(c_115) = [0]                                                               
                 p(c_116) = [0]                                                               
                 p(c_117) = [0]                                                               
                 p(c_118) = [0]                                                               
                 p(c_119) = [0]                                                               
                 p(c_120) = [0]                                                               
                 p(c_121) = [0]                                                               
                 p(c_122) = [1] x1 + [4] x3 + [0]                                             
                 p(c_123) = [0]                                                               
                 p(c_124) = [0]                                                               
                 p(c_125) = [0]                                                               
                 p(c_126) = [0]                                                               
                 p(c_127) = [0]                                                               
                 p(c_128) = [2] x1 + [0]                                                      
                 p(c_129) = [0]                                                               
                 p(c_130) = [1] x1 + [0]                                                      
                 p(c_131) = [1] x1 + [0]                                                      
                 p(c_132) = [0]                                                               
                 p(c_133) = [2] x1 + [0]                                                      
                 p(c_134) = [0]                                                               
                 p(c_135) = [1] x2 + [0]                                                      
                 p(c_136) = [0]                                                               
                 p(c_137) = [0]                                                               
                 p(c_138) = [0]                                                               
                 p(c_139) = [0]                                                               
                 p(c_140) = [0]                                                               
                 p(c_141) = [0]                                                               
                 p(c_142) = [0]                                                               
                 p(c_143) = [1] x1 + [0]                                                      
                 p(c_144) = [4] x1 + [0]                                                      
                 p(c_145) = [0]                                                               
                 p(c_146) = [0]                                                               
                 p(c_147) = [0]                                                               
                 p(c_148) = [1]                                                               
        
        Following rules are strictly oriented:
        compare#2#(::(@y,@ys),@x,@xs) = [4] @ys + [16]         
                                      > [4] @ys + [14]         
                                      = c_25(compare#(@xs,@ys))
        
        
        Following rules are (at-least) weakly oriented:
                 compare#(@b1,@b2) =  [4] @b2 + [0]               
                                   >= [4] @b2 + [0]               
                                   =  c_22(compare#1#(@b1,@b2))   
        
        compare#1#(::(@x,@xs),@b2) =  [4] @b2 + [0]               
                                   >= [4] @b2 + [0]               
                                   =  c_23(compare#2#(@b2,@x,@xs))
        
***** Step 14.b:5.b:2.a:3.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
        - Weak DPs:
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

***** Step 14.b:5.b:2.a:3.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
             -->_1 compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs)):2
          
          2:W:compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
             -->_1 compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys)):3
          
          3:W:compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
             -->_1 compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2)):1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          1: compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          3: compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
          2: compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
***** Step 14.b:5.b:2.a:3.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

**** Step 14.b:5.b:2.b:1: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak DPs:
            compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
            compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
            compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
             -->_1 mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2)):2
          
          2:S:mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):1
          
          3:S:mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):1
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):1
          
          4:S:sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):5
          
          5:S:sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
             -->_1 sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs)):6
          
          6:S:sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
             -->_1 sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys)):7
          
          7:S:sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
             -->_1 sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r')):8
          
          8:S:sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):5
          
          9:W:compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
             -->_1 compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs)):10
          
          10:W:compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
             -->_1 compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys)):11
          
          11:W:compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
             -->_1 compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2)):9
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          9: compare#(@b1,@b2) -> c_22(compare#1#(@b1,@b2))
          11: compare#2#(::(@y,@ys),@x,@xs) -> c_25(compare#(@xs,@ys))
          10: compare#1#(::(@x,@xs),@b2) -> c_23(compare#2#(@b2,@x,@xs))
**** Step 14.b:5.b:2.b:2: Decompose WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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:
              mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
              mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
          - Weak DPs:
              mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
              sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
              sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
              sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
              sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
              sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          - Weak TRS:
              #abs(#0()) -> #0()
              #abs(#pos(@x)) -> #pos(@x)
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #cklt(#EQ()) -> #false()
              #cklt(#GT()) -> #false()
              #cklt(#LT()) -> #true()
              #compare(#0(),#0()) -> #EQ()
              #compare(#0(),#neg(@y)) -> #GT()
              #compare(#0(),#pos(@y)) -> #LT()
              #compare(#0(),#s(@y)) -> #LT()
              #compare(#neg(@x),#0()) -> #LT()
              #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
              #compare(#neg(@x),#pos(@y)) -> #LT()
              #compare(#pos(@x),#0()) -> #GT()
              #compare(#pos(@x),#neg(@y)) -> #GT()
              #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
              #compare(#s(@x),#0()) -> #GT()
              #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
              #div(#0(),#0()) -> #divByZero()
              #div(#0(),#neg(@y)) -> #0()
              #div(#0(),#pos(@y)) -> #0()
              #div(#neg(@x),#0()) -> #divByZero()
              #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
              #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#0()) -> #divByZero()
              #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              #less(@x,@y) -> #cklt(#compare(@x,@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natdiv(#0(),#0()) -> #divByZero()
              #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #natsub(@x,#0()) -> @x
              #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #sub(@x,#0()) -> @x
              #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
              #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              -(@x,@y) -> #sub(@x,@y)
              add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
              add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
              add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
              add'#1(nil(),@b2,@r) -> nil()
              add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
              add'#2(nil(),@r,@x,@xs) -> nil()
              add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
              diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
              diff#1(#false()) -> #abs(#0())
              diff#1(#true()) -> #abs(#pos(#s(#0())))
              div(@x,@y) -> #div(@x,@y)
              mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
              mult(@b1,@b2) -> mult#1(@b1,@b2)
              mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
              mult#1(nil(),@b2) -> nil()
              mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
              mult#3(#false(),@b2,@zs) -> @zs
              mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
              sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
              sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
              sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
              sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
              sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
              sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
              sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
              sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
          - Signature:
              {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2
              ,#natdiv/2,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3
              ,bitToInt/1,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4
              ,compare#5/3,compare#6/1,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2
              ,sub#1/1,sub'/3,sub'#1/3,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1
              ,#add#/2,#and#/2,#ckgt#/1,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2
              ,#natdiv#/2,#natmult#/2,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3
              ,add'#2#/4,add'#3#/3,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3
              ,compare#3#/3,compare#4#/4,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2
              ,mult#1#/2,mult#2#/3,mult#3#/3,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2
              ,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0
              ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1
              ,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1
              ,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3
              ,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1
              ,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1
              ,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0
              ,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0
              ,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0
              ,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0
              ,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0
              ,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
              ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#
              ,add'#1#,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#
              ,compare#4#,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#
              ,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#
              ,sum#4#} and constructors {#0,#EQ,#GT,#LT,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        
        Problem (S)
          - Strict DPs:
              mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
              sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
              sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
              sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
              sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
              sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          - Weak DPs:
              mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
              mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
          - Weak TRS:
              #abs(#0()) -> #0()
              #abs(#pos(@x)) -> #pos(@x)
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #cklt(#EQ()) -> #false()
              #cklt(#GT()) -> #false()
              #cklt(#LT()) -> #true()
              #compare(#0(),#0()) -> #EQ()
              #compare(#0(),#neg(@y)) -> #GT()
              #compare(#0(),#pos(@y)) -> #LT()
              #compare(#0(),#s(@y)) -> #LT()
              #compare(#neg(@x),#0()) -> #LT()
              #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
              #compare(#neg(@x),#pos(@y)) -> #LT()
              #compare(#pos(@x),#0()) -> #GT()
              #compare(#pos(@x),#neg(@y)) -> #GT()
              #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
              #compare(#s(@x),#0()) -> #GT()
              #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
              #div(#0(),#0()) -> #divByZero()
              #div(#0(),#neg(@y)) -> #0()
              #div(#0(),#pos(@y)) -> #0()
              #div(#neg(@x),#0()) -> #divByZero()
              #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
              #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#0()) -> #divByZero()
              #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
              #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              #less(@x,@y) -> #cklt(#compare(@x,@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natdiv(#0(),#0()) -> #divByZero()
              #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #natsub(@x,#0()) -> @x
              #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #sub(@x,#0()) -> @x
              #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
              #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              -(@x,@y) -> #sub(@x,@y)
              add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
              add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
              add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
              add'#1(nil(),@b2,@r) -> nil()
              add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
              add'#2(nil(),@r,@x,@xs) -> nil()
              add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
              diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
              diff#1(#false()) -> #abs(#0())
              diff#1(#true()) -> #abs(#pos(#s(#0())))
              div(@x,@y) -> #div(@x,@y)
              mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
              mult(@b1,@b2) -> mult#1(@b1,@b2)
              mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
              mult#1(nil(),@b2) -> nil()
              mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
              mult#3(#false(),@b2,@zs) -> @zs
              mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
              sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
              sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
              sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
              sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
              sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
              sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
              sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
              sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
          - Signature:
              {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2
              ,#natdiv/2,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3
              ,bitToInt/1,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4
              ,compare#5/3,compare#6/1,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2
              ,sub#1/1,sub'/3,sub'#1/3,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1
              ,#add#/2,#and#/2,#ckgt#/1,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2
              ,#natdiv#/2,#natmult#/2,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3
              ,add'#2#/4,add'#3#/3,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3
              ,compare#3#/3,compare#4#/4,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2
              ,mult#1#/2,mult#2#/3,mult#3#/3,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2
              ,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0
              ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1
              ,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1
              ,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3
              ,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1
              ,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1
              ,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0
              ,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0
              ,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0
              ,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0
              ,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0
              ,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
              ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#
              ,add'#1#,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#
              ,compare#4#,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#
              ,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#
              ,sum#4#} and constructors {#0,#EQ,#GT,#LT,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
***** Step 14.b:5.b:2.b:2.a:1: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
        - Weak DPs:
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
             -->_1 mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2)):2
          
          2:S:mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):1
          
          3:W:mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):1
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):1
          
          4:W:sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):5
          
          5:W:sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
             -->_1 sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs)):6
          
          6:W:sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
             -->_1 sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys)):7
          
          7:W:sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
             -->_1 sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r')):8
          
          8:W:sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):5
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          4: sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
          5: sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          8: sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          7: sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
          6: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
***** Step 14.b:5.b:2.b:2.a:2: UsableRules WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
        - Weak DPs:
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #abs(#0()) -> #0()
          #abs(#pos(@x)) -> #pos(@x)
          #add(#0(),@y) -> @y
          #add(#neg(#s(#0())),@y) -> #pred(@y)
          #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
          #add(#pos(#s(#0())),@y) -> #succ(@y)
          #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
          #and(#false(),#false()) -> #false()
          #and(#false(),#true()) -> #false()
          #and(#true(),#false()) -> #false()
          #and(#true(),#true()) -> #true()
          #eq(#0(),#0()) -> #true()
          #eq(#0(),#neg(@y)) -> #false()
          #eq(#0(),#pos(@y)) -> #false()
          #eq(#0(),#s(@y)) -> #false()
          #eq(#neg(@x),#0()) -> #false()
          #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
          #eq(#neg(@x),#pos(@y)) -> #false()
          #eq(#pos(@x),#0()) -> #false()
          #eq(#pos(@x),#neg(@y)) -> #false()
          #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
          #eq(#s(@x),#0()) -> #false()
          #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
          #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #eq(::(@x_1,@x_2),nil()) -> #false()
          #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
          #eq(nil(),::(@y_1,@y_2)) -> #false()
          #eq(nil(),nil()) -> #true()
          #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
          #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #equal(@x,@y) -> #eq(@x,@y)
          #pred(#0()) -> #neg(#s(#0()))
          #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
          #pred(#pos(#s(#0()))) -> #0()
          #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
          #succ(#0()) -> #pos(#s(#0()))
          #succ(#neg(#s(#0()))) -> #0()
          #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
          #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
          +(@x,@y) -> #add(@x,@y)
          add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
          add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
          add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
          add'#1(nil(),@b2,@r) -> nil()
          add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
          add'#2(nil(),@r,@x,@xs) -> nil()
          add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
          mult(@b1,@b2) -> mult#1(@b1,@b2)
          mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
          mult#1(nil(),@b2) -> nil()
          mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
          mult#3(#false(),@b2,@zs) -> @zs
          mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
          sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
          sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
          sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
          sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
          sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
          sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
          sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
          sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
          mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
          mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
***** Step 14.b:5.b:2.b:2.a:3: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
        - Weak DPs:
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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: mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
          
        Consider the set of all dependency pairs
          1: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          2: mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
          3: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        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
          {2}
        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 14.b:5.b:2.b:2.a:3.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
        - Weak DPs:
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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_40) = {1},
          uargs(c_41) = {1},
          uargs(c_46) = {1,2}
        
        Following symbols are considered usable:
          {add,add',add'#1,add'#2,add'#3,mult,mult#1,mult#2,mult#3,#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#
          ,#eq#,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#
          ,add'#1#,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#
          ,compare#4#,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#
          ,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#}
        TcT has computed the following interpretation:
                    p(#0) = [0]                                    
                   p(#EQ) = [0]                                    
                   p(#GT) = [0]                                    
                   p(#LT) = [0]                                    
                  p(#abs) = [0]                                    
                  p(#add) = [0]                                    
                  p(#and) = [2] x1 + [4]                           
                 p(#ckgt) = [0]                                    
                 p(#cklt) = [0]                                    
              p(#compare) = [0]                                    
                  p(#div) = [0]                                    
            p(#divByZero) = [0]                                    
                   p(#eq) = [0]                                    
                p(#equal) = [0]                                    
                p(#false) = [0]                                    
              p(#greater) = [0]                                    
                 p(#less) = [0]                                    
                 p(#mult) = [0]                                    
               p(#natdiv) = [0]                                    
              p(#natmult) = [0]                                    
               p(#natsub) = [0]                                    
                  p(#neg) = [3]                                    
                  p(#pos) = [0]                                    
                 p(#pred) = [7]                                    
                    p(#s) = [1]                                    
                  p(#sub) = [0]                                    
                 p(#succ) = [5]                                    
                 p(#true) = [4]                                    
                     p(*) = [0]                                    
                     p(+) = [5] x2 + [0]                           
                     p(-) = [0]                                    
                    p(::) = [1] x2 + [1]                           
                   p(add) = [1] x2 + [0]                           
                  p(add') = [1] x2 + [0]                           
                p(add'#1) = [1] x2 + [0]                           
                p(add'#2) = [1] x1 + [0]                           
                p(add'#3) = [1] x3 + [1]                           
              p(bitToInt) = [0]                                    
             p(bitToInt') = [0]                                    
           p(bitToInt'#1) = [0]                                    
               p(compare) = [0]                                    
             p(compare#1) = [0]                                    
             p(compare#2) = [0]                                    
             p(compare#3) = [0]                                    
             p(compare#4) = [0]                                    
             p(compare#5) = [0]                                    
             p(compare#6) = [0]                                    
                  p(diff) = [0]                                    
                p(diff#1) = [0]                                    
                   p(div) = [0]                                    
                   p(leq) = [0]                                    
                   p(mod) = [0]                                    
                  p(mult) = [1] x1 + [4]                           
                p(mult#1) = [1] x1 + [4]                           
                p(mult#2) = [1] x1 + [0]                           
                p(mult#3) = [1] x3 + [0]                           
                 p(mult3) = [0]                                    
                   p(nil) = [0]                                    
                   p(sub) = [0]                                    
                 p(sub#1) = [0]                                    
                  p(sub') = [0]                                    
                p(sub'#1) = [0]                                    
                p(sub'#2) = [0]                                    
                p(sub'#3) = [0]                                    
                p(sub'#4) = [0]                                    
                p(sub'#5) = [0]                                    
                   p(sum) = [0]                                    
                 p(sum#1) = [2] x1 + [0]                           
                 p(sum#2) = [2] x1 + [0]                           
                 p(sum#3) = [2]                                    
                 p(sum#4) = [4]                                    
               p(tuple#2) = [0]                                    
                 p(#abs#) = [0]                                    
                 p(#add#) = [0]                                    
                 p(#and#) = [1] x1 + [0]                           
                p(#ckgt#) = [2]                                    
                p(#cklt#) = [0]                                    
             p(#compare#) = [0]                                    
                 p(#div#) = [0]                                    
                  p(#eq#) = [0]                                    
               p(#equal#) = [0]                                    
             p(#greater#) = [0]                                    
                p(#less#) = [0]                                    
                p(#mult#) = [0]                                    
              p(#natdiv#) = [0]                                    
             p(#natmult#) = [0]                                    
              p(#natsub#) = [0]                                    
                p(#pred#) = [0]                                    
                 p(#sub#) = [0]                                    
                p(#succ#) = [0]                                    
                    p(*#) = [0]                                    
                    p(+#) = [0]                                    
                    p(-#) = [0]                                    
                  p(add#) = [0]                                    
                 p(add'#) = [0]                                    
               p(add'#1#) = [0]                                    
               p(add'#2#) = [4] x3 + [1] x4 + [0]                  
               p(add'#3#) = [1] x1 + [1] x3 + [0]                  
             p(bitToInt#) = [1]                                    
            p(bitToInt'#) = [2] x1 + [2]                           
          p(bitToInt'#1#) = [1]                                    
              p(compare#) = [1] x1 + [0]                           
            p(compare#1#) = [4] x1 + [4]                           
            p(compare#2#) = [1] x2 + [4]                           
            p(compare#3#) = [2] x1 + [0]                           
            p(compare#4#) = [2] x2 + [0]                           
            p(compare#5#) = [1] x1 + [0]                           
            p(compare#6#) = [1] x1 + [0]                           
                 p(diff#) = [2] x2 + [1] x3 + [4]                  
               p(diff#1#) = [0]                                    
                  p(div#) = [1] x1 + [4] x2 + [0]                  
                  p(leq#) = [1] x1 + [1] x2 + [0]                  
                  p(mod#) = [4] x2 + [0]                           
                 p(mult#) = [1] x1 + [0]                           
               p(mult#1#) = [1] x1 + [0]                           
               p(mult#2#) = [2] x1 + [1] x3 + [4]                  
               p(mult#3#) = [2] x1 + [2] x2 + [0]                  
                p(mult3#) = [3] x1 + [6]                           
                  p(sub#) = [1] x2 + [0]                           
                p(sub#1#) = [2]                                    
                 p(sub'#) = [1] x1 + [4] x3 + [1]                  
               p(sub'#1#) = [2] x2 + [1]                           
               p(sub'#2#) = [2] x4 + [4]                           
               p(sub'#3#) = [1] x2 + [0]                           
               p(sub'#4#) = [1] x1 + [0]                           
               p(sub'#5#) = [2] x3 + [1]                           
                  p(sum#) = [2] x2 + [0]                           
                p(sum#1#) = [1] x1 + [0]                           
                p(sum#2#) = [1]                                    
                p(sum#3#) = [1]                                    
                p(sum#4#) = [1] x1 + [0]                           
                   p(c_1) = [4]                                    
                   p(c_2) = [0]                                    
                   p(c_3) = [0]                                    
                   p(c_4) = [1]                                    
                   p(c_5) = [0]                                    
                   p(c_6) = [1] x1 + [2] x2 + [1]                  
                   p(c_7) = [4] x2 + [0]                           
                   p(c_8) = [4] x1 + [1]                           
                   p(c_9) = [0]                                    
                  p(c_10) = [2]                                    
                  p(c_11) = [0]                                    
                  p(c_12) = [2]                                    
                  p(c_13) = [1] x1 + [0]                           
                  p(c_14) = [4]                                    
                  p(c_15) = [1] x1 + [0]                           
                  p(c_16) = [0]                                    
                  p(c_17) = [1]                                    
                  p(c_18) = [1] x1 + [1]                           
                  p(c_19) = [2] x1 + [1]                           
                  p(c_20) = [4] x1 + [0]                           
                  p(c_21) = [2] x1 + [1]                           
                  p(c_22) = [0]                                    
                  p(c_23) = [2] x1 + [2]                           
                  p(c_24) = [1]                                    
                  p(c_25) = [4] x1 + [1]                           
                  p(c_26) = [1]                                    
                  p(c_27) = [1]                                    
                  p(c_28) = [0]                                    
                  p(c_29) = [2] x1 + [1] x2 + [0]                  
                  p(c_30) = [1] x2 + [1]                           
                  p(c_31) = [1]                                    
                  p(c_32) = [0]                                    
                  p(c_33) = [4] x1 + [0]                           
                  p(c_34) = [1] x1 + [4] x4 + [4] x6 + [1] x7 + [0]
                  p(c_35) = [1]                                    
                  p(c_36) = [1]                                    
                  p(c_37) = [1]                                    
                  p(c_38) = [1]                                    
                  p(c_39) = [0]                                    
                  p(c_40) = [1] x1 + [0]                           
                  p(c_41) = [1] x1 + [0]                           
                  p(c_42) = [4]                                    
                  p(c_43) = [1] x1 + [1]                           
                  p(c_44) = [0]                                    
                  p(c_45) = [2]                                    
                  p(c_46) = [1] x1 + [2] x2 + [2]                  
                  p(c_47) = [0]                                    
                  p(c_48) = [1]                                    
                  p(c_49) = [4] x1 + [1]                           
                  p(c_50) = [0]                                    
                  p(c_51) = [0]                                    
                  p(c_52) = [0]                                    
                  p(c_53) = [1]                                    
                  p(c_54) = [0]                                    
                  p(c_55) = [0]                                    
                  p(c_56) = [2]                                    
                  p(c_57) = [0]                                    
                  p(c_58) = [1] x1 + [4] x2 + [1]                  
                  p(c_59) = [4] x2 + [0]                           
                  p(c_60) = [2] x2 + [1]                           
                  p(c_61) = [1] x1 + [4] x2 + [0]                  
                  p(c_62) = [1] x2 + [0]                           
                  p(c_63) = [4] x1 + [1] x2 + [1]                  
                  p(c_64) = [1] x1 + [4] x2 + [0]                  
                  p(c_65) = [4] x1 + [0]                           
                  p(c_66) = [0]                                    
                  p(c_67) = [1]                                    
                  p(c_68) = [1] x2 + [0]                           
                  p(c_69) = [1] x1 + [4]                           
                  p(c_70) = [0]                                    
                  p(c_71) = [0]                                    
                  p(c_72) = [2]                                    
                  p(c_73) = [0]                                    
                  p(c_74) = [1]                                    
                  p(c_75) = [0]                                    
                  p(c_76) = [2]                                    
                  p(c_77) = [1]                                    
                  p(c_78) = [0]                                    
                  p(c_79) = [0]                                    
                  p(c_80) = [0]                                    
                  p(c_81) = [4]                                    
                  p(c_82) = [2]                                    
                  p(c_83) = [0]                                    
                  p(c_84) = [1]                                    
                  p(c_85) = [0]                                    
                  p(c_86) = [1] x1 + [0]                           
                  p(c_87) = [1]                                    
                  p(c_88) = [1]                                    
                  p(c_89) = [2]                                    
                  p(c_90) = [0]                                    
                  p(c_91) = [1]                                    
                  p(c_92) = [0]                                    
                  p(c_93) = [0]                                    
                  p(c_94) = [4]                                    
                  p(c_95) = [1]                                    
                  p(c_96) = [4]                                    
                  p(c_97) = [4] x1 + [0]                           
                  p(c_98) = [1] x1 + [0]                           
                  p(c_99) = [0]                                    
                 p(c_100) = [1]                                    
                 p(c_101) = [1] x1 + [0]                           
                 p(c_102) = [0]                                    
                 p(c_103) = [0]                                    
                 p(c_104) = [4]                                    
                 p(c_105) = [1]                                    
                 p(c_106) = [0]                                    
                 p(c_107) = [2] x1 + [0]                           
                 p(c_108) = [0]                                    
                 p(c_109) = [1]                                    
                 p(c_110) = [1]                                    
                 p(c_111) = [1] x1 + [4]                           
                 p(c_112) = [1]                                    
                 p(c_113) = [1] x1 + [4]                           
                 p(c_114) = [1] x1 + [0]                           
                 p(c_115) = [0]                                    
                 p(c_116) = [0]                                    
                 p(c_117) = [1]                                    
                 p(c_118) = [2]                                    
                 p(c_119) = [1]                                    
                 p(c_120) = [0]                                    
                 p(c_121) = [1]                                    
                 p(c_122) = [1]                                    
                 p(c_123) = [0]                                    
                 p(c_124) = [0]                                    
                 p(c_125) = [1]                                    
                 p(c_126) = [0]                                    
                 p(c_127) = [1] x1 + [2]                           
                 p(c_128) = [1]                                    
                 p(c_129) = [1]                                    
                 p(c_130) = [2]                                    
                 p(c_131) = [4]                                    
                 p(c_132) = [0]                                    
                 p(c_133) = [1]                                    
                 p(c_134) = [1]                                    
                 p(c_135) = [1] x1 + [2]                           
                 p(c_136) = [1]                                    
                 p(c_137) = [1] x1 + [1]                           
                 p(c_138) = [0]                                    
                 p(c_139) = [4]                                    
                 p(c_140) = [4]                                    
                 p(c_141) = [0]                                    
                 p(c_142) = [0]                                    
                 p(c_143) = [1]                                    
                 p(c_144) = [2]                                    
                 p(c_145) = [0]                                    
                 p(c_146) = [0]                                    
                 p(c_147) = [0]                                    
                 p(c_148) = [1]                                    
        
        Following rules are strictly oriented:
        mult#1#(::(@x,@xs),@b2) = [1] @xs + [1]       
                                > [1] @xs + [0]       
                                = c_41(mult#(@xs,@b2))
        
        
        Following rules are (at-least) weakly oriented:
                         mult#(@b1,@b2) =  [1] @b1 + [0]                                
                                        >= [1] @b1 + [0]                                
                                        =  c_40(mult#1#(@b1,@b2))                       
        
                    mult3#(@b1,@b2,@b3) =  [3] @b1 + [6]                                
                                        >= [3] @b1 + [6]                                
                                        =  c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        
                           add(@b1,@b2) =  [1] @b2 + [0]                                
                                        >= [1] @b2 + [0]                                
                                        =  add'(@b1,@b2,#abs(#0()))                     
        
                       add'(@b1,@b2,@r) =  [1] @b2 + [0]                                
                                        >= [1] @b2 + [0]                                
                                        =  add'#1(@b1,@b2,@r)                           
        
              add'#1(::(@x,@xs),@b2,@r) =  [1] @b2 + [0]                                
                                        >= [1] @b2 + [0]                                
                                        =  add'#2(@b2,@r,@x,@xs)                        
        
                   add'#1(nil(),@b2,@r) =  [1] @b2 + [0]                                
                                        >= [0]                                          
                                        =  nil()                                        
        
           add'#2(::(@y,@ys),@r,@x,@xs) =  [1] @ys + [1]                                
                                        >= [1] @ys + [1]                                
                                        =  add'#3(sum(@x,@y,@r),@xs,@ys)                
        
                add'#2(nil(),@r,@x,@xs) =  [0]                                          
                                        >= [0]                                          
                                        =  nil()                                        
        
        add'#3(tuple#2(@z,@r'),@xs,@ys) =  [1] @ys + [1]                                
                                        >= [1] @ys + [1]                                
                                        =  ::(@z,add'(@xs,@ys,@r'))                     
        
                          mult(@b1,@b2) =  [1] @b1 + [4]                                
                                        >= [1] @b1 + [4]                                
                                        =  mult#1(@b1,@b2)                              
        
                 mult#1(::(@x,@xs),@b2) =  [1] @xs + [5]                                
                                        >= [1] @xs + [5]                                
                                        =  mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)  
        
                      mult#1(nil(),@b2) =  [4]                                          
                                        >= [0]                                          
                                        =  nil()                                        
        
                     mult#2(@zs,@b2,@x) =  [1] @zs + [0]                                
                                        >= [1] @zs + [0]                                
                                        =  mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)    
        
               mult#3(#false(),@b2,@zs) =  [1] @zs + [0]                                
                                        >= [1] @zs + [0]                                
                                        =  @zs                                          
        
                mult#3(#true(),@b2,@zs) =  [1] @zs + [0]                                
                                        >= [1] @zs + [0]                                
                                        =  add(@b2,@zs)                                 
        
****** Step 14.b:5.b:2.b:2.a:3.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
        - Weak DPs:
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

****** Step 14.b:5.b:2.b:2.a:3.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
             -->_1 mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2)):2
          
          2:W:mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):1
          
          3:W:mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):1
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          3: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          1: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          2: mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
****** Step 14.b:5.b:2.b:2.a:3.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            +(@x,@y) -> #add(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

***** Step 14.b:5.b:2.b:2.b:1: PredecessorEstimation WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {1}
        by application of
          Pre({1}) = {}.
        Here rules are labelled as follows:
          1: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          2: sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
          3: sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          4: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          5: sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
          6: sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          7: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          8: mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
***** Step 14.b:5.b:2.b:2.b:2: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak DPs:
            mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
            mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
            mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):2
          
          2:S:sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
             -->_1 sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs)):3
          
          3:S:sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
             -->_1 sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys)):4
          
          4:S:sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
             -->_1 sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r')):5
          
          5:S:sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):2
          
          6:W:mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
             -->_1 mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2)):7
          
          7:W:mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):6
          
          8:W:mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
             -->_2 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):6
             -->_1 mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2)):6
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          8: mult3#(@b1,@b2,@b3) -> c_46(mult#(mult(@b1,@b2),@b2),mult#(@b1,@b2))
          6: mult#(@b1,@b2) -> c_40(mult#1#(@b1,@b2))
          7: mult#1#(::(@x,@xs),@b2) -> c_41(mult#(@xs,@b2))
***** Step 14.b:5.b:2.b:2.b:3: UsableRules WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            add(@b1,@b2) -> add'(@b1,@b2,#abs(#0()))
            add'(@b1,@b2,@r) -> add'#1(@b1,@b2,@r)
            add'#1(::(@x,@xs),@b2,@r) -> add'#2(@b2,@r,@x,@xs)
            add'#1(nil(),@b2,@r) -> nil()
            add'#2(::(@y,@ys),@r,@x,@xs) -> add'#3(sum(@x,@y,@r),@xs,@ys)
            add'#2(nil(),@r,@x,@xs) -> nil()
            add'#3(tuple#2(@z,@r'),@xs,@ys) -> ::(@z,add'(@xs,@ys,@r'))
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
            mult(@b1,@b2) -> mult#1(@b1,@b2)
            mult#1(::(@x,@xs),@b2) -> mult#2(::(#abs(#0()),mult(@xs,@b2)),@b2,@x)
            mult#1(nil(),@b2) -> nil()
            mult#2(@zs,@b2,@x) -> mult#3(#equal(@x,#pos(#s(#0()))),@b2,@zs)
            mult#3(#false(),@b2,@zs) -> @zs
            mult#3(#true(),@b2,@zs) -> add(@b2,@zs)
            sum(@x,@y,@r) -> sum#1(+(+(@x,@y),@r))
            sum#1(@s) -> sum#2(#equal(@s,#0()),@s)
            sum#2(#false(),@s) -> sum#3(#equal(@s,#pos(#s(#0()))),@s)
            sum#2(#true(),@s) -> tuple#2(#abs(#0()),#abs(#0()))
            sum#3(#false(),@s) -> sum#4(#equal(@s,#pos(#s(#s(#0())))))
            sum#3(#true(),@s) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#0()))
            sum#4(#false()) -> tuple#2(#abs(#pos(#s(#0()))),#abs(#pos(#s(#0()))))
            sum#4(#true()) -> tuple#2(#abs(#0()),#abs(#pos(#s(#0()))))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #abs(#0()) -> #0()
          #abs(#pos(@x)) -> #pos(@x)
          #add(#0(),@y) -> @y
          #add(#neg(#s(#0())),@y) -> #pred(@y)
          #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
          #add(#pos(#s(#0())),@y) -> #succ(@y)
          #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
          #cklt(#EQ()) -> #false()
          #cklt(#GT()) -> #false()
          #cklt(#LT()) -> #true()
          #compare(#0(),#0()) -> #EQ()
          #compare(#0(),#neg(@y)) -> #GT()
          #compare(#0(),#pos(@y)) -> #LT()
          #compare(#0(),#s(@y)) -> #LT()
          #compare(#neg(@x),#0()) -> #LT()
          #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
          #compare(#neg(@x),#pos(@y)) -> #LT()
          #compare(#pos(@x),#0()) -> #GT()
          #compare(#pos(@x),#neg(@y)) -> #GT()
          #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
          #compare(#s(@x),#0()) -> #GT()
          #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
          #div(#0(),#0()) -> #divByZero()
          #div(#0(),#neg(@y)) -> #0()
          #div(#0(),#pos(@y)) -> #0()
          #div(#neg(@x),#0()) -> #divByZero()
          #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
          #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
          #div(#pos(@x),#0()) -> #divByZero()
          #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
          #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
          #less(@x,@y) -> #cklt(#compare(@x,@y))
          #mult(#0(),#0()) -> #0()
          #mult(#0(),#neg(@y)) -> #0()
          #mult(#0(),#pos(@y)) -> #0()
          #mult(#neg(@x),#0()) -> #0()
          #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
          #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#0()) -> #0()
          #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
          #natdiv(#0(),#0()) -> #divByZero()
          #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
          #natmult(#0(),@y) -> #0()
          #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
          #natsub(@x,#0()) -> @x
          #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
          #pred(#0()) -> #neg(#s(#0()))
          #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
          #pred(#pos(#s(#0()))) -> #0()
          #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
          #sub(@x,#0()) -> @x
          #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
          #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
          #succ(#0()) -> #pos(#s(#0()))
          #succ(#neg(#s(#0()))) -> #0()
          #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
          #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
          *(@x,@y) -> #mult(@x,@y)
          +(@x,@y) -> #add(@x,@y)
          -(@x,@y) -> #sub(@x,@y)
          diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
          diff#1(#false()) -> #abs(#0())
          diff#1(#true()) -> #abs(#pos(#s(#0())))
          div(@x,@y) -> #div(@x,@y)
          mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
          sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
          sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
          sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
***** Step 14.b:5.b:2.b:2.b:4: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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: sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
          3: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          
        Consider the set of all dependency pairs
          1: sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
          2: sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          3: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
          4: sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
          5: sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        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,3}
        These cover all (indirect) predecessors of dependency pairs
          {1,2,3,4,5}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
****** Step 14.b:5.b:2.b:2.b:4.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + 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_47) = {1},
          uargs(c_49) = {1},
          uargs(c_50) = {1},
          uargs(c_52) = {1},
          uargs(c_54) = {1}
        
        Following symbols are considered usable:
          {diff,#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#,#equal#,#greater#,#less#,#mult#,#natdiv#
          ,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#,add'#2#,add'#3#,bitToInt#,bitToInt'#
          ,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#,compare#5#,compare#6#,diff#,diff#1#,div#
          ,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#
          ,sum#,sum#1#,sum#2#,sum#3#,sum#4#}
        TcT has computed the following interpretation:
                    p(#0) = [0]                           
                   p(#EQ) = [0]                           
                   p(#GT) = [0]                           
                   p(#LT) = [0]                           
                  p(#abs) = [0]                           
                  p(#add) = [4] x1 + [0]                  
                  p(#and) = [0]                           
                 p(#ckgt) = [0]                           
                 p(#cklt) = [3]                           
              p(#compare) = [0]                           
                  p(#div) = [3]                           
            p(#divByZero) = [0]                           
                   p(#eq) = [0]                           
                p(#equal) = [0]                           
                p(#false) = [0]                           
              p(#greater) = [0]                           
                 p(#less) = [1]                           
                 p(#mult) = [1] x1 + [6]                  
               p(#natdiv) = [6] x1 + [3]                  
              p(#natmult) = [7]                           
               p(#natsub) = [1] x2 + [0]                  
                  p(#neg) = [0]                           
                  p(#pos) = [2]                           
                 p(#pred) = [1] x1 + [0]                  
                    p(#s) = [0]                           
                  p(#sub) = [7]                           
                 p(#succ) = [0]                           
                 p(#true) = [0]                           
                     p(*) = [1] x1 + [0]                  
                     p(+) = [0]                           
                     p(-) = [1] x2 + [0]                  
                    p(::) = [1] x2 + [1]                  
                   p(add) = [0]                           
                  p(add') = [0]                           
                p(add'#1) = [0]                           
                p(add'#2) = [0]                           
                p(add'#3) = [0]                           
              p(bitToInt) = [0]                           
             p(bitToInt') = [0]                           
           p(bitToInt'#1) = [0]                           
               p(compare) = [0]                           
             p(compare#1) = [0]                           
             p(compare#2) = [0]                           
             p(compare#3) = [0]                           
             p(compare#4) = [0]                           
             p(compare#5) = [0]                           
             p(compare#6) = [0]                           
                  p(diff) = [2]                           
                p(diff#1) = [4] x1 + [1]                  
                   p(div) = [0]                           
                   p(leq) = [0]                           
                   p(mod) = [0]                           
                  p(mult) = [0]                           
                p(mult#1) = [0]                           
                p(mult#2) = [0]                           
                p(mult#3) = [0]                           
                 p(mult3) = [0]                           
                   p(nil) = [0]                           
                   p(sub) = [0]                           
                 p(sub#1) = [0]                           
                  p(sub') = [0]                           
                p(sub'#1) = [0]                           
                p(sub'#2) = [0]                           
                p(sub'#3) = [0]                           
                p(sub'#4) = [0]                           
                p(sub'#5) = [0]                           
                   p(sum) = [0]                           
                 p(sum#1) = [0]                           
                 p(sum#2) = [0]                           
                 p(sum#3) = [0]                           
                 p(sum#4) = [0]                           
               p(tuple#2) = [0]                           
                 p(#abs#) = [0]                           
                 p(#add#) = [0]                           
                 p(#and#) = [0]                           
                p(#ckgt#) = [0]                           
                p(#cklt#) = [0]                           
             p(#compare#) = [0]                           
                 p(#div#) = [0]                           
                  p(#eq#) = [0]                           
               p(#equal#) = [0]                           
             p(#greater#) = [0]                           
                p(#less#) = [0]                           
                p(#mult#) = [0]                           
              p(#natdiv#) = [0]                           
             p(#natmult#) = [0]                           
              p(#natsub#) = [0]                           
                p(#pred#) = [0]                           
                 p(#sub#) = [0]                           
                p(#succ#) = [0]                           
                    p(*#) = [0]                           
                    p(+#) = [0]                           
                    p(-#) = [0]                           
                  p(add#) = [0]                           
                 p(add'#) = [0]                           
               p(add'#1#) = [0]                           
               p(add'#2#) = [0]                           
               p(add'#3#) = [0]                           
             p(bitToInt#) = [0]                           
            p(bitToInt'#) = [0]                           
          p(bitToInt'#1#) = [0]                           
              p(compare#) = [0]                           
            p(compare#1#) = [0]                           
            p(compare#2#) = [0]                           
            p(compare#3#) = [0]                           
            p(compare#4#) = [0]                           
            p(compare#5#) = [0]                           
            p(compare#6#) = [0]                           
                 p(diff#) = [0]                           
               p(diff#1#) = [0]                           
                  p(div#) = [0]                           
                  p(leq#) = [0]                           
                  p(mod#) = [0]                           
                 p(mult#) = [0]                           
               p(mult#1#) = [0]                           
               p(mult#2#) = [0]                           
               p(mult#3#) = [0]                           
                p(mult3#) = [0]                           
                  p(sub#) = [4] x1 + [7]                  
                p(sub#1#) = [0]                           
                 p(sub'#) = [4] x1 + [0]                  
               p(sub'#1#) = [4] x1 + [0]                  
               p(sub'#2#) = [4] x4 + [2]                  
               p(sub'#3#) = [1] x1 + [4] x2 + [0]         
               p(sub'#4#) = [0]                           
               p(sub'#5#) = [0]                           
                  p(sum#) = [0]                           
                p(sum#1#) = [0]                           
                p(sum#2#) = [0]                           
                p(sum#3#) = [0]                           
                p(sum#4#) = [0]                           
                   p(c_1) = [0]                           
                   p(c_2) = [0]                           
                   p(c_3) = [0]                           
                   p(c_4) = [0]                           
                   p(c_5) = [0]                           
                   p(c_6) = [0]                           
                   p(c_7) = [0]                           
                   p(c_8) = [0]                           
                   p(c_9) = [0]                           
                  p(c_10) = [0]                           
                  p(c_11) = [0]                           
                  p(c_12) = [0]                           
                  p(c_13) = [0]                           
                  p(c_14) = [0]                           
                  p(c_15) = [0]                           
                  p(c_16) = [0]                           
                  p(c_17) = [0]                           
                  p(c_18) = [0]                           
                  p(c_19) = [0]                           
                  p(c_20) = [0]                           
                  p(c_21) = [0]                           
                  p(c_22) = [0]                           
                  p(c_23) = [0]                           
                  p(c_24) = [0]                           
                  p(c_25) = [0]                           
                  p(c_26) = [0]                           
                  p(c_27) = [0]                           
                  p(c_28) = [0]                           
                  p(c_29) = [0]                           
                  p(c_30) = [0]                           
                  p(c_31) = [0]                           
                  p(c_32) = [0]                           
                  p(c_33) = [0]                           
                  p(c_34) = [0]                           
                  p(c_35) = [0]                           
                  p(c_36) = [0]                           
                  p(c_37) = [0]                           
                  p(c_38) = [0]                           
                  p(c_39) = [0]                           
                  p(c_40) = [0]                           
                  p(c_41) = [0]                           
                  p(c_42) = [0]                           
                  p(c_43) = [0]                           
                  p(c_44) = [0]                           
                  p(c_45) = [0]                           
                  p(c_46) = [0]                           
                  p(c_47) = [1] x1 + [0]                  
                  p(c_48) = [0]                           
                  p(c_49) = [1] x1 + [0]                  
                  p(c_50) = [1] x1 + [0]                  
                  p(c_51) = [0]                           
                  p(c_52) = [1] x1 + [0]                  
                  p(c_53) = [0]                           
                  p(c_54) = [1] x1 + [0]                  
                  p(c_55) = [1] x1 + [0]                  
                  p(c_56) = [0]                           
                  p(c_57) = [0]                           
                  p(c_58) = [2] x1 + [2] x2 + [2] x3 + [0]
                  p(c_59) = [1] x1 + [0]                  
                  p(c_60) = [1] x2 + [0]                  
                  p(c_61) = [1] x1 + [0]                  
                  p(c_62) = [1] x1 + [2] x2 + [0]         
                  p(c_63) = [0]                           
                  p(c_64) = [0]                           
                  p(c_65) = [4] x1 + [1] x2 + [0]         
                  p(c_66) = [0]                           
                  p(c_67) = [1] x1 + [0]                  
                  p(c_68) = [1] x2 + [0]                  
                  p(c_69) = [0]                           
                  p(c_70) = [1] x1 + [0]                  
                  p(c_71) = [0]                           
                  p(c_72) = [0]                           
                  p(c_73) = [0]                           
                  p(c_74) = [0]                           
                  p(c_75) = [0]                           
                  p(c_76) = [0]                           
                  p(c_77) = [0]                           
                  p(c_78) = [0]                           
                  p(c_79) = [0]                           
                  p(c_80) = [0]                           
                  p(c_81) = [0]                           
                  p(c_82) = [0]                           
                  p(c_83) = [0]                           
                  p(c_84) = [0]                           
                  p(c_85) = [0]                           
                  p(c_86) = [0]                           
                  p(c_87) = [0]                           
                  p(c_88) = [0]                           
                  p(c_89) = [0]                           
                  p(c_90) = [1] x1 + [0]                  
                  p(c_91) = [0]                           
                  p(c_92) = [0]                           
                  p(c_93) = [0]                           
                  p(c_94) = [0]                           
                  p(c_95) = [0]                           
                  p(c_96) = [0]                           
                  p(c_97) = [0]                           
                  p(c_98) = [0]                           
                  p(c_99) = [0]                           
                 p(c_100) = [4] x1 + [0]                  
                 p(c_101) = [2] x1 + [0]                  
                 p(c_102) = [0]                           
                 p(c_103) = [0]                           
                 p(c_104) = [0]                           
                 p(c_105) = [0]                           
                 p(c_106) = [0]                           
                 p(c_107) = [0]                           
                 p(c_108) = [0]                           
                 p(c_109) = [0]                           
                 p(c_110) = [0]                           
                 p(c_111) = [1] x1 + [0]                  
                 p(c_112) = [0]                           
                 p(c_113) = [0]                           
                 p(c_114) = [2] x1 + [2] x2 + [4] x3 + [0]
                 p(c_115) = [0]                           
                 p(c_116) = [0]                           
                 p(c_117) = [0]                           
                 p(c_118) = [0]                           
                 p(c_119) = [0]                           
                 p(c_120) = [0]                           
                 p(c_121) = [0]                           
                 p(c_122) = [0]                           
                 p(c_123) = [0]                           
                 p(c_124) = [0]                           
                 p(c_125) = [0]                           
                 p(c_126) = [0]                           
                 p(c_127) = [0]                           
                 p(c_128) = [0]                           
                 p(c_129) = [0]                           
                 p(c_130) = [1] x1 + [0]                  
                 p(c_131) = [2] x1 + [0]                  
                 p(c_132) = [0]                           
                 p(c_133) = [1] x1 + [0]                  
                 p(c_134) = [0]                           
                 p(c_135) = [2] x1 + [0]                  
                 p(c_136) = [0]                           
                 p(c_137) = [1] x1 + [0]                  
                 p(c_138) = [0]                           
                 p(c_139) = [0]                           
                 p(c_140) = [0]                           
                 p(c_141) = [0]                           
                 p(c_142) = [0]                           
                 p(c_143) = [2] x1 + [0]                  
                 p(c_144) = [1] x1 + [0]                  
                 p(c_145) = [0]                           
                 p(c_146) = [0]                           
                 p(c_147) = [0]                           
                 p(c_148) = [0]                           
        
        Following rules are strictly oriented:
                     sub#(@b1,@b2) = [4] @b1 + [7]                  
                                   > [4] @b1 + [0]                  
                                   = c_47(sub'#(@b1,@b2,#abs(#0())))
        
        sub'#1#(::(@x,@xs),@b2,@r) = [4] @xs + [4]                  
                                   > [4] @xs + [2]                  
                                   = c_50(sub'#2#(@b2,@r,@x,@xs))   
        
        
        Following rules are (at-least) weakly oriented:
                       sub'#(@b1,@b2,@r) =  [4] @b1 + [0]                                                                     
                                         >= [4] @b1 + [0]                                                                     
                                         =  c_49(sub'#1#(@b1,@b2,@r))                                                         
        
           sub'#2#(::(@y,@ys),@r,@x,@xs) =  [4] @xs + [2]                                                                     
                                         >= [4] @xs + [2]                                                                     
                                         =  c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))                                             
        
        sub'#3#(tuple#2(@z,@r'),@xs,@ys) =  [4] @xs + [0]                                                                     
                                         >= [4] @xs + [0]                                                                     
                                         =  c_54(sub'#(@xs,@ys,@r'))                                                          
        
                          diff(@x,@y,@r) =  [2]                                                                               
                                         >= [0]                                                                               
                                         =  tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
        
****** Step 14.b:5.b:2.b:2.b:4.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak DPs:
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

****** Step 14.b:5.b:2.b:2.b:4.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
            sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
            sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
            sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
            sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):2
          
          2:W:sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
             -->_1 sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs)):3
          
          3:W:sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
             -->_1 sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys)):4
          
          4:W:sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
             -->_1 sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r')):5
          
          5:W:sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
             -->_1 sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r)):2
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          1: sub#(@b1,@b2) -> c_47(sub'#(@b1,@b2,#abs(#0())))
          2: sub'#(@b1,@b2,@r) -> c_49(sub'#1#(@b1,@b2,@r))
          5: sub'#3#(tuple#2(@z,@r'),@xs,@ys) -> c_54(sub'#(@xs,@ys,@r'))
          4: sub'#2#(::(@y,@ys),@r,@x,@xs) -> c_52(sub'#3#(diff(@x,@y,@r),@xs,@ys))
          3: sub'#1#(::(@x,@xs),@b2,@r) -> c_50(sub'#2#(@b2,@r,@x,@xs))
****** Step 14.b:5.b:2.b:2.b:4.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#pos(@x)) -> #pos(@x)
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #cklt(#EQ()) -> #false()
            #cklt(#GT()) -> #false()
            #cklt(#LT()) -> #true()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #div(#0(),#0()) -> #divByZero()
            #div(#0(),#neg(@y)) -> #0()
            #div(#0(),#pos(@y)) -> #0()
            #div(#neg(@x),#0()) -> #divByZero()
            #div(#neg(@x),#neg(@y)) -> #pos(#natdiv(@x,@y))
            #div(#neg(@x),#pos(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#0()) -> #divByZero()
            #div(#pos(@x),#neg(@y)) -> #neg(#natdiv(@x,@y))
            #div(#pos(@x),#pos(@y)) -> #pos(#natdiv(@x,@y))
            #less(@x,@y) -> #cklt(#compare(@x,@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natdiv(#0(),#0()) -> #divByZero()
            #natdiv(#s(@x),#s(@y)) -> #s(#natdiv(#natsub(@x,@y),#s(@y)))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #natsub(@x,#0()) -> @x
            #natsub(#s(@x),#s(@y)) -> #natsub(@x,@y)
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #sub(@x,#0()) -> @x
            #sub(@x,#neg(@y)) -> #add(@x,#pos(@y))
            #sub(@x,#pos(@y)) -> #add(@x,#neg(@y))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            -(@x,@y) -> #sub(@x,@y)
            diff(@x,@y,@r) -> tuple#2(mod(+(+(@x,@y),@r),#pos(#s(#s(#0())))),diff#1(#less(-(-(@x,@y),@r),#0())))
            diff#1(#false()) -> #abs(#0())
            diff#1(#true()) -> #abs(#pos(#s(#0())))
            div(@x,@y) -> #div(@x,@y)
            mod(@x,@y) -> -(@x,*(@x,div(@x,@y)))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#cklt/1,#compare/2,#div/2,#eq/2,#equal/2,#greater/2,#less/2,#mult/2,#natdiv/2
            ,#natmult/2,#natsub/2,#pred/1,#sub/2,#succ/1,*/2,+/2,-/2,add/2,add'/3,add'#1/3,add'#2/4,add'#3/3,bitToInt/1
            ,bitToInt'/2,bitToInt'#1/2,compare/2,compare#1/2,compare#2/3,compare#3/3,compare#4/4,compare#5/3,compare#6/1
            ,diff/3,diff#1/1,div/2,leq/2,mod/2,mult/2,mult#1/2,mult#2/3,mult#3/3,mult3/3,sub/2,sub#1/1,sub'/3,sub'#1/3
            ,sub'#2/4,sub'#3/3,sub'#4/2,sub'#5/3,sum/3,sum#1/1,sum#2/2,sum#3/2,sum#4/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1
            ,#cklt#/1,#compare#/2,#div#/2,#eq#/2,#equal#/2,#greater#/2,#less#/2,#mult#/2,#natdiv#/2,#natmult#/2
            ,#natsub#/2,#pred#/1,#sub#/2,#succ#/1,*#/2,+#/2,-#/2,add#/2,add'#/3,add'#1#/3,add'#2#/4,add'#3#/3
            ,bitToInt#/1,bitToInt'#/2,bitToInt'#1#/2,compare#/2,compare#1#/2,compare#2#/3,compare#3#/3,compare#4#/4
            ,compare#5#/3,compare#6#/1,diff#/3,diff#1#/1,div#/2,leq#/2,mod#/2,mult#/2,mult#1#/2,mult#2#/3,mult#3#/3
            ,mult3#/3,sub#/2,sub#1#/1,sub'#/3,sub'#1#/3,sub'#2#/4,sub'#3#/3,sub'#4#/2,sub'#5#/3,sum#/3,sum#1#/1,sum#2#/2
            ,sum#3#/2,sum#4#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#divByZero/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0
            ,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/2,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1,c_14/0,c_15/1
            ,c_16/0,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/2,c_28/0,c_29/2,c_30/2
            ,c_31/1,c_32/1,c_33/1,c_34/7,c_35/1,c_36/1,c_37/1,c_38/1,c_39/3,c_40/1,c_41/1,c_42/0,c_43/1,c_44/0,c_45/1
            ,c_46/2,c_47/1,c_48/0,c_49/1,c_50/1,c_51/0,c_52/1,c_53/0,c_54/1,c_55/2,c_56/0,c_57/1,c_58/3,c_59/2,c_60/2
            ,c_61/2,c_62/2,c_63/2,c_64/2,c_65/2,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0
            ,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/1,c_87/0,c_88/0,c_89/0,c_90/1
            ,c_91/0,c_92/1,c_93/0,c_94/0,c_95/0,c_96/0,c_97/1,c_98/1,c_99/0,c_100/1,c_101/1,c_102/0,c_103/0,c_104/0
            ,c_105/0,c_106/0,c_107/1,c_108/0,c_109/0,c_110/0,c_111/1,c_112/0,c_113/1,c_114/3,c_115/0,c_116/0,c_117/0
            ,c_118/0,c_119/0,c_120/0,c_121/0,c_122/3,c_123/0,c_124/0,c_125/0,c_126/0,c_127/1,c_128/1,c_129/0,c_130/1
            ,c_131/1,c_132/0,c_133/2,c_134/0,c_135/2,c_136/0,c_137/1,c_138/0,c_139/0,c_140/0,c_141/0,c_142/0,c_143/1
            ,c_144/1,c_145/0,c_146/0,c_147/0,c_148/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#cklt#,#compare#,#div#,#eq#
            ,#equal#,#greater#,#less#,#mult#,#natdiv#,#natmult#,#natsub#,#pred#,#sub#,#succ#,*#,+#,-#,add#,add'#,add'#1#
            ,add'#2#,add'#3#,bitToInt#,bitToInt'#,bitToInt'#1#,compare#,compare#1#,compare#2#,compare#3#,compare#4#
            ,compare#5#,compare#6#,diff#,diff#1#,div#,leq#,mod#,mult#,mult#1#,mult#2#,mult#3#,mult3#,sub#,sub#1#,sub'#
            ,sub'#1#,sub'#2#,sub'#3#,sub'#4#,sub'#5#,sum#,sum#1#,sum#2#,sum#3#,sum#4#} and constructors {#0,#EQ,#GT,#LT
            ,#divByZero,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

WORST_CASE(?,O(n^2))