YES(O(1), O(n^2)) 701.61/217.93 YES(O(1), O(n^2)) 701.61/217.94 701.61/217.94 701.61/217.94 701.61/217.94 701.61/217.94 701.61/217.94 Runtime Complexity (innermost) proof of /export/starexec/sandbox/benchmark/theBenchmark.xml.xml 701.61/217.94 701.61/217.94 701.61/217.94
701.61/217.94 701.61/217.96 701.61/217.96
701.61/217.96
701.61/217.96

(0) Obligation:

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

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

Rewrite Strategy: INNERMOST
701.61/217.96
701.61/217.96

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

Converted CpxTRS to CDT
701.61/217.96
701.61/217.96

(2) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1), GR(z0, 0)) 701.61/217.96
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), GR(add(z0, z1), 0), ADD(z0, z1), P(z0)) 701.61/217.96
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1), GR(z1, 0)) 701.61/217.96
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), GR(add(z0, z1), 0), ADD(z0, z1), P(z1)) 701.61/217.96
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), GR(add(z0, z1), 0), ADD(z0, z1)) 701.61/217.96
GR(s(z0), s(z1)) → c7(GR(z0, z1)) 701.61/217.96
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

701.61/217.96
701.61/217.96

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

Removed 7 trailing tuple parts
701.61/217.96
701.61/217.96

(4) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 701.61/217.96
ADD(s(z0), z1) → c9(ADD(z0, z1)) 701.61/217.96
COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1)) 701.61/217.96
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1)) 701.61/217.96
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1)) 701.61/217.96
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1)) 701.61/217.96
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)) 701.61/217.96
ADD(s(z0), z1) → c9(ADD(z0, z1)) 701.61/217.96
COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1)) 701.61/217.96
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1)) 701.61/217.96
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1)) 701.61/217.96
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1)) 701.61/217.96
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

701.61/217.96
701.61/217.96

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

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

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

add(0, z0) → z0 701.61/217.96
add(s(z0), z1) → s(add(z0, z1)) 701.61/217.96
gr(0, z0) → false 701.61/217.96
gr(s(z0), 0) → true 701.61/217.96
p(0) → 0 701.61/217.96
p(s(z0)) → z0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 701.61/217.96
ADD(s(z0), z1) → c9(ADD(z0, z1)) 701.61/217.96
COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1)) 701.61/217.96
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1)) 701.61/217.96
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1)) 701.61/217.96
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1)) 701.61/217.96
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 : 701.61/217.96

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

(6) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 701.61/217.96
ADD(s(z0), z1) → c9(ADD(z0, z1)) 701.61/217.96
COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1)) 701.61/217.96
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1)) 701.61/217.96
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1)) 701.61/217.96
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1)) 701.61/217.96
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)) 701.61/217.96
COND1(true, z0, z1) → c(COND2(gr(z0, 0), z0, z1)) 701.61/217.96
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1)) 701.61/217.96
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1)) 701.61/217.96
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1)) 701.61/217.96
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:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

701.61/217.96
701.61/217.96

(7) 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)) 701.61/217.96
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
701.61/217.96
701.61/217.96

(8) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

ADD(s(z0), z1) → c9(ADD(z0, z1)) 701.61/217.98
COND2(true, z0, z1) → c1(COND1(gr(add(z0, z1), 0), p(z0), z1), ADD(z0, z1)) 701.61/217.98
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1)) 701.61/217.98
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1)) 701.61/217.98
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1)) 701.61/217.98
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 701.61/217.98
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:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND2, COND3, COND1

Compound Symbols:

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

701.61/217.98
701.61/217.98

(9) 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)) 701.61/217.98
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) 701.61/217.98
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0), ADD(0, z0)) 701.61/217.98
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1))
701.61/217.98
701.61/217.98

(10) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 701.61/217.98
ADD(s(z0), z1) → c9(ADD(z0, z1)) 701.61/217.98
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1)) 701.97/218.04
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1)) 701.97/218.04
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1)) 701.97/218.04
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 701.97/218.04
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 701.97/218.04
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1), ADD(0, x1)) 701.97/218.04
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) 701.97/218.04
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0), ADD(0, z0)) 701.97/218.04
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)) 701.97/218.04
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1)) 701.97/218.04
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1)) 701.97/218.04
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1)) 701.97/218.04
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 701.97/218.04
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 701.97/218.04
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1), ADD(0, x1)) 701.97/218.04
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) 701.97/218.04
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0), ADD(0, z0)) 701.97/218.04
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:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND2, COND3, COND1

Compound Symbols:

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

701.97/218.04
701.97/218.04

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

Removed 2 trailing tuple parts
701.97/218.04
701.97/218.04

(12) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

ADD(s(z0), z1) → c9(ADD(z0, z1)) 701.97/218.04
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1)) 701.97/218.04
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1)) 701.97/218.04
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1)) 701.97/218.04
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 701.97/218.04
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 701.97/218.04
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) 701.97/218.04
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1)) 701.97/218.04
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 701.97/218.04
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:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND2, COND3, COND1

Compound Symbols:

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

701.97/218.04
701.97/218.04

(13) 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)) 701.97/218.04
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
701.97/218.04
701.97/218.04

(14) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

ADD(s(z0), z1) → c9(ADD(z0, z1)) 701.97/218.04
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1)) 701.97/218.04
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1)) 701.97/218.04
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1)) 701.97/218.04
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 701.97/218.04
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 701.97/218.04
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) 701.97/218.04
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)) 701.97/218.04
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 701.97/218.04
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0))
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND2, COND3, COND1

Compound Symbols:

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

701.97/218.04
701.97/218.04

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

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

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

gr(0, z0) → false 701.97/218.04
gr(s(z0), 0) → true 701.97/218.04
p(0) → 0 701.97/218.04
p(s(z0)) → z0 701.97/218.04
add(0, z0) → z0 701.97/218.04
add(s(z0), z1) → s(add(z0, z1))
And the Tuples:

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

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

(16) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

ADD(s(z0), z1) → c9(ADD(z0, z1)) 701.97/218.04
COND2(false, z0, z1) → c2(COND3(gr(z1, 0), z0, z1)) 701.97/218.04
COND3(true, z0, z1) → c3(COND1(gr(add(z0, z1), 0), z0, p(z1)), ADD(z0, z1)) 701.97/218.04
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1)) 701.97/218.04
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 701.97/218.04
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 701.97/218.04
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)) 701.97/218.04
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 701.97/218.04
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 701.97/218.04
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND2, COND3, COND1

Compound Symbols:

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

701.97/218.04
701.97/218.04

(17) 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)) 701.97/218.04
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
701.97/218.04
701.97/218.04

(18) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

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

701.97/218.04
701.97/218.04

(19) 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)) 701.97/218.04
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 701.97/218.04
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)), ADD(0, z0)) 701.97/218.04
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
701.97/218.04
701.97/218.04

(20) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 701.97/218.04
ADD(s(z0), z1) → c9(ADD(z0, z1)) 701.97/218.04
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1)) 701.97/218.04
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 701.97/218.04
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 701.97/218.04
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) 701.97/218.04
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1)) 701.97/218.04
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, x0, 0) → c3(COND1(gr(add(x0, 0), 0), x0, 0), ADD(x0, 0)) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)), ADD(0, z0)) 702.70/218.21
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)) 702.70/218.21
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, x0, 0) → c3(COND1(gr(add(x0, 0), 0), x0, 0), ADD(x0, 0)) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0)), ADD(0, z0)) 702.70/218.21
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)) 702.70/218.21
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1))
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

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

702.70/218.21
702.70/218.21

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

Removed 1 trailing tuple parts
702.70/218.21
702.70/218.21

(22) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

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

702.70/218.21
702.70/218.21

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

Split RHS of tuples not part of any SCC
702.70/218.21
702.70/218.21

(24) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

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

702.70/218.21
702.70/218.21

(25) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

Removed 1 leading nodes:

COND3(true, x0, 0) → c5(ADD(x0, 0))
702.70/218.21
702.70/218.21

(26) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

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

702.70/218.21
702.70/218.21

(27) 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))
702.70/218.21
702.70/218.21

(28) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

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

702.70/218.21
702.70/218.21

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

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

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

add(0, z0) → z0 702.70/218.21
add(s(z0), z1) → s(add(z0, z1)) 702.70/218.21
gr(0, z0) → false 702.70/218.21
gr(s(z0), 0) → true 702.70/218.21
p(0) → 0 702.70/218.21
p(s(z0)) → z0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.21
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
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 : 702.70/218.21

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

(30) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

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

702.70/218.21
702.70/218.21

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

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

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:

add(0, z0) → z0 702.70/218.21
add(s(z0), z1) → s(add(z0, z1)) 702.70/218.21
gr(0, z0) → false 702.70/218.21
gr(s(z0), 0) → true 702.70/218.21
p(0) → 0 702.70/218.21
p(s(z0)) → z0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.21
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND3(false, z0, z1) → c4(COND1(gr(add(z0, z1), 0), z0, z1), ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
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 : 702.70/218.21

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

(32) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND3, COND1, COND2

Compound Symbols:

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

702.70/218.21
702.70/218.21

(33) 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)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
702.70/218.21
702.70/218.21

(34) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.21
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0), ADD(0, z0)) 702.70/218.21
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)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0), ADD(0, z0)) 702.70/218.21
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)) 702.70/218.21
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1))
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.21
702.70/218.21

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

Removed 1 trailing tuple parts
702.70/218.21
702.70/218.21

(36) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.21
702.70/218.21

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

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

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:

gr(0, z0) → false 702.70/218.21
gr(s(z0), 0) → true 702.70/218.21
add(0, z0) → z0 702.70/218.21
add(s(z0), z1) → s(add(z0, z1)) 702.70/218.21
p(0) → 0 702.70/218.21
p(s(z0)) → z0
And the Tuples:

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

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

(38) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.21
702.70/218.21

(39) 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))
702.70/218.21
702.70/218.21

(40) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.21
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
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)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), p(s(z0)), z1), ADD(s(z0), z1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0))
K tuples:

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.21
702.70/218.21

(41) 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)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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))
702.70/218.21
702.70/218.21

(42) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.21
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(z0), x1) → c1(COND1(gr(s(add(z0, x1)), 0), z0, x1), ADD(s(z0), x1)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1))
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, c3, c5, c4, c4, c1

702.70/218.21
702.70/218.21

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

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

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

add(0, z0) → z0 702.70/218.21
add(s(z0), z1) → s(add(z0, z1)) 702.70/218.21
gr(s(z0), 0) → true 702.70/218.21
gr(0, z0) → false 702.70/218.21
p(s(z0)) → z0 702.70/218.21
p(0) → 0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.21
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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 : 702.70/218.21

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

(44) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.21
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
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, c3, c5, c4, c4, c1

702.70/218.21
702.70/218.21

(45) 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))
702.70/218.21
702.70/218.21

(46) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.21
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
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, c3, c5, c4, c4, c1

702.70/218.21
702.70/218.21

(47) 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)) 702.70/218.21
COND2(true, 0, 0) → c1(COND1(false, p(0), 0)) 702.70/218.21
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
702.70/218.21
702.70/218.21

(48) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.21
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, 0, 0) → c1(COND1(false, p(0), 0)) 702.70/218.21
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.21
702.70/218.21

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

Removed 1 trailing tuple parts
702.70/218.21
702.70/218.21

(50) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.21
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.21
COND2(true, 0, 0) → c1
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND2(true, 0, x1) → c1(COND1(gr(add(0, x1), 0), 0, x1)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), p(0), z0)) 702.70/218.21
COND2(true, s(z0), x1) → c1(COND1(gr(add(s(z0), x1), 0), z0, x1), ADD(s(z0), x1)) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.21
702.70/218.21

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

Removed 1 trailing nodes:

COND2(true, 0, 0) → c1
702.70/218.21
702.70/218.21

(52) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.21
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0)))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.21
702.70/218.21

(53) 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))) 702.70/218.21
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1)))
702.70/218.21
702.70/218.21

(54) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.21
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.21
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1), ADD(0, s(x1))) 702.70/218.21
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)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.21
702.70/218.21

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

Removed 1 trailing tuple parts
702.70/218.21
702.70/218.21

(56) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.21
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.21
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.21
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.21
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.21
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.21
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.21
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.21
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.21
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.21
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.21
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.21
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.21
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.21
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.21
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.21
702.70/218.21

(57) 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)) 702.70/218.21
COND3(true, s(x0), s(z0)) → c3(COND1(gr(s(add(x0, s(z0))), 0), s(x0), z0), ADD(s(x0), s(z0))) 702.70/218.21
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.21
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.21
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)) 702.70/218.21
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
702.70/218.21
702.70/218.21

(58) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.22
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.22
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), 0) → c3(COND1(gr(s(add(x0, 0)), 0), s(x0), 0), ADD(s(x0), 0)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.22
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.22
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.22
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.22
702.70/218.22

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

Split RHS of tuples not part of any SCC
702.70/218.22
702.70/218.22

(60) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.22
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.22
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, s(x0), 0) → c6(ADD(s(x0), 0))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.22
COND3(true, x0, s(z0)) → c3(COND1(gr(add(x0, s(z0)), 0), x0, z0), ADD(x0, s(z0))) 702.70/218.22
COND3(true, s(z0), z1) → c3(COND1(gr(s(add(z0, z1)), 0), s(z0), p(z1)), ADD(s(z0), z1)) 702.70/218.22
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

cond1, cond2, cond3, 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

702.70/218.22
702.70/218.22

(61) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

Removed 1 leading nodes:

COND3(true, s(x0), 0) → c6(ADD(s(x0), 0))
702.70/218.22
702.70/218.22

(62) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.22
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.22
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
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)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(true, 0, z0) → c3(COND1(gr(z0, 0), 0, p(z0))) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.22
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

cond1, cond2, cond3, 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

702.70/218.22
702.70/218.22

(63) 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)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(false, 0, p(0))) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
702.70/218.22
702.70/218.22

(64) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.22
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(false, 0, p(0))) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(false, 0, p(0))) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

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

cond1, cond2, cond3, 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

702.70/218.22
702.70/218.22

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

Removed 1 trailing tuple parts
702.70/218.22
702.70/218.22

(66) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.22
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c3
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c3
K tuples:

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

cond1, cond2, cond3, 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, c3

702.70/218.22
702.70/218.22

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

Removed 1 trailing nodes:

COND3(true, 0, 0) → c3
702.70/218.22
702.70/218.22

(68) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.22
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

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

cond1, cond2, cond3, 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

702.70/218.22
702.70/218.22

(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))
702.70/218.22
702.70/218.22

(70) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.22
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

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

cond1, cond2, cond3, 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

702.70/218.22
702.70/218.22

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

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

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

p(s(z0)) → z0 702.70/218.22
p(0) → 0 702.70/218.22
gr(0, z0) → false 702.70/218.22
gr(s(z0), 0) → true 702.70/218.22
add(0, z0) → z0 702.70/218.22
add(s(z0), z1) → s(add(z0, z1))
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.22
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
The order we found is given by the following interpretation:
Polynomial interpretation : 702.70/218.22

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

(72) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(true, x0, 0) → c5(COND1(gr(add(x0, 0), 0), x0, 0)) 702.70/218.22
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

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

cond1, cond2, cond3, 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

702.70/218.22
702.70/218.22

(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)) 702.70/218.22
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0))
702.70/218.22
702.70/218.22

(74) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(false, s(z0), z1) → c4(COND1(gr(s(add(z0, z1)), 0), s(z0), z1), ADD(s(z0), z1)) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.22
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)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

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

cond1, cond2, cond3, 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

702.70/218.22
702.70/218.22

(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)) 702.70/218.22
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.22
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.22
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1))
702.70/218.22
702.70/218.22

(76) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.22
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.22
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.22
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.22
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND3(false, 0, z0) → c4(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

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

cond1, cond2, cond3, 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

702.70/218.22
702.70/218.22

(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)) 702.70/218.22
COND3(false, 0, s(z0)) → c4(COND1(true, 0, s(z0)))
702.70/218.22
702.70/218.22

(78) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.22
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.22
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.22
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.22
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.22
COND3(false, 0, 0) → c4(COND1(false, 0, 0)) 702.70/218.22
COND3(false, 0, s(z0)) → c4(COND1(true, 0, s(z0)))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(false, 0, 0) → c4(COND1(false, 0, 0)) 702.70/218.22
COND3(false, 0, s(z0)) → c4(COND1(true, 0, s(z0)))
K tuples:

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

cond1, cond2, cond3, 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

702.70/218.22
702.70/218.22

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

Removed 1 trailing tuple parts
702.70/218.22
702.70/218.22

(80) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.22
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.22
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.22
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.22
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.22
COND3(false, 0, s(z0)) → c4(COND1(true, 0, s(z0))) 702.70/218.22
COND3(false, 0, 0) → c4
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(false, 0, s(z0)) → c4(COND1(true, 0, s(z0))) 702.70/218.22
COND3(false, 0, 0) → c4
K tuples:

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

cond1, cond2, cond3, 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, c4

702.70/218.22
702.70/218.22

(81) 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
702.70/218.22
702.70/218.22

(82) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.22
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.22
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.22
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.22
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.22
COND3(false, 0, 0) → c4
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(false, 0, 0) → c4
K tuples:

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

cond1, cond2, cond3, 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, c4

702.70/218.22
702.70/218.22

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

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

COND3(false, 0, 0) → c4
We considered the (Usable) Rules:

add(0, z0) → z0 702.70/218.22
add(s(z0), z1) → s(add(z0, z1)) 702.70/218.22
gr(s(z0), 0) → true 702.70/218.22
gr(0, z0) → false 702.70/218.22
p(s(z0)) → z0 702.70/218.22
p(0) → 0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.22
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.22
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.22
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.22
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.22
COND3(false, 0, 0) → c4
The order we found is given by the following interpretation:
Polynomial interpretation : 702.70/218.22

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

(84) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.22
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.22
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.22
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.22
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.22
COND3(false, 0, 0) → c4
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

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

cond1, cond2, cond3, 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, c4

702.70/218.22
702.70/218.22

(85) 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))
702.70/218.22
702.70/218.22

(86) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(gr(s(add(z0, z1)), 0), z0, z1), ADD(s(z0), z1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.22
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.22
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.22
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.22
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.22
COND3(false, 0, 0) → c4 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

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

cond1, cond2, cond3, 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, c4

702.70/218.22
702.70/218.22

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

Removed 1 trailing nodes:

COND3(false, 0, 0) → c4
702.70/218.22
702.70/218.22

(88) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(z0), x1) → c1(COND1(gr(s(add(z0, x1)), 0), z0, x1), ADD(s(z0), x1)) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.22
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.22
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.22
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.22
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.22
COND3(false, 0, 0) → c4 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

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

cond1, cond2, cond3, 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, c4

702.70/218.22
702.70/218.22

(89) 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))
702.70/218.22
702.70/218.22

(90) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.22
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.22
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.22
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.22
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.22
COND3(false, 0, 0) → c4 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

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

cond1, cond2, cond3, 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, c4

702.70/218.22
702.70/218.22

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

Removed 1 trailing nodes:

COND3(false, 0, 0) → c4
702.70/218.22
702.70/218.22

(92) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.22
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.22
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.22
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.22
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.22
COND3(false, 0, 0) → c4 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(x0), x1) → c1(COND1(true, p(s(x0)), x1), ADD(s(x0), x1)) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(false, 0, 0) → c4
Defined Rule Symbols:

cond1, cond2, cond3, 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, c4

702.70/218.22
702.70/218.22

(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))
702.70/218.22
702.70/218.22

(94) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.22
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.22
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.22
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.22
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.22
COND3(false, 0, 0) → c4 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(false, 0, 0) → c4
Defined Rule Symbols:

cond1, cond2, cond3, 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, c4

702.70/218.22
702.70/218.22

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

Removed 1 trailing nodes:

COND3(false, 0, 0) → c4
702.70/218.22
702.70/218.22

(96) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.22
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.22
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.22
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.22
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.22
COND3(false, 0, 0) → c4 702.70/218.22
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
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)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(false, 0, 0) → c4
Defined Rule Symbols:

cond1, cond2, cond3, 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, c4

702.70/218.22
702.70/218.22

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

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

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

add(0, z0) → z0 702.70/218.22
add(s(z0), z1) → s(add(z0, z1)) 702.70/218.22
gr(s(z0), 0) → true 702.70/218.22
gr(0, z0) → false 702.70/218.22
p(s(z0)) → z0 702.70/218.22
p(0) → 0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.22
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.22
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.22
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.22
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.22
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.22
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.22
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.22
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.22
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.22
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.22
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.22
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.22
COND3(false, 0, 0) → c4 702.70/218.22
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 : 702.70/218.22

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

(98) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.22
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.22
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.22
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.22
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.22
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.22
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.22
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)) 702.70/218.22
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
S tuples:

ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), p(s(0)), z0), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

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

cond1, cond2, cond3, 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, c4

702.70/218.23
702.70/218.23

(99) 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))
702.70/218.23
702.70/218.23

(100) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
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)) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
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)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
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)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
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)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

cond1, cond2, cond3, 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, c4

702.70/218.23
702.70/218.23

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

Removed 1 trailing nodes:

COND3(false, 0, 0) → c4
702.70/218.23
702.70/218.23

(102) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
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)) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
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)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
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)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
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)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1))
Defined Rule Symbols:

cond1, cond2, cond3, 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, c4

702.70/218.23
702.70/218.23

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

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

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

gr(s(z0), 0) → true 702.70/218.23
gr(0, z0) → false 702.70/218.23
add(0, z0) → z0 702.70/218.23
add(s(z0), z1) → s(add(z0, z1)) 702.70/218.23
p(s(z0)) → z0 702.70/218.23
p(0) → 0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
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)) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
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 : 702.70/218.23

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

(104) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
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)) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
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)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
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)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

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

cond1, cond2, cond3, 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, c4

702.70/218.23
702.70/218.23

(105) 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))
702.70/218.23
702.70/218.23

(106) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
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:

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

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

Removed 1 trailing nodes:

COND3(false, 0, 0) → c4
702.70/218.23
702.70/218.23

(108) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
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:

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

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

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

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:

add(0, z0) → z0 702.70/218.23
add(s(z0), z1) → s(add(z0, z1)) 702.70/218.23
gr(s(z0), 0) → true 702.70/218.23
gr(0, z0) → false 702.70/218.23
p(s(z0)) → z0 702.70/218.23
p(0) → 0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
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 : 702.70/218.23

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

(110) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
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:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

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

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

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

add(0, z0) → z0 702.70/218.23
add(s(z0), z1) → s(add(z0, z1)) 702.70/218.23
gr(s(z0), 0) → true 702.70/218.23
gr(0, z0) → false 702.70/218.23
p(s(z0)) → z0 702.70/218.23
p(0) → 0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
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 : 702.70/218.23

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

(112) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

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

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

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

add(0, z0) → z0 702.70/218.23
add(s(z0), z1) → s(add(z0, z1)) 702.70/218.23
gr(s(z0), 0) → true 702.70/218.23
gr(0, z0) → false 702.70/218.23
p(s(z0)) → z0 702.70/218.23
p(0) → 0
And the Tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
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 : 702.70/218.23

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

(114) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND2(true, 0, s(z0)) → c1(COND1(true, p(0), s(z0))) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

(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)))
702.70/218.23
702.70/218.23

(116) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND2(true, 0, s(z0)) → c1(COND1(true, 0, s(z0)))
S tuples:

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

(117) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

Removed 1 leading nodes:

COND2(true, 0, s(z0)) → c1(COND1(true, 0, s(z0)))
Removed 1 trailing nodes:

COND3(false, 0, 0) → c4
702.70/218.23
702.70/218.23

(118) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0))))
K tuples:

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

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

Used rewriting to replace COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) by COND3(true, s(z0), s(z1)) → c3(COND1(true, s(z0), z1), ADD(s(z0), s(z1)))
702.70/218.23
702.70/218.23

(120) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND3(true, s(z0), s(x1)) → c3(COND1(gr(s(add(z0, s(x1))), 0), s(z0), x1), ADD(s(z0), s(x1))) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(true, s(z0), s(z1)) → c3(COND1(true, s(z0), z1), ADD(s(z0), s(z1)))
S tuples:

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

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

Removed 1 trailing nodes:

COND3(false, 0, 0) → c4
702.70/218.23
702.70/218.23

(122) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), s(z0)) → c3(COND1(gr(s(add(x0, s(z0))), 0), s(x0), z0), ADD(s(x0), s(z0))) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(true, s(z0), s(z1)) → c3(COND1(true, s(z0), z1), ADD(s(z0), s(z1)))
S tuples:

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

(123) 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))
702.70/218.23
702.70/218.23

(124) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND3(true, 0, s(x1)) → c3(COND1(gr(s(x1), 0), 0, x1)) 702.70/218.23
COND3(true, s(x0), s(z0)) → c3(COND1(gr(s(add(x0, s(z0))), 0), s(x0), z0), ADD(s(x0), s(z0))) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(true, s(z0), s(z1)) → c3(COND1(true, s(z0), z1), ADD(s(z0), s(z1))) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
S tuples:

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

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

Removed 1 trailing nodes:

COND3(false, 0, 0) → c4
702.70/218.23
702.70/218.23

(126) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, 0) → c2(COND3(false, x0, 0)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND3(true, s(x0), s(z0)) → c3(COND1(gr(s(add(x0, s(z0))), 0), s(x0), z0), ADD(s(x0), s(z0))) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(true, s(z0), s(z1)) → c3(COND1(true, s(z0), z1), ADD(s(z0), s(z1))) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
S tuples:

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

(127) 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))
702.70/218.23
702.70/218.23

(128) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND3(true, s(x0), s(z0)) → c3(COND1(gr(s(add(x0, s(z0))), 0), s(x0), z0), ADD(s(x0), s(z0))) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(COND1(true, s(x0), x1), ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c4(COND1(gr(s(z0), 0), s(0), z0), ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c4(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(true, s(z0), s(z1)) → c3(COND1(true, s(z0), z1), ADD(s(z0), s(z1))) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0)) 702.70/218.23
COND2(false, 0, 0) → c2(COND3(false, 0, 0))
S tuples:

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

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

Split RHS of tuples not part of any SCC
702.70/218.23
702.70/218.23

(130) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND3(true, s(x0), s(z0)) → c3(COND1(gr(s(add(x0, s(z0))), 0), s(x0), z0), ADD(s(x0), s(z0))) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(true, s(z0), s(z1)) → c3(COND1(true, s(z0), z1), ADD(s(z0), s(z1))) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0)) 702.70/218.23
COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.23
COND3(false, s(x0), x1) → c8(COND1(true, s(x0), x1)) 702.70/218.23
COND3(false, s(x0), x1) → c8(ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0)) 702.70/218.23
COND3(false, s(0), z0) → c8(ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c8(ADD(s(s(z0)), z1))
S tuples:

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

(131) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

Removed 5 leading nodes:

COND3(false, s(x0), x1) → c8(COND1(true, s(x0), x1)) 702.70/218.23
COND3(false, s(x0), x1) → c4(ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(x0), x1) → c8(ADD(s(x0), x1)) 702.70/218.23
COND3(false, s(0), z0) → c8(ADD(s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c8(ADD(s(s(z0)), z1))
Removed 2 trailing nodes:

COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.23
COND3(false, 0, 0) → c4
702.70/218.23
702.70/218.23

(132) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND3(true, s(x0), s(z0)) → c3(COND1(gr(s(add(x0, s(z0))), 0), s(x0), z0), ADD(s(x0), s(z0))) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(true, s(z0), s(z1)) → c3(COND1(true, s(z0), z1), ADD(s(z0), s(z1))) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0)) 702.70/218.23
COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.23
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
S tuples:

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

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

Used rewriting to replace COND3(true, s(x0), s(z0)) → c3(COND1(gr(s(add(x0, s(z0))), 0), s(x0), z0), ADD(s(x0), s(z0))) by COND3(true, s(z0), s(z1)) → c3(COND1(true, s(z0), z1), ADD(s(z0), s(z1)))
702.70/218.23
702.70/218.23

(134) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(true, s(z0), s(z1)) → c3(COND1(true, s(z0), z1), ADD(s(z0), s(z1))) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0)) 702.70/218.23
COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.23
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
S tuples:

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

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

Removed 2 trailing nodes:

COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.23
COND3(false, 0, 0) → c4
702.70/218.23
702.70/218.23

(136) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(true, s(z0), s(z1)) → c3(COND1(true, s(z0), z1), ADD(s(z0), s(z1))) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0)) 702.70/218.23
COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.23
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1))
S tuples:

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.23
702.70/218.23

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

Used rewriting to replace COND3(true, s(0), z0) → c3(COND1(gr(s(z0), 0), s(0), p(z0)), ADD(s(0), z0)) by COND3(true, s(0), z0) → c3(COND1(true, s(0), p(z0)), ADD(s(0), z0))
702.70/218.23
702.70/218.23

(138) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.23
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.23
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.23
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.23
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.23
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.23
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.23
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)) 702.70/218.23
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.23
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.23
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0)) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.23
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.23
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.23
COND3(false, 0, 0) → c4 702.70/218.23
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.23
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.23
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1)) 702.70/218.23
COND3(true, s(z0), s(z1)) → c3(COND1(true, s(z0), z1), ADD(s(z0), s(z1))) 702.70/218.23
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0)) 702.70/218.23
COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.23
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0)) 702.70/218.23
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1)) 702.70/218.23
COND3(true, s(0), z0) → c3(COND1(true, s(0), p(z0)), ADD(s(0), z0))
S tuples:

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

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

Removed 2 trailing nodes:

COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.24
COND3(false, 0, 0) → c4
702.70/218.24
702.70/218.24

(140) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.24
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.24
COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.24
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1)) 702.70/218.24
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.24
COND2(true, 0, z0) → c1(COND1(gr(z0, 0), 0, z0)) 702.70/218.24
COND3(true, s(x0), x1) → c3(COND1(true, s(x0), p(x1)), ADD(s(x0), x1)) 702.70/218.24
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)) 702.70/218.24
COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.24
COND3(true, s(x0), 0) → c6(COND1(gr(s(add(x0, 0)), 0), s(x0), 0)) 702.70/218.24
COND3(true, 0, 0) → c3(COND1(gr(0, 0), 0, 0)) 702.70/218.24
COND3(true, 0, s(z0)) → c3(COND1(gr(s(z0), 0), 0, z0)) 702.70/218.24
COND3(true, 0, s(z0)) → c3(COND1(true, 0, p(s(z0)))) 702.70/218.24
COND3(true, 0, 0) → c5(COND1(gr(0, 0), 0, 0)) 702.70/218.24
COND3(true, s(z0), 0) → c5(COND1(gr(s(add(z0, 0)), 0), s(z0), 0)) 702.70/218.24
COND3(false, 0, 0) → c4 702.70/218.24
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.24
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.24
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1)) 702.70/218.24
COND3(true, s(z0), s(z1)) → c3(COND1(true, s(z0), z1), ADD(s(z0), s(z1))) 702.70/218.24
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0)) 702.70/218.24
COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.24
COND3(false, s(0), z0) → c8(COND1(gr(s(z0), 0), s(0), z0)) 702.70/218.24
COND3(false, s(s(z0)), z1) → c8(COND1(gr(s(s(add(z0, z1))), 0), s(s(z0)), z1)) 702.70/218.24
COND3(true, s(0), z0) → c3(COND1(true, s(0), p(z0)), ADD(s(0), z0))
S tuples:

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

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

Used rewriting to replace 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)) by COND3(true, s(s(z0)), z1) → c3(COND1(true, s(s(z0)), p(z1)), ADD(s(s(z0)), z1))
702.70/218.24
702.70/218.24

(142) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

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

Removed 2 trailing nodes:

COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.24
COND3(false, 0, 0) → c4
702.70/218.24
702.70/218.24

(144) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

(145) 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))
702.70/218.24
702.70/218.24

(146) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

(147) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

Removed 1 leading nodes:

COND3(true, s(z0), 0) → c6(COND1(true, s(z0), 0))
Removed 2 trailing nodes:

COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.24
COND3(false, 0, 0) → c4
702.70/218.24
702.70/218.24

(148) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

(149) 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))
702.70/218.24
702.70/218.24

(150) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

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

Removed 1 trailing tuple parts
702.70/218.24
702.70/218.24

(152) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

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

Removed 3 trailing nodes:

COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.24
COND3(true, 0, 0) → c3 702.70/218.24
COND3(false, 0, 0) → c4
702.70/218.24
702.70/218.24

(154) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

(155) 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))
702.70/218.24
702.70/218.24

(156) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

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

Removed 2 trailing nodes:

COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.24
COND3(false, 0, 0) → c4
702.70/218.24
702.70/218.24

(158) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.24
COND3(false, 0, 0) → c4 702.70/218.24
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.24
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.24
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1)) 702.70/218.24
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.24
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

(159) 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))
702.70/218.24
702.70/218.24

(160) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.24
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.24
COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.24
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.24
COND3(false, 0, 0) → c4 702.70/218.24
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.24
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.24
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1)) 702.70/218.24
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.24
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

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

Removed 2 trailing nodes:

COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.24
COND3(false, 0, 0) → c4
702.70/218.24
702.70/218.24

(162) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.24
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.24
COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.24
COND3(true, 0, s(z0)) → c3(COND1(true, 0, z0))
K tuples:

GR(s(z0), s(z1)) → c7(GR(z0, z1)) 702.70/218.24
COND3(false, 0, 0) → c4 702.70/218.24
COND2(true, s(z0), z1) → c1(COND1(true, z0, z1), ADD(s(z0), z1)) 702.70/218.24
COND2(true, s(0), z0) → c1(COND1(gr(s(z0), 0), 0, z0), ADD(s(0), z0)) 702.70/218.24
COND2(true, s(s(z0)), z1) → c1(COND1(gr(s(s(add(z0, z1))), 0), s(z0), z1), ADD(s(s(z0)), z1)) 702.70/218.24
ADD(s(z0), z1) → c9(ADD(z0, z1)) 702.70/218.24
COND1(true, s(z0), x1) → c(COND2(true, s(z0), x1))
Defined Rule Symbols:

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

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

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

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

p(0) → 0 702.70/218.24
p(s(z0)) → z0 702.70/218.24
add(0, z0) → z0 702.70/218.24
add(s(z0), z1) → s(add(z0, z1)) 702.70/218.24
gr(s(z0), 0) → true 702.70/218.24
gr(0, z0) → false
And the Tuples:

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

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

(164) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.24
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.24
COND2(false, 0, 0) → c2(COND3(false, 0, 0))
K tuples:

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

(165) 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))
702.70/218.24
702.70/218.24

(166) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.24
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.24
COND2(false, 0, 0) → c2(COND3(false, 0, 0))
K tuples:

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

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

Removed 1 trailing tuple parts
702.70/218.24
702.70/218.24

(168) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.24
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.24
COND2(false, 0, 0) → c2(COND3(false, 0, 0))
K tuples:

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

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

Removed 3 trailing nodes:

COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.24
COND3(true, 0, 0) → c5 702.70/218.24
COND3(false, 0, 0) → c4
702.70/218.24
702.70/218.24

(170) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.24
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0))) 702.70/218.24
COND2(false, 0, 0) → c2(COND3(false, 0, 0))
K tuples:

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

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

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

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

p(0) → 0 702.70/218.24
p(s(z0)) → z0 702.70/218.24
add(0, z0) → z0 702.70/218.24
add(s(z0), z1) → s(add(z0, z1)) 702.70/218.24
gr(s(z0), 0) → true 702.70/218.24
gr(0, z0) → false
And the Tuples:

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

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

(172) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

COND1(true, 0, x1) → c(COND2(false, 0, x1)) 702.70/218.24
COND2(false, x0, s(z0)) → c2(COND3(true, x0, s(z0)))
K tuples:

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

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

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

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

p(0) → 0 702.70/218.24
p(s(z0)) → z0 702.70/218.24
add(0, z0) → z0 702.70/218.24
add(s(z0), z1) → s(add(z0, z1)) 702.70/218.24
gr(s(z0), 0) → true 702.70/218.24
gr(0, z0) → false
And the Tuples:

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

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

(174) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

(175) 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)))
702.70/218.24
702.70/218.24

(176) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

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

Split RHS of tuples not part of any SCC
702.70/218.24
702.70/218.24

(178) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

(179) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

Removed 6 leading nodes:

COND3(true, s(x0), x1) → c3(ADD(s(x0), x1)) 702.70/218.24
COND3(true, s(z0), s(z1)) → c6(COND1(true, s(z0), z1)) 702.70/218.24
COND3(true, s(x0), x1) → c6(ADD(s(x0), x1)) 702.70/218.24
COND3(true, s(z0), s(z1)) → c6(ADD(s(z0), s(z1))) 702.70/218.24
COND3(true, s(0), z0) → c6(ADD(s(0), z0)) 702.70/218.24
COND3(true, s(s(z0)), z1) → c6(ADD(s(s(z0)), z1))
Removed 2 trailing nodes:

COND2(false, 0, 0) → c2(COND3(false, 0, 0)) 702.70/218.24
COND3(false, 0, 0) → c4
702.70/218.24
702.70/218.24

(180) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

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

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

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

p(0) → 0 702.70/218.24
p(s(z0)) → z0 702.70/218.24
gr(s(z0), 0) → true 702.70/218.24
gr(0, z0) → false 702.70/218.24
add(0, z0) → z0 702.70/218.24
add(s(z0), z1) → s(add(z0, z1))
And the Tuples:

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

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

(182) Obligation:

Complexity Dependency Tuples Problem
Rules:

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

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

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

cond1, cond2, cond3, gr, add, p

Defined Pair Symbols:

GR, ADD, COND1, COND2, COND3

Compound Symbols:

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

702.70/218.24
702.70/218.24

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

The set S is empty
702.70/218.24
702.70/218.24

(184) BOUNDS(O(1), O(1))

702.70/218.24
702.70/218.24
703.02/218.33 EOF