YES(O(1), O(n^1)) 3.12/1.22 YES(O(1), O(n^1)) 3.12/1.28 3.12/1.28 3.12/1.28
3.12/1.28 3.12/1.280 CpxTRS3.12/1.28
↳1 CpxTrsToCdtProof (BOTH BOUNDS(ID, ID))3.12/1.28
↳2 CdtProblem3.12/1.28
↳3 CdtUnreachableProof (⇔)3.12/1.28
↳4 CdtProblem3.12/1.28
↳5 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID))3.12/1.28
↳6 CdtProblem3.12/1.28
↳7 CdtLeafRemovalProof (BOTH BOUNDS(ID, ID))3.12/1.28
↳8 CdtProblem3.12/1.28
↳9 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))3.12/1.28
↳10 CdtProblem3.12/1.28
↳11 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))3.12/1.28
↳12 CdtProblem3.12/1.28
↳13 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))3.12/1.28
↳14 CdtProblem3.12/1.28
↳15 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))3.12/1.28
↳16 CdtProblem3.12/1.28
↳17 SIsEmptyProof (BOTH BOUNDS(ID, ID))3.12/1.28
↳18 BOUNDS(O(1), O(1))3.12/1.28
minus(n__0, Y) → 0 3.12/1.28
minus(n__s(X), n__s(Y)) → minus(activate(X), activate(Y)) 3.12/1.28
geq(X, n__0) → true 3.12/1.28
geq(n__0, n__s(Y)) → false 3.12/1.28
geq(n__s(X), n__s(Y)) → geq(activate(X), activate(Y)) 3.12/1.28
div(0, n__s(Y)) → 0 3.12/1.28
div(s(X), n__s(Y)) → if(geq(X, activate(Y)), n__s(div(minus(X, activate(Y)), n__s(activate(Y)))), n__0) 3.12/1.28
if(true, X, Y) → activate(X) 3.12/1.28
if(false, X, Y) → activate(Y) 3.12/1.28
0 → n__0 3.12/1.28
s(X) → n__s(X) 3.12/1.28
activate(n__0) → 0 3.12/1.28
activate(n__s(X)) → s(X) 3.12/1.28
activate(X) → X
Tuples:
minus(n__0, z0) → 0 3.12/1.28
minus(n__s(z0), n__s(z1)) → minus(activate(z0), activate(z1)) 3.12/1.28
geq(z0, n__0) → true 3.12/1.28
geq(n__0, n__s(z0)) → false 3.12/1.28
geq(n__s(z0), n__s(z1)) → geq(activate(z0), activate(z1)) 3.12/1.28
div(0, n__s(z0)) → 0 3.12/1.28
div(s(z0), n__s(z1)) → if(geq(z0, activate(z1)), n__s(div(minus(z0, activate(z1)), n__s(activate(z1)))), n__0) 3.12/1.28
if(true, z0, z1) → activate(z0) 3.12/1.28
if(false, z0, z1) → activate(z1) 3.12/1.28
0 → n__0 3.12/1.28
s(z0) → n__s(z0) 3.12/1.28
activate(n__0) → 0 3.12/1.28
activate(n__s(z0)) → s(z0) 3.12/1.28
activate(z0) → z0
S tuples:
MINUS(n__0, z0) → c(0') 3.12/1.28
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
DIV(0, n__s(z0)) → c5(0') 3.12/1.28
DIV(s(z0), n__s(z1)) → c6(IF(geq(z0, activate(z1)), n__s(div(minus(z0, activate(z1)), n__s(activate(z1)))), n__0), GEQ(z0, activate(z1)), ACTIVATE(z1), DIV(minus(z0, activate(z1)), n__s(activate(z1))), MINUS(z0, activate(z1)), ACTIVATE(z1), ACTIVATE(z1)) 3.12/1.28
IF(true, z0, z1) → c7(ACTIVATE(z0)) 3.12/1.28
IF(false, z0, z1) → c8(ACTIVATE(z1)) 3.12/1.28
ACTIVATE(n__0) → c11(0') 3.12/1.28
ACTIVATE(n__s(z0)) → c12(S(z0))
K tuples:none
MINUS(n__0, z0) → c(0') 3.12/1.28
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
DIV(0, n__s(z0)) → c5(0') 3.12/1.28
DIV(s(z0), n__s(z1)) → c6(IF(geq(z0, activate(z1)), n__s(div(minus(z0, activate(z1)), n__s(activate(z1)))), n__0), GEQ(z0, activate(z1)), ACTIVATE(z1), DIV(minus(z0, activate(z1)), n__s(activate(z1))), MINUS(z0, activate(z1)), ACTIVATE(z1), ACTIVATE(z1)) 3.12/1.28
IF(true, z0, z1) → c7(ACTIVATE(z0)) 3.12/1.28
IF(false, z0, z1) → c8(ACTIVATE(z1)) 3.12/1.28
ACTIVATE(n__0) → c11(0') 3.12/1.28
ACTIVATE(n__s(z0)) → c12(S(z0))
minus, geq, div, if, 0, s, activate
MINUS, GEQ, DIV, IF, ACTIVATE
c, c1, c4, c5, c6, c7, c8, c11, c12
DIV(0, n__s(z0)) → c5(0') 3.12/1.28
DIV(s(z0), n__s(z1)) → c6(IF(geq(z0, activate(z1)), n__s(div(minus(z0, activate(z1)), n__s(activate(z1)))), n__0), GEQ(z0, activate(z1)), ACTIVATE(z1), DIV(minus(z0, activate(z1)), n__s(activate(z1))), MINUS(z0, activate(z1)), ACTIVATE(z1), ACTIVATE(z1))
Tuples:
minus(n__0, z0) → 0 3.12/1.28
minus(n__s(z0), n__s(z1)) → minus(activate(z0), activate(z1)) 3.12/1.28
geq(z0, n__0) → true 3.12/1.28
geq(n__0, n__s(z0)) → false 3.12/1.28
geq(n__s(z0), n__s(z1)) → geq(activate(z0), activate(z1)) 3.12/1.28
div(0, n__s(z0)) → 0 3.12/1.28
div(s(z0), n__s(z1)) → if(geq(z0, activate(z1)), n__s(div(minus(z0, activate(z1)), n__s(activate(z1)))), n__0) 3.12/1.28
if(true, z0, z1) → activate(z0) 3.12/1.28
if(false, z0, z1) → activate(z1) 3.12/1.28
0 → n__0 3.12/1.28
s(z0) → n__s(z0) 3.12/1.28
activate(n__0) → 0 3.12/1.28
activate(n__s(z0)) → s(z0) 3.12/1.28
activate(z0) → z0
S tuples:
MINUS(n__0, z0) → c(0') 3.12/1.28
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
IF(true, z0, z1) → c7(ACTIVATE(z0)) 3.12/1.28
IF(false, z0, z1) → c8(ACTIVATE(z1)) 3.12/1.28
ACTIVATE(n__0) → c11(0') 3.12/1.28
ACTIVATE(n__s(z0)) → c12(S(z0))
K tuples:none
MINUS(n__0, z0) → c(0') 3.12/1.28
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
IF(true, z0, z1) → c7(ACTIVATE(z0)) 3.12/1.28
IF(false, z0, z1) → c8(ACTIVATE(z1)) 3.12/1.28
ACTIVATE(n__0) → c11(0') 3.12/1.28
ACTIVATE(n__s(z0)) → c12(S(z0))
minus, geq, div, if, 0, s, activate
MINUS, GEQ, IF, ACTIVATE
c, c1, c4, c7, c8, c11, c12
Tuples:
minus(n__0, z0) → 0 3.12/1.28
minus(n__s(z0), n__s(z1)) → minus(activate(z0), activate(z1)) 3.12/1.28
geq(z0, n__0) → true 3.12/1.28
geq(n__0, n__s(z0)) → false 3.12/1.28
geq(n__s(z0), n__s(z1)) → geq(activate(z0), activate(z1)) 3.12/1.28
div(0, n__s(z0)) → 0 3.12/1.28
div(s(z0), n__s(z1)) → if(geq(z0, activate(z1)), n__s(div(minus(z0, activate(z1)), n__s(activate(z1)))), n__0) 3.12/1.28
if(true, z0, z1) → activate(z0) 3.12/1.28
if(false, z0, z1) → activate(z1) 3.12/1.28
0 → n__0 3.12/1.28
s(z0) → n__s(z0) 3.12/1.28
activate(n__0) → 0 3.12/1.28
activate(n__s(z0)) → s(z0) 3.12/1.28
activate(z0) → z0
S tuples:
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
IF(true, z0, z1) → c7(ACTIVATE(z0)) 3.12/1.28
IF(false, z0, z1) → c8(ACTIVATE(z1)) 3.12/1.28
MINUS(n__0, z0) → c 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
K tuples:none
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
IF(true, z0, z1) → c7(ACTIVATE(z0)) 3.12/1.28
IF(false, z0, z1) → c8(ACTIVATE(z1)) 3.12/1.28
MINUS(n__0, z0) → c 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
minus, geq, div, if, 0, s, activate
MINUS, GEQ, IF, ACTIVATE
c1, c4, c7, c8, c, c11, c12
IF(false, z0, z1) → c8(ACTIVATE(z1)) 3.12/1.28
MINUS(n__0, z0) → c 3.12/1.28
IF(true, z0, z1) → c7(ACTIVATE(z0)) 3.12/1.28
ACTIVATE(n__s(z0)) → c12 3.12/1.28
ACTIVATE(n__0) → c11
Tuples:
minus(n__0, z0) → 0 3.12/1.28
minus(n__s(z0), n__s(z1)) → minus(activate(z0), activate(z1)) 3.12/1.28
geq(z0, n__0) → true 3.12/1.28
geq(n__0, n__s(z0)) → false 3.12/1.28
geq(n__s(z0), n__s(z1)) → geq(activate(z0), activate(z1)) 3.12/1.28
div(0, n__s(z0)) → 0 3.12/1.28
div(s(z0), n__s(z1)) → if(geq(z0, activate(z1)), n__s(div(minus(z0, activate(z1)), n__s(activate(z1)))), n__0) 3.12/1.28
if(true, z0, z1) → activate(z0) 3.12/1.28
if(false, z0, z1) → activate(z1) 3.12/1.28
0 → n__0 3.12/1.28
s(z0) → n__s(z0) 3.12/1.28
activate(n__0) → 0 3.12/1.28
activate(n__s(z0)) → s(z0) 3.12/1.28
activate(z0) → z0
S tuples:
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
MINUS(n__0, z0) → c 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
K tuples:none
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
MINUS(n__0, z0) → c 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
minus, geq, div, if, 0, s, activate
MINUS, GEQ, ACTIVATE
c1, c4, c, c11, c12
We considered the (Usable) Rules:
MINUS(n__0, z0) → c
And the Tuples:
activate(n__0) → 0 3.12/1.28
activate(n__s(z0)) → s(z0) 3.12/1.28
activate(z0) → z0 3.12/1.28
s(z0) → n__s(z0) 3.12/1.28
0 → n__0
The order we found is given by the following interpretation:
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
MINUS(n__0, z0) → c 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
POL(0) = [4] 3.12/1.28
POL(ACTIVATE(x1)) = 0 3.12/1.28
POL(GEQ(x1, x2)) = 0 3.12/1.28
POL(MINUS(x1, x2)) = [3] 3.12/1.28
POL(activate(x1)) = [2] + [4]x1 3.12/1.28
POL(c) = 0 3.12/1.28
POL(c1(x1, x2, x3)) = x1 + x2 + x3 3.12/1.28
POL(c11) = 0 3.12/1.28
POL(c12) = 0 3.12/1.28
POL(c4(x1, x2, x3)) = x1 + x2 + x3 3.12/1.28
POL(n__0) = [2] 3.12/1.28
POL(n__s(x1)) = [2] 3.12/1.28
POL(s(x1)) = [4]
Tuples:
minus(n__0, z0) → 0 3.12/1.28
minus(n__s(z0), n__s(z1)) → minus(activate(z0), activate(z1)) 3.12/1.28
geq(z0, n__0) → true 3.12/1.28
geq(n__0, n__s(z0)) → false 3.12/1.28
geq(n__s(z0), n__s(z1)) → geq(activate(z0), activate(z1)) 3.12/1.28
div(0, n__s(z0)) → 0 3.12/1.28
div(s(z0), n__s(z1)) → if(geq(z0, activate(z1)), n__s(div(minus(z0, activate(z1)), n__s(activate(z1)))), n__0) 3.12/1.28
if(true, z0, z1) → activate(z0) 3.12/1.28
if(false, z0, z1) → activate(z1) 3.12/1.28
0 → n__0 3.12/1.28
s(z0) → n__s(z0) 3.12/1.28
activate(n__0) → 0 3.12/1.28
activate(n__s(z0)) → s(z0) 3.12/1.28
activate(z0) → z0
S tuples:
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
MINUS(n__0, z0) → c 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
K tuples:
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
Defined Rule Symbols:
MINUS(n__0, z0) → c
minus, geq, div, if, 0, s, activate
MINUS, GEQ, ACTIVATE
c1, c4, c, c11, c12
We considered the (Usable) Rules:
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1))
And the Tuples:
activate(n__0) → 0 3.12/1.28
activate(n__s(z0)) → s(z0) 3.12/1.28
activate(z0) → z0 3.12/1.28
s(z0) → n__s(z0) 3.12/1.28
0 → n__0
The order we found is given by the following interpretation:
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
MINUS(n__0, z0) → c 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
POL(0) = 0 3.12/1.28
POL(ACTIVATE(x1)) = 0 3.12/1.28
POL(GEQ(x1, x2)) = 0 3.12/1.28
POL(MINUS(x1, x2)) = x1 + x2 3.12/1.28
POL(activate(x1)) = x1 3.12/1.28
POL(c) = 0 3.12/1.28
POL(c1(x1, x2, x3)) = x1 + x2 + x3 3.12/1.28
POL(c11) = 0 3.12/1.28
POL(c12) = 0 3.12/1.28
POL(c4(x1, x2, x3)) = x1 + x2 + x3 3.12/1.28
POL(n__0) = 0 3.12/1.28
POL(n__s(x1)) = [1] + x1 3.12/1.28
POL(s(x1)) = [1] + x1
Tuples:
minus(n__0, z0) → 0 3.12/1.28
minus(n__s(z0), n__s(z1)) → minus(activate(z0), activate(z1)) 3.12/1.28
geq(z0, n__0) → true 3.12/1.28
geq(n__0, n__s(z0)) → false 3.12/1.28
geq(n__s(z0), n__s(z1)) → geq(activate(z0), activate(z1)) 3.12/1.28
div(0, n__s(z0)) → 0 3.12/1.28
div(s(z0), n__s(z1)) → if(geq(z0, activate(z1)), n__s(div(minus(z0, activate(z1)), n__s(activate(z1)))), n__0) 3.12/1.28
if(true, z0, z1) → activate(z0) 3.12/1.28
if(false, z0, z1) → activate(z1) 3.12/1.28
0 → n__0 3.12/1.28
s(z0) → n__s(z0) 3.12/1.28
activate(n__0) → 0 3.12/1.28
activate(n__s(z0)) → s(z0) 3.12/1.28
activate(z0) → z0
S tuples:
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
MINUS(n__0, z0) → c 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
K tuples:
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
Defined Rule Symbols:
MINUS(n__0, z0) → c 3.12/1.28
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1))
minus, geq, div, if, 0, s, activate
MINUS, GEQ, ACTIVATE
c1, c4, c, c11, c12
We considered the (Usable) Rules:
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
And the Tuples:
activate(n__0) → 0 3.12/1.28
activate(n__s(z0)) → s(z0) 3.12/1.28
activate(z0) → z0 3.12/1.28
s(z0) → n__s(z0) 3.12/1.28
0 → n__0
The order we found is given by the following interpretation:
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
MINUS(n__0, z0) → c 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
POL(0) = 0 3.12/1.28
POL(ACTIVATE(x1)) = [2] 3.12/1.28
POL(GEQ(x1, x2)) = [4]x2 3.12/1.28
POL(MINUS(x1, x2)) = [4]x2 3.12/1.28
POL(activate(x1)) = x1 3.12/1.28
POL(c) = 0 3.12/1.28
POL(c1(x1, x2, x3)) = x1 + x2 + x3 3.12/1.28
POL(c11) = 0 3.12/1.28
POL(c12) = 0 3.12/1.28
POL(c4(x1, x2, x3)) = x1 + x2 + x3 3.12/1.28
POL(n__0) = 0 3.12/1.28
POL(n__s(x1)) = [1] + x1 3.12/1.28
POL(s(x1)) = [1] + x1
Tuples:
minus(n__0, z0) → 0 3.12/1.28
minus(n__s(z0), n__s(z1)) → minus(activate(z0), activate(z1)) 3.12/1.28
geq(z0, n__0) → true 3.12/1.28
geq(n__0, n__s(z0)) → false 3.12/1.28
geq(n__s(z0), n__s(z1)) → geq(activate(z0), activate(z1)) 3.12/1.28
div(0, n__s(z0)) → 0 3.12/1.28
div(s(z0), n__s(z1)) → if(geq(z0, activate(z1)), n__s(div(minus(z0, activate(z1)), n__s(activate(z1)))), n__0) 3.12/1.28
if(true, z0, z1) → activate(z0) 3.12/1.28
if(false, z0, z1) → activate(z1) 3.12/1.28
0 → n__0 3.12/1.28
s(z0) → n__s(z0) 3.12/1.28
activate(n__0) → 0 3.12/1.28
activate(n__s(z0)) → s(z0) 3.12/1.28
activate(z0) → z0
S tuples:
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
MINUS(n__0, z0) → c 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
K tuples:
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1))
Defined Rule Symbols:
MINUS(n__0, z0) → c 3.12/1.28
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
minus, geq, div, if, 0, s, activate
MINUS, GEQ, ACTIVATE
c1, c4, c, c11, c12
We considered the (Usable) Rules:
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1))
And the Tuples:
activate(n__0) → 0 3.12/1.28
activate(n__s(z0)) → s(z0) 3.12/1.28
activate(z0) → z0 3.12/1.28
s(z0) → n__s(z0) 3.12/1.28
0 → n__0
The order we found is given by the following interpretation:
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
MINUS(n__0, z0) → c 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
POL(0) = 0 3.12/1.28
POL(ACTIVATE(x1)) = 0 3.12/1.28
POL(GEQ(x1, x2)) = [3]x1 + [4]x2 3.12/1.28
POL(MINUS(x1, x2)) = 0 3.12/1.28
POL(activate(x1)) = x1 3.12/1.28
POL(c) = 0 3.12/1.28
POL(c1(x1, x2, x3)) = x1 + x2 + x3 3.12/1.28
POL(c11) = 0 3.12/1.28
POL(c12) = 0 3.12/1.28
POL(c4(x1, x2, x3)) = x1 + x2 + x3 3.12/1.28
POL(n__0) = 0 3.12/1.28
POL(n__s(x1)) = [5] + x1 3.12/1.28
POL(s(x1)) = [5] + x1
Tuples:
minus(n__0, z0) → 0 3.12/1.28
minus(n__s(z0), n__s(z1)) → minus(activate(z0), activate(z1)) 3.12/1.28
geq(z0, n__0) → true 3.12/1.28
geq(n__0, n__s(z0)) → false 3.12/1.28
geq(n__s(z0), n__s(z1)) → geq(activate(z0), activate(z1)) 3.12/1.28
div(0, n__s(z0)) → 0 3.12/1.28
div(s(z0), n__s(z1)) → if(geq(z0, activate(z1)), n__s(div(minus(z0, activate(z1)), n__s(activate(z1)))), n__0) 3.12/1.28
if(true, z0, z1) → activate(z0) 3.12/1.28
if(false, z0, z1) → activate(z1) 3.12/1.28
0 → n__0 3.12/1.28
s(z0) → n__s(z0) 3.12/1.28
activate(n__0) → 0 3.12/1.28
activate(n__s(z0)) → s(z0) 3.12/1.28
activate(z0) → z0
S tuples:none
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
MINUS(n__0, z0) → c 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12
Defined Rule Symbols:
MINUS(n__0, z0) → c 3.12/1.28
MINUS(n__s(z0), n__s(z1)) → c1(MINUS(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1)) 3.12/1.28
ACTIVATE(n__0) → c11 3.12/1.28
ACTIVATE(n__s(z0)) → c12 3.12/1.28
GEQ(n__s(z0), n__s(z1)) → c4(GEQ(activate(z0), activate(z1)), ACTIVATE(z0), ACTIVATE(z1))
minus, geq, div, if, 0, s, activate
MINUS, GEQ, ACTIVATE
c1, c4, c, c11, c12