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
p(0) → 0
p(s(x)) → x
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
minus(x, 0) → x
minus(x, s(y)) → if(le(x, s(y)), 0, p(minus(x, p(s(y)))))
if(true, x, y) → x
if(false, x, y) → y
p(0) → 0
p(s(x)) → x
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
minus(x, 0) → x
minus(x, s(y)) → if(le(x, s(y)), 0, p(minus(x, p(s(y)))))
if(true, x, y) → x
if(false, x, y) → y
p(0)
p(s(x0))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(x0, 0)
minus(x0, s(x1))
if(true, x0, x1)
if(false, x0, x1)
LE(s(x), s(y)) → LE(x, y)
MINUS(x, s(y)) → IF(le(x, s(y)), 0, p(minus(x, p(s(y)))))
MINUS(x, s(y)) → LE(x, s(y))
MINUS(x, s(y)) → P(minus(x, p(s(y))))
MINUS(x, s(y)) → MINUS(x, p(s(y)))
MINUS(x, s(y)) → P(s(y))
p(0) → 0
p(s(x)) → x
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
minus(x, 0) → x
minus(x, s(y)) → if(le(x, s(y)), 0, p(minus(x, p(s(y)))))
if(true, x, y) → x
if(false, x, y) → y
p(0)
p(s(x0))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(x0, 0)
minus(x0, s(x1))
if(true, x0, x1)
if(false, x0, x1)
LE(s(x), s(y)) → LE(x, y)
p(0) → 0
p(s(x)) → x
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
minus(x, 0) → x
minus(x, s(y)) → if(le(x, s(y)), 0, p(minus(x, p(s(y)))))
if(true, x, y) → x
if(false, x, y) → y
p(0)
p(s(x0))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(x0, 0)
minus(x0, s(x1))
if(true, x0, x1)
if(false, x0, x1)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
LE(s(x), s(y)) → LE(x, y)
trivial
s1: multiset
p(0) → 0
p(s(x)) → x
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
minus(x, 0) → x
minus(x, s(y)) → if(le(x, s(y)), 0, p(minus(x, p(s(y)))))
if(true, x, y) → x
if(false, x, y) → y
p(0)
p(s(x0))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(x0, 0)
minus(x0, s(x1))
if(true, x0, x1)
if(false, x0, x1)
MINUS(x, s(y)) → MINUS(x, p(s(y)))
p(0) → 0
p(s(x)) → x
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
minus(x, 0) → x
minus(x, s(y)) → if(le(x, s(y)), 0, p(minus(x, p(s(y)))))
if(true, x, y) → x
if(false, x, y) → y
p(0)
p(s(x0))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(x0, 0)
minus(x0, s(x1))
if(true, x0, x1)
if(false, x0, x1)