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 QDPOrderProof (⇔)
↳14 QDP
↳15 PisEmptyProof (⇔)
↳16 TRUE
↳17 QDP
div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
DIV(x, s(y)) → D(x, s(y), 0)
D(x, s(y), z) → COND(ge(x, z), x, y, z)
D(x, s(y), z) → GE(x, z)
COND(true, x, y, z) → D(x, s(y), plus(s(y), z))
COND(true, x, y, z) → PLUS(s(y), z)
GE(s(u), s(v)) → GE(u, v)
PLUS(n, s(m)) → PLUS(n, m)
div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
PLUS(n, s(m)) → PLUS(n, m)
div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PLUS(n, s(m)) → PLUS(n, m)
[PLUS2, s1]
PLUS2: [1,2]
s1: multiset
div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
GE(s(u), s(v)) → GE(u, v)
div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
GE(s(u), s(v)) → GE(u, v)
trivial
GE1: [1]
s1: multiset
div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
COND(true, x, y, z) → D(x, s(y), plus(s(y), z))
D(x, s(y), z) → COND(ge(x, z), x, y, z)
div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))