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 PisEmptyProof (⇔)
↳20 TRUE
↳21 QDP
↳22 QDPOrderProof (⇔)
↳23 QDP
↳24 QDPOrderProof (⇔)
↳25 QDP
↳26 PisEmptyProof (⇔)
↳27 TRUE
↳28 QDP
↳29 QDPOrderProof (⇔)
↳30 QDP
↳31 PisEmptyProof (⇔)
↳32 TRUE
↳33 QDP
↳34 QDPOrderProof (⇔)
↳35 QDP
↳36 QDPOrderProof (⇔)
↳37 QDP
↳38 PisEmptyProof (⇔)
↳39 TRUE
↳40 QDP
↳41 QDPOrderProof (⇔)
↳42 QDP
↳43 QDPOrderProof (⇔)
↳44 QDP
↳45 QDPOrderProof (⇔)
↳46 QDP
↳47 DependencyGraphProof (⇔)
↳48 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)
IF(X1, X2, active(X3)) → IF(X1, X2, X3)
IF1 > 0
geq > [mark1, active1, false, div1] > [minus, s] > 0
geq > [mark1, active1, false, div1] > true > 0
geq > [mark1, active1, false, div1] > if2 > 0
IF1: [1]
mark1: [1]
active1: [1]
minus: []
0: []
s: []
geq: []
true: []
false: []
div1: [1]
if2: [1,2]
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(active(X1), X2, X3) → IF(X1, X2, X3)
IF(X1, active(X2), 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(X1, active(X2), X3) → IF(X1, X2, X3)
geq > [s, false] > [IF1, mark1, active1]
geq > true > [IF1, mark1, active1]
div1 > [minus, 0] > [s, false] > [IF1, mark1, active1]
div1 > [minus, 0] > true > [IF1, mark1, active1]
div1 > if2 > [IF1, mark1, active1]
IF1: [1]
mark1: [1]
active1: [1]
minus: []
0: []
s: []
geq: []
true: []
false: []
div1: [1]
if2: [2,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)
IF(mark(X1), X2, X3) → IF(X1, X2, X3)
IF(active(X1), X2, 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(mark(X1), X2, X3) → IF(X1, X2, X3)
IF(active(X1), X2, X3) → IF(X1, X2, X3)
minus > [IF1, mark1, active1] > [0, div1] > [s, geq] > true
minus > [IF1, mark1, active1] > [0, div1] > [s, geq] > false
minus > [IF1, mark1, active1] > [0, div1] > [s, geq] > if2
IF1: [1]
mark1: [1]
active1: [1]
minus: []
0: []
s: []
geq: []
true: []
false: []
div1: [1]
if2: [1,2]
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(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)
DIV(X1, active(X2)) → DIV(X1, X2)
div1 > [geq, true, false] > [mark1, active1] > [minus, 0] > s
div1 > if2 > [mark1, active1] > [minus, 0] > s
mark1: [1]
active1: [1]
minus: []
0: []
s: []
geq: []
true: []
false: []
div1: [1]
if2: [1,2]
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(mark(X1), X2) → DIV(X1, X2)
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(mark(X1), X2) → DIV(X1, X2)
DIV(active(X1), X2) → DIV(X1, X2)
[minus, div1] > s > 0 > [mark1, active1, true, if2] > false
[minus, div1] > s > geq > [mark1, active1, true, if2] > false
mark1: [1]
active1: [1]
minus: []
0: []
s: []
geq: []
true: []
false: []
div1: [1]
if2: [1,2]
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(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(mark(X1), X2) → GEQ(X1, X2)
GEQ(active(X1), X2) → GEQ(X1, X2)
div > geq > [mark1, active1, true] > [minus, 0] > [s, if2]
div > geq > [mark1, active1, true] > false > [s, if2]
mark1: [1]
active1: [1]
minus: []
0: []
s: []
geq: []
true: []
false: []
div: []
if2: [1,2]
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(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)
GEQ(X1, active(X2)) → GEQ(X1, X2)
[minus, div1] > s > 0 > [mark1, active1, true, if2] > false
[minus, div1] > s > geq > [mark1, active1, true, if2] > false
mark1: [1]
active1: [1]
minus: []
0: []
s: []
geq: []
true: []
false: []
div1: [1]
if2: [1,2]
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(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)
S(mark(X)) → S(X)
s > [active1, mark1, geq, true, div1] > minus > [0, false]
s > [active1, mark1, geq, true, div1] > if2 > [0, false]
active1: [1]
mark1: [1]
minus: []
0: []
s: []
geq: []
true: []
false: []
div1: [1]
if2: [1,2]
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(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(mark(X1), X2) → MINUS(X1, X2)
MINUS(active(X1), X2) → MINUS(X1, X2)
div > geq > [mark1, active1, true] > [minus, 0] > [s, if2]
div > geq > [mark1, active1, true] > false > [s, if2]
mark1: [1]
active1: [1]
minus: []
0: []
s: []
geq: []
true: []
false: []
div: []
if2: [1,2]
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(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)
MINUS(X1, active(X2)) → MINUS(X1, X2)
[minus, div1] > s > 0 > [mark1, active1, true, if2] > false
[minus, div1] > s > geq > [mark1, active1, true, if2] > false
mark1: [1]
active1: [1]
minus: []
0: []
s: []
geq: []
true: []
false: []
div1: [1]
if2: [1,2]
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(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.
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)
[geq, div2, if3] > s1 > minus > 0
[geq, div2, if3] > s1 > false > 0
[geq, div2, if3] > true > 0
minus: []
s1: [1]
geq: []
div2: [2,1]
if3: [3,2,1]
0: []
true: []
false: []
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)))
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)
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)))
MARK(div(X1, X2)) → ACTIVE(div(mark(X1), X2))
MARK(if(X1, X2, X3)) → ACTIVE(if(mark(X1), X2, X3))
[s, if, false] > div > [ACTIVE, minus, geq, mark, active]
[s, if, false] > 0 > [ACTIVE, minus, geq, mark, active]
true > [ACTIVE, minus, geq, mark, active]
ACTIVE: []
minus: []
s: []
geq: []
mark: []
div: []
if: []
active: []
0: []
true: []
false: []
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(geq(X1, X2)) → ACTIVE(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.
ACTIVE(minus(s(X), s(Y))) → MARK(minus(X, Y))
ACTIVE(geq(s(X), s(Y))) → MARK(geq(X, Y))
div1 > [s1, false, if2] > geq2 > true > 0
s1: [1]
geq2: [2,1]
0: []
true: []
false: []
div1: [1]
if2: [2,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)
MARK(minus(X1, X2)) → ACTIVE(minus(X1, X2))
MARK(geq(X1, X2)) → ACTIVE(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)