YES(O(1), O(n^3)) 16.62/5.45 YES(O(1), O(n^3)) 16.62/5.47 16.62/5.47 16.62/5.47
16.62/5.47 16.62/5.470 CpxTRS16.62/5.47
↳1 CpxTrsToCdtProof (BOTH BOUNDS(ID, ID))16.62/5.47
↳2 CdtProblem16.62/5.47
↳3 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))16.62/5.47
↳4 CdtProblem16.62/5.47
↳5 CdtKnowledgeProof (BOTH BOUNDS(ID, ID))16.62/5.47
↳6 CdtProblem16.62/5.47
↳7 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^2))))16.62/5.47
↳8 CdtProblem16.62/5.47
↳9 CdtKnowledgeProof (BOTH BOUNDS(ID, ID))16.62/5.47
↳10 CdtProblem16.62/5.47
↳11 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^3))))16.62/5.47
↳12 CdtProblem16.62/5.47
↳13 SIsEmptyProof (BOTH BOUNDS(ID, ID))16.62/5.47
↳14 BOUNDS(O(1), O(1))16.62/5.47
le(0, y) → true 16.62/5.47
le(s(x), 0) → false 16.62/5.47
le(s(x), s(y)) → le(x, y) 16.62/5.47
minus(0, y) → 0 16.62/5.47
minus(s(x), y) → if_minus(le(s(x), y), s(x), y) 16.62/5.47
if_minus(true, s(x), y) → 0 16.62/5.47
if_minus(false, s(x), y) → s(minus(x, y)) 16.62/5.47
mod(0, y) → 0 16.62/5.47
mod(s(x), 0) → 0 16.62/5.47
mod(s(x), s(y)) → if_mod(le(y, x), s(x), s(y)) 16.62/5.47
if_mod(true, s(x), s(y)) → mod(minus(x, y), s(y)) 16.62/5.47
if_mod(false, s(x), s(y)) → s(x)
Tuples:
le(0, z0) → true 16.62/5.47
le(s(z0), 0) → false 16.62/5.47
le(s(z0), s(z1)) → le(z0, z1) 16.62/5.47
minus(0, z0) → 0 16.62/5.47
minus(s(z0), z1) → if_minus(le(s(z0), z1), s(z0), z1) 16.62/5.47
if_minus(true, s(z0), z1) → 0 16.62/5.47
if_minus(false, s(z0), z1) → s(minus(z0, z1)) 16.62/5.48
mod(0, z0) → 0 16.62/5.48
mod(s(z0), 0) → 0 16.62/5.48
mod(s(z0), s(z1)) → if_mod(le(z1, z0), s(z0), s(z1)) 16.62/5.48
if_mod(true, s(z0), s(z1)) → mod(minus(z0, z1), s(z1)) 16.62/5.48
if_mod(false, s(z0), s(z1)) → s(z0)
S tuples:
LE(s(z0), s(z1)) → c2(LE(z0, z1)) 16.62/5.48
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1)) 16.62/5.48
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1)) 16.62/5.48
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0)) 16.62/5.48
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1))
K tuples:none
LE(s(z0), s(z1)) → c2(LE(z0, z1)) 16.62/5.48
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1)) 16.62/5.48
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1)) 16.62/5.48
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0)) 16.62/5.48
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1))
le, minus, if_minus, mod, if_mod
LE, MINUS, IF_MINUS, MOD, IF_MOD
c2, c4, c6, c9, c10
We considered the (Usable) Rules:
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1))
And the Tuples:
minus(0, z0) → 0 16.62/5.48
minus(s(z0), z1) → if_minus(le(s(z0), z1), s(z0), z1) 16.62/5.49
le(s(z0), 0) → false 16.62/5.49
le(s(z0), s(z1)) → le(z0, z1) 16.62/5.49
le(0, z0) → true 16.62/5.49
if_minus(true, s(z0), z1) → 0 16.62/5.49
if_minus(false, s(z0), z1) → s(minus(z0, z1))
The order we found is given by the following interpretation:
LE(s(z0), s(z1)) → c2(LE(z0, z1)) 16.62/5.49
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1)) 16.62/5.49
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1)) 16.62/5.49
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0)) 16.62/5.49
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1))
POL(0) = 0 16.62/5.49
POL(IF_MINUS(x1, x2, x3)) = 0 16.62/5.49
POL(IF_MOD(x1, x2, x3)) = [4]x2 16.62/5.49
POL(LE(x1, x2)) = 0 16.62/5.49
POL(MINUS(x1, x2)) = 0 16.62/5.49
POL(MOD(x1, x2)) = [4]x1 16.62/5.49
POL(c10(x1, x2)) = x1 + x2 16.62/5.49
POL(c2(x1)) = x1 16.62/5.49
POL(c4(x1, x2)) = x1 + x2 16.62/5.49
POL(c6(x1)) = x1 16.62/5.49
POL(c9(x1, x2)) = x1 + x2 16.62/5.49
POL(false) = 0 16.62/5.49
POL(if_minus(x1, x2, x3)) = x2 16.62/5.49
POL(le(x1, x2)) = 0 16.62/5.49
POL(minus(x1, x2)) = x1 16.62/5.49
POL(s(x1)) = [2] + x1 16.62/5.49
POL(true) = 0
Tuples:
le(0, z0) → true 16.62/5.49
le(s(z0), 0) → false 16.62/5.49
le(s(z0), s(z1)) → le(z0, z1) 16.62/5.49
minus(0, z0) → 0 16.62/5.49
minus(s(z0), z1) → if_minus(le(s(z0), z1), s(z0), z1) 16.62/5.49
if_minus(true, s(z0), z1) → 0 16.62/5.49
if_minus(false, s(z0), z1) → s(minus(z0, z1)) 16.62/5.49
mod(0, z0) → 0 16.62/5.49
mod(s(z0), 0) → 0 16.62/5.49
mod(s(z0), s(z1)) → if_mod(le(z1, z0), s(z0), s(z1)) 16.62/5.49
if_mod(true, s(z0), s(z1)) → mod(minus(z0, z1), s(z1)) 16.62/5.49
if_mod(false, s(z0), s(z1)) → s(z0)
S tuples:
LE(s(z0), s(z1)) → c2(LE(z0, z1)) 16.62/5.49
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1)) 16.62/5.49
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1)) 16.62/5.49
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0)) 16.62/5.49
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1))
K tuples:
LE(s(z0), s(z1)) → c2(LE(z0, z1)) 16.62/5.49
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1)) 16.62/5.49
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1)) 16.62/5.49
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0))
Defined Rule Symbols:
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1))
le, minus, if_minus, mod, if_mod
LE, MINUS, IF_MINUS, MOD, IF_MOD
c2, c4, c6, c9, c10
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0)) 16.62/5.49
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1))
Tuples:
le(0, z0) → true 16.62/5.49
le(s(z0), 0) → false 16.62/5.49
le(s(z0), s(z1)) → le(z0, z1) 16.62/5.49
minus(0, z0) → 0 16.62/5.49
minus(s(z0), z1) → if_minus(le(s(z0), z1), s(z0), z1) 16.62/5.49
if_minus(true, s(z0), z1) → 0 16.62/5.49
if_minus(false, s(z0), z1) → s(minus(z0, z1)) 16.62/5.49
mod(0, z0) → 0 16.62/5.49
mod(s(z0), 0) → 0 16.62/5.49
mod(s(z0), s(z1)) → if_mod(le(z1, z0), s(z0), s(z1)) 16.62/5.49
if_mod(true, s(z0), s(z1)) → mod(minus(z0, z1), s(z1)) 16.62/5.49
if_mod(false, s(z0), s(z1)) → s(z0)
S tuples:
LE(s(z0), s(z1)) → c2(LE(z0, z1)) 16.62/5.49
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1)) 16.62/5.49
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1)) 16.62/5.49
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0)) 16.62/5.49
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1))
K tuples:
LE(s(z0), s(z1)) → c2(LE(z0, z1)) 16.62/5.49
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1)) 16.62/5.49
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1))
Defined Rule Symbols:
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1)) 16.62/5.49
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0))
le, minus, if_minus, mod, if_mod
LE, MINUS, IF_MINUS, MOD, IF_MOD
c2, c4, c6, c9, c10
We considered the (Usable) Rules:
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1))
And the Tuples:
minus(0, z0) → 0 16.62/5.49
minus(s(z0), z1) → if_minus(le(s(z0), z1), s(z0), z1) 16.62/5.49
le(s(z0), 0) → false 16.62/5.49
le(s(z0), s(z1)) → le(z0, z1) 16.62/5.49
le(0, z0) → true 16.62/5.49
if_minus(true, s(z0), z1) → 0 16.62/5.49
if_minus(false, s(z0), z1) → s(minus(z0, z1))
The order we found is given by the following interpretation:
LE(s(z0), s(z1)) → c2(LE(z0, z1)) 16.62/5.49
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1)) 16.62/5.49
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1)) 16.62/5.49
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0)) 16.62/5.49
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1))
POL(0) = 0 16.62/5.49
POL(IF_MINUS(x1, x2, x3)) = x2 16.62/5.49
POL(IF_MOD(x1, x2, x3)) = [2]x22 16.62/5.49
POL(LE(x1, x2)) = 0 16.62/5.49
POL(MINUS(x1, x2)) = x1 16.62/5.49
POL(MOD(x1, x2)) = [2]x1 + [2]x12 16.62/5.49
POL(c10(x1, x2)) = x1 + x2 16.62/5.49
POL(c2(x1)) = x1 16.62/5.49
POL(c4(x1, x2)) = x1 + x2 16.62/5.49
POL(c6(x1)) = x1 16.62/5.49
POL(c9(x1, x2)) = x1 + x2 16.62/5.49
POL(false) = 0 16.62/5.49
POL(if_minus(x1, x2, x3)) = x2 16.62/5.49
POL(le(x1, x2)) = 0 16.62/5.49
POL(minus(x1, x2)) = x1 16.62/5.49
POL(s(x1)) = [2] + x1 16.62/5.49
POL(true) = 0
Tuples:
le(0, z0) → true 16.62/5.49
le(s(z0), 0) → false 16.62/5.49
le(s(z0), s(z1)) → le(z0, z1) 16.62/5.49
minus(0, z0) → 0 16.62/5.49
minus(s(z0), z1) → if_minus(le(s(z0), z1), s(z0), z1) 16.62/5.49
if_minus(true, s(z0), z1) → 0 16.62/5.49
if_minus(false, s(z0), z1) → s(minus(z0, z1)) 16.62/5.49
mod(0, z0) → 0 16.62/5.49
mod(s(z0), 0) → 0 16.62/5.49
mod(s(z0), s(z1)) → if_mod(le(z1, z0), s(z0), s(z1)) 16.62/5.49
if_mod(true, s(z0), s(z1)) → mod(minus(z0, z1), s(z1)) 16.62/5.49
if_mod(false, s(z0), s(z1)) → s(z0)
S tuples:
LE(s(z0), s(z1)) → c2(LE(z0, z1)) 16.62/5.49
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1)) 16.62/5.49
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1)) 16.62/5.49
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0)) 16.62/5.49
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1))
K tuples:
LE(s(z0), s(z1)) → c2(LE(z0, z1)) 16.62/5.49
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1))
Defined Rule Symbols:
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1)) 16.62/5.49
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0)) 16.62/5.49
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1))
le, minus, if_minus, mod, if_mod
LE, MINUS, IF_MINUS, MOD, IF_MOD
c2, c4, c6, c9, c10
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1)) 16.62/5.49
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1))
Tuples:
le(0, z0) → true 16.62/5.49
le(s(z0), 0) → false 16.62/5.49
le(s(z0), s(z1)) → le(z0, z1) 16.62/5.49
minus(0, z0) → 0 16.62/5.49
minus(s(z0), z1) → if_minus(le(s(z0), z1), s(z0), z1) 16.62/5.49
if_minus(true, s(z0), z1) → 0 16.62/5.49
if_minus(false, s(z0), z1) → s(minus(z0, z1)) 16.62/5.49
mod(0, z0) → 0 16.62/5.49
mod(s(z0), 0) → 0 16.62/5.49
mod(s(z0), s(z1)) → if_mod(le(z1, z0), s(z0), s(z1)) 16.62/5.49
if_mod(true, s(z0), s(z1)) → mod(minus(z0, z1), s(z1)) 16.62/5.49
if_mod(false, s(z0), s(z1)) → s(z0)
S tuples:
LE(s(z0), s(z1)) → c2(LE(z0, z1)) 16.62/5.49
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1)) 16.62/5.49
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1)) 16.62/5.49
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0)) 16.62/5.49
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1))
K tuples:
LE(s(z0), s(z1)) → c2(LE(z0, z1))
Defined Rule Symbols:
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1)) 16.62/5.49
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0)) 16.62/5.49
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1)) 16.62/5.49
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1))
le, minus, if_minus, mod, if_mod
LE, MINUS, IF_MINUS, MOD, IF_MOD
c2, c4, c6, c9, c10
We considered the (Usable) Rules:
LE(s(z0), s(z1)) → c2(LE(z0, z1))
And the Tuples:
minus(0, z0) → 0 16.62/5.49
minus(s(z0), z1) → if_minus(le(s(z0), z1), s(z0), z1) 16.62/5.49
le(s(z0), 0) → false 16.62/5.49
le(s(z0), s(z1)) → le(z0, z1) 16.62/5.49
le(0, z0) → true 16.62/5.49
if_minus(true, s(z0), z1) → 0 16.62/5.49
if_minus(false, s(z0), z1) → s(minus(z0, z1))
The order we found is given by the following interpretation:
LE(s(z0), s(z1)) → c2(LE(z0, z1)) 16.62/5.49
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1)) 16.62/5.49
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1)) 16.62/5.49
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0)) 16.62/5.49
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1))
POL(0) = 0 16.62/5.49
POL(IF_MINUS(x1, x2, x3)) = x22 16.62/5.49
POL(IF_MOD(x1, x2, x3)) = x2 + x2·x3 + x23 16.62/5.49
POL(LE(x1, x2)) = [1] + x1 16.62/5.49
POL(MINUS(x1, x2)) = [1] + x1 + x12 16.62/5.49
POL(MOD(x1, x2)) = x1 + x2 + x1·x2 + x13 16.62/5.49
POL(c10(x1, x2)) = x1 + x2 16.62/5.49
POL(c2(x1)) = x1 16.62/5.49
POL(c4(x1, x2)) = x1 + x2 16.62/5.49
POL(c6(x1)) = x1 16.62/5.49
POL(c9(x1, x2)) = x1 + x2 16.62/5.49
POL(false) = 0 16.62/5.49
POL(if_minus(x1, x2, x3)) = x2 16.62/5.49
POL(le(x1, x2)) = 0 16.62/5.49
POL(minus(x1, x2)) = x1 16.62/5.49
POL(s(x1)) = [1] + x1 16.62/5.49
POL(true) = 0
Tuples:
le(0, z0) → true 16.62/5.49
le(s(z0), 0) → false 16.62/5.49
le(s(z0), s(z1)) → le(z0, z1) 16.62/5.49
minus(0, z0) → 0 16.62/5.49
minus(s(z0), z1) → if_minus(le(s(z0), z1), s(z0), z1) 16.62/5.49
if_minus(true, s(z0), z1) → 0 16.62/5.49
if_minus(false, s(z0), z1) → s(minus(z0, z1)) 16.62/5.49
mod(0, z0) → 0 16.62/5.49
mod(s(z0), 0) → 0 16.62/5.49
mod(s(z0), s(z1)) → if_mod(le(z1, z0), s(z0), s(z1)) 16.62/5.49
if_mod(true, s(z0), s(z1)) → mod(minus(z0, z1), s(z1)) 16.62/5.49
if_mod(false, s(z0), s(z1)) → s(z0)
S tuples:none
LE(s(z0), s(z1)) → c2(LE(z0, z1)) 16.62/5.49
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1)) 16.62/5.49
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1)) 16.62/5.49
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0)) 16.62/5.49
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1))
Defined Rule Symbols:
IF_MOD(true, s(z0), s(z1)) → c10(MOD(minus(z0, z1), s(z1)), MINUS(z0, z1)) 16.62/5.49
MOD(s(z0), s(z1)) → c9(IF_MOD(le(z1, z0), s(z0), s(z1)), LE(z1, z0)) 16.62/5.49
IF_MINUS(false, s(z0), z1) → c6(MINUS(z0, z1)) 16.62/5.49
MINUS(s(z0), z1) → c4(IF_MINUS(le(s(z0), z1), s(z0), z1), LE(s(z0), z1)) 16.62/5.49
LE(s(z0), s(z1)) → c2(LE(z0, z1))
le, minus, if_minus, mod, if_mod
LE, MINUS, IF_MINUS, MOD, IF_MOD
c2, c4, c6, c9, c10