0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPOrderProof (⇔)
↳7 QDP
↳8 PisEmptyProof (⇔)
↳9 TRUE
↳10 QDP
↳11 QDPOrderProof (⇔)
↳12 QDP
↳13 PisEmptyProof (⇔)
↳14 TRUE
↳15 QDP
↳16 QDPOrderProof (⇔)
↳17 QDP
↳18 DependencyGraphProof (⇔)
↳19 TRUE
minus_active(0, y) → 0
mark(0) → 0
minus_active(s(x), s(y)) → minus_active(x, y)
mark(s(x)) → s(mark(x))
ge_active(x, 0) → true
mark(minus(x, y)) → minus_active(x, y)
ge_active(0, s(y)) → false
mark(ge(x, y)) → ge_active(x, y)
ge_active(s(x), s(y)) → ge_active(x, y)
mark(div(x, y)) → div_active(mark(x), y)
div_active(0, s(y)) → 0
mark(if(x, y, z)) → if_active(mark(x), y, z)
div_active(s(x), s(y)) → if_active(ge_active(x, y), s(div(minus(x, y), s(y))), 0)
if_active(true, x, y) → mark(x)
minus_active(x, y) → minus(x, y)
if_active(false, x, y) → mark(y)
ge_active(x, y) → ge(x, y)
if_active(x, y, z) → if(x, y, z)
div_active(x, y) → div(x, y)
MINUS_ACTIVE(s(x), s(y)) → MINUS_ACTIVE(x, y)
MARK(s(x)) → MARK(x)
MARK(minus(x, y)) → MINUS_ACTIVE(x, y)
MARK(ge(x, y)) → GE_ACTIVE(x, y)
GE_ACTIVE(s(x), s(y)) → GE_ACTIVE(x, y)
MARK(div(x, y)) → DIV_ACTIVE(mark(x), y)
MARK(div(x, y)) → MARK(x)
MARK(if(x, y, z)) → IF_ACTIVE(mark(x), y, z)
MARK(if(x, y, z)) → MARK(x)
DIV_ACTIVE(s(x), s(y)) → IF_ACTIVE(ge_active(x, y), s(div(minus(x, y), s(y))), 0)
DIV_ACTIVE(s(x), s(y)) → GE_ACTIVE(x, y)
IF_ACTIVE(true, x, y) → MARK(x)
IF_ACTIVE(false, x, y) → MARK(y)
minus_active(0, y) → 0
mark(0) → 0
minus_active(s(x), s(y)) → minus_active(x, y)
mark(s(x)) → s(mark(x))
ge_active(x, 0) → true
mark(minus(x, y)) → minus_active(x, y)
ge_active(0, s(y)) → false
mark(ge(x, y)) → ge_active(x, y)
ge_active(s(x), s(y)) → ge_active(x, y)
mark(div(x, y)) → div_active(mark(x), y)
div_active(0, s(y)) → 0
mark(if(x, y, z)) → if_active(mark(x), y, z)
div_active(s(x), s(y)) → if_active(ge_active(x, y), s(div(minus(x, y), s(y))), 0)
if_active(true, x, y) → mark(x)
minus_active(x, y) → minus(x, y)
if_active(false, x, y) → mark(y)
ge_active(x, y) → ge(x, y)
if_active(x, y, z) → if(x, y, z)
div_active(x, y) → div(x, y)
GE_ACTIVE(s(x), s(y)) → GE_ACTIVE(x, y)
minus_active(0, y) → 0
mark(0) → 0
minus_active(s(x), s(y)) → minus_active(x, y)
mark(s(x)) → s(mark(x))
ge_active(x, 0) → true
mark(minus(x, y)) → minus_active(x, y)
ge_active(0, s(y)) → false
mark(ge(x, y)) → ge_active(x, y)
ge_active(s(x), s(y)) → ge_active(x, y)
mark(div(x, y)) → div_active(mark(x), y)
div_active(0, s(y)) → 0
mark(if(x, y, z)) → if_active(mark(x), y, z)
div_active(s(x), s(y)) → if_active(ge_active(x, y), s(div(minus(x, y), s(y))), 0)
if_active(true, x, y) → mark(x)
minus_active(x, y) → minus(x, y)
if_active(false, x, y) → mark(y)
ge_active(x, y) → ge(x, y)
if_active(x, y, z) → if(x, y, z)
div_active(x, y) → div(x, y)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
GE_ACTIVE(s(x), s(y)) → GE_ACTIVE(x, y)
[GEACTIVE2, s1]
GEACTIVE2: [1,2]
s1: [1]
minus_active(0, y) → 0
mark(0) → 0
minus_active(s(x), s(y)) → minus_active(x, y)
mark(s(x)) → s(mark(x))
ge_active(x, 0) → true
mark(minus(x, y)) → minus_active(x, y)
ge_active(0, s(y)) → false
mark(ge(x, y)) → ge_active(x, y)
ge_active(s(x), s(y)) → ge_active(x, y)
mark(div(x, y)) → div_active(mark(x), y)
div_active(0, s(y)) → 0
mark(if(x, y, z)) → if_active(mark(x), y, z)
div_active(s(x), s(y)) → if_active(ge_active(x, y), s(div(minus(x, y), s(y))), 0)
if_active(true, x, y) → mark(x)
minus_active(x, y) → minus(x, y)
if_active(false, x, y) → mark(y)
ge_active(x, y) → ge(x, y)
if_active(x, y, z) → if(x, y, z)
div_active(x, y) → div(x, y)
MINUS_ACTIVE(s(x), s(y)) → MINUS_ACTIVE(x, y)
minus_active(0, y) → 0
mark(0) → 0
minus_active(s(x), s(y)) → minus_active(x, y)
mark(s(x)) → s(mark(x))
ge_active(x, 0) → true
mark(minus(x, y)) → minus_active(x, y)
ge_active(0, s(y)) → false
mark(ge(x, y)) → ge_active(x, y)
ge_active(s(x), s(y)) → ge_active(x, y)
mark(div(x, y)) → div_active(mark(x), y)
div_active(0, s(y)) → 0
mark(if(x, y, z)) → if_active(mark(x), y, z)
div_active(s(x), s(y)) → if_active(ge_active(x, y), s(div(minus(x, y), s(y))), 0)
if_active(true, x, y) → mark(x)
minus_active(x, y) → minus(x, y)
if_active(false, x, y) → mark(y)
ge_active(x, y) → ge(x, y)
if_active(x, y, z) → if(x, y, z)
div_active(x, y) → div(x, y)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MINUS_ACTIVE(s(x), s(y)) → MINUS_ACTIVE(x, y)
[MINUSACTIVE2, s1]
MINUSACTIVE2: [1,2]
s1: [1]
minus_active(0, y) → 0
mark(0) → 0
minus_active(s(x), s(y)) → minus_active(x, y)
mark(s(x)) → s(mark(x))
ge_active(x, 0) → true
mark(minus(x, y)) → minus_active(x, y)
ge_active(0, s(y)) → false
mark(ge(x, y)) → ge_active(x, y)
ge_active(s(x), s(y)) → ge_active(x, y)
mark(div(x, y)) → div_active(mark(x), y)
div_active(0, s(y)) → 0
mark(if(x, y, z)) → if_active(mark(x), y, z)
div_active(s(x), s(y)) → if_active(ge_active(x, y), s(div(minus(x, y), s(y))), 0)
if_active(true, x, y) → mark(x)
minus_active(x, y) → minus(x, y)
if_active(false, x, y) → mark(y)
ge_active(x, y) → ge(x, y)
if_active(x, y, z) → if(x, y, z)
div_active(x, y) → div(x, y)
MARK(div(x, y)) → DIV_ACTIVE(mark(x), y)
DIV_ACTIVE(s(x), s(y)) → IF_ACTIVE(ge_active(x, y), s(div(minus(x, y), s(y))), 0)
IF_ACTIVE(true, x, y) → MARK(x)
MARK(s(x)) → MARK(x)
MARK(div(x, y)) → MARK(x)
MARK(if(x, y, z)) → IF_ACTIVE(mark(x), y, z)
IF_ACTIVE(false, x, y) → MARK(y)
MARK(if(x, y, z)) → MARK(x)
minus_active(0, y) → 0
mark(0) → 0
minus_active(s(x), s(y)) → minus_active(x, y)
mark(s(x)) → s(mark(x))
ge_active(x, 0) → true
mark(minus(x, y)) → minus_active(x, y)
ge_active(0, s(y)) → false
mark(ge(x, y)) → ge_active(x, y)
ge_active(s(x), s(y)) → ge_active(x, y)
mark(div(x, y)) → div_active(mark(x), y)
div_active(0, s(y)) → 0
mark(if(x, y, z)) → if_active(mark(x), y, z)
div_active(s(x), s(y)) → if_active(ge_active(x, y), s(div(minus(x, y), s(y))), 0)
if_active(true, x, y) → mark(x)
minus_active(x, y) → minus(x, y)
if_active(false, x, y) → mark(y)
ge_active(x, y) → ge(x, y)
if_active(x, y, z) → if(x, y, z)
div_active(x, y) → div(x, y)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
DIV_ACTIVE(s(x), s(y)) → IF_ACTIVE(ge_active(x, y), s(div(minus(x, y), s(y))), 0)
IF_ACTIVE(true, x, y) → MARK(x)
MARK(s(x)) → MARK(x)
MARK(div(x, y)) → MARK(x)
IF_ACTIVE(false, x, y) → MARK(y)
MARK(if(x, y, z)) → MARK(x)
[div1, DIVACTIVE1, geactive1, false, ge1, divactive1] > s1 > [minus1, minusactive1]
[div1, DIVACTIVE1, geactive1, false, ge1, divactive1] > [IFACTIVE3, if3, ifactive3]
[div1, DIVACTIVE1, geactive1, false, ge1, divactive1] > 0
[div1, DIVACTIVE1, geactive1, false, ge1, divactive1] > true
div1: multiset
DIVACTIVE1: multiset
s1: [1]
IFACTIVE3: multiset
geactive1: multiset
minus1: multiset
0: multiset
true: multiset
if3: multiset
false: multiset
minusactive1: multiset
ge1: multiset
divactive1: multiset
ifactive3: multiset
mark(0) → 0
mark(s(x)) → s(mark(x))
mark(minus(x, y)) → minus_active(x, y)
mark(ge(x, y)) → ge_active(x, y)
mark(div(x, y)) → div_active(mark(x), y)
div_active(s(x), s(y)) → if_active(ge_active(x, y), s(div(minus(x, y), s(y))), 0)
if_active(true, x, y) → mark(x)
mark(if(x, y, z)) → if_active(mark(x), y, z)
if_active(false, x, y) → mark(y)
ge_active(x, 0) → true
ge_active(0, s(y)) → false
ge_active(s(x), s(y)) → ge_active(x, y)
ge_active(x, y) → ge(x, y)
div_active(0, s(y)) → 0
div_active(x, y) → div(x, y)
if_active(x, y, z) → if(x, y, z)
minus_active(0, y) → 0
minus_active(s(x), s(y)) → minus_active(x, y)
minus_active(x, y) → minus(x, y)
MARK(div(x, y)) → DIV_ACTIVE(mark(x), y)
MARK(if(x, y, z)) → IF_ACTIVE(mark(x), y, z)
minus_active(0, y) → 0
mark(0) → 0
minus_active(s(x), s(y)) → minus_active(x, y)
mark(s(x)) → s(mark(x))
ge_active(x, 0) → true
mark(minus(x, y)) → minus_active(x, y)
ge_active(0, s(y)) → false
mark(ge(x, y)) → ge_active(x, y)
ge_active(s(x), s(y)) → ge_active(x, y)
mark(div(x, y)) → div_active(mark(x), y)
div_active(0, s(y)) → 0
mark(if(x, y, z)) → if_active(mark(x), y, z)
div_active(s(x), s(y)) → if_active(ge_active(x, y), s(div(minus(x, y), s(y))), 0)
if_active(true, x, y) → mark(x)
minus_active(x, y) → minus(x, y)
if_active(false, x, y) → mark(y)
ge_active(x, y) → ge(x, y)
if_active(x, y, z) → if(x, y, z)
div_active(x, y) → div(x, y)