Termination of the following Term Rewriting System could not be shown:
Context-sensitive rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
The replacement map contains the following entries:zeros: empty set
cons: {1}
0: empty set
and: {1}
tt: empty set
length: {1}
nil: empty set
s: {1}
↳ CSR
↳ CSRInnermostProof
Context-sensitive rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
The replacement map contains the following entries:zeros: empty set
cons: {1}
0: empty set
and: {1}
tt: empty set
length: {1}
nil: empty set
s: {1}
The CSR is orthogonal. By [10] we can switch to innermost.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Context-sensitive rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
The replacement map contains the following entries:zeros: empty set
cons: {1}
0: empty set
and: {1}
tt: empty set
length: {1}
nil: empty set
s: {1}
Innermost Strategy.
Using Improved CS-DPs we result in the following initial Q-CSDP problem.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q-restricted context-sensitive dependency pair problem:
The symbols in {length, s, LENGTH} are replacing on all positions.
For all symbols f in {cons, and, AND} we have µ(f) = {1}.
The symbols in {U} are not replacing on any position.
The ordinary context-sensitive dependency pairs DPo are:
LENGTH(cons(N, L)) → LENGTH(L)
The collapsing dependency pairs are DPc:
AND(tt, X) → X
LENGTH(cons(N, L)) → L
The hidden terms of R are:
zeros
Every hiding context is built from:none
Hence, the new unhiding pairs DPu are :
AND(tt, X) → U(X)
LENGTH(cons(N, L)) → U(L)
U(zeros) → ZEROS
The TRS R consists of the following rules:
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
The set Q consists of the following terms:
zeros
and(tt, x0)
length(nil)
length(cons(x0, x1))
The approximation of the Context-Sensitive Dependency Graph contains 1 SCC with 3 less nodes.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ QCSDP
↳ ConvertedToQDPProblemProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q-restricted context-sensitive dependency pair problem:
The symbols in {length, s, LENGTH} are replacing on all positions.
For all symbols f in {cons, and} we have µ(f) = {1}.
The TRS P consists of the following rules:
LENGTH(cons(N, L)) → LENGTH(L)
The TRS R consists of the following rules:
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
The set Q consists of the following terms:
zeros
and(tt, x0)
length(nil)
length(cons(x0, x1))
Converted QDP Problem, but could not keep Q or minimality.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ QCSDP
↳ ConvertedToQDPProblemProof
↳ QDP
↳ RuleRemovalProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(N, L)) → LENGTH(L)
The TRS R consists of the following rules:
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
Q is empty.
We have to consider all (P,Q,R)-chains.
By using the rule removal processor [15] with the following polynomial ordering [25], at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented rules of the TRS R:
and(tt, X) → X
length(nil) → 0
Used ordering: POLO with Polynomial interpretation [25]:
POL(0) = 0
POL(LENGTH(x1)) = 2·x1
POL(and(x1, x2)) = 1 + 2·x1 + x2
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = 2·x1
POL(nil) = 1
POL(s(x1)) = 2·x1
POL(tt) = 2
POL(zeros) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ QCSDP
↳ ConvertedToQDPProblemProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ NonTerminationProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(N, L)) → LENGTH(L)
The TRS R consists of the following rules:
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
Q is empty.
We have to consider all (P,Q,R)-chains.
We used the non-termination processor [17] to show that the DP problem is infinite.
Found a loop by narrowing to the left:
The TRS P consists of the following rules:
LENGTH(cons(N, L)) → LENGTH(L)
The TRS R consists of the following rules:
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
s = LENGTH(zeros) evaluates to t =LENGTH(zeros)
Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
- Semiunifier: [ ]
- Matcher: [ ]
Rewriting sequence
LENGTH(zeros) → LENGTH(cons(0, zeros))
with rule zeros → cons(0, zeros) at position [0] and matcher [ ]
LENGTH(cons(0, zeros)) → LENGTH(zeros)
with rule LENGTH(cons(N, L)) → LENGTH(L)
Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence
All these steps are and every following step will be a correct step w.r.t to Q.
We applied the Zantema transformation [34] to transform the context-sensitive TRS to a usual TRS.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
and(tt, X) → a(X)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
and(tt, X) → a(X)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
and(tt, X) → a(X)
Used ordering:
Polynomial interpretation [25]:
POL(0) = 0
POL(a(x1)) = x1
POL(and(x1, x2)) = x1 + 2·x2
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = 2·x1
POL(nil) = 0
POL(s(x1)) = 2·x1
POL(tt) = 1
POL(zeros) = 0
POL(zerosInact) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
length(nil) → 0
Used ordering:
Polynomial interpretation [25]:
POL(0) = 0
POL(a(x1)) = x1
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = 2·x1
POL(nil) = 2
POL(s(x1)) = 2·x1
POL(zeros) = 0
POL(zerosInact) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
zeros → zerosInact
Used ordering:
Polynomial interpretation [25]:
POL(0) = 0
POL(a(x1)) = 2·x1
POL(cons(x1, x2)) = x1 + 2·x2
POL(length(x1)) = 2·x1
POL(s(x1)) = x1
POL(zeros) = 2
POL(zerosInact) = 1
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
a(zerosInact) → zeros
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
a(zerosInact) → zeros
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
a(x) → x
Used ordering:
Polynomial interpretation [25]:
POL(0) = 0
POL(a(x1)) = 1 + x1
POL(cons(x1, x2)) = 1 + 2·x1 + x2
POL(length(x1)) = x1
POL(s(x1)) = x1
POL(zeros) = 1
POL(zerosInact) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
Q is empty.
The TRS is overlay and locally confluent. By [19] we can switch to innermost.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
a(zerosInact)
Using Dependency Pairs [1,15] we result in the following initial DP problem:
Q DP problem:
The TRS P consists of the following rules:
A(zerosInact) → ZEROS
LENGTH(cons(N, L)) → A(L)
LENGTH(cons(N, L)) → LENGTH(a(L))
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
a(zerosInact)
We have to consider all minimal (P,Q,R)-chains.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
A(zerosInact) → ZEROS
LENGTH(cons(N, L)) → A(L)
LENGTH(cons(N, L)) → LENGTH(a(L))
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
a(zerosInact)
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 2 less nodes.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(N, L)) → LENGTH(a(L))
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
a(zerosInact)
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(N, L)) → LENGTH(a(L))
The TRS R consists of the following rules:
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
a(zerosInact)
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
length(cons(x0, x1))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(N, L)) → LENGTH(a(L))
The TRS R consists of the following rules:
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
The set Q consists of the following terms:
zeros
a(zerosInact)
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule LENGTH(cons(N, L)) → LENGTH(a(L)) at position [0] we obtained the following new rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
The TRS R consists of the following rules:
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
The set Q consists of the following terms:
zeros
a(zerosInact)
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
The set Q consists of the following terms:
zeros
a(zerosInact)
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
a(zerosInact)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
The set Q consists of the following terms:
zeros
We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule LENGTH(cons(y0, zerosInact)) → LENGTH(zeros) at position [0] we obtained the following new rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
The set Q consists of the following terms:
zeros
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
R is empty.
The set Q consists of the following terms:
zeros
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
zeros
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By instantiating [15] the rule LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact)) we obtained the following new rules:
LENGTH(cons(0, zerosInact)) → LENGTH(cons(0, zerosInact))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ NonTerminationProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(0, zerosInact)) → LENGTH(cons(0, zerosInact))
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We used the non-termination processor [17] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.
The TRS P consists of the following rules:
LENGTH(cons(0, zerosInact)) → LENGTH(cons(0, zerosInact))
The TRS R consists of the following rules:none
s = LENGTH(cons(0, zerosInact)) evaluates to t =LENGTH(cons(0, zerosInact))
Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
- Matcher: [ ]
- Semiunifier: [ ]
Rewriting sequence
The DP semiunifies directly so there is only one rewrite step from LENGTH(cons(0, zerosInact)) to LENGTH(cons(0, zerosInact)).
We applied the Innermost Giesl Middeldorp transformation [10] to transform the context-sensitive TRS to a usual TRS.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q restricted rewrite system:
The TRS R consists of the following rules:
active(zeros) → mark(cons(0, zeros))
active(and(tt, X)) → mark(X)
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
cons(active(x1), x2) → cons(x1, x2)
cons(mark(x1), x2) → cons(x1, x2)
mark(0) → active(0)
mark(and(x1, x2)) → active(and(mark(x1), x2))
and(active(x1), x2) → and(x1, x2)
and(mark(x1), x2) → and(x1, x2)
mark(tt) → active(tt)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(nil) → active(nil)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
active(zeros) → mark(cons(0, zeros))
active(and(tt, X)) → mark(X)
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
cons(active(x1), x2) → cons(x1, x2)
cons(mark(x1), x2) → cons(x1, x2)
mark(0) → active(0)
mark(and(x1, x2)) → active(and(mark(x1), x2))
and(active(x1), x2) → and(x1, x2)
and(mark(x1), x2) → and(x1, x2)
mark(tt) → active(tt)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(nil) → active(nil)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
active(and(tt, X)) → mark(X)
active(length(nil)) → mark(0)
mark(tt) → active(tt)
mark(nil) → active(nil)
Used ordering:
Polynomial interpretation [25]:
POL(0) = 0
POL(active(x1)) = x1
POL(and(x1, x2)) = x1 + 2·x2
POL(cons(x1, x2)) = x1 + 2·x2
POL(length(x1)) = 2·x1
POL(mark(x1)) = 2·x1
POL(nil) = 1
POL(s(x1)) = x1
POL(tt) = 1
POL(zeros) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q restricted rewrite system:
The TRS R consists of the following rules:
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
cons(active(x1), x2) → cons(x1, x2)
cons(mark(x1), x2) → cons(x1, x2)
mark(0) → active(0)
mark(and(x1, x2)) → active(and(mark(x1), x2))
and(active(x1), x2) → and(x1, x2)
and(mark(x1), x2) → and(x1, x2)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
cons(active(x1), x2) → cons(x1, x2)
cons(mark(x1), x2) → cons(x1, x2)
mark(0) → active(0)
mark(and(x1, x2)) → active(and(mark(x1), x2))
and(active(x1), x2) → and(x1, x2)
and(mark(x1), x2) → and(x1, x2)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
mark(and(x1, x2)) → active(and(mark(x1), x2))
Used ordering:
Polynomial interpretation [25]:
POL(0) = 0
POL(active(x1)) = x1
POL(and(x1, x2)) = 2 + 2·x1 + x2
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = x1
POL(mark(x1)) = 2·x1
POL(s(x1)) = x1
POL(zeros) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q restricted rewrite system:
The TRS R consists of the following rules:
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
cons(active(x1), x2) → cons(x1, x2)
cons(mark(x1), x2) → cons(x1, x2)
mark(0) → active(0)
and(active(x1), x2) → and(x1, x2)
and(mark(x1), x2) → and(x1, x2)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
Using Dependency Pairs [1,15] we result in the following initial DP problem:
Q DP problem:
The TRS P consists of the following rules:
ACTIVE(length(cons(N, L))) → S(length(L))
CONS(mark(x1), x2) → CONS(x1, x2)
S(mark(x1)) → S(x1)
S(active(x1)) → S(x1)
MARK(s(x1)) → S(mark(x1))
MARK(cons(x1, x2)) → CONS(mark(x1), x2)
MARK(s(x1)) → MARK(x1)
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
MARK(cons(x1, x2)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
ACTIVE(length(cons(N, L))) → LENGTH(L)
MARK(length(x1)) → MARK(x1)
AND(mark(x1), x2) → AND(x1, x2)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
MARK(zeros) → ACTIVE(zeros)
MARK(length(x1)) → LENGTH(mark(x1))
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(0) → ACTIVE(0)
ACTIVE(zeros) → CONS(0, zeros)
LENGTH(mark(x1)) → LENGTH(x1)
CONS(active(x1), x2) → CONS(x1, x2)
AND(active(x1), x2) → AND(x1, x2)
LENGTH(active(x1)) → LENGTH(x1)
The TRS R consists of the following rules:
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
cons(active(x1), x2) → cons(x1, x2)
cons(mark(x1), x2) → cons(x1, x2)
mark(0) → active(0)
and(active(x1), x2) → and(x1, x2)
and(mark(x1), x2) → and(x1, x2)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
ACTIVE(length(cons(N, L))) → S(length(L))
CONS(mark(x1), x2) → CONS(x1, x2)
S(mark(x1)) → S(x1)
S(active(x1)) → S(x1)
MARK(s(x1)) → S(mark(x1))
MARK(cons(x1, x2)) → CONS(mark(x1), x2)
MARK(s(x1)) → MARK(x1)
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
MARK(cons(x1, x2)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
ACTIVE(length(cons(N, L))) → LENGTH(L)
MARK(length(x1)) → MARK(x1)
AND(mark(x1), x2) → AND(x1, x2)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
MARK(zeros) → ACTIVE(zeros)
MARK(length(x1)) → LENGTH(mark(x1))
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(0) → ACTIVE(0)
ACTIVE(zeros) → CONS(0, zeros)
LENGTH(mark(x1)) → LENGTH(x1)
CONS(active(x1), x2) → CONS(x1, x2)
AND(active(x1), x2) → AND(x1, x2)
LENGTH(active(x1)) → LENGTH(x1)
The TRS R consists of the following rules:
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
cons(active(x1), x2) → cons(x1, x2)
cons(mark(x1), x2) → cons(x1, x2)
mark(0) → active(0)
and(active(x1), x2) → and(x1, x2)
and(mark(x1), x2) → and(x1, x2)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 5 SCCs with 7 less nodes.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
S(active(x1)) → S(x1)
S(mark(x1)) → S(x1)
The TRS R consists of the following rules:
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
cons(active(x1), x2) → cons(x1, x2)
cons(mark(x1), x2) → cons(x1, x2)
mark(0) → active(0)
and(active(x1), x2) → and(x1, x2)
and(mark(x1), x2) → and(x1, x2)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
S(active(x1)) → S(x1)
S(mark(x1)) → S(x1)
R is empty.
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
cons(active(x0), x1)
cons(mark(x0), x1)
and(active(x0), x1)
and(mark(x0), x1)
length(active(x0))
length(mark(x0))
s(active(x0))
s(mark(x0))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
S(mark(x1)) → S(x1)
S(active(x1)) → S(x1)
R is empty.
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
mark(nil)
mark(s(x0))
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] 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(active(x1)) → S(x1)
The graph contains the following edges 1 > 1
- S(mark(x1)) → S(x1)
The graph contains the following edges 1 > 1
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(mark(x1)) → LENGTH(x1)
LENGTH(active(x1)) → LENGTH(x1)
The TRS R consists of the following rules:
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
cons(active(x1), x2) → cons(x1, x2)
cons(mark(x1), x2) → cons(x1, x2)
mark(0) → active(0)
and(active(x1), x2) → and(x1, x2)
and(mark(x1), x2) → and(x1, x2)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(mark(x1)) → LENGTH(x1)
LENGTH(active(x1)) → LENGTH(x1)
R is empty.
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
cons(active(x0), x1)
cons(mark(x0), x1)
and(active(x0), x1)
and(mark(x0), x1)
length(active(x0))
length(mark(x0))
s(active(x0))
s(mark(x0))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(mark(x1)) → LENGTH(x1)
LENGTH(active(x1)) → LENGTH(x1)
R is empty.
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
mark(nil)
mark(s(x0))
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] 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(mark(x1)) → LENGTH(x1)
The graph contains the following edges 1 > 1
- LENGTH(active(x1)) → LENGTH(x1)
The graph contains the following edges 1 > 1
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
AND(mark(x1), x2) → AND(x1, x2)
AND(active(x1), x2) → AND(x1, x2)
The TRS R consists of the following rules:
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
cons(active(x1), x2) → cons(x1, x2)
cons(mark(x1), x2) → cons(x1, x2)
mark(0) → active(0)
and(active(x1), x2) → and(x1, x2)
and(mark(x1), x2) → and(x1, x2)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
AND(mark(x1), x2) → AND(x1, x2)
AND(active(x1), x2) → AND(x1, x2)
R is empty.
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
cons(active(x0), x1)
cons(mark(x0), x1)
and(active(x0), x1)
and(mark(x0), x1)
length(active(x0))
length(mark(x0))
s(active(x0))
s(mark(x0))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
AND(mark(x1), x2) → AND(x1, x2)
AND(active(x1), x2) → AND(x1, x2)
R is empty.
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
mark(nil)
mark(s(x0))
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] 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:
- AND(mark(x1), x2) → AND(x1, x2)
The graph contains the following edges 1 > 1, 2 >= 2
- AND(active(x1), x2) → AND(x1, x2)
The graph contains the following edges 1 > 1, 2 >= 2
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
CONS(mark(x1), x2) → CONS(x1, x2)
CONS(active(x1), x2) → CONS(x1, x2)
The TRS R consists of the following rules:
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
cons(active(x1), x2) → cons(x1, x2)
cons(mark(x1), x2) → cons(x1, x2)
mark(0) → active(0)
and(active(x1), x2) → and(x1, x2)
and(mark(x1), x2) → and(x1, x2)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
CONS(mark(x1), x2) → CONS(x1, x2)
CONS(active(x1), x2) → CONS(x1, x2)
R is empty.
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
cons(active(x0), x1)
cons(mark(x0), x1)
and(active(x0), x1)
and(mark(x0), x1)
length(active(x0))
length(mark(x0))
s(active(x0))
s(mark(x0))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
CONS(mark(x1), x2) → CONS(x1, x2)
CONS(active(x1), x2) → CONS(x1, x2)
R is empty.
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
mark(nil)
mark(s(x0))
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] 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(mark(x1), x2) → CONS(x1, x2)
The graph contains the following edges 1 > 1, 2 >= 2
- CONS(active(x1), x2) → CONS(x1, x2)
The graph contains the following edges 1 > 1, 2 >= 2
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(length(x1)) → MARK(x1)
MARK(s(x1)) → MARK(x1)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
MARK(zeros) → ACTIVE(zeros)
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(cons(x1, x2)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
The TRS R consists of the following rules:
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
cons(active(x1), x2) → cons(x1, x2)
cons(mark(x1), x2) → cons(x1, x2)
mark(0) → active(0)
and(active(x1), x2) → and(x1, x2)
and(mark(x1), x2) → and(x1, x2)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(length(x1)) → MARK(x1)
MARK(s(x1)) → MARK(x1)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
MARK(zeros) → ACTIVE(zeros)
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(cons(x1, x2)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
and(active(x0), x1)
and(mark(x0), x1)
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
and(active(x0), x1)
and(mark(x0), x1)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(length(x1)) → MARK(x1)
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(zeros) → ACTIVE(zeros)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
MARK(s(x1)) → MARK(x1)
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(cons(x1, x2)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
By using the rule removal processor [15] with the following polynomial ordering [25], at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:
MARK(length(x1)) → MARK(x1)
Used ordering: POLO with Polynomial interpretation [25]:
POL(0) = 0
POL(ACTIVE(x1)) = x1
POL(MARK(x1)) = x1
POL(active(x1)) = x1
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = 2 + x1
POL(mark(x1)) = x1
POL(s(x1)) = x1
POL(zeros) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(s(x1)) → MARK(x1)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
MARK(zeros) → ACTIVE(zeros)
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(cons(x1, x2)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].
The following pairs can be oriented strictly and are deleted.
MARK(zeros) → ACTIVE(zeros)
The remaining pairs can at least be oriented weakly.
MARK(s(x1)) → MARK(x1)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(cons(x1, x2)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
Used ordering: Polynomial interpretation with max and min functions [25]:
POL(0) = 0
POL(ACTIVE(x1)) = 0
POL(MARK(x1)) = x1
POL(active(x1)) = x1
POL(cons(x1, x2)) = x1
POL(length(x1)) = 0
POL(mark(x1)) = x1
POL(s(x1)) = x1
POL(zeros) = 1
The following usable rules [17] were oriented:
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(x1)) → ACTIVE(s(mark(x1)))
MARK(s(x1)) → MARK(x1)
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(cons(x1, x2)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 1 less node.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(s(x1)) → MARK(x1)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
MARK(cons(x1, x2)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].
The following pairs can be oriented strictly and are deleted.
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
MARK(cons(x1, x2)) → MARK(x1)
The remaining pairs can at least be oriented weakly.
MARK(s(x1)) → MARK(x1)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
Used ordering: Polynomial interpretation with max and min functions [25]:
POL(0) = 0
POL(ACTIVE(x1)) = 0
POL(MARK(x1)) = x1
POL(active(x1)) = x1
POL(cons(x1, x2)) = 1 + x1
POL(length(x1)) = 0
POL(mark(x1)) = x1
POL(s(x1)) = x1
POL(zeros) = 0
The following usable rules [17] were oriented:
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(x1)) → ACTIVE(s(mark(x1)))
MARK(s(x1)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].
The following pairs can be oriented strictly and are deleted.
MARK(s(x1)) → ACTIVE(s(mark(x1)))
The remaining pairs can at least be oriented weakly.
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(x1)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
Used ordering: Polynomial interpretation [25]:
POL(0) = 0
POL(ACTIVE(x1)) = x1
POL(MARK(x1)) = 1
POL(active(x1)) = 0
POL(cons(x1, x2)) = 0
POL(length(x1)) = 1
POL(mark(x1)) = 0
POL(s(x1)) = 0
POL(zeros) = 0
The following usable rules [17] were oriented:
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Narrowing
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(s(x1)) → MARK(x1)
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(length(x1)) → ACTIVE(length(mark(x1))) at position [0] we obtained the following new rules:
MARK(length(0)) → ACTIVE(length(active(0)))
MARK(length(length(x0))) → ACTIVE(length(active(length(mark(x0)))))
MARK(length(cons(x0, x1))) → ACTIVE(length(active(cons(mark(x0), x1))))
MARK(length(zeros)) → ACTIVE(length(active(zeros)))
MARK(length(s(x0))) → ACTIVE(length(active(s(mark(x0)))))
MARK(length(x0)) → ACTIVE(length(x0))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(length(zeros)) → ACTIVE(length(active(zeros)))
MARK(length(cons(x0, x1))) → ACTIVE(length(active(cons(mark(x0), x1))))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(x1)) → MARK(x1)
MARK(length(s(x0))) → ACTIVE(length(active(s(mark(x0)))))
MARK(length(0)) → ACTIVE(length(active(0)))
MARK(length(length(x0))) → ACTIVE(length(active(length(mark(x0)))))
MARK(length(x0)) → ACTIVE(length(x0))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule MARK(length(0)) → ACTIVE(length(active(0))) at position [0] we obtained the following new rules:
MARK(length(0)) → ACTIVE(length(0))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ DependencyGraphProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(length(0)) → ACTIVE(length(0))
MARK(length(cons(x0, x1))) → ACTIVE(length(active(cons(mark(x0), x1))))
MARK(length(zeros)) → ACTIVE(length(active(zeros)))
MARK(s(x1)) → MARK(x1)
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(length(s(x0))) → ACTIVE(length(active(s(mark(x0)))))
MARK(length(length(x0))) → ACTIVE(length(active(length(mark(x0)))))
MARK(length(x0)) → ACTIVE(length(x0))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 1 less node.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Rewriting
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(length(zeros)) → ACTIVE(length(active(zeros)))
MARK(length(cons(x0, x1))) → ACTIVE(length(active(cons(mark(x0), x1))))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(x1)) → MARK(x1)
MARK(length(s(x0))) → ACTIVE(length(active(s(mark(x0)))))
MARK(length(length(x0))) → ACTIVE(length(active(length(mark(x0)))))
MARK(length(x0)) → ACTIVE(length(x0))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule MARK(length(zeros)) → ACTIVE(length(active(zeros))) at position [0,0] we obtained the following new rules:
MARK(length(zeros)) → ACTIVE(length(mark(cons(0, zeros))))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Rewriting
↳ QDP
↳ ForwardInstantiation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(length(zeros)) → ACTIVE(length(mark(cons(0, zeros))))
MARK(length(cons(x0, x1))) → ACTIVE(length(active(cons(mark(x0), x1))))
MARK(s(x1)) → MARK(x1)
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(length(s(x0))) → ACTIVE(length(active(s(mark(x0)))))
MARK(length(length(x0))) → ACTIVE(length(active(length(mark(x0)))))
MARK(length(x0)) → ACTIVE(length(x0))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
By forward instantiating [14] the rule MARK(s(x1)) → MARK(x1) we obtained the following new rules:
MARK(s(length(length(y_0)))) → MARK(length(length(y_0)))
MARK(s(s(y_0))) → MARK(s(y_0))
MARK(s(length(s(y_0)))) → MARK(length(s(y_0)))
MARK(s(length(cons(y_0, y_1)))) → MARK(length(cons(y_0, y_1)))
MARK(s(length(y_0))) → MARK(length(y_0))
MARK(s(length(zeros))) → MARK(length(zeros))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Rewriting
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(length(cons(x0, x1))) → ACTIVE(length(active(cons(mark(x0), x1))))
MARK(s(s(y_0))) → MARK(s(y_0))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(length(s(y_0)))) → MARK(length(s(y_0)))
MARK(s(length(cons(y_0, y_1)))) → MARK(length(cons(y_0, y_1)))
MARK(s(length(length(y_0)))) → MARK(length(length(y_0)))
MARK(length(zeros)) → ACTIVE(length(mark(cons(0, zeros))))
MARK(length(s(x0))) → ACTIVE(length(active(s(mark(x0)))))
MARK(s(length(y_0))) → MARK(length(y_0))
MARK(length(length(x0))) → ACTIVE(length(active(length(mark(x0)))))
MARK(s(length(zeros))) → MARK(length(zeros))
MARK(length(x0)) → ACTIVE(length(x0))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
By forward instantiating [14] the rule MARK(length(x0)) → ACTIVE(length(x0)) we obtained the following new rules:
MARK(length(cons(y_0, y_1))) → ACTIVE(length(cons(y_0, y_1)))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Rewriting
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(s(s(y_0))) → MARK(s(y_0))
MARK(length(cons(x0, x1))) → ACTIVE(length(active(cons(mark(x0), x1))))
MARK(s(length(s(y_0)))) → MARK(length(s(y_0)))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(length(cons(y_0, y_1)))) → MARK(length(cons(y_0, y_1)))
MARK(length(cons(y_0, y_1))) → ACTIVE(length(cons(y_0, y_1)))
MARK(s(length(length(y_0)))) → MARK(length(length(y_0)))
MARK(length(zeros)) → ACTIVE(length(mark(cons(0, zeros))))
MARK(length(s(x0))) → ACTIVE(length(active(s(mark(x0)))))
MARK(s(length(y_0))) → MARK(length(y_0))
MARK(length(length(x0))) → ACTIVE(length(active(length(mark(x0)))))
MARK(s(length(zeros))) → MARK(length(zeros))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
By forward instantiating [14] the rule MARK(s(length(y_0))) → MARK(length(y_0)) we obtained the following new rules:
MARK(s(length(length(y_0)))) → MARK(length(length(y_0)))
MARK(s(length(s(y_0)))) → MARK(length(s(y_0)))
MARK(s(length(cons(y_0, y_1)))) → MARK(length(cons(y_0, y_1)))
MARK(s(length(zeros))) → MARK(length(zeros))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Rewriting
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ RuleRemovalProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(length(cons(x0, x1))) → ACTIVE(length(active(cons(mark(x0), x1))))
MARK(s(s(y_0))) → MARK(s(y_0))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(length(s(y_0)))) → MARK(length(s(y_0)))
MARK(s(length(cons(y_0, y_1)))) → MARK(length(cons(y_0, y_1)))
MARK(length(cons(y_0, y_1))) → ACTIVE(length(cons(y_0, y_1)))
MARK(s(length(length(y_0)))) → MARK(length(length(y_0)))
MARK(length(zeros)) → ACTIVE(length(mark(cons(0, zeros))))
MARK(length(s(x0))) → ACTIVE(length(active(s(mark(x0)))))
MARK(length(length(x0))) → ACTIVE(length(active(length(mark(x0)))))
MARK(s(length(zeros))) → MARK(length(zeros))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
By using the rule removal processor [15] with the following polynomial ordering [25], at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:
MARK(length(length(x0))) → ACTIVE(length(active(length(mark(x0)))))
Used ordering: POLO with Polynomial interpretation [25]:
POL(0) = 0
POL(ACTIVE(x1)) = 1 + x1
POL(MARK(x1)) = 2·x1
POL(active(x1)) = x1
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = 1 + 2·x1
POL(mark(x1)) = x1
POL(s(x1)) = x1
POL(zeros) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Rewriting
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ DependencyGraphProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(s(length(length(y_0)))) → MARK(length(length(y_0)))
MARK(length(zeros)) → ACTIVE(length(mark(cons(0, zeros))))
MARK(s(s(y_0))) → MARK(s(y_0))
MARK(length(cons(x0, x1))) → ACTIVE(length(active(cons(mark(x0), x1))))
MARK(s(length(s(y_0)))) → MARK(length(s(y_0)))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(length(s(x0))) → ACTIVE(length(active(s(mark(x0)))))
MARK(s(length(cons(y_0, y_1)))) → MARK(length(cons(y_0, y_1)))
MARK(length(cons(y_0, y_1))) → ACTIVE(length(cons(y_0, y_1)))
MARK(s(length(zeros))) → MARK(length(zeros))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 1 less node.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Rewriting
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(length(zeros)) → ACTIVE(length(mark(cons(0, zeros))))
MARK(s(s(y_0))) → MARK(s(y_0))
MARK(length(cons(x0, x1))) → ACTIVE(length(active(cons(mark(x0), x1))))
MARK(s(length(s(y_0)))) → MARK(length(s(y_0)))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(length(s(x0))) → ACTIVE(length(active(s(mark(x0)))))
MARK(s(length(cons(y_0, y_1)))) → MARK(length(cons(y_0, y_1)))
MARK(length(cons(y_0, y_1))) → ACTIVE(length(cons(y_0, y_1)))
MARK(s(length(zeros))) → MARK(length(zeros))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].
The following pairs can be oriented strictly and are deleted.
MARK(length(s(x0))) → ACTIVE(length(active(s(mark(x0)))))
The remaining pairs can at least be oriented weakly.
MARK(length(zeros)) → ACTIVE(length(mark(cons(0, zeros))))
MARK(s(s(y_0))) → MARK(s(y_0))
MARK(length(cons(x0, x1))) → ACTIVE(length(active(cons(mark(x0), x1))))
MARK(s(length(s(y_0)))) → MARK(length(s(y_0)))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(length(cons(y_0, y_1)))) → MARK(length(cons(y_0, y_1)))
MARK(length(cons(y_0, y_1))) → ACTIVE(length(cons(y_0, y_1)))
MARK(s(length(zeros))) → MARK(length(zeros))
Used ordering: Polynomial interpretation with max and min functions [25]:
POL(0) = 0
POL(ACTIVE(x1)) = x1
POL(MARK(x1)) = 1
POL(active(x1)) = x1
POL(cons(x1, x2)) = 1
POL(length(x1)) = x1
POL(mark(x1)) = x1
POL(s(x1)) = 0
POL(zeros) = 1
The following usable rules [17] were oriented:
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
mark(s(x1)) → active(s(mark(x1)))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Rewriting
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(length(zeros)) → ACTIVE(length(mark(cons(0, zeros))))
MARK(length(cons(x0, x1))) → ACTIVE(length(active(cons(mark(x0), x1))))
MARK(s(s(y_0))) → MARK(s(y_0))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(length(s(y_0)))) → MARK(length(s(y_0)))
MARK(s(length(cons(y_0, y_1)))) → MARK(length(cons(y_0, y_1)))
MARK(length(cons(y_0, y_1))) → ACTIVE(length(cons(y_0, y_1)))
MARK(s(length(zeros))) → MARK(length(zeros))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 1 less node.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Rewriting
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(length(zeros)) → ACTIVE(length(mark(cons(0, zeros))))
MARK(s(s(y_0))) → MARK(s(y_0))
MARK(length(cons(x0, x1))) → ACTIVE(length(active(cons(mark(x0), x1))))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(length(cons(y_0, y_1)))) → MARK(length(cons(y_0, y_1)))
MARK(length(cons(y_0, y_1))) → ACTIVE(length(cons(y_0, y_1)))
MARK(s(length(zeros))) → MARK(length(zeros))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].
The following pairs can be oriented strictly and are deleted.
MARK(s(s(y_0))) → MARK(s(y_0))
The remaining pairs can at least be oriented weakly.
MARK(length(zeros)) → ACTIVE(length(mark(cons(0, zeros))))
MARK(length(cons(x0, x1))) → ACTIVE(length(active(cons(mark(x0), x1))))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(length(cons(y_0, y_1)))) → MARK(length(cons(y_0, y_1)))
MARK(length(cons(y_0, y_1))) → ACTIVE(length(cons(y_0, y_1)))
MARK(s(length(zeros))) → MARK(length(zeros))
Used ordering: Matrix interpretation [3]:
Non-tuple symbols:
M( cons(x1, x2) ) = | | + | | · | x1 | + | | · | x2 |
Tuple symbols:
Matrix type:
We used a basic matrix type which is not further parametrizeable.
As matrix orders are CE-compatible, we used usable rules w.r.t. argument filtering in the order.
The following usable rules [17] were oriented:
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Rewriting
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
MARK(length(zeros)) → ACTIVE(length(mark(cons(0, zeros))))
MARK(length(cons(x0, x1))) → ACTIVE(length(active(cons(mark(x0), x1))))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(length(cons(y_0, y_1)))) → MARK(length(cons(y_0, y_1)))
MARK(length(cons(y_0, y_1))) → ACTIVE(length(cons(y_0, y_1)))
MARK(s(length(zeros))) → MARK(length(zeros))
The TRS R consists of the following rules:
mark(s(x1)) → active(s(mark(x1)))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(0) → active(0)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
The set Q consists of the following terms:
active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
mark(zeros)
mark(cons(x0, x1))
cons(active(x0), x1)
cons(mark(x0), x1)
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(nil)
mark(s(x0))
s(active(x0))
s(mark(x0))
We have to consider all minimal (P,Q,R)-chains.
We applied the Trivial transformation to transform the context-sensitive TRS to a usual TRS.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ Improved Ferreira Ribeiro-Transformation
Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
and(tt, X) → X
length(nil) → 0
Used ordering:
Polynomial interpretation [25]:
POL(0) = 0
POL(and(x1, x2)) = 1 + 2·x1 + x2
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = 1 + x1
POL(nil) = 1
POL(s(x1)) = x1
POL(tt) = 2
POL(zeros) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ Improved Ferreira Ribeiro-Transformation
Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
Q is empty.
The TRS is overlay and locally confluent. By [19] we can switch to innermost.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ Improved Ferreira Ribeiro-Transformation
Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
Using Dependency Pairs [1,15] we result in the following initial DP problem:
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(N, L)) → LENGTH(L)
ZEROS → ZEROS
The TRS R consists of the following rules:
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
We have to consider all minimal (P,Q,R)-chains.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(N, L)) → LENGTH(L)
ZEROS → ZEROS
The TRS R consists of the following rules:
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 2 SCCs.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(N, L)) → LENGTH(L)
The TRS R consists of the following rules:
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(N, L)) → LENGTH(L)
R is empty.
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
zeros
length(cons(x0, x1))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(N, L)) → LENGTH(L)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] 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(cons(N, L)) → LENGTH(L)
The graph contains the following edges 1 > 1
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
ZEROS → ZEROS
The TRS R consists of the following rules:
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
ZEROS → ZEROS
R is empty.
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
zeros
length(cons(x0, x1))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonTerminationProof
↳ Improved Ferreira Ribeiro-Transformation
Q DP problem:
The TRS P consists of the following rules:
ZEROS → ZEROS
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We used the non-termination processor [17] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.
The TRS P consists of the following rules:
ZEROS → ZEROS
The TRS R consists of the following rules:none
s = ZEROS evaluates to t =ZEROS
Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
- Semiunifier: [ ]
- Matcher: [ ]
Rewriting sequence
The DP semiunifies directly so there is only one rewrite step from ZEROS to ZEROS.
We applied the Improved Ferreira Ribeiro transformation [5,11] to transform the context-sensitive TRS to a usual TRS.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
and(tt, X) → a(X)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
and(tt, X) → a(X)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
and(tt, X) → a(X)
Used ordering:
Polynomial interpretation [25]:
POL(0) = 0
POL(a(x1)) = x1
POL(and(x1, x2)) = x1 + 2·x2
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = 2·x1
POL(nil) = 0
POL(s(x1)) = 2·x1
POL(tt) = 1
POL(zeros) = 0
POL(zerosInact) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
length(nil) → 0
Used ordering:
Polynomial interpretation [25]:
POL(0) = 0
POL(a(x1)) = x1
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = 2·x1
POL(nil) = 2
POL(s(x1)) = 2·x1
POL(zeros) = 0
POL(zerosInact) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
zeros → zerosInact
Used ordering:
Polynomial interpretation [25]:
POL(0) = 0
POL(a(x1)) = 2·x1
POL(cons(x1, x2)) = x1 + 2·x2
POL(length(x1)) = 2·x1
POL(s(x1)) = x1
POL(zeros) = 2
POL(zerosInact) = 1
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
a(zerosInact) → zeros
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
a(zerosInact) → zeros
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
a(x) → x
Used ordering:
Polynomial interpretation [25]:
POL(0) = 0
POL(a(x1)) = 1 + x1
POL(cons(x1, x2)) = 1 + 2·x1 + x2
POL(length(x1)) = x1
POL(s(x1)) = x1
POL(zeros) = 1
POL(zerosInact) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
Q is empty.
The TRS is overlay and locally confluent. By [19] we can switch to innermost.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
Q restricted rewrite system:
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
a(zerosInact)
Using Dependency Pairs [1,15] we result in the following initial DP problem:
Q DP problem:
The TRS P consists of the following rules:
A(zerosInact) → ZEROS
LENGTH(cons(N, L)) → A(L)
LENGTH(cons(N, L)) → LENGTH(a(L))
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
a(zerosInact)
We have to consider all minimal (P,Q,R)-chains.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
Q DP problem:
The TRS P consists of the following rules:
A(zerosInact) → ZEROS
LENGTH(cons(N, L)) → A(L)
LENGTH(cons(N, L)) → LENGTH(a(L))
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
a(zerosInact)
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 2 less nodes.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(N, L)) → LENGTH(a(L))
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
a(zerosInact)
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(N, L)) → LENGTH(a(L))
The TRS R consists of the following rules:
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
The set Q consists of the following terms:
zeros
length(cons(x0, x1))
a(zerosInact)
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
length(cons(x0, x1))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(N, L)) → LENGTH(a(L))
The TRS R consists of the following rules:
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
The set Q consists of the following terms:
zeros
a(zerosInact)
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule LENGTH(cons(N, L)) → LENGTH(a(L)) at position [0] we obtained the following new rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
The TRS R consists of the following rules:
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
The set Q consists of the following terms:
zeros
a(zerosInact)
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
The set Q consists of the following terms:
zeros
a(zerosInact)
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
a(zerosInact)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
The set Q consists of the following terms:
zeros
We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule LENGTH(cons(y0, zerosInact)) → LENGTH(zeros) at position [0] we obtained the following new rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
The TRS R consists of the following rules:
zeros → cons(0, zerosInact)
The set Q consists of the following terms:
zeros
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
R is empty.
The set Q consists of the following terms:
zeros
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
zeros
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By instantiating [15] the rule LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact)) we obtained the following new rules:
LENGTH(cons(0, zerosInact)) → LENGTH(cons(0, zerosInact))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ NonTerminationProof
Q DP problem:
The TRS P consists of the following rules:
LENGTH(cons(0, zerosInact)) → LENGTH(cons(0, zerosInact))
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We used the non-termination processor [17] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.
The TRS P consists of the following rules:
LENGTH(cons(0, zerosInact)) → LENGTH(cons(0, zerosInact))
The TRS R consists of the following rules:none
s = LENGTH(cons(0, zerosInact)) evaluates to t =LENGTH(cons(0, zerosInact))
Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
- Semiunifier: [ ]
- Matcher: [ ]
Rewriting sequence
The DP semiunifies directly so there is only one rewrite step from LENGTH(cons(0, zerosInact)) to LENGTH(cons(0, zerosInact)).