0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPOrderProof (⇔)
↳7 QDP
↳8 QDPOrderProof (⇔)
↳9 QDP
↳10 QDPOrderProof (⇔)
↳11 QDP
↳12 PisEmptyProof (⇔)
↳13 TRUE
↳14 QDP
↳15 QDPOrderProof (⇔)
↳16 QDP
↳17 QDPOrderProof (⇔)
↳18 QDP
↳19 QDPOrderProof (⇔)
↳20 QDP
↳21 QDPOrderProof (⇔)
↳22 QDP
↳23 PisEmptyProof (⇔)
↳24 TRUE
↳25 QDP
↳26 QDPOrderProof (⇔)
↳27 QDP
↳28 QDPOrderProof (⇔)
↳29 QDP
↳30 QDPOrderProof (⇔)
↳31 QDP
↳32 QDPOrderProof (⇔)
↳33 QDP
↳34 PisEmptyProof (⇔)
↳35 TRUE
↳36 QDP
↳37 QDPOrderProof (⇔)
↳38 QDP
↳39 QDPOrderProof (⇔)
↳40 QDP
↳41 PisEmptyProof (⇔)
↳42 TRUE
↳43 QDP
↳44 QDPOrderProof (⇔)
↳45 QDP
↳46 QDPOrderProof (⇔)
↳47 QDP
↳48 QDPOrderProof (⇔)
↳49 QDP
↳50 QDPOrderProof (⇔)
↳51 QDP
↳52 PisEmptyProof (⇔)
↳53 TRUE
↳54 QDP
↳55 QDPOrderProof (⇔)
↳56 QDP
↳57 QDPOrderProof (⇔)
↳58 QDP
↳59 DependencyGraphProof (⇔)
↳60 TRUE
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
ACTIVE(minus(0, Y)) → MARK(0)
ACTIVE(minus(s(X), s(Y))) → MARK(minus(X, Y))
ACTIVE(minus(s(X), s(Y))) → MINUS(X, Y)
ACTIVE(geq(X, 0)) → MARK(true)
ACTIVE(geq(0, s(Y))) → MARK(false)
ACTIVE(geq(s(X), s(Y))) → MARK(geq(X, Y))
ACTIVE(geq(s(X), s(Y))) → GEQ(X, Y)
ACTIVE(div(0, s(Y))) → MARK(0)
ACTIVE(div(s(X), s(Y))) → MARK(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
ACTIVE(div(s(X), s(Y))) → IF(geq(X, Y), s(div(minus(X, Y), s(Y))), 0)
ACTIVE(div(s(X), s(Y))) → GEQ(X, Y)
ACTIVE(div(s(X), s(Y))) → S(div(minus(X, Y), s(Y)))
ACTIVE(div(s(X), s(Y))) → DIV(minus(X, Y), s(Y))
ACTIVE(div(s(X), s(Y))) → MINUS(X, Y)
ACTIVE(if(true, X, Y)) → MARK(X)
ACTIVE(if(false, X, Y)) → MARK(Y)
MARK(minus(X1, X2)) → ACTIVE(minus(X1, X2))
MARK(0) → ACTIVE(0)
MARK(s(X)) → ACTIVE(s(mark(X)))
MARK(s(X)) → S(mark(X))
MARK(s(X)) → MARK(X)
MARK(geq(X1, X2)) → ACTIVE(geq(X1, X2))
MARK(true) → ACTIVE(true)
MARK(false) → ACTIVE(false)
MARK(div(X1, X2)) → ACTIVE(div(mark(X1), X2))
MARK(div(X1, X2)) → DIV(mark(X1), X2)
MARK(div(X1, X2)) → MARK(X1)
MARK(if(X1, X2, X3)) → ACTIVE(if(mark(X1), X2, X3))
MARK(if(X1, X2, X3)) → IF(mark(X1), X2, X3)
MARK(if(X1, X2, X3)) → MARK(X1)
MINUS(mark(X1), X2) → MINUS(X1, X2)
MINUS(X1, mark(X2)) → MINUS(X1, X2)
MINUS(active(X1), X2) → MINUS(X1, X2)
MINUS(X1, active(X2)) → MINUS(X1, X2)
S(mark(X)) → S(X)
S(active(X)) → S(X)
GEQ(mark(X1), X2) → GEQ(X1, X2)
GEQ(X1, mark(X2)) → GEQ(X1, X2)
GEQ(active(X1), X2) → GEQ(X1, X2)
GEQ(X1, active(X2)) → GEQ(X1, X2)
DIV(mark(X1), X2) → DIV(X1, X2)
DIV(X1, mark(X2)) → DIV(X1, X2)
DIV(active(X1), X2) → DIV(X1, X2)
DIV(X1, active(X2)) → DIV(X1, X2)
IF(mark(X1), X2, X3) → IF(X1, X2, X3)
IF(X1, mark(X2), X3) → IF(X1, X2, X3)
IF(X1, X2, mark(X3)) → IF(X1, X2, X3)
IF(active(X1), X2, X3) → IF(X1, X2, X3)
IF(X1, active(X2), X3) → IF(X1, X2, X3)
IF(X1, X2, active(X3)) → IF(X1, X2, X3)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
IF(X1, mark(X2), X3) → IF(X1, X2, X3)
IF(mark(X1), X2, X3) → IF(X1, X2, X3)
IF(X1, X2, mark(X3)) → IF(X1, X2, X3)
IF(active(X1), X2, X3) → IF(X1, X2, X3)
IF(X1, active(X2), X3) → IF(X1, X2, X3)
IF(X1, X2, active(X3)) → IF(X1, X2, X3)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
IF(X1, X2, mark(X3)) → IF(X1, X2, X3)
trivial
IF1: [1]
mark1: [1]
IF(X1, mark(X2), X3) → IF(X1, X2, X3)
IF(mark(X1), X2, X3) → IF(X1, X2, X3)
IF(active(X1), X2, X3) → IF(X1, X2, X3)
IF(X1, active(X2), X3) → IF(X1, X2, X3)
IF(X1, X2, active(X3)) → IF(X1, X2, X3)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
IF(X1, mark(X2), X3) → IF(X1, X2, X3)
IF(mark(X1), X2, X3) → IF(X1, X2, X3)
[IF3, mark1]
IF3: [3,2,1]
mark1: [1]
IF(active(X1), X2, X3) → IF(X1, X2, X3)
IF(X1, active(X2), X3) → IF(X1, X2, X3)
IF(X1, X2, active(X3)) → IF(X1, X2, X3)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
IF(active(X1), X2, X3) → IF(X1, X2, X3)
IF(X1, active(X2), X3) → IF(X1, X2, X3)
IF(X1, X2, active(X3)) → IF(X1, X2, X3)
active1 > IF3
IF3: [3,2,1]
active1: [1]
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
DIV(X1, mark(X2)) → DIV(X1, X2)
DIV(mark(X1), X2) → DIV(X1, X2)
DIV(active(X1), X2) → DIV(X1, X2)
DIV(X1, active(X2)) → DIV(X1, X2)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
DIV(X1, mark(X2)) → DIV(X1, X2)
trivial
DIV1: [1]
mark1: [1]
DIV(mark(X1), X2) → DIV(X1, X2)
DIV(active(X1), X2) → DIV(X1, X2)
DIV(X1, active(X2)) → DIV(X1, X2)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
DIV(mark(X1), X2) → DIV(X1, X2)
[DIV2, mark1]
DIV2: [2,1]
mark1: [1]
DIV(active(X1), X2) → DIV(X1, X2)
DIV(X1, active(X2)) → DIV(X1, X2)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
DIV(X1, active(X2)) → DIV(X1, X2)
trivial
active1: [1]
DIV(active(X1), X2) → DIV(X1, X2)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
DIV(active(X1), X2) → DIV(X1, X2)
[DIV2, active1]
DIV2: [2,1]
active1: [1]
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
GEQ(X1, mark(X2)) → GEQ(X1, X2)
GEQ(mark(X1), X2) → GEQ(X1, X2)
GEQ(active(X1), X2) → GEQ(X1, X2)
GEQ(X1, active(X2)) → GEQ(X1, X2)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
GEQ(X1, mark(X2)) → GEQ(X1, X2)
trivial
GEQ1: [1]
mark1: [1]
GEQ(mark(X1), X2) → GEQ(X1, X2)
GEQ(active(X1), X2) → GEQ(X1, X2)
GEQ(X1, active(X2)) → GEQ(X1, X2)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
GEQ(mark(X1), X2) → GEQ(X1, X2)
[GEQ2, mark1]
GEQ2: [2,1]
mark1: [1]
GEQ(active(X1), X2) → GEQ(X1, X2)
GEQ(X1, active(X2)) → GEQ(X1, X2)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
GEQ(X1, active(X2)) → GEQ(X1, X2)
trivial
active1: [1]
GEQ(active(X1), X2) → GEQ(X1, X2)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
GEQ(active(X1), X2) → GEQ(X1, X2)
[GEQ2, active1]
GEQ2: [2,1]
active1: [1]
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
S(active(X)) → S(X)
S(mark(X)) → S(X)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
S(active(X)) → S(X)
trivial
active1: [1]
S(mark(X)) → S(X)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
S(mark(X)) → S(X)
trivial
mark1: [1]
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
MINUS(X1, mark(X2)) → MINUS(X1, X2)
MINUS(mark(X1), X2) → MINUS(X1, X2)
MINUS(active(X1), X2) → MINUS(X1, X2)
MINUS(X1, active(X2)) → MINUS(X1, X2)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MINUS(X1, mark(X2)) → MINUS(X1, X2)
trivial
MINUS1: [1]
mark1: [1]
MINUS(mark(X1), X2) → MINUS(X1, X2)
MINUS(active(X1), X2) → MINUS(X1, X2)
MINUS(X1, active(X2)) → MINUS(X1, X2)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MINUS(mark(X1), X2) → MINUS(X1, X2)
[MINUS2, mark1]
MINUS2: [2,1]
mark1: [1]
MINUS(active(X1), X2) → MINUS(X1, X2)
MINUS(X1, active(X2)) → MINUS(X1, X2)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MINUS(X1, active(X2)) → MINUS(X1, X2)
trivial
active1: [1]
MINUS(active(X1), X2) → MINUS(X1, X2)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MINUS(active(X1), X2) → MINUS(X1, X2)
[MINUS2, active1]
MINUS2: [2,1]
active1: [1]
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
ACTIVE(minus(s(X), s(Y))) → MARK(minus(X, Y))
MARK(minus(X1, X2)) → ACTIVE(minus(X1, X2))
ACTIVE(geq(s(X), s(Y))) → MARK(geq(X, Y))
MARK(s(X)) → ACTIVE(s(mark(X)))
ACTIVE(div(s(X), s(Y))) → MARK(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
MARK(s(X)) → MARK(X)
MARK(geq(X1, X2)) → ACTIVE(geq(X1, X2))
ACTIVE(if(true, X, Y)) → MARK(X)
MARK(div(X1, X2)) → ACTIVE(div(mark(X1), X2))
ACTIVE(if(false, X, Y)) → MARK(Y)
MARK(div(X1, X2)) → MARK(X1)
MARK(if(X1, X2, X3)) → ACTIVE(if(mark(X1), X2, X3))
MARK(if(X1, X2, X3)) → MARK(X1)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(s(X)) → ACTIVE(s(mark(X)))
[mark1, false] > 0 > [minus, MARK, geq, div, if, true] > s > active
minus: []
s: []
MARK: []
geq: []
mark1: [1]
div: []
if: []
0: []
true: []
false: []
active: []
minus(X1, mark(X2)) → minus(X1, X2)
minus(mark(X1), X2) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(mark(X1), X2) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
s(active(X)) → s(X)
s(mark(X)) → s(X)
div(X1, mark(X2)) → div(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
ACTIVE(minus(s(X), s(Y))) → MARK(minus(X, Y))
MARK(minus(X1, X2)) → ACTIVE(minus(X1, X2))
ACTIVE(geq(s(X), s(Y))) → MARK(geq(X, Y))
ACTIVE(div(s(X), s(Y))) → MARK(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
MARK(s(X)) → MARK(X)
MARK(geq(X1, X2)) → ACTIVE(geq(X1, X2))
ACTIVE(if(true, X, Y)) → MARK(X)
MARK(div(X1, X2)) → ACTIVE(div(mark(X1), X2))
ACTIVE(if(false, X, Y)) → MARK(Y)
MARK(div(X1, X2)) → MARK(X1)
MARK(if(X1, X2, X3)) → ACTIVE(if(mark(X1), X2, X3))
MARK(if(X1, X2, X3)) → MARK(X1)
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVE(minus(s(X), s(Y))) → MARK(minus(X, Y))
ACTIVE(geq(s(X), s(Y))) → MARK(geq(X, Y))
ACTIVE(div(s(X), s(Y))) → MARK(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
MARK(s(X)) → MARK(X)
ACTIVE(if(true, X, Y)) → MARK(X)
ACTIVE(if(false, X, Y)) → MARK(Y)
MARK(div(X1, X2)) → MARK(X1)
MARK(if(X1, X2, X3)) → MARK(X1)
[ACTIVE1, MARK1] > [div2, 0] > s1 > if3 > false
[ACTIVE1, MARK1] > [div2, 0] > true > false
ACTIVE1: [1]
s1: [1]
MARK1: [1]
div2: [2,1]
if3: [2,1,3]
0: []
true: []
false: []
minus(X1, mark(X2)) → minus(X1, X2)
minus(mark(X1), X2) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(mark(X1), X2) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
s(active(X)) → s(X)
s(mark(X)) → s(X)
div(X1, mark(X2)) → div(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
mark(minus(X1, X2)) → active(minus(X1, X2))
active(geq(s(X), s(Y))) → mark(geq(X, Y))
mark(s(X)) → active(s(mark(X)))
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
mark(geq(X1, X2)) → active(geq(X1, X2))
active(if(true, X, Y)) → mark(X)
mark(div(X1, X2)) → active(div(mark(X1), X2))
active(if(false, X, Y)) → mark(Y)
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
mark(0) → active(0)
mark(true) → active(true)
mark(false) → active(false)
active(minus(0, Y)) → mark(0)
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(div(0, s(Y))) → mark(0)
MARK(minus(X1, X2)) → ACTIVE(minus(X1, X2))
MARK(geq(X1, X2)) → ACTIVE(geq(X1, X2))
MARK(div(X1, X2)) → ACTIVE(div(mark(X1), X2))
MARK(if(X1, X2, X3)) → ACTIVE(if(mark(X1), X2, X3))
active(minus(0, Y)) → mark(0)
active(minus(s(X), s(Y))) → mark(minus(X, Y))
active(geq(X, 0)) → mark(true)
active(geq(0, s(Y))) → mark(false)
active(geq(s(X), s(Y))) → mark(geq(X, Y))
active(div(0, s(Y))) → mark(0)
active(div(s(X), s(Y))) → mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0))
active(if(true, X, Y)) → mark(X)
active(if(false, X, Y)) → mark(Y)
mark(minus(X1, X2)) → active(minus(X1, X2))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
mark(geq(X1, X2)) → active(geq(X1, X2))
mark(true) → active(true)
mark(false) → active(false)
mark(div(X1, X2)) → active(div(mark(X1), X2))
mark(if(X1, X2, X3)) → active(if(mark(X1), X2, X3))
minus(mark(X1), X2) → minus(X1, X2)
minus(X1, mark(X2)) → minus(X1, X2)
minus(active(X1), X2) → minus(X1, X2)
minus(X1, active(X2)) → minus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
geq(mark(X1), X2) → geq(X1, X2)
geq(X1, mark(X2)) → geq(X1, X2)
geq(active(X1), X2) → geq(X1, X2)
geq(X1, active(X2)) → geq(X1, X2)
div(mark(X1), X2) → div(X1, X2)
div(X1, mark(X2)) → div(X1, X2)
div(active(X1), X2) → div(X1, X2)
div(X1, active(X2)) → div(X1, X2)
if(mark(X1), X2, X3) → if(X1, X2, X3)
if(X1, mark(X2), X3) → if(X1, X2, X3)
if(X1, X2, mark(X3)) → if(X1, X2, X3)
if(active(X1), X2, X3) → if(X1, X2, X3)
if(X1, active(X2), X3) → if(X1, X2, X3)
if(X1, X2, active(X3)) → if(X1, X2, X3)