zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(nil) → 0
length(cons(N, L)) → U11(tt, L)
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
zeros: empty set
cons: {1}
0: empty set
U11: {1}
tt: empty set
U12: {1}
s: {1}
length: {1}
U21: {1}
U22: {1}
U23: {1}
take: {1, 2}
nil: empty set
↳ CSR
↳ CSRInnermostProof
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(nil) → 0
length(cons(N, L)) → U11(tt, L)
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
zeros: empty set
cons: {1}
0: empty set
U11: {1}
tt: empty set
U12: {1}
s: {1}
length: {1}
U21: {1}
U22: {1}
U23: {1}
take: {1, 2}
nil: empty set
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
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(nil) → 0
length(cons(N, L)) → U11(tt, L)
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
zeros: empty set
cons: {1}
0: empty set
U11: {1}
tt: empty set
U12: {1}
s: {1}
length: {1}
U21: {1}
U22: {1}
U23: {1}
take: {1, 2}
nil: empty set
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
U111(tt, L) → U121(tt, L)
U121(tt, L) → LENGTH(L)
U211(tt, IL, M, N) → U221(tt, IL, M, N)
U221(tt, IL, M, N) → U231(tt, IL, M, N)
LENGTH(cons(N, L)) → U111(tt, L)
TAKE(s(M), cons(N, IL)) → U211(tt, IL, M, N)
U121(tt, L) → L
U231(tt, IL, M, N) → N
zeros
take(M, IL)
take on positions {1, 2}
U121(tt, L) → U(L)
U231(tt, IL, M, N) → U(N)
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)
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(nil) → 0
length(cons(N, L)) → U11(tt, L)
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
length(nil)
length(cons(x0, x1))
take(0, x0)
take(s(x0), cons(x1, x2))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ AND
↳ QCSDP
↳ QCSDPSubtermProof
↳ QCSDP
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U221(tt, IL, M, N) → U231(tt, IL, M, N)
U231(tt, IL, M, N) → U(N)
U(take(x_0, x_1)) → U(x_0)
U(take(x_0, x_1)) → U(x_1)
U(take(M, IL)) → TAKE(M, IL)
TAKE(s(M), cons(N, IL)) → U211(tt, IL, M, N)
U211(tt, IL, M, N) → U221(tt, IL, M, N)
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(nil) → 0
length(cons(N, L)) → U11(tt, L)
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
length(nil)
length(cons(x0, x1))
take(0, x0)
take(s(x0), cons(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U(take(x_0, x_1)) → U(x_0)
U(take(x_0, x_1)) → U(x_1)
U(take(M, IL)) → TAKE(M, IL)
TAKE(s(M), cons(N, IL)) → U211(tt, IL, M, N)
Used ordering: Combined order from the following AFS and order.
U221(tt, IL, M, N) → U231(tt, IL, M, N)
U231(tt, IL, M, N) → U(N)
U211(tt, IL, M, N) → U221(tt, IL, M, N)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ AND
↳ QCSDP
↳ QCSDPSubtermProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ QCSDP
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U221(tt, IL, M, N) → U231(tt, IL, M, N)
U231(tt, IL, M, N) → U(N)
U211(tt, IL, M, N) → U221(tt, IL, M, N)
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(nil) → 0
length(cons(N, L)) → U11(tt, L)
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
length(nil)
length(cons(x0, x1))
take(0, x0)
take(s(x0), cons(x1, x2))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ AND
↳ QCSDP
↳ QCSDP
↳ ConvertedToQDPProblemProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U121(tt, L) → LENGTH(L)
LENGTH(cons(N, L)) → U111(tt, L)
U111(tt, L) → U121(tt, L)
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(nil) → 0
length(cons(N, L)) → U11(tt, L)
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
length(nil)
length(cons(x0, x1))
take(0, x0)
take(s(x0), cons(x1, x2))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ AND
↳ QCSDP
↳ QCSDP
↳ ConvertedToQDPProblemProof
↳ QDP
↳ RuleRemovalProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
LENGTH(cons(N, L)) → U111(tt, L)
U111(tt, L) → U121(tt, L)
U121(tt, L) → LENGTH(L)
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(nil) → 0
length(cons(N, L)) → U11(tt, L)
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
length(nil) → 0
POL(0) = 0
POL(LENGTH(x1)) = x1
POL(U11(x1, x2)) = 1 + x1 + 2·x2
POL(U111(x1, x2)) = x1 + x2
POL(U12(x1, x2)) = 1 + x1 + 2·x2
POL(U121(x1, x2)) = x1 + x2
POL(U21(x1, x2, x3, x4)) = x1 + x2 + x3 + 2·x4
POL(U22(x1, x2, x3, x4)) = 2·x1 + x2 + x3 + 2·x4
POL(U23(x1, x2, x3, x4)) = 2·x1 + x2 + x3 + 2·x4
POL(cons(x1, x2)) = 2·x1 + x2
POL(length(x1)) = 1 + 2·x1
POL(nil) = 0
POL(s(x1)) = x1
POL(take(x1, x2)) = x1 + x2
POL(tt) = 0
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
LENGTH(cons(N, L)) → U111(tt, L)
U121(tt, L) → LENGTH(L)
U111(tt, L) → U121(tt, L)
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(cons(N, L)) → U11(tt, L)
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
take(0, IL) → nil
POL(0) = 0
POL(LENGTH(x1)) = x1
POL(U11(x1, x2)) = 2·x1 + x2
POL(U111(x1, x2)) = 2·x1 + x2
POL(U12(x1, x2)) = 2·x1 + x2
POL(U121(x1, x2)) = 2·x1 + x2
POL(U21(x1, x2, x3, x4)) = 1 + 2·x1 + x2 + x3 + 2·x4
POL(U22(x1, x2, x3, x4)) = 1 + 2·x1 + x2 + x3 + 2·x4
POL(U23(x1, x2, x3, x4)) = 1 + 2·x1 + x2 + x3 + 2·x4
POL(cons(x1, x2)) = 2·x1 + x2
POL(length(x1)) = x1
POL(nil) = 0
POL(s(x1)) = x1
POL(take(x1, x2)) = 1 + x1 + x2
POL(tt) = 0
POL(zeros) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ AND
↳ QCSDP
↳ QCSDP
↳ ConvertedToQDPProblemProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ NonTerminationProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
LENGTH(cons(N, L)) → U111(tt, L)
U111(tt, L) → U121(tt, L)
U121(tt, L) → LENGTH(L)
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(cons(N, L)) → U11(tt, L)
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
LENGTH(cons(N, L)) → U111(tt, L)
U111(tt, L) → U121(tt, L)
U121(tt, L) → LENGTH(L)
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(cons(N, L)) → U11(tt, L)
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(nil) → 0
length(cons(N, L)) → U11(tt, a(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(x1, x2)
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(nil) → 0
length(cons(N, L)) → U11(tt, a(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(x1, x2)
Used ordering:
take(0, IL) → nil
POL(0) = 0
POL(U11(x1, x2)) = 2·x1 + 2·x2
POL(U12(x1, x2)) = 2·x1 + 2·x2
POL(U21(x1, x2, x3, x4)) = 1 + x1 + 2·x2 + x3 + x4
POL(U22(x1, x2, x3, x4)) = 1 + x1 + 2·x2 + x3 + x4
POL(U23(x1, x2, x3, x4)) = 1 + x1 + 2·x2 + x3 + x4
POL(a(x1)) = x1
POL(cons(x1, x2)) = x1 + x2
POL(length(x1)) = 2·x1
POL(nil) = 0
POL(s(x1)) = x1
POL(take(x1, x2)) = 1 + x1 + 2·x2
POL(takeInact(x1, x2)) = 1 + x1 + 2·x2
POL(tt) = 0
POL(zeros) = 0
POL(zerosInact) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(nil) → 0
length(cons(N, L)) → U11(tt, a(L))
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(x1, x2)
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(nil) → 0
length(cons(N, L)) → U11(tt, a(L))
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(x1, x2)
Used ordering:
length(nil) → 0
POL(0) = 0
POL(U11(x1, x2)) = x1 + 2·x2
POL(U12(x1, x2)) = 2·x1 + 2·x2
POL(U21(x1, x2, x3, x4)) = 2·x1 + 2·x2 + 2·x3 + x4
POL(U22(x1, x2, x3, x4)) = x1 + 2·x2 + 2·x3 + x4
POL(U23(x1, x2, x3, x4)) = x1 + 2·x2 + 2·x3 + x4
POL(a(x1)) = x1
POL(cons(x1, x2)) = x1 + 2·x2
POL(length(x1)) = x1
POL(nil) = 1
POL(s(x1)) = 2·x1
POL(take(x1, x2)) = x1 + x2
POL(takeInact(x1, x2)) = x1 + x2
POL(tt) = 0
POL(zeros) = 0
POL(zerosInact) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(cons(N, L)) → U11(tt, a(L))
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(x1, x2)
LENGTH(cons(N, L)) → A(L)
A(takeInact(x1, x2)) → TAKE(x1, x2)
TAKE(s(M), cons(N, IL)) → A(IL)
U211(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → A(M)
TAKE(s(M), cons(N, IL)) → U211(tt, a(IL), M, N)
U231(tt, IL, M, N) → A(IL)
U111(tt, L) → U121(tt, a(L))
U121(tt, L) → LENGTH(a(L))
U221(tt, IL, M, N) → A(N)
A(zerosInact) → ZEROS
U231(tt, IL, M, N) → A(N)
U121(tt, L) → A(L)
U211(tt, IL, M, N) → A(N)
U231(tt, IL, M, N) → A(M)
U211(tt, IL, M, N) → A(M)
U211(tt, IL, M, N) → U221(tt, a(IL), a(M), a(N))
LENGTH(cons(N, L)) → U111(tt, a(L))
U111(tt, L) → A(L)
U221(tt, IL, M, N) → U231(tt, a(IL), a(M), a(N))
U221(tt, IL, M, N) → A(IL)
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(cons(N, L)) → U11(tt, a(L))
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(x1, x2)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
LENGTH(cons(N, L)) → A(L)
A(takeInact(x1, x2)) → TAKE(x1, x2)
TAKE(s(M), cons(N, IL)) → A(IL)
U211(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → A(M)
TAKE(s(M), cons(N, IL)) → U211(tt, a(IL), M, N)
U231(tt, IL, M, N) → A(IL)
U111(tt, L) → U121(tt, a(L))
U121(tt, L) → LENGTH(a(L))
U221(tt, IL, M, N) → A(N)
A(zerosInact) → ZEROS
U231(tt, IL, M, N) → A(N)
U121(tt, L) → A(L)
U211(tt, IL, M, N) → A(N)
U231(tt, IL, M, N) → A(M)
U211(tt, IL, M, N) → A(M)
U211(tt, IL, M, N) → U221(tt, a(IL), a(M), a(N))
LENGTH(cons(N, L)) → U111(tt, a(L))
U111(tt, L) → A(L)
U221(tt, IL, M, N) → U231(tt, a(IL), a(M), a(N))
U221(tt, IL, M, N) → A(IL)
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(cons(N, L)) → U11(tt, a(L))
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(x1, x2)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
A(takeInact(x1, x2)) → TAKE(x1, x2)
TAKE(s(M), cons(N, IL)) → A(IL)
U211(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → A(M)
TAKE(s(M), cons(N, IL)) → U211(tt, a(IL), M, N)
U231(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → A(N)
U231(tt, IL, M, N) → A(N)
U211(tt, IL, M, N) → A(N)
U211(tt, IL, M, N) → A(M)
U231(tt, IL, M, N) → A(M)
U211(tt, IL, M, N) → U221(tt, a(IL), a(M), a(N))
U221(tt, IL, M, N) → U231(tt, a(IL), a(M), a(N))
U221(tt, IL, M, N) → A(IL)
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(cons(N, L)) → U11(tt, a(L))
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(x1, x2)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
A(takeInact(x1, x2)) → TAKE(x1, x2)
TAKE(s(M), cons(N, IL)) → A(IL)
U211(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → A(M)
TAKE(s(M), cons(N, IL)) → U211(tt, a(IL), M, N)
U231(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → A(N)
U231(tt, IL, M, N) → A(N)
U211(tt, IL, M, N) → A(N)
U211(tt, IL, M, N) → A(M)
U231(tt, IL, M, N) → A(M)
U211(tt, IL, M, N) → U221(tt, a(IL), a(M), a(N))
U221(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → U231(tt, a(IL), a(M), a(N))
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
take(x1, x2) → takeInact(x1, x2)
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
zeros → cons(0, zerosInact)
zeros → zerosInact
The following rules are removed from R:
TAKE(s(M), cons(N, IL)) → A(IL)
U211(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → A(M)
TAKE(s(M), cons(N, IL)) → U211(tt, a(IL), M, N)
U221(tt, IL, M, N) → A(N)
U211(tt, IL, M, N) → A(N)
U211(tt, IL, M, N) → A(M)
U211(tt, IL, M, N) → U221(tt, a(IL), a(M), a(N))
U221(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → U231(tt, a(IL), a(M), a(N))
Used ordering: POLO with Polynomial interpretation [25]:
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
POL(0) = 0
POL(A(x1)) = 2·x1
POL(TAKE(x1, x2)) = 2·x1 + 2·x2
POL(U21(x1, x2, x3, x4)) = 2 + 2·x1 + x2 + 2·x3 + x4
POL(U211(x1, x2, x3, x4)) = 2 + 2·x1 + 2·x2 + 2·x3 + 2·x4
POL(U22(x1, x2, x3, x4)) = 1 + 2·x1 + x2 + 2·x3 + x4
POL(U221(x1, x2, x3, x4)) = 1 + 2·x1 + 2·x2 + 2·x3 + 2·x4
POL(U23(x1, x2, x3, x4)) = 2·x1 + x2 + 2·x3 + x4
POL(U231(x1, x2, x3, x4)) = x1 + 2·x2 + 2·x3 + 2·x4
POL(a(x1)) = x1
POL(cons(x1, x2)) = x1 + x2
POL(s(x1)) = 1 + x1
POL(take(x1, x2)) = 2·x1 + x2
POL(takeInact(x1, x2)) = 2·x1 + x2
POL(tt) = 0
POL(zeros) = 1
POL(zerosInact) = 1
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U231(tt, IL, M, N) → A(N)
U231(tt, IL, M, N) → A(M)
A(takeInact(x1, x2)) → TAKE(x1, x2)
U231(tt, IL, M, N) → A(IL)
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)
take(x1, x2) → takeInact(x1, x2)
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
zeros → cons(0, zerosInact)
zeros → zerosInact
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
LENGTH(cons(N, L)) → U111(tt, a(L))
U111(tt, L) → U121(tt, a(L))
U121(tt, L) → LENGTH(a(L))
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(cons(N, L)) → U11(tt, a(L))
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(x1, x2)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
LENGTH(cons(N, L)) → U111(tt, a(L))
U121(tt, L) → LENGTH(a(L))
U111(tt, L) → U121(tt, a(L))
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
take(x1, x2) → takeInact(x1, x2)
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
zeros → cons(0, zerosInact)
zeros → zerosInact
Used ordering: POLO with Polynomial interpretation [25]:
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
POL(0) = 0
POL(LENGTH(x1)) = 2·x1
POL(U111(x1, x2)) = x1 + 2·x2
POL(U121(x1, x2)) = x1 + 2·x2
POL(U21(x1, x2, x3, x4)) = 2 + 2·x1 + 2·x2 + 2·x3 + 2·x4
POL(U22(x1, x2, x3, x4)) = 2 + x1 + 2·x2 + 2·x3 + 2·x4
POL(U23(x1, x2, x3, x4)) = 2·x1 + 2·x2 + 2·x3 + 2·x4
POL(a(x1)) = x1
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(s(x1)) = 2 + 2·x1
POL(take(x1, x2)) = x1 + x2
POL(takeInact(x1, x2)) = x1 + x2
POL(tt) = 0
POL(zeros) = 0
POL(zerosInact) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ UsableRulesProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
LENGTH(cons(N, L)) → U111(tt, a(L))
U111(tt, L) → U121(tt, a(L))
U121(tt, L) → LENGTH(a(L))
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)
take(x1, x2) → takeInact(x1, x2)
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
zeros → cons(0, zerosInact)
zeros → zerosInact
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
LENGTH(cons(N, L)) → U111(tt, a(L))
U121(tt, L) → LENGTH(a(L))
U111(tt, L) → U121(tt, a(L))
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)
take(x1, x2) → takeInact(x1, x2)
zeros → cons(0, zerosInact)
zeros → zerosInact
U121(tt, zerosInact) → LENGTH(zeros)
U121(tt, takeInact(x0, x1)) → LENGTH(take(x0, x1))
U121(tt, x0) → LENGTH(x0)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U121(tt, zerosInact) → LENGTH(zeros)
LENGTH(cons(N, L)) → U111(tt, a(L))
U121(tt, x0) → LENGTH(x0)
U121(tt, takeInact(x0, x1)) → LENGTH(take(x0, x1))
U111(tt, L) → U121(tt, a(L))
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)
take(x1, x2) → takeInact(x1, x2)
zeros → cons(0, zerosInact)
zeros → zerosInact
U121(tt, zerosInact) → LENGTH(zerosInact)
U121(tt, zerosInact) → LENGTH(cons(0, zerosInact))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U121(tt, zerosInact) → LENGTH(cons(0, zerosInact))
U121(tt, zerosInact) → LENGTH(zerosInact)
LENGTH(cons(N, L)) → U111(tt, a(L))
U111(tt, L) → U121(tt, a(L))
U121(tt, takeInact(x0, x1)) → LENGTH(take(x0, x1))
U121(tt, x0) → LENGTH(x0)
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)
take(x1, x2) → takeInact(x1, x2)
zeros → cons(0, zerosInact)
zeros → zerosInact
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U121(tt, zerosInact) → LENGTH(cons(0, zerosInact))
LENGTH(cons(N, L)) → U111(tt, a(L))
U121(tt, x0) → LENGTH(x0)
U121(tt, takeInact(x0, x1)) → LENGTH(take(x0, x1))
U111(tt, L) → U121(tt, a(L))
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)
take(x1, x2) → takeInact(x1, x2)
zeros → cons(0, zerosInact)
zeros → zerosInact
U121(tt, takeInact(x0, x1)) → LENGTH(takeInact(x0, x1))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U121(tt, takeInact(x0, x1)) → LENGTH(takeInact(x0, x1))
U121(tt, zerosInact) → LENGTH(cons(0, zerosInact))
LENGTH(cons(N, L)) → U111(tt, a(L))
U111(tt, L) → U121(tt, a(L))
U121(tt, x0) → LENGTH(x0)
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)
take(x1, x2) → takeInact(x1, x2)
zeros → cons(0, zerosInact)
zeros → zerosInact
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ NonTerminationProof
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U121(tt, zerosInact) → LENGTH(cons(0, zerosInact))
LENGTH(cons(N, L)) → U111(tt, a(L))
U111(tt, L) → U121(tt, a(L))
U121(tt, x0) → LENGTH(x0)
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)
take(x1, x2) → takeInact(x1, x2)
zeros → cons(0, zerosInact)
zeros → zerosInact
U121(tt, zerosInact) → LENGTH(cons(0, zerosInact))
LENGTH(cons(N, L)) → U111(tt, a(L))
U111(tt, L) → U121(tt, a(L))
U121(tt, x0) → LENGTH(x0)
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(x1, x2)
take(x1, x2) → takeInact(x1, x2)
zeros → cons(0, zerosInact)
zeros → zerosInact
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(0, IL)) → mark(nil)
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(0, IL)) → mark(nil)
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
Used ordering:
active(length(nil)) → mark(0)
POL(0) = 0
POL(U11(x1, x2)) = 2·x1 + 2·x2
POL(U12(x1, x2)) = 2·x1 + 2·x2
POL(U21(x1, x2, x3, x4)) = 2 + 2·x1 + x2 + x3 + 2·x4
POL(U22(x1, x2, x3, x4)) = 2 + x1 + x2 + x3 + 2·x4
POL(U23(x1, x2, x3, x4)) = 2 + x1 + x2 + x3 + 2·x4
POL(active(x1)) = x1
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 + x1 + x2
POL(tt) = 0
POL(zeros) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(0, IL)) → mark(nil)
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(0, IL)) → mark(nil)
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
Used ordering:
active(take(0, IL)) → mark(nil)
POL(0) = 0
POL(U11(x1, x2)) = 2·x1 + 2·x2
POL(U12(x1, x2)) = 2·x1 + 2·x2
POL(U21(x1, x2, x3, x4)) = 1 + x1 + 2·x2 + x3 + 2·x4
POL(U22(x1, x2, x3, x4)) = 1 + x1 + 2·x2 + x3 + 2·x4
POL(U23(x1, x2, x3, x4)) = 1 + x1 + 2·x2 + x3 + 2·x4
POL(active(x1)) = x1
POL(cons(x1, x2)) = x1 + x2
POL(length(x1)) = 2·x1
POL(mark(x1)) = x1
POL(nil) = 0
POL(s(x1)) = x1
POL(take(x1, x2)) = 1 + x1 + 2·x2
POL(tt) = 0
POL(zeros) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
MARK(U22(x1, x2, x3, x4)) → MARK(x1)
U211(active(x1), x2, x3, x4) → U211(x1, x2, x3, x4)
ACTIVE(U23(tt, IL, M, N)) → TAKE(M, IL)
ACTIVE(U11(tt, L)) → U121(tt, L)
ACTIVE(U21(tt, IL, M, N)) → MARK(U22(tt, IL, M, N))
MARK(tt) → ACTIVE(tt)
ACTIVE(U23(tt, IL, M, N)) → CONS(N, take(M, IL))
MARK(U11(x1, x2)) → MARK(x1)
TAKE(x1, active(x2)) → TAKE(x1, x2)
MARK(cons(x1, x2)) → MARK(x1)
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
ACTIVE(U12(tt, L)) → S(length(L))
MARK(length(x1)) → MARK(x1)
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(zeros) → CONS(0, zeros)
MARK(take(x1, x2)) → MARK(x1)
MARK(take(x1, x2)) → TAKE(mark(x1), mark(x2))
U121(active(x1), x2) → U121(x1, x2)
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
S(active(x1)) → S(x1)
MARK(U12(x1, x2)) → MARK(x1)
MARK(cons(x1, x2)) → CONS(mark(x1), x2)
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
TAKE(active(x1), x2) → TAKE(x1, x2)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
U221(mark(x1), x2, x3, x4) → U221(x1, x2, x3, x4)
MARK(zeros) → ACTIVE(zeros)
ACTIVE(length(cons(N, L))) → U111(tt, L)
MARK(length(x1)) → LENGTH(mark(x1))
MARK(U21(x1, x2, x3, x4)) → MARK(x1)
TAKE(mark(x1), x2) → TAKE(x1, x2)
U221(active(x1), x2, x3, x4) → U221(x1, x2, x3, x4)
CONS(active(x1), x2) → CONS(x1, x2)
ACTIVE(take(s(M), cons(N, IL))) → U211(tt, IL, M, N)
U111(mark(x1), x2) → U111(x1, x2)
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
ACTIVE(U12(tt, L)) → LENGTH(L)
MARK(U23(x1, x2, x3, x4)) → U231(mark(x1), x2, x3, x4)
MARK(take(x1, x2)) → MARK(x2)
CONS(mark(x1), x2) → CONS(x1, x2)
MARK(s(x1)) → MARK(x1)
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
U231(mark(x1), x2, x3, x4) → U231(x1, x2, x3, x4)
MARK(U11(x1, x2)) → U111(mark(x1), x2)
ACTIVE(U21(tt, IL, M, N)) → U221(tt, IL, M, N)
MARK(U12(x1, x2)) → U121(mark(x1), x2)
U211(mark(x1), x2, x3, x4) → U211(x1, x2, x3, x4)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
ACTIVE(U22(tt, IL, M, N)) → U231(tt, IL, M, N)
LENGTH(mark(x1)) → LENGTH(x1)
MARK(U23(x1, x2, x3, x4)) → MARK(x1)
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
LENGTH(active(x1)) → LENGTH(x1)
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
U111(active(x1), x2) → U111(x1, x2)
MARK(s(x1)) → S(mark(x1))
S(mark(x1)) → S(x1)
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(U21(x1, x2, x3, x4)) → U211(mark(x1), x2, x3, x4)
ACTIVE(take(s(M), cons(N, IL))) → MARK(U21(tt, IL, M, N))
MARK(U21(x1, x2, x3, x4)) → ACTIVE(U21(mark(x1), x2, x3, x4))
TAKE(x1, mark(x2)) → TAKE(x1, x2)
U231(active(x1), x2, x3, x4) → U231(x1, x2, x3, x4)
MARK(0) → ACTIVE(0)
ACTIVE(zeros) → MARK(cons(0, zeros))
U121(mark(x1), x2) → U121(x1, x2)
MARK(nil) → ACTIVE(nil)
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(U22(x1, x2, x3, x4)) → U221(mark(x1), x2, x3, x4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
MARK(U22(x1, x2, x3, x4)) → MARK(x1)
U211(active(x1), x2, x3, x4) → U211(x1, x2, x3, x4)
ACTIVE(U23(tt, IL, M, N)) → TAKE(M, IL)
ACTIVE(U11(tt, L)) → U121(tt, L)
ACTIVE(U21(tt, IL, M, N)) → MARK(U22(tt, IL, M, N))
MARK(tt) → ACTIVE(tt)
ACTIVE(U23(tt, IL, M, N)) → CONS(N, take(M, IL))
MARK(U11(x1, x2)) → MARK(x1)
TAKE(x1, active(x2)) → TAKE(x1, x2)
MARK(cons(x1, x2)) → MARK(x1)
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
ACTIVE(U12(tt, L)) → S(length(L))
MARK(length(x1)) → MARK(x1)
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(zeros) → CONS(0, zeros)
MARK(take(x1, x2)) → MARK(x1)
MARK(take(x1, x2)) → TAKE(mark(x1), mark(x2))
U121(active(x1), x2) → U121(x1, x2)
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
S(active(x1)) → S(x1)
MARK(U12(x1, x2)) → MARK(x1)
MARK(cons(x1, x2)) → CONS(mark(x1), x2)
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
TAKE(active(x1), x2) → TAKE(x1, x2)
MARK(length(x1)) → ACTIVE(length(mark(x1)))
U221(mark(x1), x2, x3, x4) → U221(x1, x2, x3, x4)
MARK(zeros) → ACTIVE(zeros)
ACTIVE(length(cons(N, L))) → U111(tt, L)
MARK(length(x1)) → LENGTH(mark(x1))
MARK(U21(x1, x2, x3, x4)) → MARK(x1)
TAKE(mark(x1), x2) → TAKE(x1, x2)
U221(active(x1), x2, x3, x4) → U221(x1, x2, x3, x4)
CONS(active(x1), x2) → CONS(x1, x2)
ACTIVE(take(s(M), cons(N, IL))) → U211(tt, IL, M, N)
U111(mark(x1), x2) → U111(x1, x2)
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
ACTIVE(U12(tt, L)) → LENGTH(L)
MARK(U23(x1, x2, x3, x4)) → U231(mark(x1), x2, x3, x4)
MARK(take(x1, x2)) → MARK(x2)
CONS(mark(x1), x2) → CONS(x1, x2)
MARK(s(x1)) → MARK(x1)
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
U231(mark(x1), x2, x3, x4) → U231(x1, x2, x3, x4)
MARK(U11(x1, x2)) → U111(mark(x1), x2)
ACTIVE(U21(tt, IL, M, N)) → U221(tt, IL, M, N)
MARK(U12(x1, x2)) → U121(mark(x1), x2)
U211(mark(x1), x2, x3, x4) → U211(x1, x2, x3, x4)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
ACTIVE(U22(tt, IL, M, N)) → U231(tt, IL, M, N)
LENGTH(mark(x1)) → LENGTH(x1)
MARK(U23(x1, x2, x3, x4)) → MARK(x1)
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
LENGTH(active(x1)) → LENGTH(x1)
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
U111(active(x1), x2) → U111(x1, x2)
MARK(s(x1)) → S(mark(x1))
S(mark(x1)) → S(x1)
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(U21(x1, x2, x3, x4)) → U211(mark(x1), x2, x3, x4)
ACTIVE(take(s(M), cons(N, IL))) → MARK(U21(tt, IL, M, N))
MARK(U21(x1, x2, x3, x4)) → ACTIVE(U21(mark(x1), x2, x3, x4))
TAKE(x1, mark(x2)) → TAKE(x1, x2)
U231(active(x1), x2, x3, x4) → U231(x1, x2, x3, x4)
MARK(0) → ACTIVE(0)
ACTIVE(zeros) → MARK(cons(0, zeros))
U121(mark(x1), x2) → U121(x1, x2)
MARK(nil) → ACTIVE(nil)
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(U22(x1, x2, x3, x4)) → U221(mark(x1), x2, x3, x4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
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)
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
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)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
cons(active(x0), x1)
cons(mark(x0), x1)
U11(active(x0), x1)
U11(mark(x0), x1)
U12(active(x0), x1)
U12(mark(x0), x1)
s(active(x0))
s(mark(x0))
length(active(x0))
length(mark(x0))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
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)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
mark(tt)
mark(U12(x0, x1))
mark(s(x0))
mark(length(x0))
mark(U21(x0, x1, x2, x3))
mark(U22(x0, x1, x2, x3))
mark(U23(x0, x1, x2, x3))
mark(take(x0, x1))
mark(nil)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U231(active(x1), x2, x3, x4) → U231(x1, x2, x3, x4)
U231(mark(x1), x2, x3, x4) → U231(x1, x2, x3, x4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U231(active(x1), x2, x3, x4) → U231(x1, x2, x3, x4)
U231(mark(x1), x2, x3, x4) → U231(x1, x2, x3, x4)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
cons(active(x0), x1)
cons(mark(x0), x1)
U11(active(x0), x1)
U11(mark(x0), x1)
U12(active(x0), x1)
U12(mark(x0), x1)
s(active(x0))
s(mark(x0))
length(active(x0))
length(mark(x0))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U231(active(x1), x2, x3, x4) → U231(x1, x2, x3, x4)
U231(mark(x1), x2, x3, x4) → U231(x1, x2, x3, x4)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
mark(tt)
mark(U12(x0, x1))
mark(s(x0))
mark(length(x0))
mark(U21(x0, x1, x2, x3))
mark(U22(x0, x1, x2, x3))
mark(U23(x0, x1, x2, x3))
mark(take(x0, x1))
mark(nil)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U221(active(x1), x2, x3, x4) → U221(x1, x2, x3, x4)
U221(mark(x1), x2, x3, x4) → U221(x1, x2, x3, x4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U221(active(x1), x2, x3, x4) → U221(x1, x2, x3, x4)
U221(mark(x1), x2, x3, x4) → U221(x1, x2, x3, x4)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
cons(active(x0), x1)
cons(mark(x0), x1)
U11(active(x0), x1)
U11(mark(x0), x1)
U12(active(x0), x1)
U12(mark(x0), x1)
s(active(x0))
s(mark(x0))
length(active(x0))
length(mark(x0))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U221(active(x1), x2, x3, x4) → U221(x1, x2, x3, x4)
U221(mark(x1), x2, x3, x4) → U221(x1, x2, x3, x4)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
mark(tt)
mark(U12(x0, x1))
mark(s(x0))
mark(length(x0))
mark(U21(x0, x1, x2, x3))
mark(U22(x0, x1, x2, x3))
mark(U23(x0, x1, x2, x3))
mark(take(x0, x1))
mark(nil)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U211(active(x1), x2, x3, x4) → U211(x1, x2, x3, x4)
U211(mark(x1), x2, x3, x4) → U211(x1, x2, x3, x4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U211(active(x1), x2, x3, x4) → U211(x1, x2, x3, x4)
U211(mark(x1), x2, x3, x4) → U211(x1, x2, x3, x4)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
cons(active(x0), x1)
cons(mark(x0), x1)
U11(active(x0), x1)
U11(mark(x0), x1)
U12(active(x0), x1)
U12(mark(x0), x1)
s(active(x0))
s(mark(x0))
length(active(x0))
length(mark(x0))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U211(active(x1), x2, x3, x4) → U211(x1, x2, x3, x4)
U211(mark(x1), x2, x3, x4) → U211(x1, x2, x3, x4)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
mark(tt)
mark(U12(x0, x1))
mark(s(x0))
mark(length(x0))
mark(U21(x0, x1, x2, x3))
mark(U22(x0, x1, x2, x3))
mark(U23(x0, x1, x2, x3))
mark(take(x0, x1))
mark(nil)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
LENGTH(mark(x1)) → LENGTH(x1)
LENGTH(active(x1)) → LENGTH(x1)
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
LENGTH(mark(x1)) → LENGTH(x1)
LENGTH(active(x1)) → LENGTH(x1)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
cons(active(x0), x1)
cons(mark(x0), x1)
U11(active(x0), x1)
U11(mark(x0), x1)
U12(active(x0), x1)
U12(mark(x0), x1)
s(active(x0))
s(mark(x0))
length(active(x0))
length(mark(x0))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
LENGTH(mark(x1)) → LENGTH(x1)
LENGTH(active(x1)) → LENGTH(x1)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
mark(tt)
mark(U12(x0, x1))
mark(s(x0))
mark(length(x0))
mark(U21(x0, x1, x2, x3))
mark(U22(x0, x1, x2, x3))
mark(U23(x0, x1, x2, x3))
mark(take(x0, x1))
mark(nil)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
S(active(x1)) → S(x1)
S(mark(x1)) → S(x1)
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
S(active(x1)) → S(x1)
S(mark(x1)) → S(x1)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
cons(active(x0), x1)
cons(mark(x0), x1)
U11(active(x0), x1)
U11(mark(x0), x1)
U12(active(x0), x1)
U12(mark(x0), x1)
s(active(x0))
s(mark(x0))
length(active(x0))
length(mark(x0))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
S(mark(x1)) → S(x1)
S(active(x1)) → S(x1)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
mark(tt)
mark(U12(x0, x1))
mark(s(x0))
mark(length(x0))
mark(U21(x0, x1, x2, x3))
mark(U22(x0, x1, x2, x3))
mark(U23(x0, x1, x2, x3))
mark(take(x0, x1))
mark(nil)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U121(mark(x1), x2) → U121(x1, x2)
U121(active(x1), x2) → U121(x1, x2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U121(mark(x1), x2) → U121(x1, x2)
U121(active(x1), x2) → U121(x1, x2)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
cons(active(x0), x1)
cons(mark(x0), x1)
U11(active(x0), x1)
U11(mark(x0), x1)
U12(active(x0), x1)
U12(mark(x0), x1)
s(active(x0))
s(mark(x0))
length(active(x0))
length(mark(x0))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U121(mark(x1), x2) → U121(x1, x2)
U121(active(x1), x2) → U121(x1, x2)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
mark(tt)
mark(U12(x0, x1))
mark(s(x0))
mark(length(x0))
mark(U21(x0, x1, x2, x3))
mark(U22(x0, x1, x2, x3))
mark(U23(x0, x1, x2, x3))
mark(take(x0, x1))
mark(nil)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U111(active(x1), x2) → U111(x1, x2)
U111(mark(x1), x2) → U111(x1, x2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U111(active(x1), x2) → U111(x1, x2)
U111(mark(x1), x2) → U111(x1, x2)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
cons(active(x0), x1)
cons(mark(x0), x1)
U11(active(x0), x1)
U11(mark(x0), x1)
U12(active(x0), x1)
U12(mark(x0), x1)
s(active(x0))
s(mark(x0))
length(active(x0))
length(mark(x0))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
U111(active(x1), x2) → U111(x1, x2)
U111(mark(x1), x2) → U111(x1, x2)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
mark(tt)
mark(U12(x0, x1))
mark(s(x0))
mark(length(x0))
mark(U21(x0, x1, x2, x3))
mark(U22(x0, x1, x2, x3))
mark(U23(x0, x1, x2, x3))
mark(take(x0, x1))
mark(nil)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
CONS(mark(x1), x2) → CONS(x1, x2)
CONS(active(x1), x2) → CONS(x1, x2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
CONS(mark(x1), x2) → CONS(x1, x2)
CONS(active(x1), x2) → CONS(x1, x2)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
cons(active(x0), x1)
cons(mark(x0), x1)
U11(active(x0), x1)
U11(mark(x0), x1)
U12(active(x0), x1)
U12(mark(x0), x1)
s(active(x0))
s(mark(x0))
length(active(x0))
length(mark(x0))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
CONS(mark(x1), x2) → CONS(x1, x2)
CONS(active(x1), x2) → CONS(x1, x2)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
mark(tt)
mark(U12(x0, x1))
mark(s(x0))
mark(length(x0))
mark(U21(x0, x1, x2, x3))
mark(U22(x0, x1, x2, x3))
mark(U23(x0, x1, x2, x3))
mark(take(x0, x1))
mark(nil)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ RuleRemovalProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
MARK(U22(x1, x2, x3, x4)) → MARK(x1)
MARK(take(x1, x2)) → MARK(x2)
ACTIVE(U21(tt, IL, M, N)) → MARK(U22(tt, IL, M, N))
MARK(U11(x1, x2)) → MARK(x1)
MARK(s(x1)) → MARK(x1)
MARK(cons(x1, x2)) → MARK(x1)
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → MARK(x1)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
MARK(take(x1, x2)) → MARK(x1)
MARK(U23(x1, x2, x3, x4)) → MARK(x1)
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
MARK(U12(x1, x2)) → MARK(x1)
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
ACTIVE(take(s(M), cons(N, IL))) → MARK(U21(tt, IL, M, N))
MARK(U21(x1, x2, x3, x4)) → ACTIVE(U21(mark(x1), x2, x3, x4))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(zeros) → ACTIVE(zeros)
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(U21(x1, x2, x3, x4)) → MARK(x1)
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
MARK(U22(x1, x2, x3, x4)) → MARK(x1)
MARK(take(x1, x2)) → MARK(x2)
MARK(take(x1, x2)) → MARK(x1)
MARK(U23(x1, x2, x3, x4)) → MARK(x1)
MARK(U21(x1, x2, x3, x4)) → MARK(x1)
POL(0) = 0
POL(ACTIVE(x1)) = x1
POL(MARK(x1)) = x1
POL(U11(x1, x2)) = 2·x1 + 2·x2
POL(U12(x1, x2)) = 2·x1 + 2·x2
POL(U21(x1, x2, x3, x4)) = 2 + x1 + 2·x2 + 2·x3 + 2·x4
POL(U22(x1, x2, x3, x4)) = 2 + 2·x1 + 2·x2 + 2·x3 + 2·x4
POL(U23(x1, x2, x3, x4)) = 2 + 2·x1 + 2·x2 + 2·x3 + x4
POL(active(x1)) = x1
POL(cons(x1, x2)) = x1 + x2
POL(length(x1)) = 2·x1
POL(mark(x1)) = x1
POL(nil) = 0
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(U21(tt, IL, M, N)) → MARK(U22(tt, IL, M, N))
MARK(U12(x1, x2)) → MARK(x1)
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(U11(x1, x2)) → MARK(x1)
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
MARK(s(x1)) → MARK(x1)
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(cons(x1, x2)) → MARK(x1)
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
MARK(U21(x1, x2, x3, x4)) → ACTIVE(U21(mark(x1), x2, x3, x4))
ACTIVE(take(s(M), cons(N, IL))) → MARK(U21(tt, IL, M, N))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(length(x1)) → MARK(x1)
MARK(zeros) → ACTIVE(zeros)
MARK(s(x1)) → ACTIVE(s(mark(x1)))
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
MARK(U12(x1, x2)) → MARK(x1)
MARK(U11(x1, x2)) → MARK(x1)
MARK(length(x1)) → MARK(x1)
POL(0) = 0
POL(ACTIVE(x1)) = 2·x1
POL(MARK(x1)) = 2·x1
POL(U11(x1, x2)) = 2 + x1 + 2·x2
POL(U12(x1, x2)) = 2 + 2·x1 + 2·x2
POL(U21(x1, x2, x3, x4)) = 2·x1 + x2 + x3 + 2·x4
POL(U22(x1, x2, x3, x4)) = x1 + x2 + x3 + 2·x4
POL(U23(x1, x2, x3, x4)) = 2·x1 + x2 + x3 + 2·x4
POL(active(x1)) = x1
POL(cons(x1, x2)) = 2·x1 + x2
POL(length(x1)) = 2 + 2·x1
POL(mark(x1)) = x1
POL(nil) = 0
POL(s(x1)) = x1
POL(take(x1, x2)) = x1 + x2
POL(tt) = 0
POL(zeros) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(U21(tt, IL, M, N)) → MARK(U22(tt, IL, M, N))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
MARK(s(x1)) → MARK(x1)
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(cons(x1, x2)) → MARK(x1)
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
MARK(U21(x1, x2, x3, x4)) → ACTIVE(U21(mark(x1), x2, x3, x4))
ACTIVE(take(s(M), cons(N, IL))) → MARK(U21(tt, IL, M, N))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(s(x1)) → ACTIVE(s(mark(x1)))
MARK(zeros) → ACTIVE(zeros)
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(cons(x1, x2)) → ACTIVE(cons(mark(x1), x2))
MARK(s(x1)) → ACTIVE(s(mark(x1)))
Used ordering: Polynomial interpretation [25]:
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(U21(tt, IL, M, N)) → MARK(U22(tt, IL, M, N))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(cons(x1, x2)) → MARK(x1)
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
MARK(U21(x1, x2, x3, x4)) → ACTIVE(U21(mark(x1), x2, x3, x4))
ACTIVE(take(s(M), cons(N, IL))) → MARK(U21(tt, IL, M, N))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(zeros) → ACTIVE(zeros)
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
POL(0) = 0
POL(ACTIVE(x1)) = x1
POL(MARK(x1)) = 1
POL(U11(x1, x2)) = 1
POL(U12(x1, x2)) = 1
POL(U21(x1, x2, x3, x4)) = 1
POL(U22(x1, x2, x3, x4)) = 1
POL(U23(x1, x2, x3, x4)) = 1
POL(active(x1)) = 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)) = 1
POL(tt) = 0
POL(zeros) = 1
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
U12(active(x1), x2) → U12(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
U11(active(x1), x2) → U11(x1, x2)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(U21(tt, IL, M, N)) → MARK(U22(tt, IL, M, N))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(cons(x1, x2)) → MARK(x1)
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
MARK(U21(x1, x2, x3, x4)) → ACTIVE(U21(mark(x1), x2, x3, x4))
ACTIVE(take(s(M), cons(N, IL))) → MARK(U21(tt, IL, M, N))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(zeros) → ACTIVE(zeros)
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVE(zeros) → MARK(cons(0, zeros))
Used ordering: Polynomial interpretation with max and min functions [25]:
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(U21(tt, IL, M, N)) → MARK(U22(tt, IL, M, N))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(cons(x1, x2)) → MARK(x1)
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
MARK(U21(x1, x2, x3, x4)) → ACTIVE(U21(mark(x1), x2, x3, x4))
ACTIVE(take(s(M), cons(N, IL))) → MARK(U21(tt, IL, M, N))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(zeros) → ACTIVE(zeros)
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
POL(0) = 0
POL(ACTIVE(x1)) = x1
POL(MARK(x1)) = x1
POL(U11(x1, x2)) = 0
POL(U12(x1, x2)) = 0
POL(U21(x1, x2, x3, x4)) = x4
POL(U22(x1, x2, x3, x4)) = x4
POL(U23(x1, x2, x3, x4)) = x4
POL(active(x1)) = 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)) = x2
POL(tt) = 0
POL(zeros) = 1
mark(0) → active(0)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
mark(zeros) → active(zeros)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U12(tt, L)) → mark(s(length(L)))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
active(length(cons(N, L))) → mark(U11(tt, L))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
mark(U11(x1, x2)) → active(U11(mark(x1), x2))
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
mark(s(x1)) → active(s(mark(x1)))
active(U11(tt, L)) → mark(U12(tt, L))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
mark(nil) → active(nil)
U12(mark(x1), x2) → U12(x1, x2)
U12(active(x1), x2) → U12(x1, x2)
mark(tt) → active(tt)
U11(mark(x1), x2) → U11(x1, x2)
U11(active(x1), x2) → U11(x1, x2)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(U21(tt, IL, M, N)) → MARK(U22(tt, IL, M, N))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(cons(x1, x2)) → MARK(x1)
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
MARK(U21(x1, x2, x3, x4)) → ACTIVE(U21(mark(x1), x2, x3, x4))
ACTIVE(take(s(M), cons(N, IL))) → MARK(U21(tt, IL, M, N))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(zeros) → ACTIVE(zeros)
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(U21(tt, IL, M, N)) → MARK(U22(tt, IL, M, N))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(cons(x1, x2)) → MARK(x1)
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
MARK(U21(x1, x2, x3, x4)) → ACTIVE(U21(mark(x1), x2, x3, x4))
ACTIVE(take(s(M), cons(N, IL))) → MARK(U21(tt, IL, M, N))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVE(take(s(M), cons(N, IL))) → MARK(U21(tt, IL, M, N))
Used ordering: Polynomial interpretation with max and min functions [25]:
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(U21(tt, IL, M, N)) → MARK(U22(tt, IL, M, N))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(cons(x1, x2)) → MARK(x1)
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
MARK(U21(x1, x2, x3, x4)) → ACTIVE(U21(mark(x1), x2, x3, x4))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
POL(0) = 0
POL(ACTIVE(x1)) = x1
POL(MARK(x1)) = x1
POL(U11(x1, x2)) = 0
POL(U12(x1, x2)) = 0
POL(U21(x1, x2, x3, x4)) = x4
POL(U22(x1, x2, x3, x4)) = x4
POL(U23(x1, x2, x3, x4)) = x4
POL(active(x1)) = 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 + x2
POL(tt) = 0
POL(zeros) = 0
mark(0) → active(0)
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
mark(zeros) → active(zeros)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
mark(cons(x1, x2)) → active(cons(mark(x1), x2))
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U12(tt, L)) → mark(s(length(L)))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
active(length(cons(N, L))) → mark(U11(tt, L))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
mark(length(x1)) → active(length(mark(x1)))
active(zeros) → mark(cons(0, zeros))
mark(U11(x1, x2)) → active(U11(mark(x1), x2))
mark(take(x1, x2)) → active(take(mark(x1), mark(x2)))
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
mark(s(x1)) → active(s(mark(x1)))
active(U11(tt, L)) → mark(U12(tt, L))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
mark(nil) → active(nil)
U12(mark(x1), x2) → U12(x1, x2)
U12(active(x1), x2) → U12(x1, x2)
mark(tt) → active(tt)
U11(mark(x1), x2) → U11(x1, x2)
U11(active(x1), x2) → U11(x1, x2)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(U21(tt, IL, M, N)) → MARK(U22(tt, IL, M, N))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(cons(x1, x2)) → MARK(x1)
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
MARK(U21(x1, x2, x3, x4)) → ACTIVE(U21(mark(x1), x2, x3, x4))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVE(U21(tt, IL, M, N)) → MARK(U22(tt, IL, M, N))
Used ordering: Polynomial interpretation [25]:
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(cons(x1, x2)) → MARK(x1)
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
MARK(U21(x1, x2, x3, x4)) → ACTIVE(U21(mark(x1), x2, x3, x4))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
POL(0) = 0
POL(ACTIVE(x1)) = x1
POL(MARK(x1)) = x1
POL(U11(x1, x2)) = 0
POL(U12(x1, x2)) = 0
POL(U21(x1, x2, x3, x4)) = 1 + x2 + x3 + x4
POL(U22(x1, x2, x3, x4)) = x2 + x3 + x4
POL(U23(x1, x2, x3, x4)) = x3 + x4
POL(active(x1)) = 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)) = 0
POL(tt) = 0
POL(zeros) = 0
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
U12(active(x1), x2) → U12(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
U11(active(x1), x2) → U11(x1, x2)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(cons(x1, x2)) → MARK(x1)
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
MARK(U21(x1, x2, x3, x4)) → ACTIVE(U21(mark(x1), x2, x3, x4))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(U21(x1, x2, x3, x4)) → ACTIVE(U21(mark(x1), x2, x3, x4))
MARK(take(x1, x2)) → ACTIVE(take(mark(x1), mark(x2)))
Used ordering: Polynomial interpretation with max and min functions [25]:
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(cons(x1, x2)) → MARK(x1)
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
POL(0) = 0
POL(ACTIVE(x1)) = x1
POL(MARK(x1)) = 1
POL(U11(x1, x2)) = 1
POL(U12(x1, x2)) = 1
POL(U21(x1, x2, x3, x4)) = 0
POL(U22(x1, x2, x3, x4)) = 1
POL(U23(x1, x2, x3, x4)) = 1
POL(active(x1)) = 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) = 0
U12(mark(x1), x2) → U12(x1, x2)
U12(active(x1), x2) → U12(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
U11(active(x1), x2) → U11(x1, x2)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
MARK(cons(x1, x2)) → MARK(x1)
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVE(U22(tt, IL, M, N)) → MARK(U23(tt, IL, M, N))
Used ordering: Polynomial interpretation with max and min functions [25]:
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(cons(x1, x2)) → MARK(x1)
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
POL(0) = 0
POL(ACTIVE(x1)) = x1
POL(MARK(x1)) = x1
POL(U11(x1, x2)) = 0
POL(U12(x1, x2)) = 0
POL(U21(x1, x2, x3, x4)) = 0
POL(U22(x1, x2, x3, x4)) = 1 + x2 + x3 + x4
POL(U23(x1, x2, x3, x4)) = x4
POL(active(x1)) = 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)) = 0
POL(tt) = 0
POL(zeros) = 0
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
U12(active(x1), x2) → U12(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
U11(active(x1), x2) → U11(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(cons(x1, x2)) → MARK(x1)
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(cons(x1, x2)) → MARK(x1)
Used ordering: Polynomial interpretation [25]:
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
POL(0) = 0
POL(ACTIVE(x1)) = x1
POL(MARK(x1)) = x1
POL(U11(x1, x2)) = 0
POL(U12(x1, x2)) = 0
POL(U21(x1, x2, x3, x4)) = 0
POL(U22(x1, x2, x3, x4)) = x2
POL(U23(x1, x2, x3, x4)) = 1 + x4
POL(active(x1)) = 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
cons(mark(x1), x2) → cons(x1, x2)
cons(active(x1), x2) → cons(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
U12(active(x1), x2) → U12(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
U11(active(x1), x2) → U11(x1, x2)
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
ACTIVE(U23(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDPOrderProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
Used ordering: Polynomial interpretation with max and min functions [25]:
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
POL(0) = 0
POL(ACTIVE(x1)) = 0
POL(MARK(x1)) = x1
POL(U11(x1, x2)) = 0
POL(U12(x1, x2)) = x1
POL(U21(x1, x2, x3, x4)) = 1 + x3
POL(U22(x1, x2, x3, x4)) = 1 + x3
POL(U23(x1, x2, x3, x4)) = 1 + x1 + x3
POL(active(x1)) = x1
POL(cons(x1, x2)) = 1
POL(length(x1)) = 0
POL(mark(x1)) = x1
POL(nil) = 0
POL(s(x1)) = x1
POL(take(x1, x2)) = x1 + x2
POL(tt) = 0
POL(zeros) = 1
s(mark(x1)) → s(x1)
s(active(x1)) → s(x1)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(U22(x1, x2, x3, x4)) → ACTIVE(U22(mark(x1), x2, x3, x4))
MARK(U23(x1, x2, x3, x4)) → ACTIVE(U23(mark(x1), x2, x3, x4))
Used ordering: Polynomial interpretation [25]:
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
POL(0) = 0
POL(ACTIVE(x1)) = x1
POL(MARK(x1)) = 1
POL(U11(x1, x2)) = 1
POL(U12(x1, x2)) = 1
POL(U21(x1, x2, x3, x4)) = 0
POL(U22(x1, x2, x3, x4)) = 0
POL(U23(x1, x2, x3, x4)) = 0
POL(active(x1)) = 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) = 0
U12(mark(x1), x2) → U12(x1, x2)
U12(active(x1), x2) → U12(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
U11(active(x1), x2) → U11(x1, x2)
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDPOrderProof
↳ QDP
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
MARK(U11(x1, x2)) → ACTIVE(U11(mark(x1), x2))
ACTIVE(length(cons(N, L))) → MARK(U11(tt, L))
MARK(s(x1)) → MARK(x1)
MARK(U12(x1, x2)) → ACTIVE(U12(mark(x1), x2))
MARK(length(x1)) → ACTIVE(length(mark(x1)))
ACTIVE(U11(tt, L)) → MARK(U12(tt, L))
ACTIVE(U12(tt, L)) → MARK(s(length(L)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(U21(tt, IL, M, N)) → mark(U22(tt, IL, M, N))
active(U22(tt, IL, M, N)) → mark(U23(tt, IL, M, N))
active(U23(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(take(s(M), cons(N, IL))) → mark(U21(tt, IL, M, N))
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(U11(x1, x2)) → active(U11(mark(x1), x2))
U11(active(x1), x2) → U11(x1, x2)
U11(mark(x1), x2) → U11(x1, x2)
mark(tt) → active(tt)
mark(U12(x1, x2)) → active(U12(mark(x1), x2))
U12(active(x1), x2) → U12(x1, x2)
U12(mark(x1), x2) → U12(x1, x2)
mark(s(x1)) → active(s(mark(x1)))
s(active(x1)) → s(x1)
s(mark(x1)) → s(x1)
mark(length(x1)) → active(length(mark(x1)))
length(active(x1)) → length(x1)
length(mark(x1)) → length(x1)
mark(U21(x1, x2, x3, x4)) → active(U21(mark(x1), x2, x3, x4))
U21(active(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
U21(mark(x1), x2, x3, x4) → U21(x1, x2, x3, x4)
mark(U22(x1, x2, x3, x4)) → active(U22(mark(x1), x2, x3, x4))
U22(active(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
U22(mark(x1), x2, x3, x4) → U22(x1, x2, x3, x4)
mark(U23(x1, x2, x3, x4)) → active(U23(mark(x1), x2, x3, x4))
U23(active(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
U23(mark(x1), x2, x3, x4) → U23(x1, x2, x3, x4)
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)
mark(nil) → active(nil)
active(zeros)
active(U11(tt, x0))
active(U12(tt, x0))
active(U21(tt, x0, x1, x2))
active(U22(tt, x0, x1, x2))
active(U23(tt, x0, x1, x2))
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(U11(x0, x1))
U11(active(x0), x1)
U11(mark(x0), x1)
mark(tt)
mark(U12(x0, x1))
U12(active(x0), x1)
U12(mark(x0), x1)
mark(s(x0))
s(active(x0))
s(mark(x0))
mark(length(x0))
length(active(x0))
length(mark(x0))
mark(U21(x0, x1, x2, x3))
U21(active(x0), x1, x2, x3)
U21(mark(x0), x1, x2, x3)
mark(U22(x0, x1, x2, x3))
U22(active(x0), x1, x2, x3)
U22(mark(x0), x1, x2, x3)
mark(U23(x0, x1, x2, x3))
U23(active(x0), x1, x2, x3)
U23(mark(x0), x1, x2, x3)
mark(take(x0, x1))
take(active(x0), x1)
take(mark(x0), x1)
take(x0, active(x1))
take(x0, mark(x1))
mark(nil)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ Improved Ferreira Ribeiro-Transformation
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(nil) → 0
length(cons(N, L)) → U11(tt, L)
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(nil) → 0
length(cons(N, L)) → U11(tt, L)
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
Used ordering:
length(nil) → 0
POL(0) = 0
POL(U11(x1, x2)) = 2·x1 + x2
POL(U12(x1, x2)) = x1 + x2
POL(U21(x1, x2, x3, x4)) = 1 + 2·x1 + x2 + 2·x3 + 2·x4
POL(U22(x1, x2, x3, x4)) = 1 + x1 + x2 + 2·x3 + 2·x4
POL(U23(x1, x2, x3, x4)) = 1 + x1 + x2 + 2·x3 + 2·x4
POL(cons(x1, x2)) = 2·x1 + x2
POL(length(x1)) = x1
POL(nil) = 1
POL(s(x1)) = x1
POL(take(x1, x2)) = 1 + 2·x1 + x2
POL(tt) = 0
POL(zeros) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Improved Ferreira Ribeiro-Transformation
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(cons(N, L)) → U11(tt, L)
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(cons(N, L)) → U11(tt, L)
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
Used ordering:
take(0, IL) → nil
POL(0) = 0
POL(U11(x1, x2)) = x1 + x2
POL(U12(x1, x2)) = 2·x1 + x2
POL(U21(x1, x2, x3, x4)) = 1 + 2·x1 + x2 + x3 + 2·x4
POL(U22(x1, x2, x3, x4)) = 1 + 2·x1 + x2 + x3 + 2·x4
POL(U23(x1, x2, x3, x4)) = 1 + 2·x1 + x2 + x3 + 2·x4
POL(cons(x1, x2)) = 2·x1 + x2
POL(length(x1)) = x1
POL(nil) = 0
POL(s(x1)) = x1
POL(take(x1, x2)) = 1 + x1 + x2
POL(tt) = 0
POL(zeros) = 0
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ Improved Ferreira Ribeiro-Transformation
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(cons(N, L)) → U11(tt, L)
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ Improved Ferreira Ribeiro-Transformation
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(cons(N, L)) → U11(tt, L)
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
ZEROS → ZEROS
U211(tt, IL, M, N) → U221(tt, IL, M, N)
U231(tt, IL, M, N) → TAKE(M, IL)
LENGTH(cons(N, L)) → U111(tt, L)
U221(tt, IL, M, N) → U231(tt, IL, M, N)
TAKE(s(M), cons(N, IL)) → U211(tt, IL, M, N)
U121(tt, L) → LENGTH(L)
U111(tt, L) → U121(tt, L)
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(cons(N, L)) → U11(tt, L)
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
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
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ Improved Ferreira Ribeiro-Transformation
ZEROS → ZEROS
U211(tt, IL, M, N) → U221(tt, IL, M, N)
U231(tt, IL, M, N) → TAKE(M, IL)
LENGTH(cons(N, L)) → U111(tt, L)
U221(tt, IL, M, N) → U231(tt, IL, M, N)
TAKE(s(M), cons(N, IL)) → U211(tt, IL, M, N)
U121(tt, L) → LENGTH(L)
U111(tt, L) → U121(tt, L)
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(cons(N, L)) → U11(tt, L)
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
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
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ Improved Ferreira Ribeiro-Transformation
U211(tt, IL, M, N) → U221(tt, IL, M, N)
U231(tt, IL, M, N) → TAKE(M, IL)
U221(tt, IL, M, N) → U231(tt, IL, M, N)
TAKE(s(M), cons(N, IL)) → U211(tt, IL, M, N)
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(cons(N, L)) → U11(tt, L)
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
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
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ Improved Ferreira Ribeiro-Transformation
U211(tt, IL, M, N) → U221(tt, IL, M, N)
U231(tt, IL, M, N) → TAKE(M, IL)
U221(tt, IL, M, N) → U231(tt, IL, M, N)
TAKE(s(M), cons(N, IL)) → U211(tt, IL, M, N)
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
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
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ Improved Ferreira Ribeiro-Transformation
U211(tt, IL, M, N) → U221(tt, IL, M, N)
U231(tt, IL, M, N) → TAKE(M, IL)
U221(tt, IL, M, N) → U231(tt, IL, M, N)
TAKE(s(M), cons(N, IL)) → U211(tt, IL, M, N)
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
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Improved Ferreira Ribeiro-Transformation
LENGTH(cons(N, L)) → U111(tt, L)
U111(tt, L) → U121(tt, L)
U121(tt, L) → LENGTH(L)
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(cons(N, L)) → U11(tt, L)
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
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
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Improved Ferreira Ribeiro-Transformation
LENGTH(cons(N, L)) → U111(tt, L)
U111(tt, L) → U121(tt, L)
U121(tt, L) → LENGTH(L)
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
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
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ Improved Ferreira Ribeiro-Transformation
LENGTH(cons(N, L)) → U111(tt, L)
U121(tt, L) → LENGTH(L)
U111(tt, L) → U121(tt, L)
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
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ Improved Ferreira Ribeiro-Transformation
ZEROS → ZEROS
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
U21(tt, IL, M, N) → U22(tt, IL, M, N)
U22(tt, IL, M, N) → U23(tt, IL, M, N)
U23(tt, IL, M, N) → cons(N, take(M, IL))
length(cons(N, L)) → U11(tt, L)
take(s(M), cons(N, IL)) → U21(tt, IL, M, N)
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
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
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ Improved Ferreira Ribeiro-Transformation
ZEROS → ZEROS
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
zeros
U11(tt, x0)
U12(tt, x0)
U21(tt, x0, x1, x2)
U22(tt, x0, x1, x2)
U23(tt, x0, x1, x2)
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
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonTerminationProof
↳ Improved Ferreira Ribeiro-Transformation
ZEROS → ZEROS
ZEROS → ZEROS
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(nil) → 0
length(cons(N, L)) → U11(tt, a(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(nil) → 0
length(cons(N, L)) → U11(tt, a(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))
Used ordering:
length(nil) → 0
POL(0) = 0
POL(U11(x1, x2)) = 2·x1 + 2·x2
POL(U12(x1, x2)) = 2·x1 + 2·x2
POL(U21(x1, x2, x3, x4)) = 1 + 2·x1 + 2·x2 + x3 + 2·x4
POL(U22(x1, x2, x3, x4)) = 1 + 2·x1 + 2·x2 + x3 + 2·x4
POL(U23(x1, x2, x3, x4)) = 1 + x1 + 2·x2 + x3 + 2·x4
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)) = 1 + x1 + 2·x2
POL(takeInact(x1, x2)) = 1 + x1 + 2·x2
POL(tt) = 0
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
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(cons(N, L)) → U11(tt, a(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(cons(N, L)) → U11(tt, a(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))
Used ordering:
take(0, IL) → nil
POL(0) = 0
POL(U11(x1, x2)) = x1 + x2
POL(U12(x1, x2)) = 2·x1 + x2
POL(U21(x1, x2, x3, x4)) = 1 + x1 + 2·x2 + x3 + x4
POL(U22(x1, x2, x3, x4)) = 1 + x1 + 2·x2 + x3 + x4
POL(U23(x1, x2, x3, x4)) = 1 + x1 + 2·x2 + x3 + x4
POL(a(x1)) = x1
POL(cons(x1, x2)) = x1 + x2
POL(length(x1)) = x1
POL(nil) = 0
POL(s(x1)) = x1
POL(take(x1, x2)) = 1 + x1 + 2·x2
POL(takeInact(x1, x2)) = 1 + x1 + 2·x2
POL(tt) = 0
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
↳ DependencyPairsProof
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(cons(N, L)) → U11(tt, a(L))
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))
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)
U211(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → A(M)
TAKE(s(M), cons(N, IL)) → U211(tt, a(IL), M, N)
A(takeInact(x1, x2)) → A(x2)
U231(tt, IL, M, N) → A(IL)
U111(tt, L) → U121(tt, a(L))
U121(tt, L) → LENGTH(a(L))
U221(tt, IL, M, N) → A(N)
A(zerosInact) → ZEROS
U231(tt, IL, M, N) → A(N)
U121(tt, L) → A(L)
U211(tt, IL, M, N) → A(N)
U231(tt, IL, M, N) → A(M)
U211(tt, IL, M, N) → A(M)
U211(tt, IL, M, N) → U221(tt, a(IL), a(M), a(N))
LENGTH(cons(N, L)) → U111(tt, a(L))
U111(tt, L) → A(L)
U221(tt, IL, M, N) → U231(tt, a(IL), a(M), a(N))
U221(tt, IL, M, N) → A(IL)
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(cons(N, L)) → U11(tt, a(L))
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
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)
U211(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → A(M)
TAKE(s(M), cons(N, IL)) → U211(tt, a(IL), M, N)
A(takeInact(x1, x2)) → A(x2)
U231(tt, IL, M, N) → A(IL)
U111(tt, L) → U121(tt, a(L))
U121(tt, L) → LENGTH(a(L))
U221(tt, IL, M, N) → A(N)
A(zerosInact) → ZEROS
U231(tt, IL, M, N) → A(N)
U121(tt, L) → A(L)
U211(tt, IL, M, N) → A(N)
U231(tt, IL, M, N) → A(M)
U211(tt, IL, M, N) → A(M)
U211(tt, IL, M, N) → U221(tt, a(IL), a(M), a(N))
LENGTH(cons(N, L)) → U111(tt, a(L))
U111(tt, L) → A(L)
U221(tt, IL, M, N) → U231(tt, a(IL), a(M), a(N))
U221(tt, IL, M, N) → A(IL)
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(cons(N, L)) → U11(tt, a(L))
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
A(takeInact(x1, x2)) → TAKE(a(x1), a(x2))
TAKE(s(M), cons(N, IL)) → A(IL)
A(takeInact(x1, x2)) → A(x1)
U211(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → A(M)
TAKE(s(M), cons(N, IL)) → U211(tt, a(IL), M, N)
U231(tt, IL, M, N) → A(IL)
A(takeInact(x1, x2)) → A(x2)
U221(tt, IL, M, N) → A(N)
U231(tt, IL, M, N) → A(N)
U211(tt, IL, M, N) → A(N)
U231(tt, IL, M, N) → A(M)
U211(tt, IL, M, N) → A(M)
U211(tt, IL, M, N) → U221(tt, a(IL), a(M), a(N))
U221(tt, IL, M, N) → U231(tt, a(IL), a(M), a(N))
U221(tt, IL, M, N) → A(IL)
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(cons(N, L)) → U11(tt, a(L))
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
A(takeInact(x1, x2)) → TAKE(a(x1), a(x2))
TAKE(s(M), cons(N, IL)) → A(IL)
A(takeInact(x1, x2)) → A(x1)
U211(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → A(M)
TAKE(s(M), cons(N, IL)) → U211(tt, a(IL), M, N)
U231(tt, IL, M, N) → A(IL)
A(takeInact(x1, x2)) → A(x2)
U221(tt, IL, M, N) → A(N)
U231(tt, IL, M, N) → A(N)
U211(tt, IL, M, N) → A(N)
U231(tt, IL, M, N) → A(M)
U211(tt, IL, M, N) → A(M)
U211(tt, IL, M, N) → U221(tt, a(IL), a(M), a(N))
U221(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → U231(tt, a(IL), a(M), a(N))
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
take(x1, x2) → takeInact(x1, x2)
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
zeros → cons(0, zerosInact)
zeros → zerosInact
The following rules are removed from R:
TAKE(s(M), cons(N, IL)) → A(IL)
U211(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → A(M)
TAKE(s(M), cons(N, IL)) → U211(tt, a(IL), M, N)
U221(tt, IL, M, N) → A(N)
U211(tt, IL, M, N) → A(N)
U211(tt, IL, M, N) → A(M)
U221(tt, IL, M, N) → A(IL)
U221(tt, IL, M, N) → U231(tt, a(IL), a(M), a(N))
Used ordering: POLO with Polynomial interpretation [25]:
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
POL(0) = 0
POL(A(x1)) = x1
POL(TAKE(x1, x2)) = x1 + x2
POL(U21(x1, x2, x3, x4)) = 2 + 2·x1 + x2 + 2·x3 + 2·x4
POL(U211(x1, x2, x3, x4)) = 2 + 2·x1 + x2 + x3 + 2·x4
POL(U22(x1, x2, x3, x4)) = 2 + x1 + x2 + 2·x3 + 2·x4
POL(U221(x1, x2, x3, x4)) = 2 + x1 + x2 + x3 + 2·x4
POL(U23(x1, x2, x3, x4)) = 2·x1 + x2 + 2·x3 + 2·x4
POL(U231(x1, x2, x3, x4)) = 2·x1 + x2 + x3 + 2·x4
POL(a(x1)) = x1
POL(cons(x1, x2)) = 2·x1 + x2
POL(s(x1)) = 2 + 2·x1
POL(take(x1, x2)) = x1 + x2
POL(takeInact(x1, x2)) = x1 + x2
POL(tt) = 0
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
U231(tt, IL, M, N) → A(N)
U231(tt, IL, M, N) → A(M)
A(takeInact(x1, x2)) → TAKE(a(x1), a(x2))
U211(tt, IL, M, N) → U221(tt, a(IL), a(M), a(N))
A(takeInact(x1, x2)) → A(x1)
A(takeInact(x1, x2)) → A(x2)
U231(tt, IL, M, N) → A(IL)
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(x1, x2) → takeInact(x1, x2)
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
zeros → cons(0, zerosInact)
zeros → zerosInact
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
A(takeInact(x1, x2)) → A(x1)
A(takeInact(x1, x2)) → A(x2)
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(x1, x2) → takeInact(x1, x2)
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
zeros → cons(0, zerosInact)
zeros → zerosInact
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
A(takeInact(x1, x2)) → A(x1)
A(takeInact(x1, x2)) → A(x2)
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
LENGTH(cons(N, L)) → U111(tt, a(L))
U111(tt, L) → U121(tt, a(L))
U121(tt, L) → LENGTH(a(L))
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
length(cons(N, L)) → U11(tt, a(L))
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
take(x1, x2) → takeInact(x1, x2)
a(takeInact(x1, x2)) → take(a(x1), a(x2))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
LENGTH(cons(N, L)) → U111(tt, a(L))
U121(tt, L) → LENGTH(a(L))
U111(tt, L) → U121(tt, a(L))
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
take(x1, x2) → takeInact(x1, x2)
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
zeros → cons(0, zerosInact)
zeros → zerosInact
Used ordering: POLO with Polynomial interpretation [25]:
take(s(M), cons(N, IL)) → U21(tt, a(IL), M, N)
POL(0) = 0
POL(LENGTH(x1)) = 2·x1
POL(U111(x1, x2)) = x1 + 2·x2
POL(U121(x1, x2)) = x1 + 2·x2
POL(U21(x1, x2, x3, x4)) = 2·x1 + x2 + 2·x3 + x4
POL(U22(x1, x2, x3, x4)) = 2·x1 + x2 + x3 + x4
POL(U23(x1, x2, x3, x4)) = 2·x1 + x2 + x3 + x4
POL(a(x1)) = x1
POL(cons(x1, x2)) = x1 + x2
POL(s(x1)) = 2·x1
POL(take(x1, x2)) = x1 + x2
POL(takeInact(x1, x2)) = x1 + x2
POL(tt) = 0
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ UsableRulesProof
LENGTH(cons(N, L)) → U111(tt, a(L))
U111(tt, L) → U121(tt, a(L))
U121(tt, L) → LENGTH(a(L))
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(x1, x2) → takeInact(x1, x2)
U21(tt, IL, M, N) → U22(tt, a(IL), a(M), a(N))
U22(tt, IL, M, N) → U23(tt, a(IL), a(M), a(N))
U23(tt, IL, M, N) → cons(a(N), takeInact(a(M), a(IL)))
zeros → cons(0, zerosInact)
zeros → zerosInact
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
LENGTH(cons(N, L)) → U111(tt, a(L))
U121(tt, L) → LENGTH(a(L))
U111(tt, L) → U121(tt, a(L))
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(x1, x2) → takeInact(x1, x2)
zeros → cons(0, zerosInact)
zeros → zerosInact
U121(tt, takeInact(x0, x1)) → LENGTH(take(a(x0), a(x1)))
U121(tt, zerosInact) → LENGTH(zeros)
U121(tt, x0) → LENGTH(x0)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
U121(tt, zerosInact) → LENGTH(zeros)
LENGTH(cons(N, L)) → U111(tt, a(L))
U121(tt, takeInact(x0, x1)) → LENGTH(take(a(x0), a(x1)))
U121(tt, x0) → LENGTH(x0)
U111(tt, L) → U121(tt, a(L))
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(x1, x2) → takeInact(x1, x2)
zeros → cons(0, zerosInact)
zeros → zerosInact
U121(tt, zerosInact) → LENGTH(zerosInact)
U121(tt, 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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
U121(tt, zerosInact) → LENGTH(cons(0, zerosInact))
U121(tt, zerosInact) → LENGTH(zerosInact)
LENGTH(cons(N, L)) → U111(tt, a(L))
U121(tt, takeInact(x0, x1)) → LENGTH(take(a(x0), a(x1)))
U111(tt, L) → U121(tt, a(L))
U121(tt, x0) → LENGTH(x0)
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(x1, x2) → takeInact(x1, x2)
zeros → cons(0, zerosInact)
zeros → zerosInact
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Zantema-Transformation
↳ Innermost Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ RuleRemovalProof
U121(tt, zerosInact) → LENGTH(cons(0, zerosInact))
LENGTH(cons(N, L)) → U111(tt, a(L))
U121(tt, takeInact(x0, x1)) → LENGTH(take(a(x0), a(x1)))
U121(tt, x0) → LENGTH(x0)
U111(tt, L) → U121(tt, a(L))
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(x1, x2) → takeInact(x1, x2)
zeros → cons(0, zerosInact)
zeros → zerosInact
U121(tt, takeInact(x0, x1)) → LENGTH(take(a(x0), a(x1)))
POL(0) = 0
POL(LENGTH(x1)) = x1
POL(U111(x1, x2)) = 2·x1 + 2·x2
POL(U121(x1, x2)) = 2·x1 + 2·x2
POL(a(x1)) = x1
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(take(x1, x2)) = 1 + x1 + x2
POL(takeInact(x1, x2)) = 1 + x1 + x2
POL(tt) = 0
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
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ NonTerminationProof
U121(tt, zerosInact) → LENGTH(cons(0, zerosInact))
LENGTH(cons(N, L)) → U111(tt, a(L))
U111(tt, L) → U121(tt, a(L))
U121(tt, x0) → LENGTH(x0)
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(x1, x2) → takeInact(x1, x2)
zeros → cons(0, zerosInact)
zeros → zerosInact
U121(tt, zerosInact) → LENGTH(cons(0, zerosInact))
LENGTH(cons(N, L)) → U111(tt, a(L))
U111(tt, L) → U121(tt, a(L))
U121(tt, x0) → LENGTH(x0)
a(x) → x
a(zerosInact) → zeros
a(takeInact(x1, x2)) → take(a(x1), a(x2))
take(x1, x2) → takeInact(x1, x2)
zeros → cons(0, zerosInact)
zeros → zerosInact