(0) Obligation:

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

plus(s(X), plus(Y, Z)) → plus(X, plus(s(s(Y)), Z))
plus(s(X1), plus(X2, plus(X3, X4))) → plus(X1, plus(X3, plus(X2, X4)))

Rewrite Strategy: INNERMOST

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

Converted CpxTRS to CDT

(2) Obligation:

Complexity Dependency Tuples Problem
Rules:

plus(s(z0), plus(z1, z2)) → plus(z0, plus(s(s(z1)), z2))
plus(s(z0), plus(z1, plus(z2, z3))) → plus(z0, plus(z2, plus(z1, z3)))
Tuples:

PLUS(s(z0), plus(z1, z2)) → c(PLUS(z0, plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
S tuples:

PLUS(s(z0), plus(z1, z2)) → c(PLUS(z0, plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
K tuples:none
Defined Rule Symbols:

plus

Defined Pair Symbols:

PLUS

Compound Symbols:

c, c1

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

Use forward instantiation to replace PLUS(s(z0), plus(z1, z2)) → c(PLUS(z0, plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2)) by

PLUS(s(s(y0)), plus(z1, z2)) → c(PLUS(s(y0), plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(z0), plus(z1, plus(y1, y2))) → c(PLUS(z0, plus(s(s(z1)), plus(y1, y2))), PLUS(s(s(z1)), plus(y1, y2)))
PLUS(s(z0), plus(z1, plus(y1, plus(y2, y3)))) → c(PLUS(z0, plus(s(s(z1)), plus(y1, plus(y2, y3)))), PLUS(s(s(z1)), plus(y1, plus(y2, y3))))

(4) Obligation:

Complexity Dependency Tuples Problem
Rules:

plus(s(z0), plus(z1, z2)) → plus(z0, plus(s(s(z1)), z2))
plus(s(z0), plus(z1, plus(z2, z3))) → plus(z0, plus(z2, plus(z1, z3)))
Tuples:

PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
PLUS(s(s(y0)), plus(z1, z2)) → c(PLUS(s(y0), plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(z0), plus(z1, plus(y1, y2))) → c(PLUS(z0, plus(s(s(z1)), plus(y1, y2))), PLUS(s(s(z1)), plus(y1, y2)))
PLUS(s(z0), plus(z1, plus(y1, plus(y2, y3)))) → c(PLUS(z0, plus(s(s(z1)), plus(y1, plus(y2, y3)))), PLUS(s(s(z1)), plus(y1, plus(y2, y3))))
S tuples:

PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
PLUS(s(s(y0)), plus(z1, z2)) → c(PLUS(s(y0), plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(z0), plus(z1, plus(y1, y2))) → c(PLUS(z0, plus(s(s(z1)), plus(y1, y2))), PLUS(s(s(z1)), plus(y1, y2)))
PLUS(s(z0), plus(z1, plus(y1, plus(y2, y3)))) → c(PLUS(z0, plus(s(s(z1)), plus(y1, plus(y2, y3)))), PLUS(s(s(z1)), plus(y1, plus(y2, y3))))
K tuples:none
Defined Rule Symbols:

plus

Defined Pair Symbols:

PLUS

Compound Symbols:

c1, c

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

Use narrowing to replace PLUS(s(z0), plus(z1, plus(y1, y2))) → c(PLUS(z0, plus(s(s(z1)), plus(y1, y2))), PLUS(s(s(z1)), plus(y1, y2))) by

PLUS(s(x0), plus(x1, plus(z1, z2))) → c(PLUS(x0, plus(s(x1), plus(s(s(z1)), z2))), PLUS(s(s(x1)), plus(z1, z2)))
PLUS(s(x0), plus(x1, plus(z1, plus(z2, z3)))) → c(PLUS(x0, plus(s(x1), plus(z2, plus(z1, z3)))), PLUS(s(s(x1)), plus(z1, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, x3))) → c(PLUS(s(s(x1)), plus(x2, x3)))

(6) Obligation:

Complexity Dependency Tuples Problem
Rules:

plus(s(z0), plus(z1, z2)) → plus(z0, plus(s(s(z1)), z2))
plus(s(z0), plus(z1, plus(z2, z3))) → plus(z0, plus(z2, plus(z1, z3)))
Tuples:

PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
PLUS(s(s(y0)), plus(z1, z2)) → c(PLUS(s(y0), plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(z0), plus(z1, plus(y1, plus(y2, y3)))) → c(PLUS(z0, plus(s(s(z1)), plus(y1, plus(y2, y3)))), PLUS(s(s(z1)), plus(y1, plus(y2, y3))))
PLUS(s(x0), plus(x1, plus(z1, z2))) → c(PLUS(x0, plus(s(x1), plus(s(s(z1)), z2))), PLUS(s(s(x1)), plus(z1, z2)))
PLUS(s(x0), plus(x1, plus(z1, plus(z2, z3)))) → c(PLUS(x0, plus(s(x1), plus(z2, plus(z1, z3)))), PLUS(s(s(x1)), plus(z1, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, x3))) → c(PLUS(s(s(x1)), plus(x2, x3)))
S tuples:

PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
PLUS(s(s(y0)), plus(z1, z2)) → c(PLUS(s(y0), plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(z0), plus(z1, plus(y1, plus(y2, y3)))) → c(PLUS(z0, plus(s(s(z1)), plus(y1, plus(y2, y3)))), PLUS(s(s(z1)), plus(y1, plus(y2, y3))))
PLUS(s(x0), plus(x1, plus(z1, z2))) → c(PLUS(x0, plus(s(x1), plus(s(s(z1)), z2))), PLUS(s(s(x1)), plus(z1, z2)))
PLUS(s(x0), plus(x1, plus(z1, plus(z2, z3)))) → c(PLUS(x0, plus(s(x1), plus(z2, plus(z1, z3)))), PLUS(s(s(x1)), plus(z1, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, x3))) → c(PLUS(s(s(x1)), plus(x2, x3)))
K tuples:none
Defined Rule Symbols:

plus

Defined Pair Symbols:

PLUS

Compound Symbols:

c1, c, c

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

Use narrowing to replace PLUS(s(z0), plus(z1, plus(y1, plus(y2, y3)))) → c(PLUS(z0, plus(s(s(z1)), plus(y1, plus(y2, y3)))), PLUS(s(s(z1)), plus(y1, plus(y2, y3)))) by

PLUS(s(x0), plus(x1, plus(z1, plus(x3, x4)))) → c(PLUS(x0, plus(s(x1), plus(s(s(z1)), plus(x3, x4)))), PLUS(s(s(x1)), plus(z1, plus(x3, x4))))
PLUS(s(x0), plus(x1, plus(z1, plus(z2, z3)))) → c(PLUS(x0, plus(s(x1), plus(z2, plus(z1, z3)))), PLUS(s(s(x1)), plus(z1, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, plus(x3, x4)))) → c(PLUS(s(s(x1)), plus(x2, plus(x3, x4))))

(8) Obligation:

Complexity Dependency Tuples Problem
Rules:

plus(s(z0), plus(z1, z2)) → plus(z0, plus(s(s(z1)), z2))
plus(s(z0), plus(z1, plus(z2, z3))) → plus(z0, plus(z2, plus(z1, z3)))
Tuples:

PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
PLUS(s(s(y0)), plus(z1, z2)) → c(PLUS(s(y0), plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(x0), plus(x1, plus(z1, z2))) → c(PLUS(x0, plus(s(x1), plus(s(s(z1)), z2))), PLUS(s(s(x1)), plus(z1, z2)))
PLUS(s(x0), plus(x1, plus(z1, plus(z2, z3)))) → c(PLUS(x0, plus(s(x1), plus(z2, plus(z1, z3)))), PLUS(s(s(x1)), plus(z1, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, x3))) → c(PLUS(s(s(x1)), plus(x2, x3)))
PLUS(s(x0), plus(x1, plus(z1, plus(x3, x4)))) → c(PLUS(x0, plus(s(x1), plus(s(s(z1)), plus(x3, x4)))), PLUS(s(s(x1)), plus(z1, plus(x3, x4))))
PLUS(s(x0), plus(x1, plus(x2, plus(x3, x4)))) → c(PLUS(s(s(x1)), plus(x2, plus(x3, x4))))
S tuples:

PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
PLUS(s(s(y0)), plus(z1, z2)) → c(PLUS(s(y0), plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(x0), plus(x1, plus(z1, z2))) → c(PLUS(x0, plus(s(x1), plus(s(s(z1)), z2))), PLUS(s(s(x1)), plus(z1, z2)))
PLUS(s(x0), plus(x1, plus(z1, plus(z2, z3)))) → c(PLUS(x0, plus(s(x1), plus(z2, plus(z1, z3)))), PLUS(s(s(x1)), plus(z1, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, x3))) → c(PLUS(s(s(x1)), plus(x2, x3)))
PLUS(s(x0), plus(x1, plus(z1, plus(x3, x4)))) → c(PLUS(x0, plus(s(x1), plus(s(s(z1)), plus(x3, x4)))), PLUS(s(s(x1)), plus(z1, plus(x3, x4))))
PLUS(s(x0), plus(x1, plus(x2, plus(x3, x4)))) → c(PLUS(s(s(x1)), plus(x2, plus(x3, x4))))
K tuples:none
Defined Rule Symbols:

plus

Defined Pair Symbols:

PLUS

Compound Symbols:

c1, c, c

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

Use narrowing to replace PLUS(s(x0), plus(x1, plus(z1, z2))) → c(PLUS(x0, plus(s(x1), plus(s(s(z1)), z2))), PLUS(s(s(x1)), plus(z1, z2))) by

PLUS(s(x0), plus(z0, plus(x2, z2))) → c(PLUS(x0, plus(z0, plus(s(s(s(s(x2)))), z2))), PLUS(s(s(z0)), plus(x2, z2)))
PLUS(s(x0), plus(z0, plus(x2, plus(z2, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(s(s(x2)), z3)))), PLUS(s(s(z0)), plus(x2, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, z2)))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(x2, plus(z1, z2))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, plus(z2, z3))))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(z2, plus(z1, z3))))), PLUS(s(s(x1)), plus(x2, plus(z1, plus(z2, z3)))))
PLUS(s(x0), plus(x1, plus(x2, x3))) → c(PLUS(s(s(x1)), plus(x2, x3)))

(10) Obligation:

Complexity Dependency Tuples Problem
Rules:

plus(s(z0), plus(z1, z2)) → plus(z0, plus(s(s(z1)), z2))
plus(s(z0), plus(z1, plus(z2, z3))) → plus(z0, plus(z2, plus(z1, z3)))
Tuples:

PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
PLUS(s(s(y0)), plus(z1, z2)) → c(PLUS(s(y0), plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(x0), plus(x1, plus(z1, plus(z2, z3)))) → c(PLUS(x0, plus(s(x1), plus(z2, plus(z1, z3)))), PLUS(s(s(x1)), plus(z1, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, x3))) → c(PLUS(s(s(x1)), plus(x2, x3)))
PLUS(s(x0), plus(x1, plus(z1, plus(x3, x4)))) → c(PLUS(x0, plus(s(x1), plus(s(s(z1)), plus(x3, x4)))), PLUS(s(s(x1)), plus(z1, plus(x3, x4))))
PLUS(s(x0), plus(x1, plus(x2, plus(x3, x4)))) → c(PLUS(s(s(x1)), plus(x2, plus(x3, x4))))
PLUS(s(x0), plus(z0, plus(x2, z2))) → c(PLUS(x0, plus(z0, plus(s(s(s(s(x2)))), z2))), PLUS(s(s(z0)), plus(x2, z2)))
PLUS(s(x0), plus(z0, plus(x2, plus(z2, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(s(s(x2)), z3)))), PLUS(s(s(z0)), plus(x2, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, z2)))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(x2, plus(z1, z2))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, plus(z2, z3))))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(z2, plus(z1, z3))))), PLUS(s(s(x1)), plus(x2, plus(z1, plus(z2, z3)))))
S tuples:

PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
PLUS(s(s(y0)), plus(z1, z2)) → c(PLUS(s(y0), plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(x0), plus(x1, plus(z1, plus(z2, z3)))) → c(PLUS(x0, plus(s(x1), plus(z2, plus(z1, z3)))), PLUS(s(s(x1)), plus(z1, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, x3))) → c(PLUS(s(s(x1)), plus(x2, x3)))
PLUS(s(x0), plus(x1, plus(z1, plus(x3, x4)))) → c(PLUS(x0, plus(s(x1), plus(s(s(z1)), plus(x3, x4)))), PLUS(s(s(x1)), plus(z1, plus(x3, x4))))
PLUS(s(x0), plus(x1, plus(x2, plus(x3, x4)))) → c(PLUS(s(s(x1)), plus(x2, plus(x3, x4))))
PLUS(s(x0), plus(z0, plus(x2, z2))) → c(PLUS(x0, plus(z0, plus(s(s(s(s(x2)))), z2))), PLUS(s(s(z0)), plus(x2, z2)))
PLUS(s(x0), plus(z0, plus(x2, plus(z2, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(s(s(x2)), z3)))), PLUS(s(s(z0)), plus(x2, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, z2)))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(x2, plus(z1, z2))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, plus(z2, z3))))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(z2, plus(z1, z3))))), PLUS(s(s(x1)), plus(x2, plus(z1, plus(z2, z3)))))
K tuples:none
Defined Rule Symbols:

plus

Defined Pair Symbols:

PLUS

Compound Symbols:

c1, c, c

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

Use narrowing to replace PLUS(s(x0), plus(x1, plus(z1, plus(z2, z3)))) → c(PLUS(x0, plus(s(x1), plus(z2, plus(z1, z3)))), PLUS(s(s(x1)), plus(z1, plus(z2, z3)))) by

PLUS(s(x0), plus(z0, plus(x2, plus(z1, x4)))) → c(PLUS(x0, plus(z0, plus(s(s(z1)), plus(x2, x4)))), PLUS(s(s(z0)), plus(x2, plus(z1, x4))))
PLUS(s(x0), plus(z0, plus(z2, plus(z1, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(z1, z3)))), PLUS(s(s(z0)), plus(z2, plus(z1, z3))))
PLUS(s(x0), plus(x1, plus(z1, plus(s(z0), z2)))) → c(PLUS(x0, plus(s(x1), plus(z0, plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(z1, plus(s(z0), z2))))
PLUS(s(x0), plus(x1, plus(x2, plus(x3, x4)))) → c(PLUS(s(s(x1)), plus(x2, plus(x3, x4))))

(12) Obligation:

Complexity Dependency Tuples Problem
Rules:

plus(s(z0), plus(z1, z2)) → plus(z0, plus(s(s(z1)), z2))
plus(s(z0), plus(z1, plus(z2, z3))) → plus(z0, plus(z2, plus(z1, z3)))
Tuples:

PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
PLUS(s(s(y0)), plus(z1, z2)) → c(PLUS(s(y0), plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(x0), plus(x1, plus(z1, plus(z2, z3)))) → c(PLUS(x0, plus(s(x1), plus(z2, plus(z1, z3)))), PLUS(s(s(x1)), plus(z1, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, x3))) → c(PLUS(s(s(x1)), plus(x2, x3)))
PLUS(s(x0), plus(x1, plus(z1, plus(x3, x4)))) → c(PLUS(x0, plus(s(x1), plus(s(s(z1)), plus(x3, x4)))), PLUS(s(s(x1)), plus(z1, plus(x3, x4))))
PLUS(s(x0), plus(x1, plus(x2, plus(x3, x4)))) → c(PLUS(s(s(x1)), plus(x2, plus(x3, x4))))
PLUS(s(x0), plus(z0, plus(x2, z2))) → c(PLUS(x0, plus(z0, plus(s(s(s(s(x2)))), z2))), PLUS(s(s(z0)), plus(x2, z2)))
PLUS(s(x0), plus(z0, plus(x2, plus(z2, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(s(s(x2)), z3)))), PLUS(s(s(z0)), plus(x2, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, z2)))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(x2, plus(z1, z2))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, plus(z2, z3))))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(z2, plus(z1, z3))))), PLUS(s(s(x1)), plus(x2, plus(z1, plus(z2, z3)))))
PLUS(s(x0), plus(z0, plus(x2, plus(z1, x4)))) → c(PLUS(x0, plus(z0, plus(s(s(z1)), plus(x2, x4)))), PLUS(s(s(z0)), plus(x2, plus(z1, x4))))
PLUS(s(x0), plus(z0, plus(z2, plus(z1, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(z1, z3)))), PLUS(s(s(z0)), plus(z2, plus(z1, z3))))
PLUS(s(x0), plus(x1, plus(z1, plus(s(z0), z2)))) → c(PLUS(x0, plus(s(x1), plus(z0, plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(z1, plus(s(z0), z2))))
S tuples:

PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
PLUS(s(s(y0)), plus(z1, z2)) → c(PLUS(s(y0), plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(x0), plus(x1, plus(x2, x3))) → c(PLUS(s(s(x1)), plus(x2, x3)))
PLUS(s(x0), plus(x1, plus(z1, plus(x3, x4)))) → c(PLUS(x0, plus(s(x1), plus(s(s(z1)), plus(x3, x4)))), PLUS(s(s(x1)), plus(z1, plus(x3, x4))))
PLUS(s(x0), plus(x1, plus(x2, plus(x3, x4)))) → c(PLUS(s(s(x1)), plus(x2, plus(x3, x4))))
PLUS(s(x0), plus(z0, plus(x2, z2))) → c(PLUS(x0, plus(z0, plus(s(s(s(s(x2)))), z2))), PLUS(s(s(z0)), plus(x2, z2)))
PLUS(s(x0), plus(z0, plus(x2, plus(z2, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(s(s(x2)), z3)))), PLUS(s(s(z0)), plus(x2, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, z2)))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(x2, plus(z1, z2))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, plus(z2, z3))))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(z2, plus(z1, z3))))), PLUS(s(s(x1)), plus(x2, plus(z1, plus(z2, z3)))))
PLUS(s(x0), plus(z0, plus(x2, plus(z1, x4)))) → c(PLUS(x0, plus(z0, plus(s(s(z1)), plus(x2, x4)))), PLUS(s(s(z0)), plus(x2, plus(z1, x4))))
PLUS(s(x0), plus(z0, plus(z2, plus(z1, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(z1, z3)))), PLUS(s(s(z0)), plus(z2, plus(z1, z3))))
PLUS(s(x0), plus(x1, plus(z1, plus(s(z0), z2)))) → c(PLUS(x0, plus(s(x1), plus(z0, plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(z1, plus(s(z0), z2))))
K tuples:none
Defined Rule Symbols:

plus

Defined Pair Symbols:

PLUS

Compound Symbols:

c1, c, c

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

Use narrowing to replace PLUS(s(x0), plus(x1, plus(z1, plus(x3, x4)))) → c(PLUS(x0, plus(s(x1), plus(s(s(z1)), plus(x3, x4)))), PLUS(s(s(x1)), plus(z1, plus(x3, x4)))) by

PLUS(s(x0), plus(z0, plus(x2, plus(x3, x4)))) → c(PLUS(x0, plus(z0, plus(s(s(s(s(x2)))), plus(x3, x4)))), PLUS(s(s(z0)), plus(x2, plus(x3, x4))))
PLUS(s(x0), plus(z0, plus(x2, plus(z2, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(s(s(x2)), z3)))), PLUS(s(s(z0)), plus(x2, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, z2)))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(x2, plus(z1, z2))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, plus(z2, z3))))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(z2, plus(z1, z3))))), PLUS(s(s(x1)), plus(x2, plus(z1, plus(z2, z3)))))
PLUS(s(x0), plus(x1, plus(x2, plus(x3, x4)))) → c(PLUS(s(s(x1)), plus(x2, plus(x3, x4))))

(14) Obligation:

Complexity Dependency Tuples Problem
Rules:

plus(s(z0), plus(z1, z2)) → plus(z0, plus(s(s(z1)), z2))
plus(s(z0), plus(z1, plus(z2, z3))) → plus(z0, plus(z2, plus(z1, z3)))
Tuples:

PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
PLUS(s(s(y0)), plus(z1, z2)) → c(PLUS(s(y0), plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(x0), plus(x1, plus(z1, plus(z2, z3)))) → c(PLUS(x0, plus(s(x1), plus(z2, plus(z1, z3)))), PLUS(s(s(x1)), plus(z1, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, x3))) → c(PLUS(s(s(x1)), plus(x2, x3)))
PLUS(s(x0), plus(x1, plus(x2, plus(x3, x4)))) → c(PLUS(s(s(x1)), plus(x2, plus(x3, x4))))
PLUS(s(x0), plus(z0, plus(x2, z2))) → c(PLUS(x0, plus(z0, plus(s(s(s(s(x2)))), z2))), PLUS(s(s(z0)), plus(x2, z2)))
PLUS(s(x0), plus(z0, plus(x2, plus(z2, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(s(s(x2)), z3)))), PLUS(s(s(z0)), plus(x2, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, z2)))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(x2, plus(z1, z2))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, plus(z2, z3))))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(z2, plus(z1, z3))))), PLUS(s(s(x1)), plus(x2, plus(z1, plus(z2, z3)))))
PLUS(s(x0), plus(z0, plus(x2, plus(z1, x4)))) → c(PLUS(x0, plus(z0, plus(s(s(z1)), plus(x2, x4)))), PLUS(s(s(z0)), plus(x2, plus(z1, x4))))
PLUS(s(x0), plus(z0, plus(z2, plus(z1, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(z1, z3)))), PLUS(s(s(z0)), plus(z2, plus(z1, z3))))
PLUS(s(x0), plus(x1, plus(z1, plus(s(z0), z2)))) → c(PLUS(x0, plus(s(x1), plus(z0, plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(z1, plus(s(z0), z2))))
PLUS(s(x0), plus(z0, plus(x2, plus(x3, x4)))) → c(PLUS(x0, plus(z0, plus(s(s(s(s(x2)))), plus(x3, x4)))), PLUS(s(s(z0)), plus(x2, plus(x3, x4))))
S tuples:

PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
PLUS(s(s(y0)), plus(z1, z2)) → c(PLUS(s(y0), plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(x0), plus(x1, plus(x2, x3))) → c(PLUS(s(s(x1)), plus(x2, x3)))
PLUS(s(x0), plus(x1, plus(x2, plus(x3, x4)))) → c(PLUS(s(s(x1)), plus(x2, plus(x3, x4))))
PLUS(s(x0), plus(z0, plus(x2, z2))) → c(PLUS(x0, plus(z0, plus(s(s(s(s(x2)))), z2))), PLUS(s(s(z0)), plus(x2, z2)))
PLUS(s(x0), plus(z0, plus(x2, plus(z2, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(s(s(x2)), z3)))), PLUS(s(s(z0)), plus(x2, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, z2)))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(x2, plus(z1, z2))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, plus(z2, z3))))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(z2, plus(z1, z3))))), PLUS(s(s(x1)), plus(x2, plus(z1, plus(z2, z3)))))
PLUS(s(x0), plus(z0, plus(x2, plus(z1, x4)))) → c(PLUS(x0, plus(z0, plus(s(s(z1)), plus(x2, x4)))), PLUS(s(s(z0)), plus(x2, plus(z1, x4))))
PLUS(s(x0), plus(z0, plus(z2, plus(z1, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(z1, z3)))), PLUS(s(s(z0)), plus(z2, plus(z1, z3))))
PLUS(s(x0), plus(x1, plus(z1, plus(s(z0), z2)))) → c(PLUS(x0, plus(s(x1), plus(z0, plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(z1, plus(s(z0), z2))))
PLUS(s(x0), plus(z0, plus(x2, plus(x3, x4)))) → c(PLUS(x0, plus(z0, plus(s(s(s(s(x2)))), plus(x3, x4)))), PLUS(s(s(z0)), plus(x2, plus(x3, x4))))
K tuples:none
Defined Rule Symbols:

plus

Defined Pair Symbols:

PLUS

Compound Symbols:

c1, c, c

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

Use narrowing to replace PLUS(s(x0), plus(x1, plus(z1, plus(z2, z3)))) → c(PLUS(x0, plus(s(x1), plus(z2, plus(z1, z3)))), PLUS(s(s(x1)), plus(z1, plus(z2, z3)))) by

PLUS(s(x0), plus(z0, plus(x2, plus(z1, x4)))) → c(PLUS(x0, plus(z0, plus(s(s(z1)), plus(x2, x4)))), PLUS(s(s(z0)), plus(x2, plus(z1, x4))))
PLUS(s(x0), plus(z0, plus(z2, plus(z1, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(z1, z3)))), PLUS(s(s(z0)), plus(z2, plus(z1, z3))))
PLUS(s(x0), plus(x1, plus(z1, plus(s(z0), z2)))) → c(PLUS(x0, plus(s(x1), plus(z0, plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(z1, plus(s(z0), z2))))
PLUS(s(x0), plus(x1, plus(x2, plus(x3, x4)))) → c(PLUS(s(s(x1)), plus(x2, plus(x3, x4))))

(16) Obligation:

Complexity Dependency Tuples Problem
Rules:

plus(s(z0), plus(z1, z2)) → plus(z0, plus(s(s(z1)), z2))
plus(s(z0), plus(z1, plus(z2, z3))) → plus(z0, plus(z2, plus(z1, z3)))
Tuples:

PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
PLUS(s(s(y0)), plus(z1, z2)) → c(PLUS(s(y0), plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(x0), plus(x1, plus(x2, x3))) → c(PLUS(s(s(x1)), plus(x2, x3)))
PLUS(s(x0), plus(x1, plus(x2, plus(x3, x4)))) → c(PLUS(s(s(x1)), plus(x2, plus(x3, x4))))
PLUS(s(x0), plus(z0, plus(x2, z2))) → c(PLUS(x0, plus(z0, plus(s(s(s(s(x2)))), z2))), PLUS(s(s(z0)), plus(x2, z2)))
PLUS(s(x0), plus(z0, plus(x2, plus(z2, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(s(s(x2)), z3)))), PLUS(s(s(z0)), plus(x2, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, z2)))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(x2, plus(z1, z2))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, plus(z2, z3))))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(z2, plus(z1, z3))))), PLUS(s(s(x1)), plus(x2, plus(z1, plus(z2, z3)))))
PLUS(s(x0), plus(z0, plus(x2, plus(z1, x4)))) → c(PLUS(x0, plus(z0, plus(s(s(z1)), plus(x2, x4)))), PLUS(s(s(z0)), plus(x2, plus(z1, x4))))
PLUS(s(x0), plus(z0, plus(z2, plus(z1, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(z1, z3)))), PLUS(s(s(z0)), plus(z2, plus(z1, z3))))
PLUS(s(x0), plus(x1, plus(z1, plus(s(z0), z2)))) → c(PLUS(x0, plus(s(x1), plus(z0, plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(z1, plus(s(z0), z2))))
PLUS(s(x0), plus(z0, plus(x2, plus(x3, x4)))) → c(PLUS(x0, plus(z0, plus(s(s(s(s(x2)))), plus(x3, x4)))), PLUS(s(s(z0)), plus(x2, plus(x3, x4))))
S tuples:

PLUS(s(z0), plus(z1, plus(z2, z3))) → c1(PLUS(z0, plus(z2, plus(z1, z3))), PLUS(z2, plus(z1, z3)), PLUS(z1, z3))
PLUS(s(s(y0)), plus(z1, z2)) → c(PLUS(s(y0), plus(s(s(z1)), z2)), PLUS(s(s(z1)), z2))
PLUS(s(x0), plus(x1, plus(x2, x3))) → c(PLUS(s(s(x1)), plus(x2, x3)))
PLUS(s(x0), plus(x1, plus(x2, plus(x3, x4)))) → c(PLUS(s(s(x1)), plus(x2, plus(x3, x4))))
PLUS(s(x0), plus(z0, plus(x2, z2))) → c(PLUS(x0, plus(z0, plus(s(s(s(s(x2)))), z2))), PLUS(s(s(z0)), plus(x2, z2)))
PLUS(s(x0), plus(z0, plus(x2, plus(z2, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(s(s(x2)), z3)))), PLUS(s(s(z0)), plus(x2, plus(z2, z3))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, z2)))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(x2, plus(z1, z2))))
PLUS(s(x0), plus(x1, plus(x2, plus(z1, plus(z2, z3))))) → c(PLUS(x0, plus(s(x1), plus(s(x2), plus(z2, plus(z1, z3))))), PLUS(s(s(x1)), plus(x2, plus(z1, plus(z2, z3)))))
PLUS(s(x0), plus(z0, plus(x2, plus(z1, x4)))) → c(PLUS(x0, plus(z0, plus(s(s(z1)), plus(x2, x4)))), PLUS(s(s(z0)), plus(x2, plus(z1, x4))))
PLUS(s(x0), plus(z0, plus(z2, plus(z1, z3)))) → c(PLUS(x0, plus(z0, plus(z2, plus(z1, z3)))), PLUS(s(s(z0)), plus(z2, plus(z1, z3))))
PLUS(s(x0), plus(x1, plus(z1, plus(s(z0), z2)))) → c(PLUS(x0, plus(s(x1), plus(z0, plus(s(s(z1)), z2)))), PLUS(s(s(x1)), plus(z1, plus(s(z0), z2))))
PLUS(s(x0), plus(z0, plus(x2, plus(x3, x4)))) → c(PLUS(x0, plus(z0, plus(s(s(s(s(x2)))), plus(x3, x4)))), PLUS(s(s(z0)), plus(x2, plus(x3, x4))))
K tuples:none
Defined Rule Symbols:

plus

Defined Pair Symbols:

PLUS

Compound Symbols:

c1, c, c

(17) CpxTrsMatchBoundsTAProof (EQUIVALENT transformation)

A linear upper bound on the runtime complexity of the TRS R could be shown with a Match-Bound[TAB_LEFTLINEAR,TAB_NONLEFTLINEAR] (for contructor-based start-terms) of 0.

The compatible tree automaton used to show the Match-Boundedness (for constructor-based start-terms) is represented by:
final states : [1]
transitions:
s0(0) → 0
plus0(0, 0) → 1

(18) BOUNDS(O(1), O(n^1))