0 QTRS
↳1 AAECC Innermost (⇔)
↳2 QTRS
↳3 DependencyPairsProof (⇔)
↳4 QDP
↳5 DependencyGraphProof (⇔)
↳6 AND
↳7 QDP
↳8 QDPOrderProof (⇔)
↳9 QDP
↳10 PisEmptyProof (⇔)
↳11 TRUE
↳12 QDP
↳13 QDPOrderProof (⇔)
↳14 QDP
↳15 PisEmptyProof (⇔)
↳16 TRUE
↳17 QDP
cond1(true, x) → cond2(even(x), x)
cond2(true, x) → cond1(neq(x, 0), div2(x))
cond2(false, x) → cond1(neq(x, 0), p(x))
neq(0, 0) → false
neq(0, s(x)) → true
neq(s(x), 0) → true
neq(s(x), s(y)) → neq(x, y)
even(0) → true
even(s(0)) → false
even(s(s(x))) → even(x)
div2(0) → 0
div2(s(0)) → 0
div2(s(s(x))) → s(div2(x))
p(0) → 0
p(s(x)) → x
neq(0, 0) → false
neq(0, s(x)) → true
neq(s(x), 0) → true
neq(s(x), s(y)) → neq(x, y)
even(0) → true
even(s(0)) → false
even(s(s(x))) → even(x)
div2(0) → 0
div2(s(0)) → 0
div2(s(s(x))) → s(div2(x))
p(0) → 0
p(s(x)) → x
cond1(true, x) → cond2(even(x), x)
cond2(true, x) → cond1(neq(x, 0), div2(x))
cond2(false, x) → cond1(neq(x, 0), p(x))
cond1(true, x) → cond2(even(x), x)
cond2(true, x) → cond1(neq(x, 0), div2(x))
cond2(false, x) → cond1(neq(x, 0), p(x))
neq(0, 0) → false
neq(0, s(x)) → true
neq(s(x), 0) → true
neq(s(x), s(y)) → neq(x, y)
even(0) → true
even(s(0)) → false
even(s(s(x))) → even(x)
div2(0) → 0
div2(s(0)) → 0
div2(s(s(x))) → s(div2(x))
p(0) → 0
p(s(x)) → x
cond1(true, x0)
cond2(true, x0)
cond2(false, x0)
neq(0, 0)
neq(0, s(x0))
neq(s(x0), 0)
neq(s(x0), s(y))
even(0)
even(s(0))
even(s(s(x0)))
div2(0)
div2(s(0))
div2(s(s(x0)))
p(0)
p(s(x0))
COND1(true, x) → COND2(even(x), x)
COND1(true, x) → EVEN(x)
COND2(true, x) → COND1(neq(x, 0), div2(x))
COND2(true, x) → NEQ(x, 0)
COND2(true, x) → DIV2(x)
COND2(false, x) → COND1(neq(x, 0), p(x))
COND2(false, x) → NEQ(x, 0)
COND2(false, x) → P(x)
NEQ(s(x), s(y)) → NEQ(x, y)
EVEN(s(s(x))) → EVEN(x)
DIV2(s(s(x))) → DIV2(x)
cond1(true, x) → cond2(even(x), x)
cond2(true, x) → cond1(neq(x, 0), div2(x))
cond2(false, x) → cond1(neq(x, 0), p(x))
neq(0, 0) → false
neq(0, s(x)) → true
neq(s(x), 0) → true
neq(s(x), s(y)) → neq(x, y)
even(0) → true
even(s(0)) → false
even(s(s(x))) → even(x)
div2(0) → 0
div2(s(0)) → 0
div2(s(s(x))) → s(div2(x))
p(0) → 0
p(s(x)) → x
cond1(true, x0)
cond2(true, x0)
cond2(false, x0)
neq(0, 0)
neq(0, s(x0))
neq(s(x0), 0)
neq(s(x0), s(y))
even(0)
even(s(0))
even(s(s(x0)))
div2(0)
div2(s(0))
div2(s(s(x0)))
p(0)
p(s(x0))
DIV2(s(s(x))) → DIV2(x)
cond1(true, x) → cond2(even(x), x)
cond2(true, x) → cond1(neq(x, 0), div2(x))
cond2(false, x) → cond1(neq(x, 0), p(x))
neq(0, 0) → false
neq(0, s(x)) → true
neq(s(x), 0) → true
neq(s(x), s(y)) → neq(x, y)
even(0) → true
even(s(0)) → false
even(s(s(x))) → even(x)
div2(0) → 0
div2(s(0)) → 0
div2(s(s(x))) → s(div2(x))
p(0) → 0
p(s(x)) → x
cond1(true, x0)
cond2(true, x0)
cond2(false, x0)
neq(0, 0)
neq(0, s(x0))
neq(s(x0), 0)
neq(s(x0), s(y))
even(0)
even(s(0))
even(s(s(x0)))
div2(0)
div2(s(0))
div2(s(s(x0)))
p(0)
p(s(x0))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
DIV2(s(s(x))) → DIV2(x)
0 > [s1, true] > DIV21 > [even1, false, y]
cond1(true, x) → cond2(even(x), x)
cond2(true, x) → cond1(neq(x, 0), div2(x))
cond2(false, x) → cond1(neq(x, 0), p(x))
neq(0, 0) → false
neq(0, s(x)) → true
neq(s(x), 0) → true
neq(s(x), s(y)) → neq(x, y)
even(0) → true
even(s(0)) → false
even(s(s(x))) → even(x)
div2(0) → 0
div2(s(0)) → 0
div2(s(s(x))) → s(div2(x))
p(0) → 0
p(s(x)) → x
cond1(true, x) → cond2(even(x), x)
cond2(true, x) → cond1(neq(x, 0), div2(x))
cond2(false, x) → cond1(neq(x, 0), p(x))
neq(0, 0) → false
neq(0, s(x)) → true
neq(s(x), 0) → true
neq(s(x), s(y)) → neq(x, y)
even(0) → true
even(s(0)) → false
even(s(s(x))) → even(x)
div2(0) → 0
div2(s(0)) → 0
div2(s(s(x))) → s(div2(x))
p(0) → 0
p(s(x)) → x
cond1(true, x0)
cond2(true, x0)
cond2(false, x0)
neq(0, 0)
neq(0, s(x0))
neq(s(x0), 0)
neq(s(x0), s(y))
even(0)
even(s(0))
even(s(s(x0)))
div2(0)
div2(s(0))
div2(s(s(x0)))
p(0)
p(s(x0))
EVEN(s(s(x))) → EVEN(x)
cond1(true, x) → cond2(even(x), x)
cond2(true, x) → cond1(neq(x, 0), div2(x))
cond2(false, x) → cond1(neq(x, 0), p(x))
neq(0, 0) → false
neq(0, s(x)) → true
neq(s(x), 0) → true
neq(s(x), s(y)) → neq(x, y)
even(0) → true
even(s(0)) → false
even(s(s(x))) → even(x)
div2(0) → 0
div2(s(0)) → 0
div2(s(s(x))) → s(div2(x))
p(0) → 0
p(s(x)) → x
cond1(true, x0)
cond2(true, x0)
cond2(false, x0)
neq(0, 0)
neq(0, s(x0))
neq(s(x0), 0)
neq(s(x0), s(y))
even(0)
even(s(0))
even(s(s(x0)))
div2(0)
div2(s(0))
div2(s(s(x0)))
p(0)
p(s(x0))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
EVEN(s(s(x))) → EVEN(x)
0 > [s1, true] > EVEN1 > [even1, false, y]
cond1(true, x) → cond2(even(x), x)
cond2(true, x) → cond1(neq(x, 0), div2(x))
cond2(false, x) → cond1(neq(x, 0), p(x))
neq(0, 0) → false
neq(0, s(x)) → true
neq(s(x), 0) → true
neq(s(x), s(y)) → neq(x, y)
even(0) → true
even(s(0)) → false
even(s(s(x))) → even(x)
div2(0) → 0
div2(s(0)) → 0
div2(s(s(x))) → s(div2(x))
p(0) → 0
p(s(x)) → x
cond1(true, x) → cond2(even(x), x)
cond2(true, x) → cond1(neq(x, 0), div2(x))
cond2(false, x) → cond1(neq(x, 0), p(x))
neq(0, 0) → false
neq(0, s(x)) → true
neq(s(x), 0) → true
neq(s(x), s(y)) → neq(x, y)
even(0) → true
even(s(0)) → false
even(s(s(x))) → even(x)
div2(0) → 0
div2(s(0)) → 0
div2(s(s(x))) → s(div2(x))
p(0) → 0
p(s(x)) → x
cond1(true, x0)
cond2(true, x0)
cond2(false, x0)
neq(0, 0)
neq(0, s(x0))
neq(s(x0), 0)
neq(s(x0), s(y))
even(0)
even(s(0))
even(s(s(x0)))
div2(0)
div2(s(0))
div2(s(s(x0)))
p(0)
p(s(x0))
COND2(true, x) → COND1(neq(x, 0), div2(x))
COND1(true, x) → COND2(even(x), x)
COND2(false, x) → COND1(neq(x, 0), p(x))
cond1(true, x) → cond2(even(x), x)
cond2(true, x) → cond1(neq(x, 0), div2(x))
cond2(false, x) → cond1(neq(x, 0), p(x))
neq(0, 0) → false
neq(0, s(x)) → true
neq(s(x), 0) → true
neq(s(x), s(y)) → neq(x, y)
even(0) → true
even(s(0)) → false
even(s(s(x))) → even(x)
div2(0) → 0
div2(s(0)) → 0
div2(s(s(x))) → s(div2(x))
p(0) → 0
p(s(x)) → x
cond1(true, x0)
cond2(true, x0)
cond2(false, x0)
neq(0, 0)
neq(0, s(x0))
neq(s(x0), 0)
neq(s(x0), s(y))
even(0)
even(s(0))
even(s(s(x0)))
div2(0)
div2(s(0))
div2(s(s(x0)))
p(0)
p(s(x0))