nonZero(0) → false
nonZero(s(x)) → true
p(0) → 0
p(s(x)) → x
id_inc(x) → x
id_inc(x) → s(x)
random(x) → rand(x, 0)
rand(x, y) → if(nonZero(x), x, y)
if(false, x, y) → y
if(true, x, y) → rand(p(x), id_inc(y))
↳ QTRS
↳ DependencyPairsProof
nonZero(0) → false
nonZero(s(x)) → true
p(0) → 0
p(s(x)) → x
id_inc(x) → x
id_inc(x) → s(x)
random(x) → rand(x, 0)
rand(x, y) → if(nonZero(x), x, y)
if(false, x, y) → y
if(true, x, y) → rand(p(x), id_inc(y))
RAND(x, y) → IF(nonZero(x), x, y)
IF(true, x, y) → ID_INC(y)
IF(true, x, y) → P(x)
IF(true, x, y) → RAND(p(x), id_inc(y))
RAND(x, y) → NONZERO(x)
RANDOM(x) → RAND(x, 0)
nonZero(0) → false
nonZero(s(x)) → true
p(0) → 0
p(s(x)) → x
id_inc(x) → x
id_inc(x) → s(x)
random(x) → rand(x, 0)
rand(x, y) → if(nonZero(x), x, y)
if(false, x, y) → y
if(true, x, y) → rand(p(x), id_inc(y))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
RAND(x, y) → IF(nonZero(x), x, y)
IF(true, x, y) → ID_INC(y)
IF(true, x, y) → P(x)
IF(true, x, y) → RAND(p(x), id_inc(y))
RAND(x, y) → NONZERO(x)
RANDOM(x) → RAND(x, 0)
nonZero(0) → false
nonZero(s(x)) → true
p(0) → 0
p(s(x)) → x
id_inc(x) → x
id_inc(x) → s(x)
random(x) → rand(x, 0)
rand(x, y) → if(nonZero(x), x, y)
if(false, x, y) → y
if(true, x, y) → rand(p(x), id_inc(y))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
RAND(x, y) → IF(nonZero(x), x, y)
IF(true, x, y) → RAND(p(x), id_inc(y))
nonZero(0) → false
nonZero(s(x)) → true
p(0) → 0
p(s(x)) → x
id_inc(x) → x
id_inc(x) → s(x)
random(x) → rand(x, 0)
rand(x, y) → if(nonZero(x), x, y)
if(false, x, y) → y
if(true, x, y) → rand(p(x), id_inc(y))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
IF(true, x, y) → RAND(p(x), id_inc(y))
Used ordering: Polynomial interpretation [25,35]:
RAND(x, y) → IF(nonZero(x), x, y)
The value of delta used in the strict ordering is 3/16.
POL(RAND(x1, x2)) = 1 + (13/4)x_1
POL(true) = 1/4
POL(id_inc(x1)) = 7/2
POL(false) = 0
POL(p(x1)) = 1/4 + (1/4)x_1
POL(s(x1)) = 1/2 + (4)x_1
POL(IF(x1, x2, x3)) = 1 + (4)x_1 + x_2
POL(0) = 0
POL(nonZero(x1)) = (1/2)x_1
nonZero(s(x)) → true
nonZero(0) → false
p(s(x)) → x
p(0) → 0
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
RAND(x, y) → IF(nonZero(x), x, y)
nonZero(0) → false
nonZero(s(x)) → true
p(0) → 0
p(s(x)) → x
id_inc(x) → x
id_inc(x) → s(x)
random(x) → rand(x, 0)
rand(x, y) → if(nonZero(x), x, y)
if(false, x, y) → y
if(true, x, y) → rand(p(x), id_inc(y))