(0) Obligation:

Runtime Complexity TRS:
The TRS R consists of the following rules:

O(0) → 0
+(0, x) → x
+(x, 0) → x
+(O(x), O(y)) → O(+(x, y))
+(O(x), I(y)) → I(+(x, y))
+(I(x), O(y)) → I(+(x, y))
+(I(x), I(y)) → O(+(+(x, y), I(0)))
+(x, +(y, z)) → +(+(x, y), z)
-(x, 0) → x
-(0, x) → 0
-(O(x), O(y)) → O(-(x, y))
-(O(x), I(y)) → I(-(-(x, y), I(1)))
-(I(x), O(y)) → I(-(x, y))
-(I(x), I(y)) → O(-(x, y))
not(true) → false
not(false) → true
and(x, true) → x
and(x, false) → false
if(true, x, y) → x
if(false, x, y) → y
ge(O(x), O(y)) → ge(x, y)
ge(O(x), I(y)) → not(ge(y, x))
ge(I(x), O(y)) → ge(x, y)
ge(I(x), I(y)) → ge(x, y)
ge(x, 0) → true
ge(0, O(x)) → ge(0, x)
ge(0, I(x)) → false
Log'(0) → 0
Log'(I(x)) → +(Log'(x), I(0))
Log'(O(x)) → if(ge(x, I(0)), +(Log'(x), I(0)), 0)
Log(x) → -(Log'(x), I(0))
Val(L(x)) → x
Val(N(x, l, r)) → x
Min(L(x)) → x
Min(N(x, l, r)) → Min(l)
Max(L(x)) → x
Max(N(x, l, r)) → Max(r)
BS(L(x)) → true
BS(N(x, l, r)) → and(and(ge(x, Max(l)), ge(Min(r), x)), and(BS(l), BS(r)))
Size(L(x)) → I(0)
Size(N(x, l, r)) → +(+(Size(l), Size(r)), I(1))
WB(L(x)) → true
WB(N(x, l, r)) → and(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r)))

Rewrite Strategy: INNERMOST

(1) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID) transformation)

Converted CpxTRS to CDT

(2) Obligation:

Complexity Dependency Tuples Problem
Rules:

O(0) → 0
+(0, z0) → z0
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
-(z0, 0) → z0
-(0, z0) → 0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
not(true) → false
not(false) → true
and(z0, true) → z0
and(z0, false) → false
if(true, z0, z1) → z0
if(false, z0, z1) → z1
ge(O(z0), O(z1)) → ge(z0, z1)
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(z0, 0) → true
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
Log'(0) → 0
Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log(z0) → -(Log'(z0), I(0))
Val(L(z0)) → z0
Val(N(z0, l, r)) → z0
Min(L(z0)) → z0
Min(N(z0, l, r)) → Min(l)
Max(L(z0)) → z0
Max(N(z0, l, r)) → Max(r)
BS(L(z0)) → true
BS(N(z0, l, r)) → and(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r)))
Size(L(z0)) → I(0)
Size(N(z0, l, r)) → +(+(Size(l), Size(r)), I(1))
WB(L(z0)) → true
WB(N(z0, l, r)) → and(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r)))
Tuples:

+'(O(z0), O(z1)) → c3(O'(+(z0, z1)), +'(z0, z1))
+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(I(z0), I(z1)) → c6(O'(+(+(z0, z1), I(0))), +'(+(z0, z1), I(0)), +'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), O(z1)) → c10(O'(-(z0, z1)), -'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
-'(I(z0), I(z1)) → c13(O'(-(z0, z1)), -'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(O(z0), I(z1)) → c21(NOT(ge(z1, z0)), GE(z1, z0))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG'(O(z0)) → c29(IF(ge(z0, I(0)), +(Log'(z0), I(0)), 0), GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
MIN(N(z0, l, r)) → c34(MIN(l))
MAX(N(z0, l, r)) → c36(MAX(r))
BS'(N(z0, l, r)) → c38(AND(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r))), AND(ge(z0, Max(l)), ge(Min(r), z0)), GE(z0, Max(l)), MAX(l), GE(Min(r), z0), MIN(r), AND(BS(l), BS(r)), BS'(l), BS'(r))
SIZE(N(z0, l, r)) → c40(+'(+(Size(l), Size(r)), I(1)), +'(Size(l), Size(r)), SIZE(l), SIZE(r))
WB'(N(z0, l, r)) → c42(AND(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r))), IF(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), GE(Size(l), Size(r)), SIZE(l), SIZE(r), GE(I(0), -(Size(l), Size(r))), -'(Size(l), Size(r)), SIZE(l), SIZE(r), GE(I(0), -(Size(r), Size(l))), -'(Size(r), Size(l)), SIZE(r), SIZE(l), AND(WB(l), WB(r)), WB'(l), WB'(r))
S tuples:

+'(O(z0), O(z1)) → c3(O'(+(z0, z1)), +'(z0, z1))
+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(I(z0), I(z1)) → c6(O'(+(+(z0, z1), I(0))), +'(+(z0, z1), I(0)), +'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), O(z1)) → c10(O'(-(z0, z1)), -'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
-'(I(z0), I(z1)) → c13(O'(-(z0, z1)), -'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(O(z0), I(z1)) → c21(NOT(ge(z1, z0)), GE(z1, z0))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG'(O(z0)) → c29(IF(ge(z0, I(0)), +(Log'(z0), I(0)), 0), GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
MIN(N(z0, l, r)) → c34(MIN(l))
MAX(N(z0, l, r)) → c36(MAX(r))
BS'(N(z0, l, r)) → c38(AND(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r))), AND(ge(z0, Max(l)), ge(Min(r), z0)), GE(z0, Max(l)), MAX(l), GE(Min(r), z0), MIN(r), AND(BS(l), BS(r)), BS'(l), BS'(r))
SIZE(N(z0, l, r)) → c40(+'(+(Size(l), Size(r)), I(1)), +'(Size(l), Size(r)), SIZE(l), SIZE(r))
WB'(N(z0, l, r)) → c42(AND(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r))), IF(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), GE(Size(l), Size(r)), SIZE(l), SIZE(r), GE(I(0), -(Size(l), Size(r))), -'(Size(l), Size(r)), SIZE(l), SIZE(r), GE(I(0), -(Size(r), Size(l))), -'(Size(r), Size(l)), SIZE(r), SIZE(l), AND(WB(l), WB(r)), WB'(l), WB'(r))
K tuples:none
Defined Rule Symbols:

O, +, -, not, and, if, ge, Log', Log, Val, Min, Max, BS, Size, WB

Defined Pair Symbols:

+', -', GE, LOG', LOG, MIN, MAX, BS', SIZE, WB'

Compound Symbols:

c3, c4, c5, c6, c7, c10, c11, c12, c13, c20, c21, c22, c23, c25, c28, c29, c30, c34, c36, c38, c40, c42

(3) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 5 trailing nodes:

SIZE(N(z0, l, r)) → c40(+'(+(Size(l), Size(r)), I(1)), +'(Size(l), Size(r)), SIZE(l), SIZE(r))
WB'(N(z0, l, r)) → c42(AND(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r))), IF(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), GE(Size(l), Size(r)), SIZE(l), SIZE(r), GE(I(0), -(Size(l), Size(r))), -'(Size(l), Size(r)), SIZE(l), SIZE(r), GE(I(0), -(Size(r), Size(l))), -'(Size(r), Size(l)), SIZE(r), SIZE(l), AND(WB(l), WB(r)), WB'(l), WB'(r))
MAX(N(z0, l, r)) → c36(MAX(r))
BS'(N(z0, l, r)) → c38(AND(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r))), AND(ge(z0, Max(l)), ge(Min(r), z0)), GE(z0, Max(l)), MAX(l), GE(Min(r), z0), MIN(r), AND(BS(l), BS(r)), BS'(l), BS'(r))
MIN(N(z0, l, r)) → c34(MIN(l))

(4) Obligation:

Complexity Dependency Tuples Problem
Rules:

O(0) → 0
+(0, z0) → z0
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
-(z0, 0) → z0
-(0, z0) → 0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
not(true) → false
not(false) → true
and(z0, true) → z0
and(z0, false) → false
if(true, z0, z1) → z0
if(false, z0, z1) → z1
ge(O(z0), O(z1)) → ge(z0, z1)
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(z0, 0) → true
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
Log'(0) → 0
Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log(z0) → -(Log'(z0), I(0))
Val(L(z0)) → z0
Val(N(z0, l, r)) → z0
Min(L(z0)) → z0
Min(N(z0, l, r)) → Min(l)
Max(L(z0)) → z0
Max(N(z0, l, r)) → Max(r)
BS(L(z0)) → true
BS(N(z0, l, r)) → and(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r)))
Size(L(z0)) → I(0)
Size(N(z0, l, r)) → +(+(Size(l), Size(r)), I(1))
WB(L(z0)) → true
WB(N(z0, l, r)) → and(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r)))
Tuples:

+'(O(z0), O(z1)) → c3(O'(+(z0, z1)), +'(z0, z1))
+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(I(z0), I(z1)) → c6(O'(+(+(z0, z1), I(0))), +'(+(z0, z1), I(0)), +'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), O(z1)) → c10(O'(-(z0, z1)), -'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
-'(I(z0), I(z1)) → c13(O'(-(z0, z1)), -'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(O(z0), I(z1)) → c21(NOT(ge(z1, z0)), GE(z1, z0))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG'(O(z0)) → c29(IF(ge(z0, I(0)), +(Log'(z0), I(0)), 0), GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
S tuples:

+'(O(z0), O(z1)) → c3(O'(+(z0, z1)), +'(z0, z1))
+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(I(z0), I(z1)) → c6(O'(+(+(z0, z1), I(0))), +'(+(z0, z1), I(0)), +'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), O(z1)) → c10(O'(-(z0, z1)), -'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
-'(I(z0), I(z1)) → c13(O'(-(z0, z1)), -'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(O(z0), I(z1)) → c21(NOT(ge(z1, z0)), GE(z1, z0))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG'(O(z0)) → c29(IF(ge(z0, I(0)), +(Log'(z0), I(0)), 0), GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
K tuples:none
Defined Rule Symbols:

O, +, -, not, and, if, ge, Log', Log, Val, Min, Max, BS, Size, WB

Defined Pair Symbols:

+', -', GE, LOG', LOG

Compound Symbols:

c3, c4, c5, c6, c7, c10, c11, c12, c13, c20, c21, c22, c23, c25, c28, c29, c30

(5) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 6 trailing tuple parts

(6) Obligation:

Complexity Dependency Tuples Problem
Rules:

O(0) → 0
+(0, z0) → z0
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
-(z0, 0) → z0
-(0, z0) → 0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
not(true) → false
not(false) → true
and(z0, true) → z0
and(z0, false) → false
if(true, z0, z1) → z0
if(false, z0, z1) → z1
ge(O(z0), O(z1)) → ge(z0, z1)
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(z0, 0) → true
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
Log'(0) → 0
Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log(z0) → -(Log'(z0), I(0))
Val(L(z0)) → z0
Val(N(z0, l, r)) → z0
Min(L(z0)) → z0
Min(N(z0, l, r)) → Min(l)
Max(L(z0)) → z0
Max(N(z0, l, r)) → Max(r)
BS(L(z0)) → true
BS(N(z0, l, r)) → and(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r)))
Size(L(z0)) → I(0)
Size(N(z0, l, r)) → +(+(Size(l), Size(r)), I(1))
WB(L(z0)) → true
WB(N(z0, l, r)) → and(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r)))
Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
S tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
K tuples:none
Defined Rule Symbols:

O, +, -, not, and, if, ge, Log', Log, Val, Min, Max, BS, Size, WB

Defined Pair Symbols:

+', -', GE, LOG', LOG

Compound Symbols:

c4, c5, c7, c11, c12, c20, c22, c23, c25, c28, c30, c3, c6, c10, c13, c21, c29

(7) CdtKnowledgeProof (EQUIVALENT transformation)

The following tuples could be moved from S to K by knowledge propagation:

LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))

(8) Obligation:

Complexity Dependency Tuples Problem
Rules:

O(0) → 0
+(0, z0) → z0
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
-(z0, 0) → z0
-(0, z0) → 0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
not(true) → false
not(false) → true
and(z0, true) → z0
and(z0, false) → false
if(true, z0, z1) → z0
if(false, z0, z1) → z1
ge(O(z0), O(z1)) → ge(z0, z1)
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(z0, 0) → true
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
Log'(0) → 0
Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log(z0) → -(Log'(z0), I(0))
Val(L(z0)) → z0
Val(N(z0, l, r)) → z0
Min(L(z0)) → z0
Min(N(z0, l, r)) → Min(l)
Max(L(z0)) → z0
Max(N(z0, l, r)) → Max(r)
BS(L(z0)) → true
BS(N(z0, l, r)) → and(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r)))
Size(L(z0)) → I(0)
Size(N(z0, l, r)) → +(+(Size(l), Size(r)), I(1))
WB(L(z0)) → true
WB(N(z0, l, r)) → and(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r)))
Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
S tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
K tuples:

LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
Defined Rule Symbols:

O, +, -, not, and, if, ge, Log', Log, Val, Min, Max, BS, Size, WB

Defined Pair Symbols:

+', -', GE, LOG', LOG

Compound Symbols:

c4, c5, c7, c11, c12, c20, c22, c23, c25, c28, c30, c3, c6, c10, c13, c21, c29

(9) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
We considered the (Usable) Rules:

Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log'(0) → 0
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(O(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
ge(z0, 0) → true
+(0, z0) → z0
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
if(true, z0, z1) → z0
if(false, z0, z1) → z1
O(0) → 0
not(true) → false
not(false) → true
-(z0, 0) → z0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
-(0, z0) → 0
And the Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(+(x1, x2)) = [3]x1 + [5]x2   
POL(+'(x1, x2)) = 0   
POL(-(x1, x2)) = [3] + [2]x1 + [5]x2   
POL(-'(x1, x2)) = 0   
POL(0) = 0   
POL(1) = [2]   
POL(GE(x1, x2)) = [2]x1 + [2]x2   
POL(I(x1)) = x1   
POL(LOG(x1)) = [1] + [5]x1   
POL(LOG'(x1)) = [1] + [4]x1   
POL(Log'(x1)) = [2]   
POL(O(x1)) = [2] + [4]x1   
POL(c10(x1)) = x1   
POL(c11(x1, x2)) = x1 + x2   
POL(c12(x1)) = x1   
POL(c13(x1)) = x1   
POL(c20(x1)) = x1   
POL(c21(x1)) = x1   
POL(c22(x1)) = x1   
POL(c23(x1)) = x1   
POL(c25(x1)) = x1   
POL(c28(x1, x2)) = x1 + x2   
POL(c29(x1, x2, x3)) = x1 + x2 + x3   
POL(c3(x1)) = x1   
POL(c30(x1, x2)) = x1 + x2   
POL(c4(x1)) = x1   
POL(c5(x1)) = x1   
POL(c6(x1, x2)) = x1 + x2   
POL(c7(x1, x2)) = x1 + x2   
POL(false) = [2]   
POL(ge(x1, x2)) = [2] + [5]x1 + [2]x2   
POL(if(x1, x2, x3)) = [3] + [5]x1 + [3]x2 + [5]x3   
POL(not(x1)) = [5] + [2]x1   
POL(true) = [1]   

(10) Obligation:

Complexity Dependency Tuples Problem
Rules:

O(0) → 0
+(0, z0) → z0
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
-(z0, 0) → z0
-(0, z0) → 0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
not(true) → false
not(false) → true
and(z0, true) → z0
and(z0, false) → false
if(true, z0, z1) → z0
if(false, z0, z1) → z1
ge(O(z0), O(z1)) → ge(z0, z1)
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(z0, 0) → true
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
Log'(0) → 0
Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log(z0) → -(Log'(z0), I(0))
Val(L(z0)) → z0
Val(N(z0, l, r)) → z0
Min(L(z0)) → z0
Min(N(z0, l, r)) → Min(l)
Max(L(z0)) → z0
Max(N(z0, l, r)) → Max(r)
BS(L(z0)) → true
BS(N(z0, l, r)) → and(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r)))
Size(L(z0)) → I(0)
Size(N(z0, l, r)) → +(+(Size(l), Size(r)), I(1))
WB(L(z0)) → true
WB(N(z0, l, r)) → and(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r)))
Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
S tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
K tuples:

LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
Defined Rule Symbols:

O, +, -, not, and, if, ge, Log', Log, Val, Min, Max, BS, Size, WB

Defined Pair Symbols:

+', -', GE, LOG', LOG

Compound Symbols:

c4, c5, c7, c11, c12, c20, c22, c23, c25, c28, c30, c3, c6, c10, c13, c21, c29

(11) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

-'(I(z0), O(z1)) → c12(-'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
We considered the (Usable) Rules:

Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log'(0) → 0
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(O(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
ge(z0, 0) → true
+(0, z0) → z0
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
if(true, z0, z1) → z0
if(false, z0, z1) → z1
O(0) → 0
not(true) → false
not(false) → true
-(z0, 0) → z0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
-(0, z0) → 0
And the Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(+(x1, x2)) = [4]   
POL(+'(x1, x2)) = 0   
POL(-(x1, x2)) = [2]x1   
POL(-'(x1, x2)) = x2   
POL(0) = 0   
POL(1) = 0   
POL(GE(x1, x2)) = 0   
POL(I(x1)) = x1   
POL(LOG(x1)) = [1] + [4]x1   
POL(LOG'(x1)) = [1]   
POL(Log'(x1)) = [4] + [4]x1   
POL(O(x1)) = [2] + x1   
POL(c10(x1)) = x1   
POL(c11(x1, x2)) = x1 + x2   
POL(c12(x1)) = x1   
POL(c13(x1)) = x1   
POL(c20(x1)) = x1   
POL(c21(x1)) = x1   
POL(c22(x1)) = x1   
POL(c23(x1)) = x1   
POL(c25(x1)) = x1   
POL(c28(x1, x2)) = x1 + x2   
POL(c29(x1, x2, x3)) = x1 + x2 + x3   
POL(c3(x1)) = x1   
POL(c30(x1, x2)) = x1 + x2   
POL(c4(x1)) = x1   
POL(c5(x1)) = x1   
POL(c6(x1, x2)) = x1 + x2   
POL(c7(x1, x2)) = x1 + x2   
POL(false) = [2]   
POL(ge(x1, x2)) = [5] + [4]x1   
POL(if(x1, x2, x3)) = [3] + [3]x1 + [3]x2 + [2]x3   
POL(not(x1)) = [2]   
POL(true) = [3]   

(12) Obligation:

Complexity Dependency Tuples Problem
Rules:

O(0) → 0
+(0, z0) → z0
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
-(z0, 0) → z0
-(0, z0) → 0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
not(true) → false
not(false) → true
and(z0, true) → z0
and(z0, false) → false
if(true, z0, z1) → z0
if(false, z0, z1) → z1
ge(O(z0), O(z1)) → ge(z0, z1)
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(z0, 0) → true
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
Log'(0) → 0
Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log(z0) → -(Log'(z0), I(0))
Val(L(z0)) → z0
Val(N(z0, l, r)) → z0
Min(L(z0)) → z0
Min(N(z0, l, r)) → Min(l)
Max(L(z0)) → z0
Max(N(z0, l, r)) → Max(r)
BS(L(z0)) → true
BS(N(z0, l, r)) → and(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r)))
Size(L(z0)) → I(0)
Size(N(z0, l, r)) → +(+(Size(l), Size(r)), I(1))
WB(L(z0)) → true
WB(N(z0, l, r)) → and(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r)))
Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
S tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
K tuples:

LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
Defined Rule Symbols:

O, +, -, not, and, if, ge, Log', Log, Val, Min, Max, BS, Size, WB

Defined Pair Symbols:

+', -', GE, LOG', LOG

Compound Symbols:

c4, c5, c7, c11, c12, c20, c22, c23, c25, c28, c30, c3, c6, c10, c13, c21, c29

(13) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
We considered the (Usable) Rules:

Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log'(0) → 0
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(O(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
ge(z0, 0) → true
+(0, z0) → z0
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
if(true, z0, z1) → z0
if(false, z0, z1) → z1
O(0) → 0
not(true) → false
not(false) → true
-(z0, 0) → z0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
-(0, z0) → 0
And the Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(+(x1, x2)) = [1] + x1 + [5]x2   
POL(+'(x1, x2)) = [2]x2   
POL(-(x1, x2)) = [5] + [3]x2   
POL(-'(x1, x2)) = 0   
POL(0) = 0   
POL(1) = [3]   
POL(GE(x1, x2)) = 0   
POL(I(x1)) = x1   
POL(LOG(x1)) = [5] + [5]x1   
POL(LOG'(x1)) = [1]   
POL(Log'(x1)) = [2] + [3]x1   
POL(O(x1)) = [5] + [2]x1   
POL(c10(x1)) = x1   
POL(c11(x1, x2)) = x1 + x2   
POL(c12(x1)) = x1   
POL(c13(x1)) = x1   
POL(c20(x1)) = x1   
POL(c21(x1)) = x1   
POL(c22(x1)) = x1   
POL(c23(x1)) = x1   
POL(c25(x1)) = x1   
POL(c28(x1, x2)) = x1 + x2   
POL(c29(x1, x2, x3)) = x1 + x2 + x3   
POL(c3(x1)) = x1   
POL(c30(x1, x2)) = x1 + x2   
POL(c4(x1)) = x1   
POL(c5(x1)) = x1   
POL(c6(x1, x2)) = x1 + x2   
POL(c7(x1, x2)) = x1 + x2   
POL(false) = [2]   
POL(ge(x1, x2)) = [2] + [4]x2   
POL(if(x1, x2, x3)) = [3] + [2]x1 + [5]x2 + [4]x3   
POL(not(x1)) = [5] + [2]x1   
POL(true) = [3]   

(14) Obligation:

Complexity Dependency Tuples Problem
Rules:

O(0) → 0
+(0, z0) → z0
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
-(z0, 0) → z0
-(0, z0) → 0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
not(true) → false
not(false) → true
and(z0, true) → z0
and(z0, false) → false
if(true, z0, z1) → z0
if(false, z0, z1) → z1
ge(O(z0), O(z1)) → ge(z0, z1)
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(z0, 0) → true
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
Log'(0) → 0
Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log(z0) → -(Log'(z0), I(0))
Val(L(z0)) → z0
Val(N(z0, l, r)) → z0
Min(L(z0)) → z0
Min(N(z0, l, r)) → Min(l)
Max(L(z0)) → z0
Max(N(z0, l, r)) → Max(r)
BS(L(z0)) → true
BS(N(z0, l, r)) → and(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r)))
Size(L(z0)) → I(0)
Size(N(z0, l, r)) → +(+(Size(l), Size(r)), I(1))
WB(L(z0)) → true
WB(N(z0, l, r)) → and(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r)))
Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
S tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
K tuples:

LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
Defined Rule Symbols:

O, +, -, not, and, if, ge, Log', Log, Val, Min, Max, BS, Size, WB

Defined Pair Symbols:

+', -', GE, LOG', LOG

Compound Symbols:

c4, c5, c7, c11, c12, c20, c22, c23, c25, c28, c30, c3, c6, c10, c13, c21, c29

(15) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
We considered the (Usable) Rules:

Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log'(0) → 0
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(O(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
ge(z0, 0) → true
+(0, z0) → z0
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
if(true, z0, z1) → z0
if(false, z0, z1) → z1
O(0) → 0
not(true) → false
not(false) → true
-(z0, 0) → z0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
-(0, z0) → 0
And the Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(+(x1, x2)) = 0   
POL(+'(x1, x2)) = 0   
POL(-(x1, x2)) = [4] + [3]x1   
POL(-'(x1, x2)) = 0   
POL(0) = 0   
POL(1) = [2]   
POL(GE(x1, x2)) = 0   
POL(I(x1)) = [1] + x1   
POL(LOG(x1)) = [3] + [3]x1   
POL(LOG'(x1)) = x1   
POL(Log'(x1)) = [5] + [4]x1   
POL(O(x1)) = [4]x1   
POL(c10(x1)) = x1   
POL(c11(x1, x2)) = x1 + x2   
POL(c12(x1)) = x1   
POL(c13(x1)) = x1   
POL(c20(x1)) = x1   
POL(c21(x1)) = x1   
POL(c22(x1)) = x1   
POL(c23(x1)) = x1   
POL(c25(x1)) = x1   
POL(c28(x1, x2)) = x1 + x2   
POL(c29(x1, x2, x3)) = x1 + x2 + x3   
POL(c3(x1)) = x1   
POL(c30(x1, x2)) = x1 + x2   
POL(c4(x1)) = x1   
POL(c5(x1)) = x1   
POL(c6(x1, x2)) = x1 + x2   
POL(c7(x1, x2)) = x1 + x2   
POL(false) = [4]   
POL(ge(x1, x2)) = [5] + [2]x1 + [2]x2   
POL(if(x1, x2, x3)) = [4] + [2]x2 + [3]x3   
POL(not(x1)) = [2] + [2]x1   
POL(true) = [2]   

(16) Obligation:

Complexity Dependency Tuples Problem
Rules:

O(0) → 0
+(0, z0) → z0
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
-(z0, 0) → z0
-(0, z0) → 0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
not(true) → false
not(false) → true
and(z0, true) → z0
and(z0, false) → false
if(true, z0, z1) → z0
if(false, z0, z1) → z1
ge(O(z0), O(z1)) → ge(z0, z1)
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(z0, 0) → true
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
Log'(0) → 0
Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log(z0) → -(Log'(z0), I(0))
Val(L(z0)) → z0
Val(N(z0, l, r)) → z0
Min(L(z0)) → z0
Min(N(z0, l, r)) → Min(l)
Max(L(z0)) → z0
Max(N(z0, l, r)) → Max(r)
BS(L(z0)) → true
BS(N(z0, l, r)) → and(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r)))
Size(L(z0)) → I(0)
Size(N(z0, l, r)) → +(+(Size(l), Size(r)), I(1))
WB(L(z0)) → true
WB(N(z0, l, r)) → and(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r)))
Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
S tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
K tuples:

LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
Defined Rule Symbols:

O, +, -, not, and, if, ge, Log', Log, Val, Min, Max, BS, Size, WB

Defined Pair Symbols:

+', -', GE, LOG', LOG

Compound Symbols:

c4, c5, c7, c11, c12, c20, c22, c23, c25, c28, c30, c3, c6, c10, c13, c21, c29

(17) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

-'(I(z0), I(z1)) → c13(-'(z0, z1))
We considered the (Usable) Rules:

Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log'(0) → 0
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(O(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
ge(z0, 0) → true
+(0, z0) → z0
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
if(true, z0, z1) → z0
if(false, z0, z1) → z1
O(0) → 0
not(true) → false
not(false) → true
-(z0, 0) → z0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
-(0, z0) → 0
And the Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(+(x1, x2)) = [1] + [2]x2   
POL(+'(x1, x2)) = 0   
POL(-(x1, x2)) = [3] + [3]x1 + [3]x2   
POL(-'(x1, x2)) = x2   
POL(0) = [2]   
POL(1) = 0   
POL(GE(x1, x2)) = 0   
POL(I(x1)) = [1] + x1   
POL(LOG(x1)) = [5] + [5]x1   
POL(LOG'(x1)) = [2]   
POL(Log'(x1)) = [1] + [4]x1   
POL(O(x1)) = [1] + [4]x1   
POL(c10(x1)) = x1   
POL(c11(x1, x2)) = x1 + x2   
POL(c12(x1)) = x1   
POL(c13(x1)) = x1   
POL(c20(x1)) = x1   
POL(c21(x1)) = x1   
POL(c22(x1)) = x1   
POL(c23(x1)) = x1   
POL(c25(x1)) = x1   
POL(c28(x1, x2)) = x1 + x2   
POL(c29(x1, x2, x3)) = x1 + x2 + x3   
POL(c3(x1)) = x1   
POL(c30(x1, x2)) = x1 + x2   
POL(c4(x1)) = x1   
POL(c5(x1)) = x1   
POL(c6(x1, x2)) = x1 + x2   
POL(c7(x1, x2)) = x1 + x2   
POL(false) = 0   
POL(ge(x1, x2)) = [3] + [3]x1   
POL(if(x1, x2, x3)) = [3] + [2]x1 + [3]x2 + [2]x3   
POL(not(x1)) = [3] + [2]x1   
POL(true) = [2]   

(18) Obligation:

Complexity Dependency Tuples Problem
Rules:

O(0) → 0
+(0, z0) → z0
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
-(z0, 0) → z0
-(0, z0) → 0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
not(true) → false
not(false) → true
and(z0, true) → z0
and(z0, false) → false
if(true, z0, z1) → z0
if(false, z0, z1) → z1
ge(O(z0), O(z1)) → ge(z0, z1)
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(z0, 0) → true
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
Log'(0) → 0
Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log(z0) → -(Log'(z0), I(0))
Val(L(z0)) → z0
Val(N(z0, l, r)) → z0
Min(L(z0)) → z0
Min(N(z0, l, r)) → Min(l)
Max(L(z0)) → z0
Max(N(z0, l, r)) → Max(r)
BS(L(z0)) → true
BS(N(z0, l, r)) → and(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r)))
Size(L(z0)) → I(0)
Size(N(z0, l, r)) → +(+(Size(l), Size(r)), I(1))
WB(L(z0)) → true
WB(N(z0, l, r)) → and(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r)))
Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
S tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
K tuples:

LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
Defined Rule Symbols:

O, +, -, not, and, if, ge, Log', Log, Val, Min, Max, BS, Size, WB

Defined Pair Symbols:

+', -', GE, LOG', LOG

Compound Symbols:

c4, c5, c7, c11, c12, c20, c22, c23, c25, c28, c30, c3, c6, c10, c13, c21, c29

(19) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

+'(O(z0), I(z1)) → c4(+'(z0, z1))
We considered the (Usable) Rules:

Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log'(0) → 0
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(O(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
ge(z0, 0) → true
+(0, z0) → z0
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
if(true, z0, z1) → z0
if(false, z0, z1) → z1
O(0) → 0
not(true) → false
not(false) → true
-(z0, 0) → z0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
-(0, z0) → 0
And the Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(+(x1, x2)) = [3] + [4]x1 + x2   
POL(+'(x1, x2)) = [4]x2   
POL(-(x1, x2)) = x1 + [2]x2   
POL(-'(x1, x2)) = 0   
POL(0) = 0   
POL(1) = [2]   
POL(GE(x1, x2)) = [4]   
POL(I(x1)) = [4] + x1   
POL(LOG(x1)) = [1] + [5]x1   
POL(LOG'(x1)) = [5]x1   
POL(Log'(x1)) = [2]   
POL(O(x1)) = [4] + [4]x1   
POL(c10(x1)) = x1   
POL(c11(x1, x2)) = x1 + x2   
POL(c12(x1)) = x1   
POL(c13(x1)) = x1   
POL(c20(x1)) = x1   
POL(c21(x1)) = x1   
POL(c22(x1)) = x1   
POL(c23(x1)) = x1   
POL(c25(x1)) = x1   
POL(c28(x1, x2)) = x1 + x2   
POL(c29(x1, x2, x3)) = x1 + x2 + x3   
POL(c3(x1)) = x1   
POL(c30(x1, x2)) = x1 + x2   
POL(c4(x1)) = x1   
POL(c5(x1)) = x1   
POL(c6(x1, x2)) = x1 + x2   
POL(c7(x1, x2)) = x1 + x2   
POL(false) = [2]   
POL(ge(x1, x2)) = [2]   
POL(if(x1, x2, x3)) = [4] + [5]x1 + [2]x2 + [3]x3   
POL(not(x1)) = [2] + [2]x1   
POL(true) = [2]   

(20) Obligation:

Complexity Dependency Tuples Problem
Rules:

O(0) → 0
+(0, z0) → z0
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
-(z0, 0) → z0
-(0, z0) → 0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
not(true) → false
not(false) → true
and(z0, true) → z0
and(z0, false) → false
if(true, z0, z1) → z0
if(false, z0, z1) → z1
ge(O(z0), O(z1)) → ge(z0, z1)
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(z0, 0) → true
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
Log'(0) → 0
Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log(z0) → -(Log'(z0), I(0))
Val(L(z0)) → z0
Val(N(z0, l, r)) → z0
Min(L(z0)) → z0
Min(N(z0, l, r)) → Min(l)
Max(L(z0)) → z0
Max(N(z0, l, r)) → Max(r)
BS(L(z0)) → true
BS(N(z0, l, r)) → and(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r)))
Size(L(z0)) → I(0)
Size(N(z0, l, r)) → +(+(Size(l), Size(r)), I(1))
WB(L(z0)) → true
WB(N(z0, l, r)) → and(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r)))
Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
S tuples:

-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
K tuples:

LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
+'(O(z0), I(z1)) → c4(+'(z0, z1))
Defined Rule Symbols:

O, +, -, not, and, if, ge, Log', Log, Val, Min, Max, BS, Size, WB

Defined Pair Symbols:

+', -', GE, LOG', LOG

Compound Symbols:

c4, c5, c7, c11, c12, c20, c22, c23, c25, c28, c30, c3, c6, c10, c13, c21, c29

(21) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

GE(I(z0), I(z1)) → c23(GE(z0, z1))
We considered the (Usable) Rules:

Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log'(0) → 0
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(O(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
ge(z0, 0) → true
+(0, z0) → z0
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
if(true, z0, z1) → z0
if(false, z0, z1) → z1
O(0) → 0
not(true) → false
not(false) → true
-(z0, 0) → z0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
-(0, z0) → 0
And the Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(+(x1, x2)) = [3] + x2   
POL(+'(x1, x2)) = 0   
POL(-(x1, x2)) = [5]x2   
POL(-'(x1, x2)) = 0   
POL(0) = 0   
POL(1) = [5]   
POL(GE(x1, x2)) = [2] + [4]x1 + [4]x2   
POL(I(x1)) = [2] + x1   
POL(LOG(x1)) = [2] + [4]x1   
POL(LOG'(x1)) = [2] + [3]x1   
POL(Log'(x1)) = [5]   
POL(O(x1)) = [4] + [4]x1   
POL(c10(x1)) = x1   
POL(c11(x1, x2)) = x1 + x2   
POL(c12(x1)) = x1   
POL(c13(x1)) = x1   
POL(c20(x1)) = x1   
POL(c21(x1)) = x1   
POL(c22(x1)) = x1   
POL(c23(x1)) = x1   
POL(c25(x1)) = x1   
POL(c28(x1, x2)) = x1 + x2   
POL(c29(x1, x2, x3)) = x1 + x2 + x3   
POL(c3(x1)) = x1   
POL(c30(x1, x2)) = x1 + x2   
POL(c4(x1)) = x1   
POL(c5(x1)) = x1   
POL(c6(x1, x2)) = x1 + x2   
POL(c7(x1, x2)) = x1 + x2   
POL(false) = [4]   
POL(ge(x1, x2)) = [2] + [2]x1 + [2]x2   
POL(if(x1, x2, x3)) = [1] + [2]x1 + [2]x2 + [2]x3   
POL(not(x1)) = [2] + [4]x1   
POL(true) = [3]   

(22) Obligation:

Complexity Dependency Tuples Problem
Rules:

O(0) → 0
+(0, z0) → z0
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
-(z0, 0) → z0
-(0, z0) → 0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
not(true) → false
not(false) → true
and(z0, true) → z0
and(z0, false) → false
if(true, z0, z1) → z0
if(false, z0, z1) → z1
ge(O(z0), O(z1)) → ge(z0, z1)
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(z0, 0) → true
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
Log'(0) → 0
Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log(z0) → -(Log'(z0), I(0))
Val(L(z0)) → z0
Val(N(z0, l, r)) → z0
Min(L(z0)) → z0
Min(N(z0, l, r)) → Min(l)
Max(L(z0)) → z0
Max(N(z0, l, r)) → Max(r)
BS(L(z0)) → true
BS(N(z0, l, r)) → and(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r)))
Size(L(z0)) → I(0)
Size(N(z0, l, r)) → +(+(Size(l), Size(r)), I(1))
WB(L(z0)) → true
WB(N(z0, l, r)) → and(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r)))
Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
S tuples:

-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
K tuples:

LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
+'(O(z0), I(z1)) → c4(+'(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
Defined Rule Symbols:

O, +, -, not, and, if, ge, Log', Log, Val, Min, Max, BS, Size, WB

Defined Pair Symbols:

+', -', GE, LOG', LOG

Compound Symbols:

c4, c5, c7, c11, c12, c20, c22, c23, c25, c28, c30, c3, c6, c10, c13, c21, c29

(23) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^2))) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
We considered the (Usable) Rules:

Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log'(0) → 0
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(O(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
ge(z0, 0) → true
+(0, z0) → z0
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
if(true, z0, z1) → z0
if(false, z0, z1) → z1
O(0) → 0
not(true) → false
not(false) → true
-(z0, 0) → z0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
-(0, z0) → 0
And the Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(+(x1, x2)) = x1 + x2   
POL(+'(x1, x2)) = x22 + x1·x2   
POL(-(x1, x2)) = 0   
POL(-'(x1, x2)) = 0   
POL(0) = 0   
POL(1) = 0   
POL(GE(x1, x2)) = [3] + [2]x1 + [2]x1·x2   
POL(I(x1)) = [2] + x1   
POL(LOG(x1)) = [3] + [2]x1 + [3]x12   
POL(LOG'(x1)) = x1 + [2]x12   
POL(Log'(x1)) = x1   
POL(O(x1)) = [2] + x1   
POL(c10(x1)) = x1   
POL(c11(x1, x2)) = x1 + x2   
POL(c12(x1)) = x1   
POL(c13(x1)) = x1   
POL(c20(x1)) = x1   
POL(c21(x1)) = x1   
POL(c22(x1)) = x1   
POL(c23(x1)) = x1   
POL(c25(x1)) = x1   
POL(c28(x1, x2)) = x1 + x2   
POL(c29(x1, x2, x3)) = x1 + x2 + x3   
POL(c3(x1)) = x1   
POL(c30(x1, x2)) = x1 + x2   
POL(c4(x1)) = x1   
POL(c5(x1)) = x1   
POL(c6(x1, x2)) = x1 + x2   
POL(c7(x1, x2)) = x1 + x2   
POL(false) = 0   
POL(ge(x1, x2)) = 0   
POL(if(x1, x2, x3)) = x2 + [2]x3   
POL(not(x1)) = 0   
POL(true) = 0   

(24) Obligation:

Complexity Dependency Tuples Problem
Rules:

O(0) → 0
+(0, z0) → z0
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
-(z0, 0) → z0
-(0, z0) → 0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
not(true) → false
not(false) → true
and(z0, true) → z0
and(z0, false) → false
if(true, z0, z1) → z0
if(false, z0, z1) → z1
ge(O(z0), O(z1)) → ge(z0, z1)
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(z0, 0) → true
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
Log'(0) → 0
Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log(z0) → -(Log'(z0), I(0))
Val(L(z0)) → z0
Val(N(z0, l, r)) → z0
Min(L(z0)) → z0
Min(N(z0, l, r)) → Min(l)
Max(L(z0)) → z0
Max(N(z0, l, r)) → Max(r)
BS(L(z0)) → true
BS(N(z0, l, r)) → and(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r)))
Size(L(z0)) → I(0)
Size(N(z0, l, r)) → +(+(Size(l), Size(r)), I(1))
WB(L(z0)) → true
WB(N(z0, l, r)) → and(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r)))
Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
S tuples:

-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
K tuples:

LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
+'(O(z0), I(z1)) → c4(+'(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
Defined Rule Symbols:

O, +, -, not, and, if, ge, Log', Log, Val, Min, Max, BS, Size, WB

Defined Pair Symbols:

+', -', GE, LOG', LOG

Compound Symbols:

c4, c5, c7, c11, c12, c20, c22, c23, c25, c28, c30, c3, c6, c10, c13, c21, c29

(25) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^2))) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
We considered the (Usable) Rules:

Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log'(0) → 0
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(O(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
ge(z0, 0) → true
+(0, z0) → z0
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
if(true, z0, z1) → z0
if(false, z0, z1) → z1
O(0) → 0
not(true) → false
not(false) → true
-(z0, 0) → z0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
-(0, z0) → 0
And the Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(+(x1, x2)) = x1 + x2   
POL(+'(x1, x2)) = 0   
POL(-(x1, x2)) = x1   
POL(-'(x1, x2)) = x2 + [2]x1·x2   
POL(0) = 0   
POL(1) = 0   
POL(GE(x1, x2)) = 0   
POL(I(x1)) = [1] + x1   
POL(LOG(x1)) = [2] + [2]x1 + [2]x12   
POL(LOG'(x1)) = 0   
POL(Log'(x1)) = x1 + x12   
POL(O(x1)) = [1] + x1   
POL(c10(x1)) = x1   
POL(c11(x1, x2)) = x1 + x2   
POL(c12(x1)) = x1   
POL(c13(x1)) = x1   
POL(c20(x1)) = x1   
POL(c21(x1)) = x1   
POL(c22(x1)) = x1   
POL(c23(x1)) = x1   
POL(c25(x1)) = x1   
POL(c28(x1, x2)) = x1 + x2   
POL(c29(x1, x2, x3)) = x1 + x2 + x3   
POL(c3(x1)) = x1   
POL(c30(x1, x2)) = x1 + x2   
POL(c4(x1)) = x1   
POL(c5(x1)) = x1   
POL(c6(x1, x2)) = x1 + x2   
POL(c7(x1, x2)) = x1 + x2   
POL(false) = 0   
POL(ge(x1, x2)) = 0   
POL(if(x1, x2, x3)) = x2 + x3   
POL(not(x1)) = 0   
POL(true) = 0   

(26) Obligation:

Complexity Dependency Tuples Problem
Rules:

O(0) → 0
+(0, z0) → z0
+(z0, 0) → z0
+(O(z0), O(z1)) → O(+(z0, z1))
+(O(z0), I(z1)) → I(+(z0, z1))
+(I(z0), O(z1)) → I(+(z0, z1))
+(I(z0), I(z1)) → O(+(+(z0, z1), I(0)))
+(z0, +(z1, z2)) → +(+(z0, z1), z2)
-(z0, 0) → z0
-(0, z0) → 0
-(O(z0), O(z1)) → O(-(z0, z1))
-(O(z0), I(z1)) → I(-(-(z0, z1), I(1)))
-(I(z0), O(z1)) → I(-(z0, z1))
-(I(z0), I(z1)) → O(-(z0, z1))
not(true) → false
not(false) → true
and(z0, true) → z0
and(z0, false) → false
if(true, z0, z1) → z0
if(false, z0, z1) → z1
ge(O(z0), O(z1)) → ge(z0, z1)
ge(O(z0), I(z1)) → not(ge(z1, z0))
ge(I(z0), O(z1)) → ge(z0, z1)
ge(I(z0), I(z1)) → ge(z0, z1)
ge(z0, 0) → true
ge(0, O(z0)) → ge(0, z0)
ge(0, I(z0)) → false
Log'(0) → 0
Log'(I(z0)) → +(Log'(z0), I(0))
Log'(O(z0)) → if(ge(z0, I(0)), +(Log'(z0), I(0)), 0)
Log(z0) → -(Log'(z0), I(0))
Val(L(z0)) → z0
Val(N(z0, l, r)) → z0
Min(L(z0)) → z0
Min(N(z0, l, r)) → Min(l)
Max(L(z0)) → z0
Max(N(z0, l, r)) → Max(r)
BS(L(z0)) → true
BS(N(z0, l, r)) → and(and(ge(z0, Max(l)), ge(Min(r), z0)), and(BS(l), BS(r)))
Size(L(z0)) → I(0)
Size(N(z0, l, r)) → +(+(Size(l), Size(r)), I(1))
WB(L(z0)) → true
WB(N(z0, l, r)) → and(if(ge(Size(l), Size(r)), ge(I(0), -(Size(l), Size(r))), ge(I(0), -(Size(r), Size(l)))), and(WB(l), WB(r)))
Tuples:

+'(O(z0), I(z1)) → c4(+'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
S tuples:none
K tuples:

LOG(z0) → c30(-'(Log'(z0), I(0)), LOG'(z0))
GE(O(z0), O(z1)) → c20(GE(z0, z1))
GE(I(z0), O(z1)) → c22(GE(z0, z1))
GE(0, O(z0)) → c25(GE(0, z0))
GE(O(z0), I(z1)) → c21(GE(z1, z0))
LOG'(O(z0)) → c29(GE(z0, I(0)), +'(Log'(z0), I(0)), LOG'(z0))
-'(I(z0), O(z1)) → c12(-'(z0, z1))
-'(O(z0), O(z1)) → c10(-'(z0, z1))
+'(I(z0), O(z1)) → c5(+'(z0, z1))
+'(z0, +(z1, z2)) → c7(+'(+(z0, z1), z2), +'(z0, z1))
+'(O(z0), O(z1)) → c3(+'(z0, z1))
LOG'(I(z0)) → c28(+'(Log'(z0), I(0)), LOG'(z0))
-'(I(z0), I(z1)) → c13(-'(z0, z1))
+'(O(z0), I(z1)) → c4(+'(z0, z1))
GE(I(z0), I(z1)) → c23(GE(z0, z1))
+'(I(z0), I(z1)) → c6(+'(+(z0, z1), I(0)), +'(z0, z1))
-'(O(z0), I(z1)) → c11(-'(-(z0, z1), I(1)), -'(z0, z1))
Defined Rule Symbols:

O, +, -, not, and, if, ge, Log', Log, Val, Min, Max, BS, Size, WB

Defined Pair Symbols:

+', -', GE, LOG', LOG

Compound Symbols:

c4, c5, c7, c11, c12, c20, c22, c23, c25, c28, c30, c3, c6, c10, c13, c21, c29

(27) SIsEmptyProof (EQUIVALENT transformation)

The set S is empty

(28) BOUNDS(O(1), O(1))