0 QTRS
↳1 Overlay + Local Confluence (⇔)
↳2 QTRS
↳3 DependencyPairsProof (⇔)
↳4 QDP
↳5 DependencyGraphProof (⇔)
↳6 AND
↳7 QDP
↳8 QDPOrderProof (⇔)
↳9 QDP
↳10 PisEmptyProof (⇔)
↳11 TRUE
↳12 QDP
↳13 QDP
↳14 QDP
↳15 QDPOrderProof (⇔)
↳16 QDP
↳17 PisEmptyProof (⇔)
↳18 TRUE
↳19 QDP
plus(0, x) → x
plus(s(x), y) → s(plus(p(s(x)), y))
times(0, y) → 0
times(s(x), y) → plus(y, times(p(s(x)), y))
exp(x, 0) → s(0)
exp(x, s(y)) → times(x, exp(x, y))
p(s(0)) → 0
p(s(s(x))) → s(p(s(x)))
tower(x, y) → towerIter(x, y, s(0))
towerIter(0, y, z) → z
towerIter(s(x), y, z) → towerIter(p(s(x)), y, exp(y, z))
plus(0, x) → x
plus(s(x), y) → s(plus(p(s(x)), y))
times(0, y) → 0
times(s(x), y) → plus(y, times(p(s(x)), y))
exp(x, 0) → s(0)
exp(x, s(y)) → times(x, exp(x, y))
p(s(0)) → 0
p(s(s(x))) → s(p(s(x)))
tower(x, y) → towerIter(x, y, s(0))
towerIter(0, y, z) → z
towerIter(s(x), y, z) → towerIter(p(s(x)), y, exp(y, z))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
exp(x0, 0)
exp(x0, s(x1))
p(s(0))
p(s(s(x0)))
tower(x0, x1)
towerIter(0, x0, x1)
towerIter(s(x0), x1, x2)
PLUS(s(x), y) → PLUS(p(s(x)), y)
PLUS(s(x), y) → P(s(x))
TIMES(s(x), y) → PLUS(y, times(p(s(x)), y))
TIMES(s(x), y) → TIMES(p(s(x)), y)
TIMES(s(x), y) → P(s(x))
EXP(x, s(y)) → TIMES(x, exp(x, y))
EXP(x, s(y)) → EXP(x, y)
P(s(s(x))) → P(s(x))
TOWER(x, y) → TOWERITER(x, y, s(0))
TOWERITER(s(x), y, z) → TOWERITER(p(s(x)), y, exp(y, z))
TOWERITER(s(x), y, z) → P(s(x))
TOWERITER(s(x), y, z) → EXP(y, z)
plus(0, x) → x
plus(s(x), y) → s(plus(p(s(x)), y))
times(0, y) → 0
times(s(x), y) → plus(y, times(p(s(x)), y))
exp(x, 0) → s(0)
exp(x, s(y)) → times(x, exp(x, y))
p(s(0)) → 0
p(s(s(x))) → s(p(s(x)))
tower(x, y) → towerIter(x, y, s(0))
towerIter(0, y, z) → z
towerIter(s(x), y, z) → towerIter(p(s(x)), y, exp(y, z))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
exp(x0, 0)
exp(x0, s(x1))
p(s(0))
p(s(s(x0)))
tower(x0, x1)
towerIter(0, x0, x1)
towerIter(s(x0), x1, x2)
P(s(s(x))) → P(s(x))
plus(0, x) → x
plus(s(x), y) → s(plus(p(s(x)), y))
times(0, y) → 0
times(s(x), y) → plus(y, times(p(s(x)), y))
exp(x, 0) → s(0)
exp(x, s(y)) → times(x, exp(x, y))
p(s(0)) → 0
p(s(s(x))) → s(p(s(x)))
tower(x, y) → towerIter(x, y, s(0))
towerIter(0, y, z) → z
towerIter(s(x), y, z) → towerIter(p(s(x)), y, exp(y, z))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
exp(x0, 0)
exp(x0, s(x1))
p(s(0))
p(s(s(x0)))
tower(x0, x1)
towerIter(0, x0, x1)
towerIter(s(x0), x1, x2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
P(s(s(x))) → P(s(x))
trivial
trivial
plus(0, x) → x
plus(s(x), y) → s(plus(p(s(x)), y))
times(0, y) → 0
times(s(x), y) → plus(y, times(p(s(x)), y))
exp(x, 0) → s(0)
exp(x, s(y)) → times(x, exp(x, y))
p(s(0)) → 0
p(s(s(x))) → s(p(s(x)))
tower(x, y) → towerIter(x, y, s(0))
towerIter(0, y, z) → z
towerIter(s(x), y, z) → towerIter(p(s(x)), y, exp(y, z))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
exp(x0, 0)
exp(x0, s(x1))
p(s(0))
p(s(s(x0)))
tower(x0, x1)
towerIter(0, x0, x1)
towerIter(s(x0), x1, x2)
PLUS(s(x), y) → PLUS(p(s(x)), y)
plus(0, x) → x
plus(s(x), y) → s(plus(p(s(x)), y))
times(0, y) → 0
times(s(x), y) → plus(y, times(p(s(x)), y))
exp(x, 0) → s(0)
exp(x, s(y)) → times(x, exp(x, y))
p(s(0)) → 0
p(s(s(x))) → s(p(s(x)))
tower(x, y) → towerIter(x, y, s(0))
towerIter(0, y, z) → z
towerIter(s(x), y, z) → towerIter(p(s(x)), y, exp(y, z))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
exp(x0, 0)
exp(x0, s(x1))
p(s(0))
p(s(s(x0)))
tower(x0, x1)
towerIter(0, x0, x1)
towerIter(s(x0), x1, x2)
TIMES(s(x), y) → TIMES(p(s(x)), y)
plus(0, x) → x
plus(s(x), y) → s(plus(p(s(x)), y))
times(0, y) → 0
times(s(x), y) → plus(y, times(p(s(x)), y))
exp(x, 0) → s(0)
exp(x, s(y)) → times(x, exp(x, y))
p(s(0)) → 0
p(s(s(x))) → s(p(s(x)))
tower(x, y) → towerIter(x, y, s(0))
towerIter(0, y, z) → z
towerIter(s(x), y, z) → towerIter(p(s(x)), y, exp(y, z))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
exp(x0, 0)
exp(x0, s(x1))
p(s(0))
p(s(s(x0)))
tower(x0, x1)
towerIter(0, x0, x1)
towerIter(s(x0), x1, x2)
EXP(x, s(y)) → EXP(x, y)
plus(0, x) → x
plus(s(x), y) → s(plus(p(s(x)), y))
times(0, y) → 0
times(s(x), y) → plus(y, times(p(s(x)), y))
exp(x, 0) → s(0)
exp(x, s(y)) → times(x, exp(x, y))
p(s(0)) → 0
p(s(s(x))) → s(p(s(x)))
tower(x, y) → towerIter(x, y, s(0))
towerIter(0, y, z) → z
towerIter(s(x), y, z) → towerIter(p(s(x)), y, exp(y, z))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
exp(x0, 0)
exp(x0, s(x1))
p(s(0))
p(s(s(x0)))
tower(x0, x1)
towerIter(0, x0, x1)
towerIter(s(x0), x1, x2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
EXP(x, s(y)) → EXP(x, y)
trivial
trivial
plus(0, x) → x
plus(s(x), y) → s(plus(p(s(x)), y))
times(0, y) → 0
times(s(x), y) → plus(y, times(p(s(x)), y))
exp(x, 0) → s(0)
exp(x, s(y)) → times(x, exp(x, y))
p(s(0)) → 0
p(s(s(x))) → s(p(s(x)))
tower(x, y) → towerIter(x, y, s(0))
towerIter(0, y, z) → z
towerIter(s(x), y, z) → towerIter(p(s(x)), y, exp(y, z))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
exp(x0, 0)
exp(x0, s(x1))
p(s(0))
p(s(s(x0)))
tower(x0, x1)
towerIter(0, x0, x1)
towerIter(s(x0), x1, x2)
TOWERITER(s(x), y, z) → TOWERITER(p(s(x)), y, exp(y, z))
plus(0, x) → x
plus(s(x), y) → s(plus(p(s(x)), y))
times(0, y) → 0
times(s(x), y) → plus(y, times(p(s(x)), y))
exp(x, 0) → s(0)
exp(x, s(y)) → times(x, exp(x, y))
p(s(0)) → 0
p(s(s(x))) → s(p(s(x)))
tower(x, y) → towerIter(x, y, s(0))
towerIter(0, y, z) → z
towerIter(s(x), y, z) → towerIter(p(s(x)), y, exp(y, z))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
exp(x0, 0)
exp(x0, s(x1))
p(s(0))
p(s(s(x0)))
tower(x0, x1)
towerIter(0, x0, x1)
towerIter(s(x0), x1, x2)