(0) Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(inf(X)) → inf(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(length(X)) → length(active(X))
inf(mark(X)) → mark(inf(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
length(mark(X)) → mark(length(X))
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
s(ok(X)) → ok(s(X))
inf(ok(X)) → ok(inf(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
any(X) → s(X)
any(proper(X)) → any(any(any(X)))
Q is empty.
(1) DependencyPairsProof (EQUIVALENT transformation)
Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.
(2) Obligation:
Q DP problem:
The TRS P consists of the following rules:
ACTIVE(eq(s(X), s(Y))) → EQ(X, Y)
ACTIVE(inf(X)) → CONS(X, inf(s(X)))
ACTIVE(inf(X)) → INF(s(X))
ACTIVE(inf(X)) → S(X)
ACTIVE(take(s(X), cons(Y, L))) → CONS(Y, take(X, L))
ACTIVE(take(s(X), cons(Y, L))) → TAKE(X, L)
ACTIVE(length(cons(X, L))) → S(length(L))
ACTIVE(length(cons(X, L))) → LENGTH(L)
ACTIVE(inf(X)) → INF(active(X))
ACTIVE(inf(X)) → ACTIVE(X)
ACTIVE(take(X1, X2)) → TAKE(active(X1), X2)
ACTIVE(take(X1, X2)) → ACTIVE(X1)
ACTIVE(take(X1, X2)) → TAKE(X1, active(X2))
ACTIVE(take(X1, X2)) → ACTIVE(X2)
ACTIVE(length(X)) → LENGTH(active(X))
ACTIVE(length(X)) → ACTIVE(X)
INF(mark(X)) → INF(X)
TAKE(mark(X1), X2) → TAKE(X1, X2)
TAKE(X1, mark(X2)) → TAKE(X1, X2)
LENGTH(mark(X)) → LENGTH(X)
PROPER(eq(X1, X2)) → EQ(proper(X1), proper(X2))
PROPER(eq(X1, X2)) → PROPER(X1)
PROPER(eq(X1, X2)) → PROPER(X2)
PROPER(s(X)) → S(proper(X))
PROPER(s(X)) → PROPER(X)
PROPER(inf(X)) → INF(proper(X))
PROPER(inf(X)) → PROPER(X)
PROPER(cons(any(X1), X2)) → CONS(any(any(proper(X1))), any(proper(X2)))
PROPER(cons(any(X1), X2)) → ANY(any(proper(X1)))
PROPER(cons(any(X1), X2)) → ANY(proper(X1))
PROPER(cons(any(X1), X2)) → PROPER(X1)
PROPER(cons(any(X1), X2)) → ANY(proper(X2))
PROPER(cons(any(X1), X2)) → PROPER(X2)
PROPER(take(X1, X2)) → TAKE(proper(X1), proper(X2))
PROPER(take(X1, X2)) → PROPER(X1)
PROPER(take(X1, X2)) → PROPER(X2)
PROPER(length(X)) → LENGTH(proper(X))
PROPER(length(X)) → PROPER(X)
EQ(ok(X1), ok(X2)) → EQ(X1, X2)
S(ok(X)) → S(X)
INF(ok(X)) → INF(X)
CONS(ok(X1), ok(X2)) → CONS(X1, X2)
TAKE(ok(X1), ok(X2)) → TAKE(X1, X2)
LENGTH(ok(X)) → LENGTH(X)
TOP(mark(X)) → TOP(proper(X))
TOP(mark(X)) → PROPER(X)
TOP(ok(X)) → TOP(active(X))
TOP(ok(X)) → ACTIVE(X)
ANY(X) → S(X)
ANY(proper(X)) → ANY(any(any(X)))
ANY(proper(X)) → ANY(any(X))
ANY(proper(X)) → ANY(X)
The TRS R consists of the following rules:
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(inf(X)) → inf(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(length(X)) → length(active(X))
inf(mark(X)) → mark(inf(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
length(mark(X)) → mark(length(X))
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
s(ok(X)) → ok(s(X))
inf(ok(X)) → ok(inf(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
any(X) → s(X)
any(proper(X)) → any(any(any(X)))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(3) DependencyGraphProof (EQUIVALENT transformation)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 10 SCCs with 26 less nodes.
(4) Complex Obligation (AND)
(5) Obligation:
Q DP problem:
The TRS P consists of the following rules:
CONS(ok(X1), ok(X2)) → CONS(X1, X2)
The TRS R consists of the following rules:
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(inf(X)) → inf(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(length(X)) → length(active(X))
inf(mark(X)) → mark(inf(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
length(mark(X)) → mark(length(X))
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
s(ok(X)) → ok(s(X))
inf(ok(X)) → ok(inf(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
any(X) → s(X)
any(proper(X)) → any(any(any(X)))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(6) UsableRulesProof (EQUIVALENT transformation)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
(7) Obligation:
Q DP problem:
The TRS P consists of the following rules:
CONS(ok(X1), ok(X2)) → CONS(X1, X2)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(8) QDPSizeChangeProof (EQUIVALENT transformation)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.
From the DPs we obtained the following set of size-change graphs:
- CONS(ok(X1), ok(X2)) → CONS(X1, X2)
The graph contains the following edges 1 > 1, 2 > 2
(9) YES
(10) Obligation:
Q DP problem:
The TRS P consists of the following rules:
S(ok(X)) → S(X)
The TRS R consists of the following rules:
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(inf(X)) → inf(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(length(X)) → length(active(X))
inf(mark(X)) → mark(inf(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
length(mark(X)) → mark(length(X))
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
s(ok(X)) → ok(s(X))
inf(ok(X)) → ok(inf(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
any(X) → s(X)
any(proper(X)) → any(any(any(X)))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(11) UsableRulesProof (EQUIVALENT transformation)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
(12) Obligation:
Q DP problem:
The TRS P consists of the following rules:
S(ok(X)) → S(X)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(13) QDPSizeChangeProof (EQUIVALENT transformation)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.
From the DPs we obtained the following set of size-change graphs:
- S(ok(X)) → S(X)
The graph contains the following edges 1 > 1
(14) YES
(15) Obligation:
Q DP problem:
The TRS P consists of the following rules:
ANY(proper(X)) → ANY(X)
The TRS R consists of the following rules:
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(inf(X)) → inf(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(length(X)) → length(active(X))
inf(mark(X)) → mark(inf(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
length(mark(X)) → mark(length(X))
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
s(ok(X)) → ok(s(X))
inf(ok(X)) → ok(inf(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
any(X) → s(X)
any(proper(X)) → any(any(any(X)))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(16) UsableRulesProof (EQUIVALENT transformation)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
(17) Obligation:
Q DP problem:
The TRS P consists of the following rules:
ANY(proper(X)) → ANY(X)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(18) QDPSizeChangeProof (EQUIVALENT transformation)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.
From the DPs we obtained the following set of size-change graphs:
- ANY(proper(X)) → ANY(X)
The graph contains the following edges 1 > 1
(19) YES
(20) Obligation:
Q DP problem:
The TRS P consists of the following rules:
EQ(ok(X1), ok(X2)) → EQ(X1, X2)
The TRS R consists of the following rules:
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(inf(X)) → inf(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(length(X)) → length(active(X))
inf(mark(X)) → mark(inf(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
length(mark(X)) → mark(length(X))
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
s(ok(X)) → ok(s(X))
inf(ok(X)) → ok(inf(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
any(X) → s(X)
any(proper(X)) → any(any(any(X)))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(21) UsableRulesProof (EQUIVALENT transformation)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
(22) Obligation:
Q DP problem:
The TRS P consists of the following rules:
EQ(ok(X1), ok(X2)) → EQ(X1, X2)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(23) QDPSizeChangeProof (EQUIVALENT transformation)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.
From the DPs we obtained the following set of size-change graphs:
- EQ(ok(X1), ok(X2)) → EQ(X1, X2)
The graph contains the following edges 1 > 1, 2 > 2
(24) YES
(25) Obligation:
Q DP problem:
The TRS P consists of the following rules:
LENGTH(ok(X)) → LENGTH(X)
LENGTH(mark(X)) → LENGTH(X)
The TRS R consists of the following rules:
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(inf(X)) → inf(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(length(X)) → length(active(X))
inf(mark(X)) → mark(inf(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
length(mark(X)) → mark(length(X))
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
s(ok(X)) → ok(s(X))
inf(ok(X)) → ok(inf(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
any(X) → s(X)
any(proper(X)) → any(any(any(X)))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(26) UsableRulesProof (EQUIVALENT transformation)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
(27) Obligation:
Q DP problem:
The TRS P consists of the following rules:
LENGTH(ok(X)) → LENGTH(X)
LENGTH(mark(X)) → LENGTH(X)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(28) QDPSizeChangeProof (EQUIVALENT transformation)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.
From the DPs we obtained the following set of size-change graphs:
- LENGTH(ok(X)) → LENGTH(X)
The graph contains the following edges 1 > 1
- LENGTH(mark(X)) → LENGTH(X)
The graph contains the following edges 1 > 1
(29) YES
(30) Obligation:
Q DP problem:
The TRS P consists of the following rules:
TAKE(X1, mark(X2)) → TAKE(X1, X2)
TAKE(mark(X1), X2) → TAKE(X1, X2)
TAKE(ok(X1), ok(X2)) → TAKE(X1, X2)
The TRS R consists of the following rules:
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(inf(X)) → inf(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(length(X)) → length(active(X))
inf(mark(X)) → mark(inf(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
length(mark(X)) → mark(length(X))
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
s(ok(X)) → ok(s(X))
inf(ok(X)) → ok(inf(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
any(X) → s(X)
any(proper(X)) → any(any(any(X)))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(31) UsableRulesProof (EQUIVALENT transformation)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
(32) Obligation:
Q DP problem:
The TRS P consists of the following rules:
TAKE(X1, mark(X2)) → TAKE(X1, X2)
TAKE(mark(X1), X2) → TAKE(X1, X2)
TAKE(ok(X1), ok(X2)) → TAKE(X1, X2)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(33) QDPSizeChangeProof (EQUIVALENT transformation)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.
From the DPs we obtained the following set of size-change graphs:
- TAKE(X1, mark(X2)) → TAKE(X1, X2)
The graph contains the following edges 1 >= 1, 2 > 2
- TAKE(mark(X1), X2) → TAKE(X1, X2)
The graph contains the following edges 1 > 1, 2 >= 2
- TAKE(ok(X1), ok(X2)) → TAKE(X1, X2)
The graph contains the following edges 1 > 1, 2 > 2
(34) YES
(35) Obligation:
Q DP problem:
The TRS P consists of the following rules:
INF(ok(X)) → INF(X)
INF(mark(X)) → INF(X)
The TRS R consists of the following rules:
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(inf(X)) → inf(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(length(X)) → length(active(X))
inf(mark(X)) → mark(inf(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
length(mark(X)) → mark(length(X))
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
s(ok(X)) → ok(s(X))
inf(ok(X)) → ok(inf(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
any(X) → s(X)
any(proper(X)) → any(any(any(X)))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(36) UsableRulesProof (EQUIVALENT transformation)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
(37) Obligation:
Q DP problem:
The TRS P consists of the following rules:
INF(ok(X)) → INF(X)
INF(mark(X)) → INF(X)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(38) QDPSizeChangeProof (EQUIVALENT transformation)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.
From the DPs we obtained the following set of size-change graphs:
- INF(ok(X)) → INF(X)
The graph contains the following edges 1 > 1
- INF(mark(X)) → INF(X)
The graph contains the following edges 1 > 1
(39) YES
(40) Obligation:
Q DP problem:
The TRS P consists of the following rules:
PROPER(eq(X1, X2)) → PROPER(X2)
PROPER(eq(X1, X2)) → PROPER(X1)
PROPER(s(X)) → PROPER(X)
PROPER(inf(X)) → PROPER(X)
PROPER(cons(any(X1), X2)) → PROPER(X1)
PROPER(cons(any(X1), X2)) → PROPER(X2)
PROPER(take(X1, X2)) → PROPER(X1)
PROPER(take(X1, X2)) → PROPER(X2)
PROPER(length(X)) → PROPER(X)
The TRS R consists of the following rules:
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(inf(X)) → inf(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(length(X)) → length(active(X))
inf(mark(X)) → mark(inf(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
length(mark(X)) → mark(length(X))
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
s(ok(X)) → ok(s(X))
inf(ok(X)) → ok(inf(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
any(X) → s(X)
any(proper(X)) → any(any(any(X)))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(41) UsableRulesProof (EQUIVALENT transformation)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
(42) Obligation:
Q DP problem:
The TRS P consists of the following rules:
PROPER(eq(X1, X2)) → PROPER(X2)
PROPER(eq(X1, X2)) → PROPER(X1)
PROPER(s(X)) → PROPER(X)
PROPER(inf(X)) → PROPER(X)
PROPER(cons(any(X1), X2)) → PROPER(X1)
PROPER(cons(any(X1), X2)) → PROPER(X2)
PROPER(take(X1, X2)) → PROPER(X1)
PROPER(take(X1, X2)) → PROPER(X2)
PROPER(length(X)) → PROPER(X)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(43) QDPSizeChangeProof (EQUIVALENT transformation)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.
From the DPs we obtained the following set of size-change graphs:
- PROPER(eq(X1, X2)) → PROPER(X2)
The graph contains the following edges 1 > 1
- PROPER(eq(X1, X2)) → PROPER(X1)
The graph contains the following edges 1 > 1
- PROPER(s(X)) → PROPER(X)
The graph contains the following edges 1 > 1
- PROPER(inf(X)) → PROPER(X)
The graph contains the following edges 1 > 1
- PROPER(cons(any(X1), X2)) → PROPER(X1)
The graph contains the following edges 1 > 1
- PROPER(cons(any(X1), X2)) → PROPER(X2)
The graph contains the following edges 1 > 1
- PROPER(take(X1, X2)) → PROPER(X1)
The graph contains the following edges 1 > 1
- PROPER(take(X1, X2)) → PROPER(X2)
The graph contains the following edges 1 > 1
- PROPER(length(X)) → PROPER(X)
The graph contains the following edges 1 > 1
(44) YES
(45) Obligation:
Q DP problem:
The TRS P consists of the following rules:
ACTIVE(take(X1, X2)) → ACTIVE(X1)
ACTIVE(inf(X)) → ACTIVE(X)
ACTIVE(take(X1, X2)) → ACTIVE(X2)
ACTIVE(length(X)) → ACTIVE(X)
The TRS R consists of the following rules:
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(inf(X)) → inf(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(length(X)) → length(active(X))
inf(mark(X)) → mark(inf(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
length(mark(X)) → mark(length(X))
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
s(ok(X)) → ok(s(X))
inf(ok(X)) → ok(inf(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
any(X) → s(X)
any(proper(X)) → any(any(any(X)))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(46) UsableRulesProof (EQUIVALENT transformation)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
(47) Obligation:
Q DP problem:
The TRS P consists of the following rules:
ACTIVE(take(X1, X2)) → ACTIVE(X1)
ACTIVE(inf(X)) → ACTIVE(X)
ACTIVE(take(X1, X2)) → ACTIVE(X2)
ACTIVE(length(X)) → ACTIVE(X)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(48) QDPSizeChangeProof (EQUIVALENT transformation)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.
From the DPs we obtained the following set of size-change graphs:
- ACTIVE(take(X1, X2)) → ACTIVE(X1)
The graph contains the following edges 1 > 1
- ACTIVE(inf(X)) → ACTIVE(X)
The graph contains the following edges 1 > 1
- ACTIVE(take(X1, X2)) → ACTIVE(X2)
The graph contains the following edges 1 > 1
- ACTIVE(length(X)) → ACTIVE(X)
The graph contains the following edges 1 > 1
(49) YES
(50) Obligation:
Q DP problem:
The TRS P consists of the following rules:
TOP(ok(X)) → TOP(active(X))
TOP(mark(X)) → TOP(proper(X))
The TRS R consists of the following rules:
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(inf(X)) → inf(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(length(X)) → length(active(X))
inf(mark(X)) → mark(inf(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
length(mark(X)) → mark(length(X))
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
s(ok(X)) → ok(s(X))
inf(ok(X)) → ok(inf(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
any(X) → s(X)
any(proper(X)) → any(any(any(X)))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(51) UsableRulesReductionPairsProof (EQUIVALENT transformation)
By using the usable rules with reduction pair processor [LPAR04] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules [FROCOS05] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.
No dependency pairs are removed.
The following rules are removed from R:
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Used ordering: POLO with Polynomial interpretation [POLO]:
POL(0) = 0
POL(TOP(x1)) = x1
POL(active(x1)) = 2·x1
POL(any(x1)) = x1
POL(cons(x1, x2)) = x1 + x2
POL(eq(x1, x2)) = 2·x1 + 2·x2
POL(false) = 0
POL(inf(x1)) = 2·x1
POL(length(x1)) = x1
POL(mark(x1)) = x1
POL(nil) = 0
POL(ok(x1)) = 2·x1
POL(proper(x1)) = x1
POL(s(x1)) = x1
POL(take(x1, x2)) = x1 + x2
POL(true) = 0
(52) Obligation:
Q DP problem:
The TRS P consists of the following rules:
TOP(ok(X)) → TOP(active(X))
TOP(mark(X)) → TOP(proper(X))
The TRS R consists of the following rules:
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
length(mark(X)) → mark(length(X))
length(ok(X)) → ok(length(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
any(X) → s(X)
any(proper(X)) → any(any(any(X)))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
s(ok(X)) → ok(s(X))
inf(mark(X)) → mark(inf(X))
inf(ok(X)) → ok(inf(X))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(inf(X)) → inf(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(length(X)) → length(active(X))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(53) QDPOrderProof (EQUIVALENT transformation)
We use the reduction pair processor [LPAR04,JAR06].
The following pairs can be oriented strictly and are deleted.
TOP(mark(X)) → TOP(proper(X))
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :
POL(eq(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(cons(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(take(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(inf(X)) → inf(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(length(X)) → length(active(X))
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
s(ok(X)) → ok(s(X))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
inf(mark(X)) → mark(inf(X))
inf(ok(X)) → ok(inf(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
length(mark(X)) → mark(length(X))
length(ok(X)) → ok(length(X))
(54) Obligation:
Q DP problem:
The TRS P consists of the following rules:
TOP(ok(X)) → TOP(active(X))
The TRS R consists of the following rules:
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
length(mark(X)) → mark(length(X))
length(ok(X)) → ok(length(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
any(X) → s(X)
any(proper(X)) → any(any(any(X)))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
s(ok(X)) → ok(s(X))
inf(mark(X)) → mark(inf(X))
inf(ok(X)) → ok(inf(X))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(inf(X)) → inf(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(length(X)) → length(active(X))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(55) UsableRulesReductionPairsProof (EQUIVALENT transformation)
By using the usable rules with reduction pair processor [LPAR04] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules [FROCOS05] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.
No dependency pairs are removed.
The following rules are removed from R:
proper(eq(X1, X2)) → eq(proper(X1), proper(X2))
proper(0) → ok(0)
proper(true) → ok(true)
proper(s(X)) → s(proper(X))
proper(false) → ok(false)
proper(inf(X)) → inf(proper(X))
proper(cons(any(X1), X2)) → cons(any(any(proper(X1))), any(proper(X2)))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(length(X)) → length(proper(X))
length(mark(X)) → mark(length(X))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
any(X) → s(X)
any(proper(X)) → any(any(any(X)))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
eq(ok(X1), ok(X2)) → ok(eq(X1, X2))
active(eq(0, 0)) → mark(true)
active(eq(s(X), s(Y))) → mark(eq(X, Y))
active(eq(X, Y)) → mark(false)
active(inf(X)) → mark(cons(X, inf(s(X))))
active(take(0, X)) → mark(nil)
active(take(s(X), cons(Y, L))) → mark(cons(Y, take(X, L)))
active(length(nil)) → mark(0)
active(length(cons(X, L))) → mark(s(length(L)))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
Used ordering: POLO with Polynomial interpretation [POLO]:
POL(0) = 1
POL(TOP(x1)) = 2·x1
POL(active(x1)) = 2 + 2·x1
POL(cons(x1, x2)) = x1 + x2
POL(eq(x1, x2)) = 1 + 2·x1 + 2·x2
POL(false) = 1
POL(inf(x1)) = x1
POL(length(x1)) = 2 + 2·x1
POL(mark(x1)) = 1 + x1
POL(nil) = 0
POL(ok(x1)) = 2 + 2·x1
POL(s(x1)) = x1
POL(take(x1, x2)) = 1 + x1 + x2
POL(true) = 1
(56) Obligation:
Q DP problem:
The TRS P consists of the following rules:
TOP(ok(X)) → TOP(active(X))
The TRS R consists of the following rules:
active(inf(X)) → inf(active(X))
active(length(X)) → length(active(X))
length(ok(X)) → ok(length(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
inf(mark(X)) → mark(inf(X))
inf(ok(X)) → ok(inf(X))
s(ok(X)) → ok(s(X))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(57) UsableRulesProof (EQUIVALENT transformation)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
(58) Obligation:
Q DP problem:
The TRS P consists of the following rules:
TOP(ok(X)) → TOP(active(X))
The TRS R consists of the following rules:
active(inf(X)) → inf(active(X))
active(length(X)) → length(active(X))
length(ok(X)) → ok(length(X))
inf(mark(X)) → mark(inf(X))
inf(ok(X)) → ok(inf(X))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(59) MRRProof (EQUIVALENT transformation)
By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:
TOP(ok(X)) → TOP(active(X))
Strictly oriented rules of the TRS R:
active(inf(X)) → inf(active(X))
active(length(X)) → length(active(X))
length(ok(X)) → ok(length(X))
inf(mark(X)) → mark(inf(X))
inf(ok(X)) → ok(inf(X))
Used ordering: Knuth-Bendix order [KBO] with precedence:
active1 > TOP1 > inf1 > mark1 > length1 > ok1
and weight map:
active_1=1
inf_1=3
length_1=3
ok_1=2
mark_1=1
TOP_1=1
The variable weight is 1
(60) Obligation:
Q DP problem:
P is empty.
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(61) PisEmptyProof (EQUIVALENT transformation)
The TRS P is empty. Hence, there is no (P,Q,R) chain.
(62) YES