(0) Obligation:

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

cond1(true, x, y) → cond2(gr(x, 0), x, y)
cond2(true, x, y) → cond1(gr(add(x, y), 0), p(x), y)
cond2(false, x, y) → cond3(gr(y, 0), x, y)
cond3(true, x, y) → cond1(gr(add(x, y), 0), x, p(y))
cond3(false, x, y) → cond1(gr(add(x, y), 0), x, y)
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
p(0) → 0
p(s(x)) → x

Rewrite Strategy: INNERMOST

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

Converted Cpx (relative) TRS to CDT

(2) Obligation:

Complexity Dependency Tuples Problem
Rules:

cond1(true, z0, z1) → cond2(gr(z0, 0), z0, z1)
cond2(true, z0, z1) → cond1(gr(add(z0, z1), 0), p(z0), z1)
cond2(false, z0, z1) → cond3(gr(z1, 0), z0, z1)
cond3(true, z0, z1) → cond1(gr(add(z0, z1), 0), z0, p(z1))
cond3(false, z0, z1) → cond1(gr(add(z0, z1), 0), z0, z1)
gr(0, z0) → false
gr(s(z0), 0) → true
gr(s(z0), s(z1)) → gr(z0, z1)
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1), GR(z0, 0))
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), GR(add(z0, z1), 0), ADD(z0, z1), P(z0))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1), GR(z1, 0))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), GR(add(z0, z1), 0), ADD(z0, z1), P(z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), GR(add(z0, z1), 0), ADD(z0, z1))
GR(0, z0) → c5
GR(s(z0), 0) → c6
GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(0, z0) → c8
ADD(s(z0), z1) → c9(ADD(z0, z1))
P(0) → c10
P(s(z0)) → c11
S tuples:

COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1), GR(z0, 0))
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), GR(add(z0, z1), 0), ADD(z0, z1), P(z0))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1), GR(z1, 0))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), GR(add(z0, z1), 0), ADD(z0, z1), P(z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), GR(add(z0, z1), 0), ADD(z0, z1))
GR(0, z0) → c5
GR(s(z0), 0) → c6
GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(0, z0) → c8
ADD(s(z0), z1) → c9(ADD(z0, z1))
P(0) → c10
P(s(z0)) → c11
K tuples:none
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

COND1, COND2, COND3, GR, ADD, P

Compound Symbols:

c, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11

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

Removed 5 trailing nodes:

P(0) → c10
ADD(0, z0) → c8
P(s(z0)) → c11
GR(0, z0) → c5
GR(s(z0), 0) → c6

(4) Obligation:

Complexity Dependency Tuples Problem
Rules:

cond1(true, z0, z1) → cond2(gr(z0, 0), z0, z1)
cond2(true, z0, z1) → cond1(gr(add(z0, z1), 0), p(z0), z1)
cond2(false, z0, z1) → cond3(gr(z1, 0), z0, z1)
cond3(true, z0, z1) → cond1(gr(add(z0, z1), 0), z0, p(z1))
cond3(false, z0, z1) → cond1(gr(add(z0, z1), 0), z0, z1)
gr(0, z0) → false
gr(s(z0), 0) → true
gr(s(z0), s(z1)) → gr(z0, z1)
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1), GR(z0, 0))
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), GR(add(z0, z1), 0), ADD(z0, z1), P(z0))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1), GR(z1, 0))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), GR(add(z0, z1), 0), ADD(z0, z1), P(z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), GR(add(z0, z1), 0), ADD(z0, z1))
GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
S tuples:

COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1), GR(z0, 0))
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), GR(add(z0, z1), 0), ADD(z0, z1), P(z0))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1), GR(z1, 0))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), GR(add(z0, z1), 0), ADD(z0, z1), P(z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), GR(add(z0, z1), 0), ADD(z0, z1))
GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
K tuples:none
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

COND1, COND2, COND3, GR, ADD

Compound Symbols:

c, c1, c2, c3, c4, c7, c9

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

Removed 7 trailing tuple parts

(6) Obligation:

Complexity Dependency Tuples Problem
Rules:

cond1(true, z0, z1) → cond2(gr(z0, 0), z0, z1)
cond2(true, z0, z1) → cond1(gr(add(z0, z1), 0), p(z0), z1)
cond2(false, z0, z1) → cond3(gr(z1, 0), z0, z1)
cond3(true, z0, z1) → cond1(gr(add(z0, z1), 0), z0, p(z1))
cond3(false, z0, z1) → cond1(gr(add(z0, z1), 0), z0, z1)
gr(0, z0) → false
gr(s(z0), 0) → true
gr(s(z0), s(z1)) → gr(z0, z1)
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1))
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
S tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1))
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
K tuples:none
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c1, c2, c3, c4

(7) CdtUsableRulesProof (EQUIVALENT transformation)

The following rules are not usable and were removed:

cond1(true, z0, z1) → cond2(gr(z0, 0), z0, z1)
cond2(true, z0, z1) → cond1(gr(add(z0, z1), 0), p(z0), z1)
cond2(false, z0, z1) → cond3(gr(z1, 0), z0, z1)
cond3(true, z0, z1) → cond1(gr(add(z0, z1), 0), z0, p(z1))
cond3(false, z0, z1) → cond1(gr(add(z0, z1), 0), z0, z1)
gr(s(z0), s(z1)) → gr(z0, z1)

(8) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1))
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
S tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1))
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
K tuples:none
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c1, c2, c3, c4

(9) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

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

GR(s(z0), s(z1)) → c7(GR(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1))
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = [2]   
POL(ADD(x1, x2)) = 0   
POL(COND1(x1, x2, x3)) = 0   
POL(COND2(x1, x2, x3)) = 0   
POL(COND3(x1, x2, x3)) = 0   
POL(GR(x1, x2)) = x1 + [2]x2   
POL(add(x1, x2)) = [2] + [5]x2   
POL(c(x1)) = x1   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1)) = x1   
POL(c3(x1, x2)) = x1 + x2   
POL(c4(x1, x2)) = x1 + x2   
POL(c7(x1)) = x1   
POL(c9(x1)) = x1   
POL(false) = [3]   
POL(gr(x1, x2)) = 0   
POL(p(x1)) = [4] + [3]x1   
POL(s(x1)) = [2] + x1   
POL(true) = [3]   

(10) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1))
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1))
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c1, c2, c3, c4

(11) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1)) by

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))

(12) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND2, COND3, COND1

Compound Symbols:

c7, c9, c1, c2, c3, c4, c

(13) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1)) by

COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1), ADD(0, x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0), ADD(0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))

(14) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1), ADD(0, x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0), ADD(0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1), ADD(0, x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0), ADD(0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND2, COND3, COND1

Compound Symbols:

c7, c9, c2, c3, c4, c, c1

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

Removed 2 trailing tuple parts

(16) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND2, COND3, COND1

Compound Symbols:

c7, c9, c2, c3, c4, c, c1, c1

(17) CdtKnowledgeProof (BOTH BOUNDS(ID, ID) transformation)

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

COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))

(18) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND2, COND3, COND1

Compound Symbols:

c7, c9, c2, c3, c4, c, c1, c1

(19) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

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

COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
We considered the (Usable) Rules:

p(0) → 0
p(s(z0)) → z0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(ADD(x1, x2)) = 0   
POL(COND1(x1, x2, x3)) = x2   
POL(COND2(x1, x2, x3)) = [4]x1 + x2   
POL(COND3(x1, x2, x3)) = x2   
POL(GR(x1, x2)) = [2]x1 + [3]x2   
POL(add(x1, x2)) = 0   
POL(c(x1)) = x1   
POL(c1(x1)) = x1   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1)) = x1   
POL(c3(x1, x2)) = x1 + x2   
POL(c4(x1, x2)) = x1 + x2   
POL(c7(x1)) = x1   
POL(c9(x1)) = x1   
POL(false) = 0   
POL(gr(x1, x2)) = 0   
POL(p(x1)) = x1   
POL(s(x1)) = [1] + x1   
POL(true) = 0   

(20) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND2, COND3, COND1

Compound Symbols:

c7, c9, c2, c3, c4, c, c1, c1

(21) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1)) by

COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))

(22) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

c7, c9, c3, c4, c, c1, c1, c2

(23) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1)) by

COND3(true, x0, 0) → c3(COND1(gr(add(x0, 0), 0), x0, 0), ADD(x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)), ADD(0, z0))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))

(24) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, 0) → c3(COND1(gr(add(x0, 0), 0), x0, 0), ADD(x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)), ADD(0, z0))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, 0) → c3(COND1(gr(add(x0, 0), 0), x0, 0), ADD(x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)), ADD(0, z0))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

c7, c9, c4, c, c1, c1, c2, c3

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

Removed 1 trailing tuple parts

(26) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, 0) → c3(COND1(gr(add(x0, 0), 0), x0, 0), ADD(x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, 0) → c3(COND1(gr(add(x0, 0), 0), x0, 0), ADD(x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

c7, c9, c4, c, c1, c1, c2, c3, c3

(27) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID) transformation)

Split RHS of tuples not part of any SCC

(28) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, 0) → c5(ADD(x0, 0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, 0) → c5(ADD(x0, 0))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

c7, c9, c4, c, c1, c1, c2, c3, c3, c5

(29) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

Removed 1 leading nodes:

COND3(true, x0, 0) → c5(ADD(x0, 0))

(30) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

c7, c9, c4, c, c1, c1, c2, c3, c3, c5

(31) CdtKnowledgeProof (BOTH BOUNDS(ID, ID) transformation)

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

COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))

(32) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

c7, c9, c4, c, c1, c1, c2, c3, c3, c5

(33) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

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

COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
We considered the (Usable) Rules:

p(0) → 0
p(s(z0)) → z0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(ADD(x1, x2)) = 0   
POL(COND1(x1, x2, x3)) = [4]x3   
POL(COND2(x1, x2, x3)) = [4]x3   
POL(COND3(x1, x2, x3)) = [4]x3   
POL(GR(x1, x2)) = x1   
POL(add(x1, x2)) = 0   
POL(c(x1)) = x1   
POL(c1(x1)) = x1   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(c3(x1, x2)) = x1 + x2   
POL(c4(x1, x2)) = x1 + x2   
POL(c5(x1)) = x1   
POL(c7(x1)) = x1   
POL(c9(x1)) = x1   
POL(false) = 0   
POL(gr(x1, x2)) = 0   
POL(p(x1)) = x1   
POL(s(x1)) = [1] + x1   
POL(true) = 0   

(34) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

c7, c9, c4, c, c1, c1, c2, c3, c3, c5

(35) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2)) transformation)

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

COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
We considered the (Usable) Rules:none
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(ADD(x1, x2)) = 0   
POL(COND1(x1, x2, x3)) = 0   
POL(COND2(x1, x2, x3)) = [2]x1·x2   
POL(COND3(x1, x2, x3)) = [2]x2   
POL(GR(x1, x2)) = 0   
POL(add(x1, x2)) = 0   
POL(c(x1)) = x1   
POL(c1(x1)) = x1   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(c3(x1, x2)) = x1 + x2   
POL(c4(x1, x2)) = x1 + x2   
POL(c5(x1)) = x1   
POL(c7(x1)) = x1   
POL(c9(x1)) = x1   
POL(false) = [2]   
POL(gr(x1, x2)) = 0   
POL(p(x1)) = 0   
POL(s(x1)) = [1]   
POL(true) = 0   

(36) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

c7, c9, c4, c, c1, c1, c2, c3, c3, c5

(37) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1)) by

COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0), ADD(0, z0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))

(38) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0), ADD(0, z0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0), ADD(0, z0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c1, c1, c2, c3, c3, c5, c4

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

Removed 1 trailing tuple parts

(40) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c1, c1, c2, c3, c3, c5, c4, c4

(41) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2)) transformation)

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

COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
We considered the (Usable) Rules:none
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(ADD(x1, x2)) = 0   
POL(COND1(x1, x2, x3)) = 0   
POL(COND2(x1, x2, x3)) = [2]x1·x2   
POL(COND3(x1, x2, x3)) = x2·x3 + [2]x1·x2   
POL(GR(x1, x2)) = 0   
POL(add(x1, x2)) = 0   
POL(c(x1)) = x1   
POL(c1(x1)) = x1   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(c3(x1, x2)) = x1 + x2   
POL(c4(x1)) = x1   
POL(c4(x1, x2)) = x1 + x2   
POL(c5(x1)) = x1   
POL(c7(x1)) = x1   
POL(c9(x1)) = x1   
POL(false) = [2]   
POL(gr(x1, x2)) = 0   
POL(p(x1)) = 0   
POL(s(x1)) = [2]   
POL(true) = 0   

(42) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c1, c1, c2, c3, c3, c5, c4, c4

(43) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) by

COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))

(44) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c1, c1, c2, c3, c3, c5, c4, c4

(45) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1)) by

COND2(true, s(z0), x1) → c1(COND1(gr(s(add(z0, x1)), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))

(46) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), x1) → c1(COND1(gr(s(add(z0, x1)), 0), z0, x1), ADD(s(z0), x1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c1, c2, c3, c3, c5, c4, c4, c1

(47) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

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

COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
We considered the (Usable) Rules:

p(0) → 0
p(s(z0)) → z0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(ADD(x1, x2)) = 0   
POL(COND1(x1, x2, x3)) = x2   
POL(COND2(x1, x2, x3)) = x2   
POL(COND3(x1, x2, x3)) = x2   
POL(GR(x1, x2)) = [5]x2   
POL(add(x1, x2)) = [4]x2   
POL(c(x1)) = x1   
POL(c1(x1)) = x1   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(c3(x1, x2)) = x1 + x2   
POL(c4(x1)) = x1   
POL(c4(x1, x2)) = x1 + x2   
POL(c5(x1)) = x1   
POL(c7(x1)) = x1   
POL(c9(x1)) = x1   
POL(false) = 0   
POL(gr(x1, x2)) = 0   
POL(p(x1)) = x1   
POL(s(x1)) = [2] + x1   
POL(true) = 0   

(48) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c1, c2, c3, c3, c5, c4, c4, c1

(49) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) by

COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))

(50) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c1, c2, c3, c3, c5, c4, c4, c1

(51) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) by

COND2(true, 0, x0) → c1(COND1(gr(x0, 0), 0, x0))
COND2(true, 0, 0) → c1(COND1(false, p(0), 0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))

(52) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, 0) → c1(COND1(false, p(0), 0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c3, c3, c5, c4, c4, c1, c1

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

Removed 1 trailing nodes:

COND2(true, 0, 0) → c1(COND1(false, p(0), 0))

(54) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c3, c3, c5, c4, c4, c1, c1

(55) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) by

COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1), ADD(0, s(x1)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))

(56) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1), ADD(0, s(x1)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c3, c3, c5, c4, c4, c1, c1

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

Removed 1 trailing tuple parts

(58) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c3, c3, c5, c4, c4, c1, c1

(59) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) by

COND3(true, s(x0), 0) → c3(COND1(gr(s(add(x0, 0)), 0), s(x0), 0), ADD(s(x0), 0))
COND3(true, s(x0), s(z0)) → c3(COND1(gr(s(add(x0, s(z0))), 0), s(x0), z0), ADD(s(x0), s(z0)))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))

(60) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), 0) → c3(COND1(gr(s(add(x0, 0)), 0), s(x0), 0), ADD(s(x0), 0))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c3, c5, c4, c4, c1, c1, c3

(61) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID) transformation)

Split RHS of tuples not part of any SCC

(62) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, s(x0), 0) → c6(ADD(s(x0), 0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0)))
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c3, c5, c4, c4, c1, c1, c3, c6

(63) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

Removed 1 leading nodes:

COND3(true, s(x0), 0) → c6(ADD(s(x0), 0))

(64) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c3, c5, c4, c4, c1, c1, c3, c6

(65) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) by

COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0))
COND3(true, 0, 0) → c3(COND1(false, 0, p(0)))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))

(66) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, 0) → c3(COND1(false, 0, p(0)))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0))
COND3(true, 0, 0) → c3(COND1(false, 0, p(0)))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c5, c4, c4, c1, c1, c3, c3, c6

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

Removed 1 trailing nodes:

COND3(true, 0, 0) → c3(COND1(false, 0, p(0)))

(68) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c5, c4, c4, c1, c1, c3, c3, c6

(69) CdtKnowledgeProof (BOTH BOUNDS(ID, ID) transformation)

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

COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))

(70) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c5, c4, c4, c1, c1, c3, c3, c6

(71) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

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

COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
We considered the (Usable) Rules:

p(0) → 0
p(s(z0)) → z0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(ADD(x1, x2)) = 0   
POL(COND1(x1, x2, x3)) = x3   
POL(COND2(x1, x2, x3)) = x3   
POL(COND3(x1, x2, x3)) = x3   
POL(GR(x1, x2)) = x1 + [3]x2   
POL(add(x1, x2)) = [1] + [3]x1 + [2]x2   
POL(c(x1)) = x1   
POL(c1(x1)) = x1   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(c3(x1, x2)) = x1 + x2   
POL(c4(x1)) = x1   
POL(c4(x1, x2)) = x1 + x2   
POL(c5(x1)) = x1   
POL(c6(x1)) = x1   
POL(c7(x1)) = x1   
POL(c9(x1)) = x1   
POL(false) = 0   
POL(gr(x1, x2)) = 0   
POL(p(x1)) = x1   
POL(s(x1)) = [1] + x1   
POL(true) = 0   

(72) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c5, c4, c4, c1, c1, c3, c3, c6

(73) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) by

COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))

(74) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c4, c4, c1, c1, c3, c3, c6, c5

(75) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) by

COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1))
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0))
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1))
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1))

(76) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1))
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0))
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1))
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c4, c1, c1, c3, c3, c6, c5, c4

(77) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) by

COND3(false, 0, 0) → c4(COND1(false, 0, 0))
COND3(false, 0, s(z0)) → c4(COND1(true, 0, s(z0)))

(78) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1))
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0))
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1))
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1))
COND3(false, 0, 0) → c4(COND1(false, 0, 0))
COND3(false, 0, s(z0)) → c4(COND1(true, 0, s(z0)))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(false, 0, 0) → c4(COND1(false, 0, 0))
COND3(false, 0, s(z0)) → c4(COND1(true, 0, s(z0)))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0))
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c1, c1, c3, c3, c6, c5, c4, c4

(79) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

Removed 1 leading nodes:

COND3(false, 0, s(z0)) → c4(COND1(true, 0, s(z0)))
Removed 1 trailing nodes:

COND3(false, 0, 0) → c4(COND1(false, 0, 0))

(80) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1))
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0))
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1))
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, 0) → c2(COND3(false, x0, 0))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c1, c1, c3, c3, c6, c5, c4, c4

(81) CdtInstantiationProof (BOTH BOUNDS(ID, ID) transformation)

Use instantiation to replace COND2(false, x0, 0) → c2(COND3(false, x0, 0)) by

COND2(false, 0, 0) → c2(COND3(false, 0, 0))

(82) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1))
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0))
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1))
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1))
COND2(false, 0, 0) → c2(COND3(false, 0, 0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, 0) → c2(COND3(false, 0, 0))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c1, c1, c3, c3, c6, c5, c4, c4

(83) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

Removed 2 leading nodes:

COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1))
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1))
Removed 1 trailing nodes:

COND2(false, 0, 0) → c2(COND3(false, 0, 0))

(84) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0))
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c1, c1, c3, c3, c6, c5, c4

(85) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID) transformation)

Split RHS of tuples not part of any SCC

(86) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(0), z0) → c8(ADD(s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND3(false, s(s(z0)), z1) → c8(ADD(s(s(z0)), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c1, c1, c3, c3, c6, c5, c8

(87) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

Removed 2 leading nodes:

COND3(false, s(0), z0) → c8(ADD(s(0), z0))
COND3(false, s(s(z0)), z1) → c8(ADD(s(s(z0)), z1))

(88) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c1, c1, c3, c3, c6, c5, c8

(89) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) by COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))

(90) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c1, c1, c3, c3, c6, c5, c8

(91) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND2(true, s(z0), x1) → c1(COND1(gr(s(add(z0, x1)), 0), z0, x1), ADD(s(z0), x1)) by COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))

(92) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c1, c1, c3, c3, c6, c5, c8

(93) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) by COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))

(94) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c1, c1, c3, c3, c6, c5, c8

(95) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

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

COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
We considered the (Usable) Rules:

p(0) → 0
p(s(z0)) → z0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(ADD(x1, x2)) = 0   
POL(COND1(x1, x2, x3)) = [4]x2   
POL(COND2(x1, x2, x3)) = [4]x2   
POL(COND3(x1, x2, x3)) = [4]x2   
POL(GR(x1, x2)) = [4]x1   
POL(add(x1, x2)) = [2]x1 + [2]x2   
POL(c(x1)) = x1   
POL(c1(x1)) = x1   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(c3(x1, x2)) = x1 + x2   
POL(c5(x1)) = x1   
POL(c6(x1)) = x1   
POL(c7(x1)) = x1   
POL(c8(x1)) = x1   
POL(c9(x1)) = x1   
POL(false) = 0   
POL(gr(x1, x2)) = [2]x2   
POL(p(x1)) = x1   
POL(s(x1)) = [4] + x1   
POL(true) = 0   

(96) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c1, c1, c3, c3, c6, c5, c8

(97) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) by COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0))

(98) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c1, c1, c3, c3, c6, c5, c8

(99) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

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

COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0))
We considered the (Usable) Rules:

p(0) → 0
p(s(z0)) → z0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(ADD(x1, x2)) = 0   
POL(COND1(x1, x2, x3)) = x2   
POL(COND2(x1, x2, x3)) = x2   
POL(COND3(x1, x2, x3)) = [2]x1 + x2   
POL(GR(x1, x2)) = [2]x1 + [3]x2   
POL(add(x1, x2)) = [3] + [3]x1 + [4]x2   
POL(c(x1)) = x1   
POL(c1(x1)) = x1   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(c3(x1, x2)) = x1 + x2   
POL(c5(x1)) = x1   
POL(c6(x1)) = x1   
POL(c7(x1)) = x1   
POL(c8(x1)) = x1   
POL(c9(x1)) = x1   
POL(false) = [4]   
POL(gr(x1, x2)) = 0   
POL(p(x1)) = x1   
POL(s(x1)) = [2] + x1   
POL(true) = 0   

(100) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1))
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

c7, c9, c, c2, c1, c1, c3, c3, c6, c5, c8

(101) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID) transformation)

Use forward instantiation to replace GR(s(z0), s(z1)) → c7(GR(z0, z1)) by

GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))

(102) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c2, c1, c1, c3, c3, c6, c5, c8, c7

(103) CdtInstantiationProof (BOTH BOUNDS(ID, ID) transformation)

Use instantiation to replace COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) by

COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))

(104) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c1, c3, c3, c6, c5, c8, c7, c2

(105) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

Removed 1 leading nodes:

COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))

(106) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1))
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c3(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c1, c3, c3, c6, c5, c8, c7, c2

(107) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID) transformation)

Split RHS of tuples not part of any SCC

(108) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(z0), s(x1)) → c4(ADD(s(z0), s(x1)))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(x0), x1) → c4(ADD(s(x0), x1))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(0), z0) → c4(ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND3(true, s(s(z0)), z1) → c4(ADD(s(s(z0)), z1))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c1, c3, c6, c5, c8, c7, c2, c4

(109) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

Removed 4 leading nodes:

COND3(true, s(z0), s(x1)) → c4(ADD(s(z0), s(x1)))
COND3(true, s(x0), x1) → c4(ADD(s(x0), x1))
COND3(true, s(0), z0) → c4(ADD(s(0), z0))
COND3(true, s(s(z0)), z1) → c4(ADD(s(s(z0)), z1))

(110) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c1, c3, c6, c5, c8, c7, c2, c4

(111) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), p(s(s(z0))), z1), ADD(s(s(z0)), z1)) by COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))

(112) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
K tuples:

COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c3, c6, c5, c8, c1, c7, c2, c4

(113) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

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

COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
We considered the (Usable) Rules:

gr(0, z0) → false
p(0) → 0
gr(s(z0), 0) → true
And the Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(ADD(x1, x2)) = [3]   
POL(COND1(x1, x2, x3)) = [2]x1 + [2]x2   
POL(COND2(x1, x2, x3)) = [2]x2   
POL(COND3(x1, x2, x3)) = [2]x2   
POL(GR(x1, x2)) = [4]x1 + [5]x2   
POL(add(x1, x2)) = [3]x2   
POL(c(x1)) = x1   
POL(c1(x1)) = x1   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(c4(x1)) = x1   
POL(c5(x1)) = x1   
POL(c6(x1)) = x1   
POL(c7(x1)) = x1   
POL(c8(x1)) = x1   
POL(c9(x1)) = x1   
POL(false) = 0   
POL(gr(x1, x2)) = [2]x2   
POL(p(x1)) = 0   
POL(s(x1)) = [2] + x1   
POL(true) = 0   

(114) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c3, c6, c5, c8, c1, c7, c2, c4

(115) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) by COND2(true, 0, s(z0)) → c1(COND1(true, 0, s(z0)))

(116) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND2(true, 0, s(z0)) → c1(COND1(true, 0, s(z0)))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c3, c6, c5, c8, c1, c7, c2, c4

(117) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

Removed 1 leading nodes:

COND2(true, 0, s(z0)) → c1(COND1(true, 0, s(z0)))

(118) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c3, c6, c5, c8, c1, c7, c2, c4

(119) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2)) transformation)

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

ADD(s(z0), z1) → c9(ADD(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(ADD(x1, x2)) = [1] + [2]x1   
POL(COND1(x1, x2, x3)) = [2]x2 + x22   
POL(COND2(x1, x2, x3)) = [2]x2 + x22   
POL(COND3(x1, x2, x3)) = [2]x2 + x22   
POL(GR(x1, x2)) = [2]x1 + [3]x2 + x22 + [3]x1·x2 + x12   
POL(add(x1, x2)) = 0   
POL(c(x1)) = x1   
POL(c1(x1)) = x1   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(c4(x1)) = x1   
POL(c5(x1)) = x1   
POL(c6(x1)) = x1   
POL(c7(x1)) = x1   
POL(c8(x1)) = x1   
POL(c9(x1)) = x1   
POL(false) = 0   
POL(gr(x1, x2)) = 0   
POL(p(x1)) = 0   
POL(s(x1)) = [1] + x1   
POL(true) = 0   

(120) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
S tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c3, c6, c5, c8, c1, c7, c2, c4

(121) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) by COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))

(122) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
S tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c3, c6, c5, c8, c1, c7, c2, c4

(123) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) by COND3(true, s(z0), 0) → c6(COND1(true, s(z0), 0))

(124) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
COND3(true, s(z0), 0) → c6(COND1(true, s(z0), 0))
S tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c3, c5, c8, c1, c7, c2, c4, c6

(125) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

Removed 1 leading nodes:

COND3(true, s(z0), 0) → c6(COND1(true, s(z0), 0))

(126) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
S tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c3, c5, c8, c1, c7, c2, c4

(127) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2)) transformation)

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

COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
We considered the (Usable) Rules:none
And the Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(ADD(x1, x2)) = [2]   
POL(COND1(x1, x2, x3)) = [1] + x2 + [2]x22   
POL(COND2(x1, x2, x3)) = [1] + [2]x22   
POL(COND3(x1, x2, x3)) = [1] + x2 + [2]x2·x3 + [2]x22   
POL(GR(x1, x2)) = 0   
POL(add(x1, x2)) = 0   
POL(c(x1)) = x1   
POL(c1(x1)) = x1   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(c4(x1)) = x1   
POL(c5(x1)) = x1   
POL(c7(x1)) = x1   
POL(c8(x1)) = x1   
POL(c9(x1)) = x1   
POL(false) = 0   
POL(gr(x1, x2)) = [2]   
POL(p(x1)) = 0   
POL(s(x1)) = [2] + x1   
POL(true) = 0   

(128) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
S tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c3, c5, c8, c1, c7, c2, c4

(129) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) by COND3(true, 0, 0) → c3(COND1(false, 0, 0))

(130) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
COND3(true, 0, 0) → c3(COND1(false, 0, 0))
S tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0))
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c3, c5, c8, c1, c7, c2, c4

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

Removed 1 trailing nodes:

COND3(true, 0, 0) → c3(COND1(false, 0, 0))

(132) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
S tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c3, c5, c8, c1, c7, c2, c4

(133) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0)) by COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))

(134) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
S tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
ADD(s(z0), z1) → c9(ADD(z0, z1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

ADD, COND1, COND2, COND3, GR

Compound Symbols:

c9, c, c1, c3, c5, c8, c1, c7, c2, c4

(135) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID) transformation)

Use forward instantiation to replace ADD(s(z0), z1) → c9(ADD(z0, z1)) by

ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))

(136) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
S tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(0), z0) → c4(ADD(s(0), z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

COND1, COND2, COND3, GR, ADD

Compound Symbols:

c, c1, c3, c5, c8, c1, c7, c2, c4, c9

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

Removed 1 trailing nodes:

COND2(true, s(0), z0) → c4(ADD(s(0), z0))

(138) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
S tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

COND1, COND2, COND3, GR, ADD

Compound Symbols:

c, c1, c3, c5, c8, c1, c7, c2, c4, c9

(139) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) by COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))

(140) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
S tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
K tuples:

COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

COND1, COND2, COND3, GR, ADD

Compound Symbols:

c, c1, c5, c8, c1, c7, c2, c4, c3, c9

(141) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

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

COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
We considered the (Usable) Rules:

p(0) → 0
p(s(z0)) → z0
And the Tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(ADD(x1, x2)) = 0   
POL(COND1(x1, x2, x3)) = [4]x3   
POL(COND2(x1, x2, x3)) = [4]x3   
POL(COND3(x1, x2, x3)) = [4]x3   
POL(GR(x1, x2)) = [3]x1 + [5]x2   
POL(add(x1, x2)) = [2]x2   
POL(c(x1)) = x1   
POL(c1(x1)) = x1   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(c4(x1)) = x1   
POL(c5(x1)) = x1   
POL(c7(x1)) = x1   
POL(c8(x1)) = x1   
POL(c9(x1)) = x1   
POL(false) = [3]   
POL(gr(x1, x2)) = [2]x2   
POL(p(x1)) = x1   
POL(s(x1)) = [2] + x1   
POL(true) = [4]   

(142) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
S tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
K tuples:

COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

COND1, COND2, COND3, GR, ADD

Compound Symbols:

c, c1, c5, c8, c1, c7, c2, c4, c3, c9

(143) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2)) transformation)

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

COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
We considered the (Usable) Rules:

p(0) → 0
p(s(z0)) → z0
And the Tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(ADD(x1, x2)) = 0   
POL(COND1(x1, x2, x3)) = [2]x3 + x32   
POL(COND2(x1, x2, x3)) = x32 + x1·x3   
POL(COND3(x1, x2, x3)) = x32 + [2]x2·x3   
POL(GR(x1, x2)) = [2]x12   
POL(add(x1, x2)) = 0   
POL(c(x1)) = x1   
POL(c1(x1)) = x1   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(c4(x1)) = x1   
POL(c5(x1)) = x1   
POL(c7(x1)) = x1   
POL(c8(x1)) = x1   
POL(c9(x1)) = x1   
POL(false) = [1]   
POL(gr(x1, x2)) = 0   
POL(p(x1)) = x1   
POL(s(x1)) = [1] + x1   
POL(true) = [2]   

(144) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
S tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
K tuples:

COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

COND1, COND2, COND3, GR, ADD

Compound Symbols:

c, c1, c5, c8, c1, c7, c2, c4, c3, c9

(145) CdtRewritingProof (BOTH BOUNDS(ID, ID) transformation)

Used rewriting to replace COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) by COND3(true, 0, 0) → c5(COND1(false, 0, 0))

(146) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
COND3(true, 0, 0) → c5(COND1(false, 0, 0))
S tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
K tuples:

COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

COND1, COND2, COND3, GR, ADD

Compound Symbols:

c, c1, c5, c8, c1, c7, c2, c4, c3, c9

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

Removed 1 trailing nodes:

COND3(true, 0, 0) → c5(COND1(false, 0, 0))

(148) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
S tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
K tuples:

COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

COND1, COND2, COND3, GR, ADD

Compound Symbols:

c, c1, c5, c8, c1, c7, c2, c4, c3, c9

(149) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

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

COND1(true, 0, x1) → c(COND2(false, 0, x1))
We considered the (Usable) Rules:

p(0) → 0
p(s(z0)) → z0
And the Tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(ADD(x1, x2)) = 0   
POL(COND1(x1, x2, x3)) = [1] + x3   
POL(COND2(x1, x2, x3)) = x1 + x3   
POL(COND3(x1, x2, x3)) = [4]x2 + x3   
POL(GR(x1, x2)) = [2]x1 + [3]x2   
POL(add(x1, x2)) = [3]x2   
POL(c(x1)) = x1   
POL(c1(x1)) = x1   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(c4(x1)) = x1   
POL(c5(x1)) = x1   
POL(c7(x1)) = x1   
POL(c8(x1)) = x1   
POL(c9(x1)) = x1   
POL(false) = 0   
POL(gr(x1, x2)) = [2] + [2]x1 + [5]x2   
POL(p(x1)) = [2] + x1   
POL(s(x1)) = [1] + x1   
POL(true) = [1]   

(150) Obligation:

Complexity Dependency Tuples Problem
Rules:

gr(0, z0) → false
gr(s(z0), 0) → true
add(0, z0) → z0
add(s(z0), z1) → s(add(z0, z1))
p(0) → 0
p(s(z0)) → z0
Tuples:

COND1(true, 0, x1) → c(COND2(false, 0, x1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0))
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND3(true, s(z0), s(x1)) → c4(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1))
COND3(true, s(x0), x1) → c4(COND1(true, s(x0), p(x1)))
COND3(true, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), p(z0)))
COND3(true, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), p(z1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
S tuples:none
K tuples:

COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
GR(s(s(y0)), s(s(y1))) → c7(GR(s(y0), s(y1)))
COND2(true, s(0), z0) → c4(COND1(gr(s(z0), 0), 0, z0))
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1))
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
ADD(s(s(y0)), z1) → c9(ADD(s(y0), z1))
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
COND2(false, 0, s(z1)) → c2(COND3(true, 0, s(z1)))
COND1(true, 0, x1) → c(COND2(false, 0, x1))
Defined Rule Symbols:

gr, add, p

Defined Pair Symbols:

COND1, COND2, COND3, GR, ADD

Compound Symbols:

c, c1, c5, c8, c1, c7, c2, c4, c3, c9

(151) SIsEmptyProof (BOTH BOUNDS(ID, ID) transformation)

The set S is empty

(152) BOUNDS(1, 1)