MAYBE
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
length(nil) → 0
length(cons(N, L)) → U11(tt, L)
zeros: empty set
cons: {1}
0: empty set
U11: {1}
tt: empty set
U12: {1}
s: {1}
length: {1}
nil: empty set
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zeros)
U11(tt, L) → U12(tt, L)
U12(tt, L) → s(length(L))
length(nil) → 0
length(cons(N, L)) → U11(tt, L)
zeros: empty set
cons: {1}
0: empty set
U11: {1}
tt: empty set
U12: {1}
s: {1}
length: {1}
nil: empty set
We applied the Zantema [34] to transform the context-sensitive TRS to an usual TRS.
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
length(nil) → 0
length(cons(N, L)) → U11(tt, a(L))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
length(nil) → 0
length(cons(N, L)) → U11(tt, a(L))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Used ordering:
length(nil) → 0
POL(0) = 0
POL(U11(x1, x2)) = 2·x1 + 2·x2
POL(U12(x1, x2)) = x1 + 2·x2
POL(a(x1)) = x1
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = x1
POL(nil) = 1
POL(s(x1)) = x1
POL(tt) = 0
POL(zeros) = 0
POL(zerosInact) = 0
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
length(cons(N, L)) → U11(tt, a(L))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
U121(tt, L) → LENGTH(a(L))
U111(tt, L) → U121(tt, a(L))
LENGTH(cons(N, L)) → A(L)
U121(tt, L) → A(L)
A(zerosInact) → ZEROS
U111(tt, L) → A(L)
LENGTH(cons(N, L)) → U111(tt, a(L))
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
length(cons(N, L)) → U11(tt, a(L))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
U121(tt, L) → LENGTH(a(L))
U111(tt, L) → U121(tt, a(L))
LENGTH(cons(N, L)) → A(L)
U121(tt, L) → A(L)
A(zerosInact) → ZEROS
U111(tt, L) → A(L)
LENGTH(cons(N, L)) → U111(tt, a(L))
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
length(cons(N, L)) → U11(tt, a(L))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
U111(tt, L) → U121(tt, a(L))
U121(tt, L) → LENGTH(a(L))
LENGTH(cons(N, L)) → U111(tt, a(L))
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
length(cons(N, L)) → U11(tt, a(L))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
U121(tt, L) → LENGTH(a(L))
U111(tt, L) → U121(tt, a(L))
LENGTH(cons(N, L)) → U111(tt, a(L))
a(x) → x
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
zeros → zerosInact
U121(tt, x0) → LENGTH(x0)
U121(tt, zerosInact) → LENGTH(zeros)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ NonTerminationProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
U121(tt, x0) → LENGTH(x0)
U111(tt, L) → U121(tt, a(L))
U121(tt, zerosInact) → LENGTH(zeros)
LENGTH(cons(N, L)) → U111(tt, a(L))
a(x) → x
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
zeros → zerosInact
U121(tt, x0) → LENGTH(x0)
U111(tt, L) → U121(tt, a(L))
U121(tt, zerosInact) → LENGTH(zeros)
LENGTH(cons(N, L)) → U111(tt, a(L))
a(x) → x
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
zeros → zerosInact
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
mark(zeros) → zerosActive
zerosActive → zeros
mark(U11(x1, x2)) → U11Active(mark(x1), x2)
U11Active(x1, x2) → U11(x1, x2)
mark(U12(x1, x2)) → U12Active(mark(x1), x2)
U12Active(x1, x2) → U12(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(s(x1)) → s(mark(x1))
mark(nil) → nil
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(nil) → 0
lengthActive(cons(N, L)) → U11Active(tt, L)
mark(zeros) → zerosActive
zerosActive → zeros
mark(U11(x1, x2)) → U11Active(mark(x1), x2)
U11Active(x1, x2) → U11(x1, x2)
mark(U12(x1, x2)) → U12Active(mark(x1), x2)
U12Active(x1, x2) → U12(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(s(x1)) → s(mark(x1))
mark(nil) → nil
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(nil) → 0
lengthActive(cons(N, L)) → U11Active(tt, L)
Used ordering:
lengthActive(nil) → 0
POL(0) = 0
POL(U11(x1, x2)) = 2·x1 + 2·x2
POL(U11Active(x1, x2)) = 2·x1 + 2·x2
POL(U12(x1, x2)) = 2·x1 + 2·x2
POL(U12Active(x1, x2)) = 2·x1 + 2·x2
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = x1
POL(lengthActive(x1)) = x1
POL(mark(x1)) = x1
POL(nil) = 2
POL(s(x1)) = 2·x1
POL(tt) = 0
POL(zeros) = 0
POL(zerosActive) = 0
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
mark(zeros) → zerosActive
zerosActive → zeros
mark(U11(x1, x2)) → U11Active(mark(x1), x2)
U11Active(x1, x2) → U11(x1, x2)
mark(U12(x1, x2)) → U12Active(mark(x1), x2)
U12Active(x1, x2) → U12(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(s(x1)) → s(mark(x1))
mark(nil) → nil
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
mark(zeros) → zerosActive
zerosActive → zeros
mark(U11(x1, x2)) → U11Active(mark(x1), x2)
U11Active(x1, x2) → U11(x1, x2)
mark(U12(x1, x2)) → U12Active(mark(x1), x2)
U12Active(x1, x2) → U12(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(s(x1)) → s(mark(x1))
mark(nil) → nil
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
Used ordering:
zerosActive → zeros
mark(nil) → nil
POL(0) = 0
POL(U11(x1, x2)) = 2·x1 + 2·x2
POL(U11Active(x1, x2)) = 2·x1 + 2·x2
POL(U12(x1, x2)) = x1 + 2·x2
POL(U12Active(x1, x2)) = x1 + 2·x2
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = x1
POL(lengthActive(x1)) = x1
POL(mark(x1)) = 2·x1
POL(nil) = 2
POL(s(x1)) = x1
POL(tt) = 0
POL(zeros) = 1
POL(zerosActive) = 2
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
mark(zeros) → zerosActive
mark(U11(x1, x2)) → U11Active(mark(x1), x2)
U11Active(x1, x2) → U11(x1, x2)
mark(U12(x1, x2)) → U12Active(mark(x1), x2)
U12Active(x1, x2) → U12(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
mark(zeros) → zerosActive
mark(U11(x1, x2)) → U11Active(mark(x1), x2)
U11Active(x1, x2) → U11(x1, x2)
mark(U12(x1, x2)) → U12Active(mark(x1), x2)
U12Active(x1, x2) → U12(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
Used ordering:
mark(U11(x1, x2)) → U11Active(mark(x1), x2)
mark(U12(x1, x2)) → U12Active(mark(x1), x2)
mark(length(x1)) → lengthActive(mark(x1))
POL(0) = 0
POL(U11(x1, x2)) = 1 + 2·x1 + 2·x2
POL(U11Active(x1, x2)) = 1 + 2·x1 + 2·x2
POL(U12(x1, x2)) = 1 + 2·x1 + x2
POL(U12Active(x1, x2)) = 1 + 2·x1 + 2·x2
POL(cons(x1, x2)) = x1 + 2·x2
POL(length(x1)) = 1 + x1
POL(lengthActive(x1)) = 1 + x1
POL(mark(x1)) = 2·x1
POL(s(x1)) = x1
POL(tt) = 0
POL(zeros) = 0
POL(zerosActive) = 0
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
mark(zeros) → zerosActive
U11Active(x1, x2) → U11(x1, x2)
U12Active(x1, x2) → U12(x1, x2)
lengthActive(x1) → length(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
mark(zeros) → zerosActive
U11Active(x1, x2) → U11(x1, x2)
U12Active(x1, x2) → U12(x1, x2)
lengthActive(x1) → length(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
Used ordering:
lengthActive(x1) → length(x1)
POL(0) = 0
POL(U11(x1, x2)) = x1 + x2
POL(U11Active(x1, x2)) = 2·x1 + 2·x2
POL(U12(x1, x2)) = 1 + x1 + 2·x2
POL(U12Active(x1, x2)) = 1 + x1 + 2·x2
POL(cons(x1, x2)) = 2·x1 + x2
POL(length(x1)) = 1 + x1
POL(lengthActive(x1)) = 2 + 2·x1
POL(mark(x1)) = x1
POL(s(x1)) = x1
POL(tt) = 1
POL(zeros) = 2
POL(zerosActive) = 2
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
mark(zeros) → zerosActive
U11Active(x1, x2) → U11(x1, x2)
U12Active(x1, x2) → U12(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
mark(zeros) → zerosActive
U11Active(x1, x2) → U11(x1, x2)
U12Active(x1, x2) → U12(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
Used ordering:
U12Active(x1, x2) → U12(x1, x2)
POL(0) = 0
POL(U11(x1, x2)) = 1 + x1 + x2
POL(U11Active(x1, x2)) = 1 + 2·x1 + x2
POL(U12(x1, x2)) = 2·x1 + x2
POL(U12Active(x1, x2)) = 1 + 2·x1 + x2
POL(cons(x1, x2)) = 2·x1 + x2
POL(lengthActive(x1)) = 1 + x1
POL(mark(x1)) = x1
POL(s(x1)) = x1
POL(tt) = 0
POL(zeros) = 0
POL(zerosActive) = 0
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
mark(zeros) → zerosActive
U11Active(x1, x2) → U11(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
mark(zeros) → zerosActive
U11Active(x1, x2) → U11(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
Used ordering:
U11Active(x1, x2) → U11(x1, x2)
POL(0) = 0
POL(U11(x1, x2)) = x1 + x2
POL(U11Active(x1, x2)) = 1 + 2·x1 + 2·x2
POL(U12Active(x1, x2)) = 1 + 2·x1 + 2·x2
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(lengthActive(x1)) = 1 + 2·x1
POL(mark(x1)) = x1
POL(s(x1)) = x1
POL(tt) = 0
POL(zeros) = 0
POL(zerosActive) = 0
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
mark(zeros) → zerosActive
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
mark(zeros) → zerosActive
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
Used ordering:
mark(tt) → tt
POL(0) = 0
POL(U11Active(x1, x2)) = 2·x1 + 2·x2
POL(U12Active(x1, x2)) = 1 + x1 + 2·x2
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(lengthActive(x1)) = 2 + x1
POL(mark(x1)) = 2·x1
POL(s(x1)) = x1
POL(tt) = 1
POL(zeros) = 0
POL(zerosActive) = 0
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
mark(zeros) → zerosActive
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
mark(zeros) → zerosActive
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
Used ordering:
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
POL(0) = 0
POL(U11Active(x1, x2)) = 1 + 2·x1 + 2·x2
POL(U12Active(x1, x2)) = 1 + 2·x1 + 2·x2
POL(cons(x1, x2)) = 1 + x1 + 2·x2
POL(lengthActive(x1)) = x1
POL(mark(x1)) = 1 + 2·x1
POL(s(x1)) = x1
POL(tt) = 0
POL(zeros) = 0
POL(zerosActive) = 1
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
mark(zeros) → zerosActive
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
mark(zeros) → zerosActive
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
mark(zeros)
mark(s(x0))
zerosActive
U11Active(tt, x0)
U12Active(tt, x0)
lengthActive(cons(x0, x1))
U12ACTIVE(tt, L) → MARK(L)
MARK(s(x1)) → MARK(x1)
LENGTHACTIVE(cons(N, L)) → U11ACTIVE(tt, L)
U12ACTIVE(tt, L) → LENGTHACTIVE(mark(L))
MARK(zeros) → ZEROSACTIVE
U11ACTIVE(tt, L) → U12ACTIVE(tt, L)
mark(zeros) → zerosActive
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
mark(zeros)
mark(s(x0))
zerosActive
U11Active(tt, x0)
U12Active(tt, x0)
lengthActive(cons(x0, x1))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
U12ACTIVE(tt, L) → MARK(L)
MARK(s(x1)) → MARK(x1)
LENGTHACTIVE(cons(N, L)) → U11ACTIVE(tt, L)
U12ACTIVE(tt, L) → LENGTHACTIVE(mark(L))
MARK(zeros) → ZEROSACTIVE
U11ACTIVE(tt, L) → U12ACTIVE(tt, L)
mark(zeros) → zerosActive
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
mark(zeros)
mark(s(x0))
zerosActive
U11Active(tt, x0)
U12Active(tt, x0)
lengthActive(cons(x0, x1))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
MARK(s(x1)) → MARK(x1)
mark(zeros) → zerosActive
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
mark(zeros)
mark(s(x0))
zerosActive
U11Active(tt, x0)
U12Active(tt, x0)
lengthActive(cons(x0, x1))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
MARK(s(x1)) → MARK(x1)
mark(zeros)
mark(s(x0))
zerosActive
U11Active(tt, x0)
U12Active(tt, x0)
lengthActive(cons(x0, x1))
mark(zeros)
mark(s(x0))
zerosActive
U11Active(tt, x0)
U12Active(tt, x0)
lengthActive(cons(x0, x1))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
MARK(s(x1)) → MARK(x1)
From the DPs we obtained the following set of size-change graphs:
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTHACTIVE(cons(N, L)) → U11ACTIVE(tt, L)
U12ACTIVE(tt, L) → LENGTHACTIVE(mark(L))
U11ACTIVE(tt, L) → U12ACTIVE(tt, L)
mark(zeros) → zerosActive
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
U11Active(tt, L) → U12Active(tt, L)
U12Active(tt, L) → s(lengthActive(mark(L)))
lengthActive(cons(N, L)) → U11Active(tt, L)
mark(zeros)
mark(s(x0))
zerosActive
U11Active(tt, x0)
U12Active(tt, x0)
lengthActive(cons(x0, x1))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTHACTIVE(cons(N, L)) → U11ACTIVE(tt, L)
U12ACTIVE(tt, L) → LENGTHACTIVE(mark(L))
U11ACTIVE(tt, L) → U12ACTIVE(tt, L)
mark(zeros) → zerosActive
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
mark(zeros)
mark(s(x0))
zerosActive
U11Active(tt, x0)
U12Active(tt, x0)
lengthActive(cons(x0, x1))
U11Active(tt, x0)
U12Active(tt, x0)
lengthActive(cons(x0, x1))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
U12ACTIVE(tt, L) → LENGTHACTIVE(mark(L))
LENGTHACTIVE(cons(N, L)) → U11ACTIVE(tt, L)
U11ACTIVE(tt, L) → U12ACTIVE(tt, L)
mark(zeros) → zerosActive
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
mark(zeros)
mark(s(x0))
zerosActive
mark(s(x1)) → s(mark(x1))
POL(0) = 0
POL(LENGTHACTIVE(x1)) = x1
POL(U11ACTIVE(x1, x2)) = x1 + 2·x2
POL(U12ACTIVE(x1, x2)) = 2·x1 + 2·x2
POL(cons(x1, x2)) = x1 + 2·x2
POL(mark(x1)) = 2·x1
POL(s(x1)) = 2 + 2·x1
POL(tt) = 0
POL(zeros) = 0
POL(zerosActive) = 0
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ Narrowing
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTHACTIVE(cons(N, L)) → U11ACTIVE(tt, L)
U12ACTIVE(tt, L) → LENGTHACTIVE(mark(L))
U11ACTIVE(tt, L) → U12ACTIVE(tt, L)
mark(zeros) → zerosActive
zerosActive → cons(0, zeros)
mark(zeros)
mark(s(x0))
zerosActive
U12ACTIVE(tt, zeros) → LENGTHACTIVE(zerosActive)
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
U12ACTIVE(tt, zeros) → LENGTHACTIVE(zerosActive)
LENGTHACTIVE(cons(N, L)) → U11ACTIVE(tt, L)
U11ACTIVE(tt, L) → U12ACTIVE(tt, L)
mark(zeros) → zerosActive
zerosActive → cons(0, zeros)
mark(zeros)
mark(s(x0))
zerosActive
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
U12ACTIVE(tt, zeros) → LENGTHACTIVE(zerosActive)
LENGTHACTIVE(cons(N, L)) → U11ACTIVE(tt, L)
U11ACTIVE(tt, L) → U12ACTIVE(tt, L)
zerosActive → cons(0, zeros)
mark(zeros)
mark(s(x0))
zerosActive
mark(zeros)
mark(s(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTHACTIVE(cons(N, L)) → U11ACTIVE(tt, L)
U12ACTIVE(tt, zeros) → LENGTHACTIVE(zerosActive)
U11ACTIVE(tt, L) → U12ACTIVE(tt, L)
zerosActive → cons(0, zeros)
zerosActive
U12ACTIVE(tt, zeros) → LENGTHACTIVE(cons(0, zeros))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTHACTIVE(cons(N, L)) → U11ACTIVE(tt, L)
U12ACTIVE(tt, zeros) → LENGTHACTIVE(cons(0, zeros))
U11ACTIVE(tt, L) → U12ACTIVE(tt, L)
zerosActive → cons(0, zeros)
zerosActive
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTHACTIVE(cons(N, L)) → U11ACTIVE(tt, L)
U12ACTIVE(tt, zeros) → LENGTHACTIVE(cons(0, zeros))
U11ACTIVE(tt, L) → U12ACTIVE(tt, L)
zerosActive
zerosActive
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTHACTIVE(cons(N, L)) → U11ACTIVE(tt, L)
U12ACTIVE(tt, zeros) → LENGTHACTIVE(cons(0, zeros))
U11ACTIVE(tt, L) → U12ACTIVE(tt, L)
LENGTHACTIVE(cons(0, zeros)) → U11ACTIVE(tt, zeros)
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
U12ACTIVE(tt, zeros) → LENGTHACTIVE(cons(0, zeros))
LENGTHACTIVE(cons(0, zeros)) → U11ACTIVE(tt, zeros)
U11ACTIVE(tt, L) → U12ACTIVE(tt, L)
U11ACTIVE(tt, zeros) → U12ACTIVE(tt, zeros)
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ NonTerminationProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
U12ACTIVE(tt, zeros) → LENGTHACTIVE(cons(0, zeros))
LENGTHACTIVE(cons(0, zeros)) → U11ACTIVE(tt, zeros)
U11ACTIVE(tt, zeros) → U12ACTIVE(tt, zeros)
U12ACTIVE(tt, zeros) → LENGTHACTIVE(cons(0, zeros))
LENGTHACTIVE(cons(0, zeros)) → U11ACTIVE(tt, zeros)
U11ACTIVE(tt, zeros) → U12ACTIVE(tt, zeros)
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
length(nil) → 0
length(cons(N, L)) → U11(tt, a(L))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
length(nil) → 0
length(cons(N, L)) → U11(tt, a(L))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Used ordering:
length(nil) → 0
POL(0) = 0
POL(U11(x1, x2)) = 2·x1 + 2·x2
POL(U12(x1, x2)) = x1 + 2·x2
POL(a(x1)) = x1
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = x1
POL(nil) = 1
POL(s(x1)) = x1
POL(tt) = 0
POL(zeros) = 0
POL(zerosInact) = 0
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
length(cons(N, L)) → U11(tt, a(L))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
U121(tt, L) → LENGTH(a(L))
U111(tt, L) → U121(tt, a(L))
LENGTH(cons(N, L)) → A(L)
U121(tt, L) → A(L)
A(zerosInact) → ZEROS
U111(tt, L) → A(L)
LENGTH(cons(N, L)) → U111(tt, a(L))
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
length(cons(N, L)) → U11(tt, a(L))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ Complete Giesl Middeldorp-Transformation
U121(tt, L) → LENGTH(a(L))
U111(tt, L) → U121(tt, a(L))
LENGTH(cons(N, L)) → A(L)
U121(tt, L) → A(L)
A(zerosInact) → ZEROS
U111(tt, L) → A(L)
LENGTH(cons(N, L)) → U111(tt, a(L))
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
length(cons(N, L)) → U11(tt, a(L))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ Complete Giesl Middeldorp-Transformation
U111(tt, L) → U121(tt, a(L))
U121(tt, L) → LENGTH(a(L))
LENGTH(cons(N, L)) → U111(tt, a(L))
zeros → cons(0, zerosInact)
U11(tt, L) → U12(tt, a(L))
U12(tt, L) → s(length(a(L)))
length(cons(N, L)) → U11(tt, a(L))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ Complete Giesl Middeldorp-Transformation
U121(tt, L) → LENGTH(a(L))
U111(tt, L) → U121(tt, a(L))
LENGTH(cons(N, L)) → U111(tt, a(L))
a(x) → x
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
zeros → zerosInact
U121(tt, x0) → LENGTH(x0)
U121(tt, zerosInact) → LENGTH(zeros)
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ NonTerminationProof
↳ Complete Giesl Middeldorp-Transformation
U121(tt, x0) → LENGTH(x0)
U111(tt, L) → U121(tt, a(L))
U121(tt, zerosInact) → LENGTH(zeros)
LENGTH(cons(N, L)) → U111(tt, a(L))
a(x) → x
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
zeros → zerosInact
U121(tt, x0) → LENGTH(x0)
U111(tt, L) → U121(tt, a(L))
U121(tt, zerosInact) → LENGTH(zeros)
LENGTH(cons(N, L)) → U111(tt, a(L))
a(x) → x
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
zeros → zerosInact
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U11(tt, L))
proper(zeros) → ok(zeros)
active(cons(x1, x2)) → cons(active(x1), x2)
cons(mark(x1), x2) → mark(cons(x1, x2))
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(0) → ok(0)
active(U11(x1, x2)) → U11(active(x1), x2)
U11(mark(x1), x2) → mark(U11(x1, x2))
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
proper(tt) → ok(tt)
active(U12(x1, x2)) → U12(active(x1), x2)
U12(mark(x1), x2) → mark(U12(x1, x2))
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
proper(length(x1)) → length(proper(x1))
length(ok(x1)) → ok(length(x1))
proper(nil) → ok(nil)
top(mark(x)) → top(proper(x))
top(ok(x)) → top(active(x))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U11(tt, L))
proper(zeros) → ok(zeros)
active(cons(x1, x2)) → cons(active(x1), x2)
cons(mark(x1), x2) → mark(cons(x1, x2))
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(0) → ok(0)
active(U11(x1, x2)) → U11(active(x1), x2)
U11(mark(x1), x2) → mark(U11(x1, x2))
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
proper(tt) → ok(tt)
active(U12(x1, x2)) → U12(active(x1), x2)
U12(mark(x1), x2) → mark(U12(x1, x2))
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
proper(length(x1)) → length(proper(x1))
length(ok(x1)) → ok(length(x1))
proper(nil) → ok(nil)
top(mark(x)) → top(proper(x))
top(ok(x)) → top(active(x))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
Used ordering:
active(length(nil)) → mark(0)
POL(0) = 0
POL(U11(x1, x2)) = 2·x1 + 2·x2
POL(U12(x1, x2)) = 2·x1 + x2
POL(active(x1)) = x1
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = x1
POL(mark(x1)) = x1
POL(nil) = 1
POL(ok(x1)) = x1
POL(proper(x1)) = x1
POL(s(x1)) = x1
POL(top(x1)) = x1
POL(tt) = 0
POL(zeros) = 0
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(length(cons(N, L))) → mark(U11(tt, L))
proper(zeros) → ok(zeros)
active(cons(x1, x2)) → cons(active(x1), x2)
cons(mark(x1), x2) → mark(cons(x1, x2))
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(0) → ok(0)
active(U11(x1, x2)) → U11(active(x1), x2)
U11(mark(x1), x2) → mark(U11(x1, x2))
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
proper(tt) → ok(tt)
active(U12(x1, x2)) → U12(active(x1), x2)
U12(mark(x1), x2) → mark(U12(x1, x2))
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
proper(length(x1)) → length(proper(x1))
length(ok(x1)) → ok(length(x1))
proper(nil) → ok(nil)
top(mark(x)) → top(proper(x))
top(ok(x)) → top(active(x))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
TOP(mark(x)) → PROPER(x)
ACTIVE(zeros) → CONS(0, zeros)
PROPER(U12(x1, x2)) → PROPER(x1)
LENGTH(ok(x1)) → LENGTH(x1)
PROPER(length(x1)) → PROPER(x1)
PROPER(U12(x1, x2)) → U121(proper(x1), proper(x2))
PROPER(U12(x1, x2)) → PROPER(x2)
U121(mark(x1), x2) → U121(x1, x2)
S(mark(x1)) → S(x1)
LENGTH(mark(x1)) → LENGTH(x1)
TOP(mark(x)) → TOP(proper(x))
PROPER(s(x1)) → S(proper(x1))
PROPER(U11(x1, x2)) → U111(proper(x1), proper(x2))
S(ok(x1)) → S(x1)
ACTIVE(s(x1)) → ACTIVE(x1)
CONS(mark(x1), x2) → CONS(x1, x2)
ACTIVE(cons(x1, x2)) → CONS(active(x1), x2)
ACTIVE(length(x1)) → ACTIVE(x1)
ACTIVE(U12(x1, x2)) → U121(active(x1), x2)
ACTIVE(cons(x1, x2)) → ACTIVE(x1)
PROPER(cons(x1, x2)) → PROPER(x1)
ACTIVE(length(x1)) → LENGTH(active(x1))
U121(ok(x1), ok(x2)) → U121(x1, x2)
PROPER(length(x1)) → LENGTH(proper(x1))
U111(ok(x1), ok(x2)) → U111(x1, x2)
ACTIVE(U12(tt, L)) → S(length(L))
TOP(ok(x)) → ACTIVE(x)
U111(mark(x1), x2) → U111(x1, x2)
ACTIVE(s(x1)) → S(active(x1))
PROPER(U11(x1, x2)) → PROPER(x1)
PROPER(cons(x1, x2)) → CONS(proper(x1), proper(x2))
ACTIVE(U11(x1, x2)) → ACTIVE(x1)
PROPER(s(x1)) → PROPER(x1)
TOP(ok(x)) → TOP(active(x))
PROPER(cons(x1, x2)) → PROPER(x2)
ACTIVE(U12(x1, x2)) → ACTIVE(x1)
ACTIVE(U11(x1, x2)) → U111(active(x1), x2)
ACTIVE(U12(tt, L)) → LENGTH(L)
CONS(ok(x1), ok(x2)) → CONS(x1, x2)
ACTIVE(length(cons(N, L))) → U111(tt, L)
PROPER(U11(x1, x2)) → PROPER(x2)
ACTIVE(U11(tt, L)) → U121(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(length(cons(N, L))) → mark(U11(tt, L))
proper(zeros) → ok(zeros)
active(cons(x1, x2)) → cons(active(x1), x2)
cons(mark(x1), x2) → mark(cons(x1, x2))
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(0) → ok(0)
active(U11(x1, x2)) → U11(active(x1), x2)
U11(mark(x1), x2) → mark(U11(x1, x2))
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
proper(tt) → ok(tt)
active(U12(x1, x2)) → U12(active(x1), x2)
U12(mark(x1), x2) → mark(U12(x1, x2))
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
proper(length(x1)) → length(proper(x1))
length(ok(x1)) → ok(length(x1))
proper(nil) → ok(nil)
top(mark(x)) → top(proper(x))
top(ok(x)) → top(active(x))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
TOP(mark(x)) → PROPER(x)
ACTIVE(zeros) → CONS(0, zeros)
PROPER(U12(x1, x2)) → PROPER(x1)
LENGTH(ok(x1)) → LENGTH(x1)
PROPER(length(x1)) → PROPER(x1)
PROPER(U12(x1, x2)) → U121(proper(x1), proper(x2))
PROPER(U12(x1, x2)) → PROPER(x2)
U121(mark(x1), x2) → U121(x1, x2)
S(mark(x1)) → S(x1)
LENGTH(mark(x1)) → LENGTH(x1)
TOP(mark(x)) → TOP(proper(x))
PROPER(s(x1)) → S(proper(x1))
PROPER(U11(x1, x2)) → U111(proper(x1), proper(x2))
S(ok(x1)) → S(x1)
ACTIVE(s(x1)) → ACTIVE(x1)
CONS(mark(x1), x2) → CONS(x1, x2)
ACTIVE(cons(x1, x2)) → CONS(active(x1), x2)
ACTIVE(length(x1)) → ACTIVE(x1)
ACTIVE(U12(x1, x2)) → U121(active(x1), x2)
ACTIVE(cons(x1, x2)) → ACTIVE(x1)
PROPER(cons(x1, x2)) → PROPER(x1)
ACTIVE(length(x1)) → LENGTH(active(x1))
U121(ok(x1), ok(x2)) → U121(x1, x2)
PROPER(length(x1)) → LENGTH(proper(x1))
U111(ok(x1), ok(x2)) → U111(x1, x2)
ACTIVE(U12(tt, L)) → S(length(L))
TOP(ok(x)) → ACTIVE(x)
U111(mark(x1), x2) → U111(x1, x2)
ACTIVE(s(x1)) → S(active(x1))
PROPER(U11(x1, x2)) → PROPER(x1)
PROPER(cons(x1, x2)) → CONS(proper(x1), proper(x2))
ACTIVE(U11(x1, x2)) → ACTIVE(x1)
PROPER(s(x1)) → PROPER(x1)
TOP(ok(x)) → TOP(active(x))
PROPER(cons(x1, x2)) → PROPER(x2)
ACTIVE(U12(x1, x2)) → ACTIVE(x1)
ACTIVE(U11(x1, x2)) → U111(active(x1), x2)
ACTIVE(U12(tt, L)) → LENGTH(L)
CONS(ok(x1), ok(x2)) → CONS(x1, x2)
ACTIVE(length(cons(N, L))) → U111(tt, L)
PROPER(U11(x1, x2)) → PROPER(x2)
ACTIVE(U11(tt, L)) → U121(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(length(cons(N, L))) → mark(U11(tt, L))
proper(zeros) → ok(zeros)
active(cons(x1, x2)) → cons(active(x1), x2)
cons(mark(x1), x2) → mark(cons(x1, x2))
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(0) → ok(0)
active(U11(x1, x2)) → U11(active(x1), x2)
U11(mark(x1), x2) → mark(U11(x1, x2))
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
proper(tt) → ok(tt)
active(U12(x1, x2)) → U12(active(x1), x2)
U12(mark(x1), x2) → mark(U12(x1, x2))
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
proper(length(x1)) → length(proper(x1))
length(ok(x1)) → ok(length(x1))
proper(nil) → ok(nil)
top(mark(x)) → top(proper(x))
top(ok(x)) → top(active(x))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
LENGTH(mark(x1)) → LENGTH(x1)
LENGTH(ok(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(length(cons(N, L))) → mark(U11(tt, L))
proper(zeros) → ok(zeros)
active(cons(x1, x2)) → cons(active(x1), x2)
cons(mark(x1), x2) → mark(cons(x1, x2))
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(0) → ok(0)
active(U11(x1, x2)) → U11(active(x1), x2)
U11(mark(x1), x2) → mark(U11(x1, x2))
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
proper(tt) → ok(tt)
active(U12(x1, x2)) → U12(active(x1), x2)
U12(mark(x1), x2) → mark(U12(x1, x2))
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
proper(length(x1)) → length(proper(x1))
length(ok(x1)) → ok(length(x1))
proper(nil) → ok(nil)
top(mark(x)) → top(proper(x))
top(ok(x)) → top(active(x))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
LENGTH(mark(x1)) → LENGTH(x1)
LENGTH(ok(x1)) → LENGTH(x1)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
LENGTH(ok(x1)) → LENGTH(x1)
LENGTH(mark(x1)) → LENGTH(x1)
From the DPs we obtained the following set of size-change graphs:
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
S(ok(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(length(cons(N, L))) → mark(U11(tt, L))
proper(zeros) → ok(zeros)
active(cons(x1, x2)) → cons(active(x1), x2)
cons(mark(x1), x2) → mark(cons(x1, x2))
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(0) → ok(0)
active(U11(x1, x2)) → U11(active(x1), x2)
U11(mark(x1), x2) → mark(U11(x1, x2))
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
proper(tt) → ok(tt)
active(U12(x1, x2)) → U12(active(x1), x2)
U12(mark(x1), x2) → mark(U12(x1, x2))
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
proper(length(x1)) → length(proper(x1))
length(ok(x1)) → ok(length(x1))
proper(nil) → ok(nil)
top(mark(x)) → top(proper(x))
top(ok(x)) → top(active(x))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
S(ok(x1)) → S(x1)
S(mark(x1)) → S(x1)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
S(ok(x1)) → S(x1)
S(mark(x1)) → S(x1)
From the DPs we obtained the following set of size-change graphs:
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
U121(ok(x1), ok(x2)) → U121(x1, x2)
U121(mark(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(length(cons(N, L))) → mark(U11(tt, L))
proper(zeros) → ok(zeros)
active(cons(x1, x2)) → cons(active(x1), x2)
cons(mark(x1), x2) → mark(cons(x1, x2))
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(0) → ok(0)
active(U11(x1, x2)) → U11(active(x1), x2)
U11(mark(x1), x2) → mark(U11(x1, x2))
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
proper(tt) → ok(tt)
active(U12(x1, x2)) → U12(active(x1), x2)
U12(mark(x1), x2) → mark(U12(x1, x2))
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
proper(length(x1)) → length(proper(x1))
length(ok(x1)) → ok(length(x1))
proper(nil) → ok(nil)
top(mark(x)) → top(proper(x))
top(ok(x)) → top(active(x))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
U121(ok(x1), ok(x2)) → U121(x1, x2)
U121(mark(x1), x2) → U121(x1, x2)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
U121(ok(x1), ok(x2)) → U121(x1, x2)
U121(mark(x1), x2) → U121(x1, x2)
From the DPs we obtained the following set of size-change graphs:
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
U111(mark(x1), x2) → U111(x1, x2)
U111(ok(x1), ok(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(length(cons(N, L))) → mark(U11(tt, L))
proper(zeros) → ok(zeros)
active(cons(x1, x2)) → cons(active(x1), x2)
cons(mark(x1), x2) → mark(cons(x1, x2))
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(0) → ok(0)
active(U11(x1, x2)) → U11(active(x1), x2)
U11(mark(x1), x2) → mark(U11(x1, x2))
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
proper(tt) → ok(tt)
active(U12(x1, x2)) → U12(active(x1), x2)
U12(mark(x1), x2) → mark(U12(x1, x2))
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
proper(length(x1)) → length(proper(x1))
length(ok(x1)) → ok(length(x1))
proper(nil) → ok(nil)
top(mark(x)) → top(proper(x))
top(ok(x)) → top(active(x))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
U111(mark(x1), x2) → U111(x1, x2)
U111(ok(x1), ok(x2)) → U111(x1, x2)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
U111(mark(x1), x2) → U111(x1, x2)
U111(ok(x1), ok(x2)) → U111(x1, x2)
From the DPs we obtained the following set of size-change graphs:
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
CONS(mark(x1), x2) → CONS(x1, x2)
CONS(ok(x1), ok(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(length(cons(N, L))) → mark(U11(tt, L))
proper(zeros) → ok(zeros)
active(cons(x1, x2)) → cons(active(x1), x2)
cons(mark(x1), x2) → mark(cons(x1, x2))
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(0) → ok(0)
active(U11(x1, x2)) → U11(active(x1), x2)
U11(mark(x1), x2) → mark(U11(x1, x2))
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
proper(tt) → ok(tt)
active(U12(x1, x2)) → U12(active(x1), x2)
U12(mark(x1), x2) → mark(U12(x1, x2))
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
proper(length(x1)) → length(proper(x1))
length(ok(x1)) → ok(length(x1))
proper(nil) → ok(nil)
top(mark(x)) → top(proper(x))
top(ok(x)) → top(active(x))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
CONS(mark(x1), x2) → CONS(x1, x2)
CONS(ok(x1), ok(x2)) → CONS(x1, x2)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
CONS(mark(x1), x2) → CONS(x1, x2)
CONS(ok(x1), ok(x2)) → CONS(x1, x2)
From the DPs we obtained the following set of size-change graphs:
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
PROPER(U12(x1, x2)) → PROPER(x1)
PROPER(U11(x1, x2)) → PROPER(x1)
PROPER(length(x1)) → PROPER(x1)
PROPER(s(x1)) → PROPER(x1)
PROPER(cons(x1, x2)) → PROPER(x1)
PROPER(cons(x1, x2)) → PROPER(x2)
PROPER(U12(x1, x2)) → PROPER(x2)
PROPER(U11(x1, x2)) → PROPER(x2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(length(cons(N, L))) → mark(U11(tt, L))
proper(zeros) → ok(zeros)
active(cons(x1, x2)) → cons(active(x1), x2)
cons(mark(x1), x2) → mark(cons(x1, x2))
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(0) → ok(0)
active(U11(x1, x2)) → U11(active(x1), x2)
U11(mark(x1), x2) → mark(U11(x1, x2))
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
proper(tt) → ok(tt)
active(U12(x1, x2)) → U12(active(x1), x2)
U12(mark(x1), x2) → mark(U12(x1, x2))
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
proper(length(x1)) → length(proper(x1))
length(ok(x1)) → ok(length(x1))
proper(nil) → ok(nil)
top(mark(x)) → top(proper(x))
top(ok(x)) → top(active(x))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
PROPER(U12(x1, x2)) → PROPER(x1)
PROPER(U11(x1, x2)) → PROPER(x1)
PROPER(length(x1)) → PROPER(x1)
PROPER(s(x1)) → PROPER(x1)
PROPER(cons(x1, x2)) → PROPER(x1)
PROPER(cons(x1, x2)) → PROPER(x2)
PROPER(U12(x1, x2)) → PROPER(x2)
PROPER(U11(x1, x2)) → PROPER(x2)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
active(zeros)
proper(zeros)
active(cons(x0, x1))
proper(cons(x0, x1))
proper(0)
active(U11(x0, x1))
proper(U11(x0, x1))
proper(tt)
active(U12(x0, x1))
proper(U12(x0, x1))
active(s(x0))
proper(s(x0))
active(length(x0))
proper(length(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
PROPER(U11(x1, x2)) → PROPER(x1)
PROPER(U12(x1, x2)) → PROPER(x1)
PROPER(s(x1)) → PROPER(x1)
PROPER(length(x1)) → PROPER(x1)
PROPER(cons(x1, x2)) → PROPER(x1)
PROPER(cons(x1, x2)) → PROPER(x2)
PROPER(U12(x1, x2)) → PROPER(x2)
PROPER(U11(x1, x2)) → PROPER(x2)
cons(mark(x0), x1)
cons(ok(x0), ok(x1))
U11(mark(x0), x1)
U11(ok(x0), ok(x1))
U12(mark(x0), x1)
U12(ok(x0), ok(x1))
s(mark(x0))
s(ok(x0))
length(mark(x0))
length(ok(x0))
From the DPs we obtained the following set of size-change graphs:
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
ACTIVE(length(x1)) → ACTIVE(x1)
ACTIVE(cons(x1, x2)) → ACTIVE(x1)
ACTIVE(U11(x1, x2)) → ACTIVE(x1)
ACTIVE(U12(x1, x2)) → ACTIVE(x1)
ACTIVE(s(x1)) → ACTIVE(x1)
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(length(cons(N, L))) → mark(U11(tt, L))
proper(zeros) → ok(zeros)
active(cons(x1, x2)) → cons(active(x1), x2)
cons(mark(x1), x2) → mark(cons(x1, x2))
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(0) → ok(0)
active(U11(x1, x2)) → U11(active(x1), x2)
U11(mark(x1), x2) → mark(U11(x1, x2))
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
proper(tt) → ok(tt)
active(U12(x1, x2)) → U12(active(x1), x2)
U12(mark(x1), x2) → mark(U12(x1, x2))
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
proper(length(x1)) → length(proper(x1))
length(ok(x1)) → ok(length(x1))
proper(nil) → ok(nil)
top(mark(x)) → top(proper(x))
top(ok(x)) → top(active(x))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
ACTIVE(length(x1)) → ACTIVE(x1)
ACTIVE(cons(x1, x2)) → ACTIVE(x1)
ACTIVE(U11(x1, x2)) → ACTIVE(x1)
ACTIVE(U12(x1, x2)) → ACTIVE(x1)
ACTIVE(s(x1)) → ACTIVE(x1)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
active(zeros)
proper(zeros)
active(cons(x0, x1))
proper(cons(x0, x1))
proper(0)
active(U11(x0, x1))
proper(U11(x0, x1))
proper(tt)
active(U12(x0, x1))
proper(U12(x0, x1))
active(s(x0))
proper(s(x0))
active(length(x0))
proper(length(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
ACTIVE(length(x1)) → ACTIVE(x1)
ACTIVE(U11(x1, x2)) → ACTIVE(x1)
ACTIVE(cons(x1, x2)) → ACTIVE(x1)
ACTIVE(U12(x1, x2)) → ACTIVE(x1)
ACTIVE(s(x1)) → ACTIVE(x1)
cons(mark(x0), x1)
cons(ok(x0), ok(x1))
U11(mark(x0), x1)
U11(ok(x0), ok(x1))
U12(mark(x0), x1)
U12(ok(x0), ok(x1))
s(mark(x0))
s(ok(x0))
length(mark(x0))
length(ok(x0))
From the DPs we obtained the following set of size-change graphs:
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
TOP(ok(x)) → TOP(active(x))
TOP(mark(x)) → TOP(proper(x))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(length(cons(N, L))) → mark(U11(tt, L))
proper(zeros) → ok(zeros)
active(cons(x1, x2)) → cons(active(x1), x2)
cons(mark(x1), x2) → mark(cons(x1, x2))
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(0) → ok(0)
active(U11(x1, x2)) → U11(active(x1), x2)
U11(mark(x1), x2) → mark(U11(x1, x2))
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
proper(tt) → ok(tt)
active(U12(x1, x2)) → U12(active(x1), x2)
U12(mark(x1), x2) → mark(U12(x1, x2))
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
proper(length(x1)) → length(proper(x1))
length(ok(x1)) → ok(length(x1))
proper(nil) → ok(nil)
top(mark(x)) → top(proper(x))
top(ok(x)) → top(active(x))
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
TOP(ok(x)) → TOP(active(x))
TOP(mark(x)) → TOP(proper(x))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(cons(x1, x2)) → cons(active(x1), x2)
active(U11(x1, x2)) → U11(active(x1), x2)
active(U12(x1, x2)) → U12(active(x1), x2)
active(s(x1)) → s(active(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
U12(mark(x1), x2) → mark(U12(x1, x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
U11(mark(x1), x2) → mark(U11(x1, x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
cons(mark(x1), x2) → mark(cons(x1, x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(zeros) → ok(zeros)
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
proper(0) → ok(0)
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
proper(s(x1)) → s(proper(x1))
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
top(mark(x0))
top(ok(x0))
top(mark(x0))
top(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
TOP(ok(x)) → TOP(active(x))
TOP(mark(x)) → TOP(proper(x))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(cons(x1, x2)) → cons(active(x1), x2)
active(U11(x1, x2)) → U11(active(x1), x2)
active(U12(x1, x2)) → U12(active(x1), x2)
active(s(x1)) → s(active(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
U12(mark(x1), x2) → mark(U12(x1, x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
U11(mark(x1), x2) → mark(U11(x1, x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
cons(mark(x1), x2) → mark(cons(x1, x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(zeros) → ok(zeros)
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
proper(0) → ok(0)
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
proper(s(x1)) → s(proper(x1))
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
TOP(ok(U12(tt, x0))) → TOP(mark(s(length(x0))))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(ok(U11(x0, x1))) → TOP(U11(active(x0), x1))
TOP(ok(U11(tt, x0))) → TOP(mark(U12(tt, x0)))
TOP(ok(zeros)) → TOP(mark(cons(0, zeros)))
TOP(ok(length(cons(x0, x1)))) → TOP(mark(U11(tt, x1)))
TOP(ok(cons(x0, x1))) → TOP(cons(active(x0), x1))
TOP(ok(U12(x0, x1))) → TOP(U12(active(x0), x1))
TOP(ok(length(x0))) → TOP(length(active(x0)))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
TOP(ok(U12(tt, x0))) → TOP(mark(s(length(x0))))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(x)) → TOP(proper(x))
TOP(ok(U11(x0, x1))) → TOP(U11(active(x0), x1))
TOP(ok(U11(tt, x0))) → TOP(mark(U12(tt, x0)))
TOP(ok(zeros)) → TOP(mark(cons(0, zeros)))
TOP(ok(U12(x0, x1))) → TOP(U12(active(x0), x1))
TOP(ok(cons(x0, x1))) → TOP(cons(active(x0), x1))
TOP(ok(length(cons(x0, x1)))) → TOP(mark(U11(tt, x1)))
TOP(ok(length(x0))) → TOP(length(active(x0)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(cons(x1, x2)) → cons(active(x1), x2)
active(U11(x1, x2)) → U11(active(x1), x2)
active(U12(x1, x2)) → U12(active(x1), x2)
active(s(x1)) → s(active(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
U12(mark(x1), x2) → mark(U12(x1, x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
U11(mark(x1), x2) → mark(U11(x1, x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
cons(mark(x1), x2) → mark(cons(x1, x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(zeros) → ok(zeros)
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
proper(0) → ok(0)
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
proper(s(x1)) → s(proper(x1))
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
TOP(mark(nil)) → TOP(ok(nil))
TOP(mark(U12(x0, x1))) → TOP(U12(proper(x0), proper(x1)))
TOP(mark(U11(x0, x1))) → TOP(U11(proper(x0), proper(x1)))
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(mark(length(x0))) → TOP(length(proper(x0)))
TOP(mark(zeros)) → TOP(ok(zeros))
TOP(mark(0)) → TOP(ok(0))
TOP(mark(tt)) → TOP(ok(tt))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(ok(zeros)) → TOP(mark(cons(0, zeros)))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(ok(length(cons(x0, x1)))) → TOP(mark(U11(tt, x1)))
TOP(mark(zeros)) → TOP(ok(zeros))
TOP(ok(length(x0))) → TOP(length(active(x0)))
TOP(mark(tt)) → TOP(ok(tt))
TOP(ok(U12(tt, x0))) → TOP(mark(s(length(x0))))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(nil)) → TOP(ok(nil))
TOP(mark(U12(x0, x1))) → TOP(U12(proper(x0), proper(x1)))
TOP(mark(U11(x0, x1))) → TOP(U11(proper(x0), proper(x1)))
TOP(ok(U11(x0, x1))) → TOP(U11(active(x0), x1))
TOP(ok(U11(tt, x0))) → TOP(mark(U12(tt, x0)))
TOP(ok(U12(x0, x1))) → TOP(U12(active(x0), x1))
TOP(ok(cons(x0, x1))) → TOP(cons(active(x0), x1))
TOP(mark(length(x0))) → TOP(length(proper(x0)))
TOP(mark(0)) → TOP(ok(0))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(cons(x1, x2)) → cons(active(x1), x2)
active(U11(x1, x2)) → U11(active(x1), x2)
active(U12(x1, x2)) → U12(active(x1), x2)
active(s(x1)) → s(active(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
U12(mark(x1), x2) → mark(U12(x1, x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
U11(mark(x1), x2) → mark(U11(x1, x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
cons(mark(x1), x2) → mark(cons(x1, x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(zeros) → ok(zeros)
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
proper(0) → ok(0)
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
proper(s(x1)) → s(proper(x1))
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(ok(zeros)) → TOP(mark(cons(0, zeros)))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(ok(length(cons(x0, x1)))) → TOP(mark(U11(tt, x1)))
TOP(ok(length(x0))) → TOP(length(active(x0)))
TOP(ok(U12(tt, x0))) → TOP(mark(s(length(x0))))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(U12(x0, x1))) → TOP(U12(proper(x0), proper(x1)))
TOP(mark(U11(x0, x1))) → TOP(U11(proper(x0), proper(x1)))
TOP(ok(U11(x0, x1))) → TOP(U11(active(x0), x1))
TOP(ok(U11(tt, x0))) → TOP(mark(U12(tt, x0)))
TOP(ok(cons(x0, x1))) → TOP(cons(active(x0), x1))
TOP(ok(U12(x0, x1))) → TOP(U12(active(x0), x1))
TOP(mark(length(x0))) → TOP(length(proper(x0)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(cons(x1, x2)) → cons(active(x1), x2)
active(U11(x1, x2)) → U11(active(x1), x2)
active(U12(x1, x2)) → U12(active(x1), x2)
active(s(x1)) → s(active(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
U12(mark(x1), x2) → mark(U12(x1, x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
U11(mark(x1), x2) → mark(U11(x1, x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
cons(mark(x1), x2) → mark(cons(x1, x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(zeros) → ok(zeros)
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
proper(0) → ok(0)
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
proper(s(x1)) → s(proper(x1))
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
TOP(ok(zeros)) → TOP(mark(cons(0, zeros)))
Used ordering: Polynomial interpretation [25]:
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(ok(length(cons(x0, x1)))) → TOP(mark(U11(tt, x1)))
TOP(ok(length(x0))) → TOP(length(active(x0)))
TOP(ok(U12(tt, x0))) → TOP(mark(s(length(x0))))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(U12(x0, x1))) → TOP(U12(proper(x0), proper(x1)))
TOP(mark(U11(x0, x1))) → TOP(U11(proper(x0), proper(x1)))
TOP(ok(U11(x0, x1))) → TOP(U11(active(x0), x1))
TOP(ok(U11(tt, x0))) → TOP(mark(U12(tt, x0)))
TOP(ok(cons(x0, x1))) → TOP(cons(active(x0), x1))
TOP(ok(U12(x0, x1))) → TOP(U12(active(x0), x1))
TOP(mark(length(x0))) → TOP(length(proper(x0)))
POL(0) = 0
POL(TOP(x1)) = x1
POL(U11(x1, x2)) = 0
POL(U12(x1, x2)) = 0
POL(active(x1)) = 1
POL(cons(x1, x2)) = 0
POL(length(x1)) = 0
POL(mark(x1)) = 0
POL(nil) = 0
POL(ok(x1)) = x1
POL(proper(x1)) = 0
POL(s(x1)) = 0
POL(tt) = 0
POL(zeros) = 1
s(mark(x1)) → mark(s(x1))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
cons(mark(x1), x2) → mark(cons(x1, x2))
length(mark(x1)) → mark(length(x1))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
s(ok(x1)) → ok(s(x1))
U11(mark(x1), x2) → mark(U11(x1, x2))
length(ok(x1)) → ok(length(x1))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
U12(mark(x1), x2) → mark(U12(x1, x2))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(ok(length(cons(x0, x1)))) → TOP(mark(U11(tt, x1)))
TOP(ok(length(x0))) → TOP(length(active(x0)))
TOP(ok(U12(tt, x0))) → TOP(mark(s(length(x0))))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(U12(x0, x1))) → TOP(U12(proper(x0), proper(x1)))
TOP(mark(U11(x0, x1))) → TOP(U11(proper(x0), proper(x1)))
TOP(ok(U11(x0, x1))) → TOP(U11(active(x0), x1))
TOP(ok(U11(tt, x0))) → TOP(mark(U12(tt, x0)))
TOP(ok(cons(x0, x1))) → TOP(cons(active(x0), x1))
TOP(ok(U12(x0, x1))) → TOP(U12(active(x0), x1))
TOP(mark(length(x0))) → TOP(length(proper(x0)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(cons(x1, x2)) → cons(active(x1), x2)
active(U11(x1, x2)) → U11(active(x1), x2)
active(U12(x1, x2)) → U12(active(x1), x2)
active(s(x1)) → s(active(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
U12(mark(x1), x2) → mark(U12(x1, x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
U11(mark(x1), x2) → mark(U11(x1, x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
cons(mark(x1), x2) → mark(cons(x1, x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(zeros) → ok(zeros)
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
proper(0) → ok(0)
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
proper(s(x1)) → s(proper(x1))
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
TOP(ok(length(cons(x0, x1)))) → TOP(mark(U11(tt, x1)))
Used ordering: Polynomial interpretation [25]:
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(ok(length(x0))) → TOP(length(active(x0)))
TOP(ok(U12(tt, x0))) → TOP(mark(s(length(x0))))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(U12(x0, x1))) → TOP(U12(proper(x0), proper(x1)))
TOP(mark(U11(x0, x1))) → TOP(U11(proper(x0), proper(x1)))
TOP(ok(U11(x0, x1))) → TOP(U11(active(x0), x1))
TOP(ok(U11(tt, x0))) → TOP(mark(U12(tt, x0)))
TOP(ok(cons(x0, x1))) → TOP(cons(active(x0), x1))
TOP(ok(U12(x0, x1))) → TOP(U12(active(x0), x1))
TOP(mark(length(x0))) → TOP(length(proper(x0)))
POL(0) = 0
POL(TOP(x1)) = x1
POL(U11(x1, x2)) = 0
POL(U12(x1, x2)) = 0
POL(active(x1)) = 1 + x1
POL(cons(x1, x2)) = 0
POL(length(x1)) = 1
POL(mark(x1)) = x1
POL(nil) = 0
POL(ok(x1)) = x1
POL(proper(x1)) = 0
POL(s(x1)) = 0
POL(tt) = 0
POL(zeros) = 0
s(mark(x1)) → mark(s(x1))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
cons(mark(x1), x2) → mark(cons(x1, x2))
length(mark(x1)) → mark(length(x1))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
s(ok(x1)) → ok(s(x1))
U11(mark(x1), x2) → mark(U11(x1, x2))
length(ok(x1)) → ok(length(x1))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
U12(mark(x1), x2) → mark(U12(x1, x2))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
TOP(ok(U12(tt, x0))) → TOP(mark(s(length(x0))))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(U12(x0, x1))) → TOP(U12(proper(x0), proper(x1)))
TOP(mark(U11(x0, x1))) → TOP(U11(proper(x0), proper(x1)))
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(ok(U11(x0, x1))) → TOP(U11(active(x0), x1))
TOP(ok(U11(tt, x0))) → TOP(mark(U12(tt, x0)))
TOP(ok(U12(x0, x1))) → TOP(U12(active(x0), x1))
TOP(ok(cons(x0, x1))) → TOP(cons(active(x0), x1))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(mark(length(x0))) → TOP(length(proper(x0)))
TOP(ok(length(x0))) → TOP(length(active(x0)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(cons(x1, x2)) → cons(active(x1), x2)
active(U11(x1, x2)) → U11(active(x1), x2)
active(U12(x1, x2)) → U12(active(x1), x2)
active(s(x1)) → s(active(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
U12(mark(x1), x2) → mark(U12(x1, x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
U11(mark(x1), x2) → mark(U11(x1, x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
cons(mark(x1), x2) → mark(cons(x1, x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(zeros) → ok(zeros)
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
proper(0) → ok(0)
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
proper(s(x1)) → s(proper(x1))
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
TOP(ok(U11(tt, x0))) → TOP(mark(U12(tt, x0)))
Used ordering: Polynomial interpretation [25]:
TOP(ok(U12(tt, x0))) → TOP(mark(s(length(x0))))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(U12(x0, x1))) → TOP(U12(proper(x0), proper(x1)))
TOP(mark(U11(x0, x1))) → TOP(U11(proper(x0), proper(x1)))
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(ok(U11(x0, x1))) → TOP(U11(active(x0), x1))
TOP(ok(U12(x0, x1))) → TOP(U12(active(x0), x1))
TOP(ok(cons(x0, x1))) → TOP(cons(active(x0), x1))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(mark(length(x0))) → TOP(length(proper(x0)))
TOP(ok(length(x0))) → TOP(length(active(x0)))
POL(0) = 0
POL(TOP(x1)) = x1
POL(U11(x1, x2)) = 1 + x1
POL(U12(x1, x2)) = 0
POL(active(x1)) = x1
POL(cons(x1, x2)) = 1
POL(length(x1)) = 1 + x1
POL(mark(x1)) = x1
POL(nil) = 1
POL(ok(x1)) = x1
POL(proper(x1)) = x1
POL(s(x1)) = 0
POL(tt) = 1
POL(zeros) = 1
active(U12(x1, x2)) → U12(active(x1), x2)
proper(zeros) → ok(zeros)
proper(length(x1)) → length(proper(x1))
s(mark(x1)) → mark(s(x1))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
active(s(x1)) → s(active(x1))
active(length(x1)) → length(active(x1))
cons(mark(x1), x2) → mark(cons(x1, x2))
active(zeros) → mark(cons(0, zeros))
length(mark(x1)) → mark(length(x1))
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
active(U11(x1, x2)) → U11(active(x1), x2)
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(tt) → ok(tt)
active(U12(tt, L)) → mark(s(length(L)))
s(ok(x1)) → ok(s(x1))
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
proper(s(x1)) → s(proper(x1))
active(length(cons(N, L))) → mark(U11(tt, L))
U11(mark(x1), x2) → mark(U11(x1, x2))
length(ok(x1)) → ok(length(x1))
active(cons(x1, x2)) → cons(active(x1), x2)
proper(0) → ok(0)
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
active(U11(tt, L)) → mark(U12(tt, L))
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
U12(mark(x1), x2) → mark(U12(x1, x2))
proper(nil) → ok(nil)
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
TOP(ok(U12(tt, x0))) → TOP(mark(s(length(x0))))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(U12(x0, x1))) → TOP(U12(proper(x0), proper(x1)))
TOP(mark(U11(x0, x1))) → TOP(U11(proper(x0), proper(x1)))
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(ok(U11(x0, x1))) → TOP(U11(active(x0), x1))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(ok(cons(x0, x1))) → TOP(cons(active(x0), x1))
TOP(ok(U12(x0, x1))) → TOP(U12(active(x0), x1))
TOP(mark(length(x0))) → TOP(length(proper(x0)))
TOP(ok(length(x0))) → TOP(length(active(x0)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(cons(x1, x2)) → cons(active(x1), x2)
active(U11(x1, x2)) → U11(active(x1), x2)
active(U12(x1, x2)) → U12(active(x1), x2)
active(s(x1)) → s(active(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
U12(mark(x1), x2) → mark(U12(x1, x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
U11(mark(x1), x2) → mark(U11(x1, x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
cons(mark(x1), x2) → mark(cons(x1, x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(zeros) → ok(zeros)
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
proper(0) → ok(0)
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
proper(s(x1)) → s(proper(x1))
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
TOP(ok(U12(tt, x0))) → TOP(mark(s(length(x0))))
Used ordering: Polynomial interpretation [25]:
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(U12(x0, x1))) → TOP(U12(proper(x0), proper(x1)))
TOP(mark(U11(x0, x1))) → TOP(U11(proper(x0), proper(x1)))
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(ok(U11(x0, x1))) → TOP(U11(active(x0), x1))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(ok(cons(x0, x1))) → TOP(cons(active(x0), x1))
TOP(ok(U12(x0, x1))) → TOP(U12(active(x0), x1))
TOP(mark(length(x0))) → TOP(length(proper(x0)))
TOP(ok(length(x0))) → TOP(length(active(x0)))
POL(0) = 0
POL(TOP(x1)) = x1
POL(U11(x1, x2)) = 0
POL(U12(x1, x2)) = 1
POL(active(x1)) = 0
POL(cons(x1, x2)) = 0
POL(length(x1)) = 0
POL(mark(x1)) = x1
POL(nil) = 0
POL(ok(x1)) = x1
POL(proper(x1)) = 0
POL(s(x1)) = 0
POL(tt) = 0
POL(zeros) = 0
s(mark(x1)) → mark(s(x1))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
cons(mark(x1), x2) → mark(cons(x1, x2))
length(mark(x1)) → mark(length(x1))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
s(ok(x1)) → ok(s(x1))
U11(mark(x1), x2) → mark(U11(x1, x2))
length(ok(x1)) → ok(length(x1))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
U12(mark(x1), x2) → mark(U12(x1, x2))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(U12(x0, x1))) → TOP(U12(proper(x0), proper(x1)))
TOP(mark(U11(x0, x1))) → TOP(U11(proper(x0), proper(x1)))
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(ok(U11(x0, x1))) → TOP(U11(active(x0), x1))
TOP(ok(U12(x0, x1))) → TOP(U12(active(x0), x1))
TOP(ok(cons(x0, x1))) → TOP(cons(active(x0), x1))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(mark(length(x0))) → TOP(length(proper(x0)))
TOP(ok(length(x0))) → TOP(length(active(x0)))
active(zeros) → mark(cons(0, zeros))
active(U11(tt, L)) → mark(U12(tt, L))
active(U12(tt, L)) → mark(s(length(L)))
active(length(cons(N, L))) → mark(U11(tt, L))
active(cons(x1, x2)) → cons(active(x1), x2)
active(U11(x1, x2)) → U11(active(x1), x2)
active(U12(x1, x2)) → U12(active(x1), x2)
active(s(x1)) → s(active(x1))
active(length(x1)) → length(active(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
U12(mark(x1), x2) → mark(U12(x1, x2))
U12(ok(x1), ok(x2)) → ok(U12(x1, x2))
U11(mark(x1), x2) → mark(U11(x1, x2))
U11(ok(x1), ok(x2)) → ok(U11(x1, x2))
cons(mark(x1), x2) → mark(cons(x1, x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
proper(zeros) → ok(zeros)
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
proper(0) → ok(0)
proper(U11(x1, x2)) → U11(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(U12(x1, x2)) → U12(proper(x1), proper(x2))
proper(s(x1)) → s(proper(x1))
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
active(zeros)
proper(zeros)
active(cons(x0, x1))
cons(mark(x0), x1)
proper(cons(x0, x1))
cons(ok(x0), ok(x1))
proper(0)
active(U11(x0, x1))
U11(mark(x0), x1)
proper(U11(x0, x1))
U11(ok(x0), ok(x1))
proper(tt)
active(U12(x0, x1))
U12(mark(x0), x1)
proper(U12(x0, x1))
U12(ok(x0), ok(x1))
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)