Termination of the following Term Rewriting System could not be shown:

Context-sensitive rewrite system:
The TRS R consists of the following rules:

zeroscons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

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}
take: {1, 2}


CSR
  ↳ CSRInnermostProof

Context-sensitive rewrite system:
The TRS R consists of the following rules:

zeroscons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

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}
take: {1, 2}

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:

zeroscons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

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}
take: {1, 2}

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, take, LENGTH, TAKE} 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
take(M, IL)

Every hiding context is built from:

take on positions {1, 2}

Hence, the new unhiding pairs DPu are :

AND(tt, X) → U(X)
LENGTH(cons(N, L)) → U(L)
U(take(x_0, x_1)) → U(x_0)
U(take(x_0, x_1)) → U(x_1)
U(zeros) → ZEROS
U(take(M, IL)) → TAKE(M, IL)

The TRS R consists of the following rules:

zeroscons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

The set Q consists of the following terms:

zeros
and(tt, x0)
length(nil)
length(cons(x0, x1))
take(0, x0)
take(s(x0), cons(x1, x2))


The approximation of the Context-Sensitive Dependency Graph contains 2 SCCs with 4 less nodes.


↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
        ↳ QCSDP
          ↳ QCSDependencyGraphProof
            ↳ AND
QCSDP
                ↳ QCSDPSubtermProof
              ↳ QCSDP
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation

Q-restricted context-sensitive dependency pair problem:
The symbols in {length, s, take} are replacing on all positions.
For all symbols f in {cons, and} we have µ(f) = {1}.
The symbols in {U} are not replacing on any position.

The TRS P consists of the following rules:

U(take(x_0, x_1)) → U(x_0)
U(take(x_0, x_1)) → U(x_1)

The TRS R consists of the following rules:

zeroscons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

The set Q consists of the following terms:

zeros
and(tt, x0)
length(nil)
length(cons(x0, x1))
take(0, x0)
take(s(x0), cons(x1, x2))


We use the subterm processor [20].


The following pairs can be oriented strictly and are deleted.


U(take(x_0, x_1)) → U(x_0)
U(take(x_0, x_1)) → U(x_1)
The remaining pairs can at least be oriented weakly.
none
Used ordering: Combined order from the following AFS and order.
U(x1)  =  x1

Subterm Order


↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
        ↳ QCSDP
          ↳ QCSDependencyGraphProof
            ↳ AND
              ↳ QCSDP
                ↳ QCSDPSubtermProof
QCSDP
                    ↳ PIsEmptyProof
              ↳ QCSDP
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation

Q-restricted context-sensitive dependency pair problem:
The symbols in {length, s, take} are replacing on all positions.
For all symbols f in {cons, and} we have µ(f) = {1}.

The TRS P consists of the following rules:
none

The TRS R consists of the following rules:

zeroscons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

The set Q consists of the following terms:

zeros
and(tt, x0)
length(nil)
length(cons(x0, x1))
take(0, x0)
take(s(x0), cons(x1, x2))


The TRS P is empty. Hence, there is no (P,Q,R,µ)-chain.

↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
        ↳ QCSDP
          ↳ QCSDependencyGraphProof
            ↳ AND
              ↳ QCSDP
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, take, 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:

zeroscons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

The set Q consists of the following terms:

zeros
and(tt, x0)
length(nil)
length(cons(x0, x1))
take(0, x0)
take(s(x0), cons(x1, x2))


Converted QDP Problem, but could not keep Q or minimality.

↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
        ↳ QCSDP
          ↳ QCSDependencyGraphProof
            ↳ AND
              ↳ QCSDP
              ↳ 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:

zeroscons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

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

Used ordering: POLO with Polynomial interpretation [25]:

POL(0) = 0   
POL(LENGTH(x1)) = 2·x1   
POL(and(x1, x2)) = 2 + x1 + x2   
POL(cons(x1, x2)) = 2·x1 + x2   
POL(length(x1)) = x1   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(take(x1, x2)) = x1 + 2·x2   
POL(tt) = 1   
POL(zeros) = 0   



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
        ↳ QCSDP
          ↳ QCSDependencyGraphProof
            ↳ AND
              ↳ QCSDP
              ↳ QCSDP
                ↳ ConvertedToQDPProblemProof
                  ↳ QDP
                    ↳ RuleRemovalProof
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:

zeroscons(0, zeros)
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

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:

take(0, IL) → nil

Used ordering: POLO with Polynomial interpretation [25]:

POL(0) = 0   
POL(LENGTH(x1)) = x1   
POL(cons(x1, x2)) = 2·x1 + x2   
POL(length(x1)) = 2·x1   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(take(x1, x2)) = 1 + x1 + 2·x2   
POL(zeros) = 0   



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
        ↳ QCSDP
          ↳ QCSDependencyGraphProof
            ↳ AND
              ↳ QCSDP
              ↳ QCSDP
                ↳ ConvertedToQDPProblemProof
                  ↳ QDP
                    ↳ RuleRemovalProof
                      ↳ QDP
                        ↳ RuleRemovalProof
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:

zeroscons(0, zeros)
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

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:

length(nil) → 0

Used ordering: POLO with Polynomial interpretation [25]:

POL(0) = 0   
POL(LENGTH(x1)) = x1   
POL(cons(x1, x2)) = 2·x1 + 2·x2   
POL(length(x1)) = x1   
POL(nil) = 1   
POL(s(x1)) = 2·x1   
POL(take(x1, x2)) = 2·x1 + 2·x2   
POL(zeros) = 0   



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
        ↳ QCSDP
          ↳ QCSDependencyGraphProof
            ↳ AND
              ↳ QCSDP
              ↳ QCSDP
                ↳ ConvertedToQDPProblemProof
                  ↳ QDP
                    ↳ RuleRemovalProof
                      ↳ QDP
                        ↳ RuleRemovalProof
                          ↳ 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:

zeroscons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

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:

zeroscons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))


s = LENGTH(zeros) evaluates to t =LENGTH(zeros)

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:




Rewriting sequence

LENGTH(zeros)LENGTH(cons(0, zeros))
with rule zeroscons(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:

zeroscons(0, zerosInact)
and(tt, X) → a(X)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(x) → x
zeroszerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(x1, x2)

Q is empty.

The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:

zeroscons(0, zerosInact)
and(tt, X) → a(X)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(x) → x
zeroszerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(x1, x2)

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)
length(nil) → 0
a(x) → x
zeroszerosInact
take(x1, x2) → takeInact(x1, x2)
Used ordering:
Polynomial interpretation [25]:

POL(0) = 0   
POL(a(x1)) = 1 + x1   
POL(and(x1, x2)) = 2 + 2·x1 + x2   
POL(cons(x1, x2)) = 1 + x1 + x2   
POL(length(x1)) = 2 + 2·x1   
POL(nil) = 1   
POL(s(x1)) = x1   
POL(take(x1, x2)) = 1 + 2·x1 + x2   
POL(takeInact(x1, x2)) = 2·x1 + x2   
POL(tt) = 1   
POL(zeros) = 1   
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:

zeroscons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)

Q is empty.

The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:

zeroscons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)

Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:

take(0, IL) → nil
Used ordering:
Polynomial interpretation [25]:

POL(0) = 0   
POL(a(x1)) = x1   
POL(cons(x1, x2)) = 2·x1 + x2   
POL(length(x1)) = 2·x1   
POL(nil) = 1   
POL(s(x1)) = x1   
POL(take(x1, x2)) = 2 + 2·x1 + x2   
POL(takeInact(x1, x2)) = 2 + 2·x1 + x2   
POL(zeros) = 0   
POL(zerosInact) = 0   




↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
        ↳ 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:

zeroscons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)

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
                  ↳ 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:

zeroscons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)

The set Q consists of the following terms:

zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
a(zerosInact)
a(takeInact(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:

A(zerosInact) → ZEROS
LENGTH(cons(N, L)) → A(L)
A(takeInact(x1, x2)) → TAKE(x1, x2)
TAKE(s(M), cons(N, IL)) → A(IL)
LENGTH(cons(N, L)) → LENGTH(a(L))

The TRS R consists of the following rules:

zeroscons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)

The set Q consists of the following terms:

zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
a(zerosInact)
a(takeInact(x0, x1))

We have to consider all minimal (P,Q,R)-chains.

↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
        ↳ 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)
A(takeInact(x1, x2)) → TAKE(x1, x2)
TAKE(s(M), cons(N, IL)) → A(IL)
LENGTH(cons(N, L)) → LENGTH(a(L))

The TRS R consists of the following rules:

zeroscons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)

The set Q consists of the following terms:

zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
a(zerosInact)
a(takeInact(x0, x1))

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 2 SCCs with 2 less nodes.

↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ Overlay + Local Confluence
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
QDP
                                ↳ UsableRulesProof
                              ↳ QDP
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

TAKE(s(M), cons(N, IL)) → A(IL)
A(takeInact(x1, x2)) → TAKE(x1, x2)

The TRS R consists of the following rules:

zeroscons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)

The set Q consists of the following terms:

zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
a(zerosInact)
a(takeInact(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
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ Overlay + Local Confluence
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                                ↳ UsableRulesProof
QDP
                                    ↳ QReductionProof
                              ↳ QDP
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

TAKE(s(M), cons(N, IL)) → A(IL)
A(takeInact(x1, x2)) → TAKE(x1, x2)

R is empty.
The set Q consists of the following terms:

zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
a(zerosInact)
a(takeInact(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))
take(s(x0), cons(x1, x2))
a(zerosInact)
a(takeInact(x0, x1))



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ Overlay + Local Confluence
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ QReductionProof
QDP
                                        ↳ QDPSizeChangeProof
                              ↳ QDP
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

A(takeInact(x1, x2)) → TAKE(x1, x2)
TAKE(s(M), cons(N, IL)) → A(IL)

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:



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ Overlay + Local Confluence
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
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:

zeroscons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)

The set Q consists of the following terms:

zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
a(zerosInact)
a(takeInact(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
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ Overlay + Local Confluence
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ 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
a(takeInact(x1, x2)) → take(x1, x2)
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
zeroscons(0, zerosInact)

The set Q consists of the following terms:

zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
a(zerosInact)
a(takeInact(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.

length(cons(x0, x1))



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ Overlay + Local Confluence
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ QReductionProof
QDP
                                        ↳ UsableRulesReductionPairsProof
      ↳ 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
a(takeInact(x1, x2)) → take(x1, x2)
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
zeroscons(0, zerosInact)

The set Q consists of the following terms:

zeros
take(s(x0), cons(x1, x2))
a(zerosInact)
a(takeInact(x0, x1))

We have to consider all minimal (P,Q,R)-chains.
By using the usable rules with reduction pair processor [15] with a polynomial ordering [25], all dependency pairs and the corresponding usable rules [17] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.

No dependency pairs are removed.

The following rules are removed from R:

a(takeInact(x1, x2)) → take(x1, x2)
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
Used ordering: POLO with Polynomial interpretation [25]:

POL(0) = 0   
POL(LENGTH(x1)) = x1   
POL(a(x1)) = x1   
POL(cons(x1, x2)) = x1 + 2·x2   
POL(s(x1)) = 2 + 2·x1   
POL(take(x1, x2)) = 2·x1 + x2   
POL(takeInact(x1, x2)) = 1 + 2·x1 + x2   
POL(zeros) = 0   
POL(zerosInact) = 0   



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ Overlay + Local Confluence
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ QReductionProof
                                      ↳ QDP
                                        ↳ UsableRulesReductionPairsProof
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
zeroscons(0, zerosInact)

The set Q consists of the following terms:

zeros
take(s(x0), cons(x1, x2))
a(zerosInact)
a(takeInact(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.

take(s(x0), cons(x1, x2))



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ Overlay + Local Confluence
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ QReductionProof
                                      ↳ QDP
                                        ↳ UsableRulesReductionPairsProof
                                          ↳ 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
zeroscons(0, zerosInact)

The set Q consists of the following terms:

zeros
a(zerosInact)
a(takeInact(x0, x1))

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
                  ↳ Overlay + Local Confluence
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ QReductionProof
                                      ↳ QDP
                                        ↳ UsableRulesReductionPairsProof
                                          ↳ 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
zeroscons(0, zerosInact)

The set Q consists of the following terms:

zeros
a(zerosInact)
a(takeInact(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
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ Overlay + Local Confluence
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ QReductionProof
                                      ↳ QDP
                                        ↳ UsableRulesReductionPairsProof
                                          ↳ 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:

zeroscons(0, zerosInact)

The set Q consists of the following terms:

zeros
a(zerosInact)
a(takeInact(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.

a(zerosInact)
a(takeInact(x0, x1))



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ Overlay + Local Confluence
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ QReductionProof
                                      ↳ QDP
                                        ↳ UsableRulesReductionPairsProof
                                          ↳ 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:

zeroscons(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
                  ↳ Overlay + Local Confluence
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ QReductionProof
                                      ↳ QDP
                                        ↳ UsableRulesReductionPairsProof
                                          ↳ 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:

zeroscons(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
                  ↳ Overlay + Local Confluence
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ QReductionProof
                                      ↳ QDP
                                        ↳ UsableRulesReductionPairsProof
                                          ↳ 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
                  ↳ Overlay + Local Confluence
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ QReductionProof
                                      ↳ QDP
                                        ↳ UsableRulesReductionPairsProof
                                          ↳ 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
                  ↳ Overlay + Local Confluence
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ QReductionProof
                                      ↳ QDP
                                        ↳ UsableRulesReductionPairsProof
                                          ↳ 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:




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)))
active(take(0, IL)) → mark(nil)
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))


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)))
active(take(0, IL)) → mark(nil)
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

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)
Used ordering:
Polynomial interpretation [25]:

POL(0) = 0   
POL(active(x1)) = x1   
POL(and(x1, x2)) = 2 + x1 + x2   
POL(cons(x1, x2)) = x1 + 2·x2   
POL(length(x1)) = 2·x1   
POL(mark(x1)) = x1   
POL(nil) = 0   
POL(s(x1)) = 2·x1   
POL(take(x1, x2)) = 2·x1 + 2·x2   
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(nil)) → mark(0)
active(length(cons(N, L))) → mark(s(length(L)))
active(take(0, IL)) → mark(nil)
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))


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(nil)) → mark(0)
active(length(cons(N, L))) → mark(s(length(L)))
active(take(0, IL)) → mark(nil)
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:

active(length(nil)) → mark(0)
Used ordering:
Polynomial interpretation [25]:

POL(0) = 0   
POL(active(x1)) = x1   
POL(and(x1, x2)) = x1 + 2·x2   
POL(cons(x1, x2)) = 2·x1 + x2   
POL(length(x1)) = 2·x1   
POL(mark(x1)) = x1   
POL(nil) = 2   
POL(s(x1)) = x1   
POL(take(x1, x2)) = 2 + 2·x1 + 2·x2   
POL(tt) = 0   
POL(zeros) = 0   




↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ 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)))
active(take(0, IL)) → mark(nil)
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))


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)))
active(take(0, IL)) → mark(nil)
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:

active(take(0, IL)) → mark(nil)
Used ordering:
Polynomial interpretation [25]:

POL(0) = 0   
POL(active(x1)) = x1   
POL(and(x1, x2)) = 2·x1 + 2·x2   
POL(cons(x1, x2)) = 2·x1 + x2   
POL(length(x1)) = x1   
POL(mark(x1)) = x1   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(take(x1, x2)) = 1 + 2·x1 + 2·x2   
POL(tt) = 0   
POL(zeros) = 0   




↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ 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)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(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:

MARK(take(x1, x2)) → MARK(x2)
ACTIVE(length(cons(N, L))) → S(length(L))
CONS(mark(x1), x2) → CONS(x1, x2)
MARK(tt) → ACTIVE(tt)
TAKE(x1, active(x2)) → TAKE(x1, x2)
MARK(s(x1)) → MARK(x1)
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(cons(x1, x2)) → MARK(x1)
ACTIVE(length(cons(N, L))) → LENGTH(L)
MARK(and(x1, x2)) → ACTIVE(and(mark(x1), x2))
MARK(length(x1)) → MARK(x1)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
MARK(and(x1, x2)) → MARK(x1)
ACTIVE(zeros) → CONS(0, zeros)
MARK(take(x1, x2)) → MARK(x1)
LENGTH(mark(x1)) → LENGTH(x1)
MARK(take(x1, x2)) → TAKE(mark(x1), mark(x2))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
LENGTH(active(x1)) → LENGTH(x1)
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(and(x1, x2)) → AND(mark(x1), x2)
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
ACTIVE(take(s(M), cons(N, IL))) → CONS(N, take(M, IL))
TAKE(active(x1), x2) → TAKE(x1, x2)
ACTIVE(take(s(M), cons(N, IL))) → TAKE(M, IL)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
TAKE(x1, mark(x2)) → TAKE(x1, x2)
AND(mark(x1), x2) → AND(x1, x2)
MARK(zeros) → ACTIVE(zeros)
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(0) → ACTIVE(0)
MARK(length(x1)) → LENGTH(mark(x1))
TAKE(mark(x1), x2) → TAKE(x1, x2)
CONS(active(x1), x2) → CONS(x1, x2)
AND(active(x1), x2) → AND(x1, x2)
ACTIVE(take(s(M), cons(N, IL))) → MARK(cons(N, take(M, IL)))
MARK(nil) → ACTIVE(nil)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

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
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
QDP
                          ↳ DependencyGraphProof
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

MARK(take(x1, x2)) → MARK(x2)
ACTIVE(length(cons(N, L))) → S(length(L))
CONS(mark(x1), x2) → CONS(x1, x2)
MARK(tt) → ACTIVE(tt)
TAKE(x1, active(x2)) → TAKE(x1, x2)
MARK(s(x1)) → MARK(x1)
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(cons(x1, x2)) → MARK(x1)
ACTIVE(length(cons(N, L))) → LENGTH(L)
MARK(and(x1, x2)) → ACTIVE(and(mark(x1), x2))
MARK(length(x1)) → MARK(x1)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
MARK(and(x1, x2)) → MARK(x1)
ACTIVE(zeros) → CONS(0, zeros)
MARK(take(x1, x2)) → MARK(x1)
LENGTH(mark(x1)) → LENGTH(x1)
MARK(take(x1, x2)) → TAKE(mark(x1), mark(x2))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
LENGTH(active(x1)) → LENGTH(x1)
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(and(x1, x2)) → AND(mark(x1), x2)
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
ACTIVE(take(s(M), cons(N, IL))) → CONS(N, take(M, IL))
TAKE(active(x1), x2) → TAKE(x1, x2)
ACTIVE(take(s(M), cons(N, IL))) → TAKE(M, IL)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
TAKE(x1, mark(x2)) → TAKE(x1, x2)
AND(mark(x1), x2) → AND(x1, x2)
MARK(zeros) → ACTIVE(zeros)
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(0) → ACTIVE(0)
MARK(length(x1)) → LENGTH(mark(x1))
TAKE(mark(x1), x2) → TAKE(x1, x2)
CONS(active(x1), x2) → CONS(x1, x2)
AND(active(x1), x2) → AND(x1, x2)
ACTIVE(take(s(M), cons(N, IL))) → MARK(cons(N, take(M, IL)))
MARK(nil) → ACTIVE(nil)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 6 SCCs with 13 less nodes.

↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
QDP
                                ↳ UsableRulesProof
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

TAKE(x1, active(x2)) → TAKE(x1, x2)
TAKE(active(x1), x2) → TAKE(x1, x2)
TAKE(mark(x1), x2) → TAKE(x1, x2)
TAKE(x1, mark(x2)) → TAKE(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)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(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
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                                ↳ UsableRulesProof
QDP
                                    ↳ QReductionProof
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

TAKE(x1, active(x2)) → TAKE(x1, x2)
TAKE(active(x1), x2) → TAKE(x1, x2)
TAKE(mark(x1), x2) → TAKE(x1, x2)
TAKE(x1, mark(x2)) → TAKE(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)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(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.

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))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ QReductionProof
QDP
                                        ↳ QDPSizeChangeProof
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

TAKE(x1, active(x2)) → TAKE(x1, x2)
TAKE(mark(x1), x2) → TAKE(x1, x2)
TAKE(active(x1), x2) → TAKE(x1, x2)
TAKE(x1, mark(x2)) → TAKE(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)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
mark(zeros)
mark(cons(x0, x1))
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
mark(nil)
mark(s(x0))
mark(take(x0, x1))

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:



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
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)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(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
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ 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)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(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.

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))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ 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)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
mark(zeros)
mark(cons(x0, x1))
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
mark(nil)
mark(s(x0))
mark(take(x0, x1))

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:



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ 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)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(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
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ 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)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(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.

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))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ 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)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
mark(zeros)
mark(cons(x0, x1))
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
mark(nil)
mark(s(x0))
mark(take(x0, x1))

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:



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ 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)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(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
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ 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)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(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.

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))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ 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)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
mark(zeros)
mark(cons(x0, x1))
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
mark(nil)
mark(s(x0))
mark(take(x0, x1))

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:



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ 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)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(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
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ 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)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(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.

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))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ 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)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
mark(zeros)
mark(cons(x0, x1))
mark(0)
mark(and(x0, x1))
mark(tt)
mark(length(x0))
mark(nil)
mark(s(x0))
mark(take(x0, x1))

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:



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
QDP
                                ↳ RuleRemovalProof
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

MARK(take(x1, x2)) → MARK(x2)
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(x1)) → MARK(x1)
MARK(cons(x1, x2)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(and(x1, x2)) → ACTIVE(and(mark(x1), x2))
MARK(length(x1)) → MARK(x1)
MARK(zeros) → ACTIVE(zeros)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(and(x1, x2)) → MARK(x1)
MARK(take(x1, x2)) → MARK(x1)
ACTIVE(take(s(M), cons(N, IL))) → MARK(cons(N, take(M, IL)))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

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(and(x1, x2)) → MARK(x1)


Used ordering: POLO with Polynomial interpretation [25]:

POL(0) = 0   
POL(ACTIVE(x1)) = 2·x1   
POL(MARK(x1)) = 2·x1   
POL(active(x1)) = x1   
POL(and(x1, x2)) = 1 + 2·x1 + x2   
POL(cons(x1, x2)) = 2·x1 + x2   
POL(length(x1)) = 2·x1   
POL(mark(x1)) = x1   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(take(x1, x2)) = 2·x1 + 2·x2   
POL(tt) = 0   
POL(zeros) = 0   



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                                ↳ RuleRemovalProof
QDP
                                    ↳ RuleRemovalProof
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

MARK(take(x1, x2)) → MARK(x2)
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(x1)) → MARK(x1)
MARK(cons(x1, x2)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(and(x1, x2)) → ACTIVE(and(mark(x1), x2))
MARK(length(x1)) → MARK(x1)
MARK(zeros) → ACTIVE(zeros)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(take(x1, x2)) → MARK(x1)
ACTIVE(take(s(M), cons(N, IL))) → MARK(cons(N, take(M, IL)))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

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(take(x1, x2)) → MARK(x2)
MARK(take(x1, x2)) → MARK(x1)


Used ordering: POLO with Polynomial interpretation [25]:

POL(0) = 0   
POL(ACTIVE(x1)) = 2·x1   
POL(MARK(x1)) = 2·x1   
POL(active(x1)) = x1   
POL(and(x1, x2)) = x1 + x2   
POL(cons(x1, x2)) = 2·x1 + x2   
POL(length(x1)) = 2·x1   
POL(mark(x1)) = x1   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(take(x1, x2)) = 2 + x1 + x2   
POL(tt) = 0   
POL(zeros) = 0   



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                                ↳ RuleRemovalProof
                                  ↳ QDP
                                    ↳ RuleRemovalProof
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(s(x1)) → ACTIVE(s(mark(x1)))
MARK(zeros) → ACTIVE(zeros)
MARK(s(x1)) → 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)
ACTIVE(take(s(M), cons(N, IL))) → MARK(cons(N, take(M, IL)))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
MARK(and(x1, x2)) → ACTIVE(and(mark(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)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

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(and(x1, x2)) = 2·x1 + x2   
POL(cons(x1, x2)) = 2·x1 + x2   
POL(length(x1)) = 1 + 2·x1   
POL(mark(x1)) = x1   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(take(x1, x2)) = x1 + 2·x2   
POL(tt) = 2   
POL(zeros) = 0   



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                                ↳ RuleRemovalProof
                                  ↳ QDP
                                    ↳ RuleRemovalProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
QDP
                                            ↳ QDPOrderProof
      ↳ 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)) → MARK(x1)
MARK(zeros) → ACTIVE(zeros)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(cons(x1, x2)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
ACTIVE(take(s(M), cons(N, IL))) → MARK(cons(N, take(M, IL)))
MARK(and(x1, x2)) → ACTIVE(and(mark(x1), x2))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

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.


ACTIVE(take(s(M), cons(N, IL))) → MARK(cons(N, take(M, IL)))
The remaining pairs can at least be oriented weakly.

MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(x1)) → MARK(x1)
MARK(zeros) → ACTIVE(zeros)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(cons(x1, x2)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(and(x1, x2)) → ACTIVE(and(mark(x1), x2))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
Used ordering: Polynomial interpretation [25]:

POL(0) = 0   
POL(ACTIVE(x1)) = x1   
POL(MARK(x1)) = x1   
POL(active(x1)) = x1   
POL(and(x1, x2)) = x1 + x2   
POL(cons(x1, x2)) = x1   
POL(length(x1)) = 0   
POL(mark(x1)) = x1   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(take(x1, x2)) = 1 + x2   
POL(tt) = 0   
POL(zeros) = 0   

The following usable rules [17] were oriented:

cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
active(zeros) → mark(cons(0, zeros))
mark(length(x1)) → active(length(mark(x1)))
mark(zeros) → active(zeros)
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
mark(and(x1, x2)) → active(and(mark(x1), x2))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
mark(s(x1)) → active(s(mark(x1)))
active(length(cons(N, L))) → mark(s(length(L)))
mark(tt) → active(tt)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(0) → active(0)
and(active(x1), x2) → and(x1, x2)
and(mark(x1), x2) → and(x1, x2)
take(x1, mark(x2)) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(active(x1), x2) → take(x1, x2)
mark(nil) → active(nil)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                                ↳ RuleRemovalProof
                                  ↳ QDP
                                    ↳ RuleRemovalProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ QDPOrderProof
QDP
                                                ↳ QDPOrderProof
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

MARK(s(x1)) → ACTIVE(s(mark(x1)))
MARK(zeros) → ACTIVE(zeros)
MARK(s(x1)) → 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)))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
MARK(and(x1, x2)) → ACTIVE(and(mark(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)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

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(and(x1, x2)) → ACTIVE(and(mark(x1), x2))
The remaining pairs can at least be oriented weakly.

MARK(s(x1)) → ACTIVE(s(mark(x1)))
MARK(zeros) → ACTIVE(zeros)
MARK(s(x1)) → 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)))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
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(and(x1, x2)) = 1 + x1 + x2   
POL(cons(x1, x2)) = x1   
POL(length(x1)) = 0   
POL(mark(x1)) = x1   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(take(x1, x2)) = x1   
POL(tt) = 0   
POL(zeros) = 0   

The following usable rules [17] were oriented:

length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                                ↳ RuleRemovalProof
                                  ↳ QDP
                                    ↳ RuleRemovalProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ QDPOrderProof
                                              ↳ QDP
                                                ↳ QDPOrderProof
QDP
                                                    ↳ QDPOrderProof
      ↳ 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)) → MARK(x1)
MARK(zeros) → ACTIVE(zeros)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(cons(x1, x2)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

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(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
The remaining pairs can at least be oriented weakly.

MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(x1)) → MARK(x1)
MARK(zeros) → ACTIVE(zeros)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(cons(x1, x2)) → MARK(x1)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
Used ordering: Polynomial interpretation [25]:

POL(0) = 0   
POL(ACTIVE(x1)) = 0   
POL(MARK(x1)) = x1   
POL(active(x1)) = x1   
POL(and(x1, x2)) = x1   
POL(cons(x1, x2)) = x1   
POL(length(x1)) = 0   
POL(mark(x1)) = x1   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(take(x1, x2)) = 1   
POL(tt) = 0   
POL(zeros) = 0   

The following usable rules [17] were oriented:

length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                                ↳ RuleRemovalProof
                                  ↳ QDP
                                    ↳ RuleRemovalProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ QDPOrderProof
                                              ↳ QDP
                                                ↳ QDPOrderProof
                                                  ↳ QDP
                                                    ↳ QDPOrderProof
QDP
                                                        ↳ QDPOrderProof
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

MARK(s(x1)) → ACTIVE(s(mark(x1)))
MARK(zeros) → ACTIVE(zeros)
MARK(s(x1)) → 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)))

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

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)))
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
The remaining pairs can at least be oriented weakly.

MARK(zeros) → ACTIVE(zeros)
MARK(s(x1)) → MARK(x1)
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
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)) = x1   
POL(MARK(x1)) = 1   
POL(active(x1)) = 0   
POL(and(x1, x2)) = 0   
POL(cons(x1, x2)) = 0   
POL(length(x1)) = 1   
POL(mark(x1)) = 0   
POL(nil) = 0   
POL(s(x1)) = 0   
POL(take(x1, x2)) = 0   
POL(tt) = 0   
POL(zeros) = 1   

The following usable rules [17] were oriented:

cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                                ↳ RuleRemovalProof
                                  ↳ QDP
                                    ↳ RuleRemovalProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ QDPOrderProof
                                              ↳ QDP
                                                ↳ QDPOrderProof
                                                  ↳ QDP
                                                    ↳ QDPOrderProof
                                                      ↳ 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)) → MARK(x1)
MARK(zeros) → ACTIVE(zeros)
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)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

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.


ACTIVE(zeros) → MARK(cons(0, zeros))
The remaining pairs can at least be oriented weakly.

ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
MARK(s(x1)) → MARK(x1)
MARK(zeros) → ACTIVE(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)) = 1   
POL(MARK(x1)) = x1   
POL(active(x1)) = x1   
POL(and(x1, x2)) = 0   
POL(cons(x1, x2)) = x1   
POL(length(x1)) = 1   
POL(mark(x1)) = x1   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(take(x1, x2)) = x1   
POL(tt) = 0   
POL(zeros) = 1   

The following usable rules [17] were oriented:

length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                                ↳ RuleRemovalProof
                                  ↳ QDP
                                    ↳ RuleRemovalProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ QDPOrderProof
                                              ↳ QDP
                                                ↳ QDPOrderProof
                                                  ↳ QDP
                                                    ↳ QDPOrderProof
                                                      ↳ QDP
                                                        ↳ QDPOrderProof
                                                          ↳ QDP
                                                            ↳ QDPOrderProof
QDP
                                                                ↳ DependencyGraphProof
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

MARK(zeros) → ACTIVE(zeros)
MARK(s(x1)) → MARK(x1)
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
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)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

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
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                                ↳ RuleRemovalProof
                                  ↳ QDP
                                    ↳ RuleRemovalProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ QDPOrderProof
                                              ↳ QDP
                                                ↳ QDPOrderProof
                                                  ↳ QDP
                                                    ↳ QDPOrderProof
                                                      ↳ QDP
                                                        ↳ QDPOrderProof
                                                          ↳ 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)
ACTIVE(length(cons(N, L))) → MARK(s(length(L)))
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)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

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)) → MARK(x1)
The remaining pairs can at least be oriented weakly.

MARK(s(x1)) → 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(and(x1, x2)) = x1   
POL(cons(x1, x2)) = 1 + x1   
POL(length(x1)) = 0   
POL(mark(x1)) = x1   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(take(x1, x2)) = 0   
POL(tt) = 0   
POL(zeros) = 0   

The following usable rules [17] were oriented:

length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                              ↳ QDP
                                ↳ RuleRemovalProof
                                  ↳ QDP
                                    ↳ RuleRemovalProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ QDPOrderProof
                                              ↳ QDP
                                                ↳ QDPOrderProof
                                                  ↳ QDP
                                                    ↳ QDPOrderProof
                                                      ↳ QDP
                                                        ↳ QDPOrderProof
                                                          ↳ QDP
                                                            ↳ QDPOrderProof
                                                              ↳ QDP
                                                                ↳ DependencyGraphProof
                                                                  ↳ QDP
                                                                    ↳ QDPOrderProof
QDP
      ↳ 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)) → 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)))
active(take(s(M), cons(N, IL))) → mark(cons(N, take(M, IL)))
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)
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
take(active(x1), x2) → take(x1, x2)
take(mark(x1), x2) → take(x1, x2)
take(x1, active(x2)) → take(x1, x2)
take(x1, mark(x2)) → take(x1, x2)

The set Q consists of the following terms:

active(zeros)
active(and(tt, x0))
active(length(nil))
active(length(cons(x0, x1)))
active(take(0, x0))
active(take(s(x0), cons(x1, x2)))
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))
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))

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:

zeroscons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

Q is empty.

The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:

zeroscons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

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
Used ordering:
Polynomial interpretation [25]:

POL(0) = 0   
POL(and(x1, x2)) = 1 + x1 + x2   
POL(cons(x1, x2)) = 2·x1 + 2·x2   
POL(length(x1)) = 2·x1   
POL(nil) = 0   
POL(s(x1)) = 2·x1   
POL(take(x1, x2)) = 2·x1 + 2·x2   
POL(tt) = 1   
POL(zeros) = 0   




↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
QTRS
              ↳ RRRPoloQTRSProof
      ↳ Improved Ferreira Ribeiro-Transformation

Q restricted rewrite system:
The TRS R consists of the following rules:

zeroscons(0, zeros)
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

Q is empty.

The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:

zeroscons(0, zeros)
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

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(cons(x1, x2)) = 2·x1 + x2   
POL(length(x1)) = 2·x1   
POL(nil) = 2   
POL(s(x1)) = x1   
POL(take(x1, x2)) = 2 + 2·x1 + x2   
POL(zeros) = 0   




↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
QTRS
                  ↳ RRRPoloQTRSProof
      ↳ Improved Ferreira Ribeiro-Transformation

Q restricted rewrite system:
The TRS R consists of the following rules:

zeroscons(0, zeros)
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

Q is empty.

The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:

zeroscons(0, zeros)
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:

take(0, IL) → nil
Used ordering:
Polynomial interpretation [25]:

POL(0) = 0   
POL(cons(x1, x2)) = 2·x1 + x2   
POL(length(x1)) = 2·x1   
POL(nil) = 1   
POL(s(x1)) = x1   
POL(take(x1, x2)) = 2 + 2·x1 + 2·x2   
POL(zeros) = 0   




↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
QTRS
                      ↳ Overlay + Local Confluence
      ↳ Improved Ferreira Ribeiro-Transformation

Q restricted rewrite system:
The TRS R consists of the following rules:

zeroscons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

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
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ Overlay + Local Confluence
QTRS
                          ↳ DependencyPairsProof
      ↳ Improved Ferreira Ribeiro-Transformation

Q restricted rewrite system:
The TRS R consists of the following rules:

zeroscons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

The set Q consists of the following terms:

zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))


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)
ZEROSZEROS
TAKE(s(M), cons(N, IL)) → TAKE(M, IL)

The TRS R consists of the following rules:

zeroscons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

The set Q consists of the following terms:

zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))

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
              ↳ RRRPoloQTRSProof
                ↳ 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)
ZEROSZEROS
TAKE(s(M), cons(N, IL)) → TAKE(M, IL)

The TRS R consists of the following rules:

zeroscons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

The set Q consists of the following terms:

zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 3 SCCs.

↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ Overlay + Local Confluence
                        ↳ QTRS
                          ↳ DependencyPairsProof
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ AND
QDP
                                    ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

TAKE(s(M), cons(N, IL)) → TAKE(M, IL)

The TRS R consists of the following rules:

zeroscons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

The set Q consists of the following terms:

zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))

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
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ Overlay + Local Confluence
                        ↳ QTRS
                          ↳ DependencyPairsProof
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ AND
                                  ↳ QDP
                                    ↳ UsableRulesProof
QDP
                                        ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

TAKE(s(M), cons(N, IL)) → TAKE(M, IL)

R is empty.
The set Q consists of the following terms:

zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))

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))
take(s(x0), cons(x1, x2))



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ Overlay + Local Confluence
                        ↳ QTRS
                          ↳ DependencyPairsProof
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ AND
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ QReductionProof
QDP
                                            ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

TAKE(s(M), cons(N, IL)) → TAKE(M, IL)

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:



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ Overlay + Local Confluence
                        ↳ QTRS
                          ↳ DependencyPairsProof
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ AND
                                  ↳ QDP
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:

zeroscons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

The set Q consists of the following terms:

zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))

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
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ Overlay + Local Confluence
                        ↳ QTRS
                          ↳ DependencyPairsProof
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ AND
                                  ↳ QDP
                                  ↳ 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))
take(s(x0), cons(x1, x2))

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))
take(s(x0), cons(x1, x2))



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ Overlay + Local Confluence
                        ↳ QTRS
                          ↳ DependencyPairsProof
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ AND
                                  ↳ QDP
                                  ↳ 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:



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ Overlay + Local Confluence
                        ↳ QTRS
                          ↳ DependencyPairsProof
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ UsableRulesProof
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

ZEROSZEROS

The TRS R consists of the following rules:

zeroscons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))

The set Q consists of the following terms:

zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))

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
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ Overlay + Local Confluence
                        ↳ QTRS
                          ↳ DependencyPairsProof
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
QDP
                                        ↳ QReductionProof
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

ZEROSZEROS

R is empty.
The set Q consists of the following terms:

zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))

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))
take(s(x0), cons(x1, x2))



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ Overlay + Local Confluence
                        ↳ QTRS
                          ↳ DependencyPairsProof
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ QReductionProof
QDP
                                            ↳ NonTerminationProof
      ↳ Improved Ferreira Ribeiro-Transformation

Q DP problem:
The TRS P consists of the following rules:

ZEROSZEROS

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:

ZEROSZEROS

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:




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:

zeroscons(0, zerosInact)
and(tt, X) → a(X)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(x) → x
zeroszerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))

Q is empty.

The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:

zeroscons(0, zerosInact)
and(tt, X) → a(X)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(x) → x
zeroszerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))

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)) = 1 + 2·x1 + x2   
POL(cons(x1, x2)) = x1 + x2   
POL(length(x1)) = x1   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(take(x1, x2)) = x1 + 2·x2   
POL(takeInact(x1, x2)) = x1 + 2·x2   
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:

zeroscons(0, zerosInact)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(x) → x
zeroszerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))

Q is empty.

The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:

zeroscons(0, zerosInact)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(x) → x
zeroszerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))

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 + x2   
POL(length(x1)) = 2 + 2·x1   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(take(x1, x2)) = 2·x1 + x2   
POL(takeInact(x1, x2)) = 2·x1 + x2   
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:

zeroscons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(x) → x
zeroszerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))

Q is empty.

The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:

zeroscons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(x) → x
zeroszerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))

Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:

take(0, IL) → nil
Used ordering:
Polynomial interpretation [25]:

POL(0) = 0   
POL(a(x1)) = x1   
POL(cons(x1, x2)) = 2·x1 + x2   
POL(length(x1)) = x1   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(take(x1, x2)) = 1 + 2·x1 + 2·x2   
POL(takeInact(x1, x2)) = 1 + 2·x1 + 2·x2   
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
QTRS
                      ↳ DependencyPairsProof

Q restricted rewrite system:
The TRS R consists of the following rules:

zeroscons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(x) → x
zeroszerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))

Q is empty.

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)
A(takeInact(x1, x2)) → TAKE(a(x1), a(x2))
TAKE(s(M), cons(N, IL)) → A(IL)
A(takeInact(x1, x2)) → A(x1)
A(takeInact(x1, x2)) → A(x2)
LENGTH(cons(N, L)) → LENGTH(a(L))

The TRS R consists of the following rules:

zeroscons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(x) → x
zeroszerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))

Q is empty.
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
                      ↳ DependencyPairsProof
QDP
                          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

A(zerosInact) → ZEROS
LENGTH(cons(N, L)) → A(L)
A(takeInact(x1, x2)) → TAKE(a(x1), a(x2))
TAKE(s(M), cons(N, IL)) → A(IL)
A(takeInact(x1, x2)) → A(x1)
A(takeInact(x1, x2)) → A(x2)
LENGTH(cons(N, L)) → LENGTH(a(L))

The TRS R consists of the following rules:

zeroscons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(x) → x
zeroszerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 2 SCCs 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
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
QDP
                                ↳ UsableRulesProof
                              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

A(takeInact(x1, x2)) → TAKE(a(x1), a(x2))
TAKE(s(M), cons(N, IL)) → A(IL)
A(takeInact(x1, x2)) → A(x1)
A(takeInact(x1, x2)) → A(x2)

The TRS R consists of the following rules:

zeroscons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(x) → x
zeroszerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, 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
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                                ↳ UsableRulesProof
QDP
                                    ↳ UsableRulesReductionPairsProof
                              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

A(takeInact(x1, x2)) → TAKE(a(x1), a(x2))
TAKE(s(M), cons(N, IL)) → A(IL)
A(takeInact(x1, x2)) → A(x1)
A(takeInact(x1, x2)) → A(x2)

The TRS R consists of the following rules:

a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
take(x1, x2) → takeInact(x1, x2)
zeroscons(0, zerosInact)
zeroszerosInact

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the usable rules with reduction pair processor [15] with a polynomial ordering [25], all dependency pairs and the corresponding usable rules [17] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.

The following dependency pairs can be deleted:

TAKE(s(M), cons(N, IL)) → A(IL)
The following rules are removed from R:

take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
Used ordering: POLO with Polynomial interpretation [25]:

POL(0) = 0   
POL(A(x1)) = 2·x1   
POL(TAKE(x1, x2)) = x1 + 2·x2   
POL(a(x1)) = x1   
POL(cons(x1, x2)) = x1 + x2   
POL(s(x1)) = 2 + 2·x1   
POL(take(x1, x2)) = 2·x1 + 2·x2   
POL(takeInact(x1, x2)) = 2·x1 + 2·x2   
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
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
QDP
                                        ↳ DependencyGraphProof
                              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

A(takeInact(x1, x2)) → TAKE(a(x1), a(x2))
A(takeInact(x1, x2)) → A(x1)
A(takeInact(x1, x2)) → A(x2)

The TRS R consists of the following rules:

a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(x1, x2) → takeInact(x1, x2)
zeroscons(0, zerosInact)
zeroszerosInact

Q is empty.
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
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
                                      ↳ QDP
                                        ↳ DependencyGraphProof
QDP
                                            ↳ UsableRulesProof
                              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

A(takeInact(x1, x2)) → A(x1)
A(takeInact(x1, x2)) → A(x2)

The TRS R consists of the following rules:

a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(x1, x2) → takeInact(x1, x2)
zeroscons(0, zerosInact)
zeroszerosInact

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, 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
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
                                      ↳ QDP
                                        ↳ DependencyGraphProof
                                          ↳ QDP
                                            ↳ UsableRulesProof
QDP
                                                ↳ QDPSizeChangeProof
                              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

A(takeInact(x1, x2)) → A(x1)
A(takeInact(x1, x2)) → A(x2)

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:



↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
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:

zeroscons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
a(x) → x
zeroszerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, 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
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
QDP
                                    ↳ UsableRulesReductionPairsProof

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(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
take(x1, x2) → takeInact(x1, x2)
zeroscons(0, zerosInact)
zeroszerosInact

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the usable rules with reduction pair processor [15] with a polynomial ordering [25], all dependency pairs and the corresponding usable rules [17] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.

No dependency pairs are removed.

The following rules are removed from R:

take(s(M), cons(N, IL)) → cons(N, takeInact(M, a(IL)))
Used ordering: POLO with Polynomial interpretation [25]:

POL(0) = 0   
POL(LENGTH(x1)) = x1   
POL(a(x1)) = x1   
POL(cons(x1, x2)) = x1 + 2·x2   
POL(s(x1)) = 2·x1   
POL(take(x1, x2)) = x1 + x2   
POL(takeInact(x1, x2)) = x1 + x2   
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
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
QDP
                                        ↳ RuleRemovalProof

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(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(x1, x2) → takeInact(x1, x2)
zeroscons(0, zerosInact)
zeroszerosInact

Q is empty.
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 rules of the TRS R:

a(x) → x
zeroszerosInact

Used ordering: POLO with Polynomial interpretation [25]:

POL(0) = 0   
POL(LENGTH(x1)) = x1   
POL(a(x1)) = 1 + 2·x1   
POL(cons(x1, x2)) = 1 + 2·x1 + 2·x2   
POL(take(x1, x2)) = 2 + x1 + 2·x2   
POL(takeInact(x1, x2)) = 2 + x1 + 2·x2   
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
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
QDP
                                            ↳ MNOCProof

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
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(x1, x2) → takeInact(x1, x2)
zeroscons(0, zerosInact)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the modular non-overlap check [15] to enlarge Q to all left-hand sides of R.

↳ CSR
  ↳ CSRInnermostProof
    ↳ CSR
      ↳ CSDependencyPairsProof
      ↳ Zantema-Transformation
      ↳ Innermost Giesl Middeldorp-Transformation
      ↳ Trivial-Transformation
      ↳ Improved Ferreira Ribeiro-Transformation
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
                ↳ QTRS
                  ↳ RRRPoloQTRSProof
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ MNOCProof
QDP
                                                ↳ RuleRemovalProof

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
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(x1, x2) → takeInact(x1, x2)
zeroscons(0, zerosInact)

The set Q consists of the following terms:

a(zerosInact)
a(takeInact(x0, x1))
take(x0, x1)
zeros

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 rules of the TRS R:

a(takeInact(x1, x2)) → take(a(x1), a(x2))

Used ordering: POLO with Polynomial interpretation [25]:

POL(0) = 0   
POL(LENGTH(x1)) = x1   
POL(a(x1)) = 2·x1   
POL(cons(x1, x2)) = 2·x1 + 2·x2   
POL(take(x1, x2)) = 2 + 2·x1 + 2·x2   
POL(takeInact(x1, x2)) = 2 + 2·x1 + 2·x2   
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
                    ↳ QTRS
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ MNOCProof
                                              ↳ QDP
                                                ↳ RuleRemovalProof
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:

a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
zeroscons(0, zerosInact)

The set Q consists of the following terms:

a(zerosInact)
a(takeInact(x0, x1))
take(x0, x1)
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
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ MNOCProof
                                              ↳ QDP
                                                ↳ RuleRemovalProof
                                                  ↳ 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
zeroscons(0, zerosInact)

The set Q consists of the following terms:

a(zerosInact)
a(takeInact(x0, x1))
take(x0, x1)
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.

take(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
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ MNOCProof
                                              ↳ QDP
                                                ↳ RuleRemovalProof
                                                  ↳ 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
zeroscons(0, zerosInact)

The set Q consists of the following terms:

a(zerosInact)
a(takeInact(x0, x1))
zeros

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
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ MNOCProof
                                              ↳ QDP
                                                ↳ RuleRemovalProof
                                                  ↳ 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
zeroscons(0, zerosInact)

The set Q consists of the following terms:

a(zerosInact)
a(takeInact(x0, x1))
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
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ MNOCProof
                                              ↳ QDP
                                                ↳ RuleRemovalProof
                                                  ↳ 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:

zeroscons(0, zerosInact)

The set Q consists of the following terms:

a(zerosInact)
a(takeInact(x0, x1))
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.

a(zerosInact)
a(takeInact(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
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ MNOCProof
                                              ↳ QDP
                                                ↳ RuleRemovalProof
                                                  ↳ 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:

zeroscons(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
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ MNOCProof
                                              ↳ QDP
                                                ↳ RuleRemovalProof
                                                  ↳ 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:

zeroscons(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
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ MNOCProof
                                              ↳ QDP
                                                ↳ RuleRemovalProof
                                                  ↳ 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
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ MNOCProof
                                              ↳ QDP
                                                ↳ RuleRemovalProof
                                                  ↳ 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
                      ↳ DependencyPairsProof
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ AND
                              ↳ QDP
                              ↳ QDP
                                ↳ UsableRulesProof
                                  ↳ QDP
                                    ↳ UsableRulesReductionPairsProof
                                      ↳ QDP
                                        ↳ RuleRemovalProof
                                          ↳ QDP
                                            ↳ MNOCProof
                                              ↳ QDP
                                                ↳ RuleRemovalProof
                                                  ↳ 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:




Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from LENGTH(cons(0, zerosInact)) to LENGTH(cons(0, zerosInact)).