### (0) Obligation:

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

h(e(x), y) → h(d(x, y), s(y))
d(g(g(0, x), y), s(z)) → g(e(x), d(g(g(0, x), y), z))
d(g(g(0, x), y), 0) → e(y)
d(g(0, x), y) → e(x)
d(g(x, y), z) → g(d(x, z), e(y))
g(e(x), e(y)) → e(g(x, y))

Rewrite Strategy: INNERMOST

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

Converted Cpx (relative) TRS to CDT

### (2) Obligation:

Complexity Dependency Tuples Problem
Rules:

h(e(z0), z1) → h(d(z0, z1), s(z1))
d(g(g(0, z0), z1), s(z2)) → g(e(z0), d(g(g(0, z0), z1), z2))
d(g(g(0, z0), z1), 0) → e(z1)
d(g(0, z0), z1) → e(z0)
d(g(z0, z1), z2) → g(d(z0, z2), e(z1))
g(e(z0), e(z1)) → e(g(z0, z1))
Tuples:

H(e(z0), z1) → c(H(d(z0, z1), s(z1)), D(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2), G(g(0, z0), z1), G(0, z0))
D(g(g(0, z0), z1), 0) → c2
D(g(0, z0), z1) → c3
D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
S tuples:

H(e(z0), z1) → c(H(d(z0, z1), s(z1)), D(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2), G(g(0, z0), z1), G(0, z0))
D(g(g(0, z0), z1), 0) → c2
D(g(0, z0), z1) → c3
D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
K tuples:none
Defined Rule Symbols:

h, d, g

Defined Pair Symbols:

H, D, G

Compound Symbols:

c, c1, c2, c3, c4, c5

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

Removed 2 trailing nodes:

D(g(g(0, z0), z1), 0) → c2
D(g(0, z0), z1) → c3

### (4) Obligation:

Complexity Dependency Tuples Problem
Rules:

h(e(z0), z1) → h(d(z0, z1), s(z1))
d(g(g(0, z0), z1), s(z2)) → g(e(z0), d(g(g(0, z0), z1), z2))
d(g(g(0, z0), z1), 0) → e(z1)
d(g(0, z0), z1) → e(z0)
d(g(z0, z1), z2) → g(d(z0, z2), e(z1))
g(e(z0), e(z1)) → e(g(z0, z1))
Tuples:

H(e(z0), z1) → c(H(d(z0, z1), s(z1)), D(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2), G(g(0, z0), z1), G(0, z0))
D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
S tuples:

H(e(z0), z1) → c(H(d(z0, z1), s(z1)), D(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2), G(g(0, z0), z1), G(0, z0))
D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
K tuples:none
Defined Rule Symbols:

h, d, g

Defined Pair Symbols:

H, D, G

Compound Symbols:

c, c1, c4, c5

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

Removed 2 trailing tuple parts

### (6) Obligation:

Complexity Dependency Tuples Problem
Rules:

h(e(z0), z1) → h(d(z0, z1), s(z1))
d(g(g(0, z0), z1), s(z2)) → g(e(z0), d(g(g(0, z0), z1), z2))
d(g(g(0, z0), z1), 0) → e(z1)
d(g(0, z0), z1) → e(z0)
d(g(z0, z1), z2) → g(d(z0, z2), e(z1))
g(e(z0), e(z1)) → e(g(z0, z1))
Tuples:

H(e(z0), z1) → c(H(d(z0, z1), s(z1)), D(z0, z1))
D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2))
S tuples:

H(e(z0), z1) → c(H(d(z0, z1), s(z1)), D(z0, z1))
D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2))
K tuples:none
Defined Rule Symbols:

h, d, g

Defined Pair Symbols:

H, D, G

Compound Symbols:

c, c4, c5, c1

### (7) CdtUsableRulesProof (EQUIVALENT transformation)

The following rules are not usable and were removed:

h(e(z0), z1) → h(d(z0, z1), s(z1))

### (8) Obligation:

Complexity Dependency Tuples Problem
Rules:

d(g(g(0, z0), z1), s(z2)) → g(e(z0), d(g(g(0, z0), z1), z2))
d(g(g(0, z0), z1), 0) → e(z1)
d(g(0, z0), z1) → e(z0)
d(g(z0, z1), z2) → g(d(z0, z2), e(z1))
g(e(z0), e(z1)) → e(g(z0, z1))
Tuples:

H(e(z0), z1) → c(H(d(z0, z1), s(z1)), D(z0, z1))
D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2))
S tuples:

H(e(z0), z1) → c(H(d(z0, z1), s(z1)), D(z0, z1))
D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2))
K tuples:none
Defined Rule Symbols:

d, g

Defined Pair Symbols:

H, D, G

Compound Symbols:

c, c4, c5, c1

### (9) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace H(e(z0), z1) → c(H(d(z0, z1), s(z1)), D(z0, z1)) by

H(e(g(g(0, z0), z1)), s(z2)) → c(H(g(e(z0), d(g(g(0, z0), z1), z2)), s(s(z2))), D(g(g(0, z0), z1), s(z2)))
H(e(g(g(0, z0), z1)), 0) → c(H(e(z1), s(0)), D(g(g(0, z0), z1), 0))
H(e(g(0, z0)), z1) → c(H(e(z0), s(z1)), D(g(0, z0), z1))
H(e(g(z0, z1)), z2) → c(H(g(d(z0, z2), e(z1)), s(z2)), D(g(z0, z1), z2))

### (10) Obligation:

Complexity Dependency Tuples Problem
Rules:

d(g(g(0, z0), z1), s(z2)) → g(e(z0), d(g(g(0, z0), z1), z2))
d(g(g(0, z0), z1), 0) → e(z1)
d(g(0, z0), z1) → e(z0)
d(g(z0, z1), z2) → g(d(z0, z2), e(z1))
g(e(z0), e(z1)) → e(g(z0, z1))
Tuples:

D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2))
H(e(g(g(0, z0), z1)), s(z2)) → c(H(g(e(z0), d(g(g(0, z0), z1), z2)), s(s(z2))), D(g(g(0, z0), z1), s(z2)))
H(e(g(g(0, z0), z1)), 0) → c(H(e(z1), s(0)), D(g(g(0, z0), z1), 0))
H(e(g(0, z0)), z1) → c(H(e(z0), s(z1)), D(g(0, z0), z1))
H(e(g(z0, z1)), z2) → c(H(g(d(z0, z2), e(z1)), s(z2)), D(g(z0, z1), z2))
S tuples:

D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2))
H(e(g(g(0, z0), z1)), s(z2)) → c(H(g(e(z0), d(g(g(0, z0), z1), z2)), s(s(z2))), D(g(g(0, z0), z1), s(z2)))
H(e(g(g(0, z0), z1)), 0) → c(H(e(z1), s(0)), D(g(g(0, z0), z1), 0))
H(e(g(0, z0)), z1) → c(H(e(z0), s(z1)), D(g(0, z0), z1))
H(e(g(z0, z1)), z2) → c(H(g(d(z0, z2), e(z1)), s(z2)), D(g(z0, z1), z2))
K tuples:none
Defined Rule Symbols:

d, g

Defined Pair Symbols:

D, G, H

Compound Symbols:

c4, c5, c1, c

### (11) CdtLeafRemovalProof (ComplexityIfPolyImplication transformation)

H(e(g(g(0, z0), z1)), 0) → c(H(e(z1), s(0)), D(g(g(0, z0), z1), 0))

### (12) Obligation:

Complexity Dependency Tuples Problem
Rules:

d(g(g(0, z0), z1), s(z2)) → g(e(z0), d(g(g(0, z0), z1), z2))
d(g(g(0, z0), z1), 0) → e(z1)
d(g(0, z0), z1) → e(z0)
d(g(z0, z1), z2) → g(d(z0, z2), e(z1))
g(e(z0), e(z1)) → e(g(z0, z1))
Tuples:

D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2))
H(e(g(g(0, z0), z1)), s(z2)) → c(H(g(e(z0), d(g(g(0, z0), z1), z2)), s(s(z2))), D(g(g(0, z0), z1), s(z2)))
H(e(g(0, z0)), z1) → c(H(e(z0), s(z1)), D(g(0, z0), z1))
H(e(g(z0, z1)), z2) → c(H(g(d(z0, z2), e(z1)), s(z2)), D(g(z0, z1), z2))
S tuples:

D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2))
H(e(g(g(0, z0), z1)), s(z2)) → c(H(g(e(z0), d(g(g(0, z0), z1), z2)), s(s(z2))), D(g(g(0, z0), z1), s(z2)))
H(e(g(0, z0)), z1) → c(H(e(z0), s(z1)), D(g(0, z0), z1))
H(e(g(z0, z1)), z2) → c(H(g(d(z0, z2), e(z1)), s(z2)), D(g(z0, z1), z2))
K tuples:none
Defined Rule Symbols:

d, g

Defined Pair Symbols:

D, G, H

Compound Symbols:

c4, c5, c1, c

### (13) CdtUnreachableProof (EQUIVALENT transformation)

The following tuples could be removed as they are not reachable from basic start terms:

D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2))
H(e(g(g(0, z0), z1)), s(z2)) → c(H(g(e(z0), d(g(g(0, z0), z1), z2)), s(s(z2))), D(g(g(0, z0), z1), s(z2)))
H(e(g(0, z0)), z1) → c(H(e(z0), s(z1)), D(g(0, z0), z1))
H(e(g(z0, z1)), z2) → c(H(g(d(z0, z2), e(z1)), s(z2)), D(g(z0, z1), z2))

### (14) Obligation:

Complexity Dependency Tuples Problem
Rules:

d(g(g(0, z0), z1), s(z2)) → g(e(z0), d(g(g(0, z0), z1), z2))
d(g(g(0, z0), z1), 0) → e(z1)
d(g(0, z0), z1) → e(z0)
d(g(z0, z1), z2) → g(d(z0, z2), e(z1))
g(e(z0), e(z1)) → e(g(z0, z1))
Tuples:

G(e(z0), e(z1)) → c5(G(z0, z1))
S tuples:

G(e(z0), e(z1)) → c5(G(z0, z1))
K tuples:none
Defined Rule Symbols:

d, g

Defined Pair Symbols:

G

Compound Symbols:

c5

### (15) CdtUsableRulesProof (EQUIVALENT transformation)

The following rules are not usable and were removed:

d(g(g(0, z0), z1), s(z2)) → g(e(z0), d(g(g(0, z0), z1), z2))
d(g(g(0, z0), z1), 0) → e(z1)
d(g(0, z0), z1) → e(z0)
d(g(z0, z1), z2) → g(d(z0, z2), e(z1))
g(e(z0), e(z1)) → e(g(z0, z1))

### (16) Obligation:

Complexity Dependency Tuples Problem
Rules:none
Tuples:

G(e(z0), e(z1)) → c5(G(z0, z1))
S tuples:

G(e(z0), e(z1)) → c5(G(z0, z1))
K tuples:none
Defined Rule Symbols:none

Defined Pair Symbols:

G

Compound Symbols:

c5

### (17) CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))) transformation)

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

G(e(z0), e(z1)) → c5(G(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:

G(e(z0), e(z1)) → c5(G(z0, z1))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(G(x1, x2)) = [2]x1
POL(c5(x1)) = x1
POL(e(x1)) = [1] + x1

### (18) Obligation:

Complexity Dependency Tuples Problem
Rules:none
Tuples:

G(e(z0), e(z1)) → c5(G(z0, z1))
S tuples:none
K tuples:

G(e(z0), e(z1)) → c5(G(z0, z1))
Defined Rule Symbols:none

Defined Pair Symbols:

G

Compound Symbols:

c5

### (19) SIsEmptyProof (BOTH BOUNDS(ID, ID) transformation)

The set S is empty