MAYBE
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
zeros: empty set
cons: {1}
0: empty set
and: {1}
tt: empty set
length: {1}
nil: empty set
s: {1}
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
zeros: empty set
cons: {1}
0: empty set
and: {1}
tt: empty set
length: {1}
nil: empty set
s: {1}
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)
and(tt, X) → a(X)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
and(tt, X) → a(X)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Used ordering:
and(tt, X) → a(X)
POL(0) = 0
POL(a(x1)) = x1
POL(and(x1, x2)) = x1 + 2·x2
POL(cons(x1, x2)) = x1 + 2·x2
POL(length(x1)) = 2·x1
POL(nil) = 0
POL(s(x1)) = 2·x1
POL(tt) = 1
POL(zeros) = 0
POL(zerosInact) = 0
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zerosInact)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Used ordering:
length(nil) → 0
POL(0) = 0
POL(a(x1)) = x1
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = 2·x1
POL(nil) = 2
POL(s(x1)) = 2·x1
POL(zeros) = 0
POL(zerosInact) = 0
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Used ordering:
zeros → zerosInact
POL(0) = 0
POL(a(x1)) = 2·x1
POL(cons(x1, x2)) = x1 + 2·x2
POL(length(x1)) = 2·x1
POL(s(x1)) = x1
POL(zeros) = 2
POL(zerosInact) = 1
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
a(zerosInact) → zeros
Used ordering:
a(x) → x
POL(0) = 0
POL(a(x1)) = 1 + x1
POL(cons(x1, x2)) = 1 + 2·x1 + x2
POL(length(x1)) = x1
POL(s(x1)) = x1
POL(zeros) = 1
POL(zerosInact) = 0
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
zeros
length(cons(x0, x1))
a(zerosInact)
LENGTH(cons(N, L)) → A(L)
LENGTH(cons(N, L)) → LENGTH(a(L))
A(zerosInact) → ZEROS
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
zeros
length(cons(x0, x1))
a(zerosInact)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(N, L)) → A(L)
LENGTH(cons(N, L)) → LENGTH(a(L))
A(zerosInact) → ZEROS
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
zeros
length(cons(x0, x1))
a(zerosInact)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(N, L)) → LENGTH(a(L))
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
zeros
length(cons(x0, x1))
a(zerosInact)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(N, L)) → LENGTH(a(L))
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
zeros
length(cons(x0, x1))
a(zerosInact)
length(cons(x0, x1))
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(N, L)) → LENGTH(a(L))
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
zeros
a(zerosInact)
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
zeros
a(zerosInact)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
zeros → cons(0, zerosInact)
zeros
a(zerosInact)
a(zerosInact)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
zeros → cons(0, zerosInact)
zeros
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
zeros → cons(0, zerosInact)
zeros
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
zeros
zeros
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
LENGTH(cons(0, zerosInact)) → LENGTH(cons(0, zerosInact))
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ NonTerminationProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(0, zerosInact)) → LENGTH(cons(0, zerosInact))
LENGTH(cons(0, zerosInact)) → LENGTH(cons(0, zerosInact))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(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(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
andActive(tt, X) → mark(X)
lengthActive(nil) → 0
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(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(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
andActive(tt, X) → mark(X)
lengthActive(nil) → 0
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
Used ordering:
lengthActive(nil) → 0
POL(0) = 0
POL(and(x1, x2)) = 2·x1 + x2
POL(andActive(x1, x2)) = 2·x1 + x2
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = 2·x1
POL(lengthActive(x1)) = 2·x1
POL(mark(x1)) = x1
POL(nil) = 1
POL(s(x1)) = 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(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(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(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
andActive(tt, X) → mark(X)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(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(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
andActive(tt, X) → mark(X)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
Used ordering:
mark(nil) → nil
POL(0) = 0
POL(and(x1, x2)) = 2·x1 + 2·x2
POL(andActive(x1, x2)) = 2·x1 + 2·x2
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = 2·x1
POL(lengthActive(x1)) = 2·x1
POL(mark(x1)) = 2·x1
POL(nil) = 2
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
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(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)
andActive(tt, X) → mark(X)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(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)
andActive(tt, X) → mark(X)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
Used ordering:
andActive(tt, X) → mark(X)
POL(0) = 0
POL(and(x1, x2)) = 2 + 2·x1 + x2
POL(andActive(x1, x2)) = 2 + 2·x1 + x2
POL(cons(x1, x2)) = x1 + 2·x2
POL(length(x1)) = 2·x1
POL(lengthActive(x1)) = 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
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(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)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(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)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
Used ordering:
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
mark(tt) → tt
POL(0) = 0
POL(and(x1, x2)) = 1 + x1 + 2·x2
POL(andActive(x1, x2)) = 1 + 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(s(x1)) = x1
POL(tt) = 1
POL(zeros) = 1
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
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
mark(zeros) → zerosActive
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
Used ordering:
andActive(x1, x2) → and(x1, x2)
POL(0) = 0
POL(and(x1, x2)) = x1 + x2
POL(andActive(x1, x2)) = 1 + 2·x1 + 2·x2
POL(cons(x1, x2)) = 2·x1 + x2
POL(length(x1)) = x1
POL(lengthActive(x1)) = x1
POL(mark(x1)) = x1
POL(s(x1)) = x1
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
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
mark(zeros) → zerosActive
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
Used ordering:
mark(length(x1)) → lengthActive(mark(x1))
POL(0) = 0
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = 1 + 2·x1
POL(lengthActive(x1)) = 1 + 2·x1
POL(mark(x1)) = 2·x1
POL(s(x1)) = x1
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
lengthActive(x1) → length(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
mark(zeros) → zerosActive
lengthActive(x1) → length(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
Used ordering:
lengthActive(x1) → length(x1)
POL(0) = 0
POL(cons(x1, x2)) = 2·x1 + x2
POL(length(x1)) = x1
POL(lengthActive(x1)) = 1 + x1
POL(mark(x1)) = x1
POL(s(x1)) = x1
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)
lengthActive(cons(N, L)) → s(lengthActive(mark(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)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
Used ordering:
mark(0) → 0
POL(0) = 0
POL(cons(x1, x2)) = 1 + x1 + x2
POL(lengthActive(x1)) = x1
POL(mark(x1)) = 1 + x1
POL(s(x1)) = x1
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
↳ RRRPoloQTRSProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
mark(zeros) → zerosActive
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
mark(zeros) → zerosActive
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
Used ordering:
mark(cons(x1, x2)) → cons(mark(x1), x2)
POL(0) = 0
POL(cons(x1, x2)) = 2 + x1 + 2·x2
POL(lengthActive(x1)) = x1
POL(mark(x1)) = 2 + 2·x1
POL(s(x1)) = x1
POL(zeros) = 0
POL(zerosActive) = 2
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ 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)
lengthActive(cons(N, L)) → s(lengthActive(mark(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
↳ 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)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
mark(zeros)
mark(s(x0))
zerosActive
lengthActive(cons(x0, x1))
MARK(s(x1)) → MARK(x1)
MARK(zeros) → ZEROSACTIVE
LENGTHACTIVE(cons(N, L)) → LENGTHACTIVE(mark(L))
LENGTHACTIVE(cons(N, L)) → MARK(L)
mark(zeros) → zerosActive
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
mark(zeros)
mark(s(x0))
zerosActive
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
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
MARK(s(x1)) → MARK(x1)
MARK(zeros) → ZEROSACTIVE
LENGTHACTIVE(cons(N, L)) → LENGTHACTIVE(mark(L))
LENGTHACTIVE(cons(N, L)) → MARK(L)
mark(zeros) → zerosActive
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
mark(zeros)
mark(s(x0))
zerosActive
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
↳ 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)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
mark(zeros)
mark(s(x0))
zerosActive
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
↳ 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
lengthActive(cons(x0, x1))
mark(zeros)
mark(s(x0))
zerosActive
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
↳ 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
↳ 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)) → LENGTHACTIVE(mark(L))
mark(zeros) → zerosActive
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
mark(zeros)
mark(s(x0))
zerosActive
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
↳ 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)) → LENGTHACTIVE(mark(L))
mark(zeros) → zerosActive
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
mark(zeros)
mark(s(x0))
zerosActive
lengthActive(cons(x0, x1))
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
↳ 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
LENGTHACTIVE(cons(N, L)) → LENGTHACTIVE(mark(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)) = 2·x1
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(mark(x1)) = 2·x1
POL(s(x1)) = 1 + 2·x1
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
↳ 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)) → LENGTHACTIVE(mark(L))
mark(zeros) → zerosActive
zerosActive → cons(0, zeros)
mark(zeros)
mark(s(x0))
zerosActive
LENGTHACTIVE(cons(y0, 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
↳ 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
LENGTHACTIVE(cons(y0, zeros)) → LENGTHACTIVE(zerosActive)
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
↳ 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
LENGTHACTIVE(cons(y0, zeros)) → LENGTHACTIVE(zerosActive)
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
↳ 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(y0, zeros)) → LENGTHACTIVE(zerosActive)
zerosActive → cons(0, zeros)
zerosActive
LENGTHACTIVE(cons(y0, 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
↳ 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(y0, zeros)) → LENGTHACTIVE(cons(0, zeros))
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
↳ 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(y0, zeros)) → LENGTHACTIVE(cons(0, zeros))
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
↳ 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(y0, zeros)) → LENGTHACTIVE(cons(0, zeros))
LENGTHACTIVE(cons(0, 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
↳ 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
↳ NonTerminationProof
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
LENGTHACTIVE(cons(0, zeros)) → LENGTHACTIVE(cons(0, zeros))
LENGTHACTIVE(cons(0, zeros)) → LENGTHACTIVE(cons(0, zeros))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zerosInact)
and(tt, X) → a(X)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
and(tt, X) → a(X)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Used ordering:
and(tt, X) → a(X)
POL(0) = 0
POL(a(x1)) = x1
POL(and(x1, x2)) = x1 + 2·x2
POL(cons(x1, x2)) = x1 + 2·x2
POL(length(x1)) = 2·x1
POL(nil) = 0
POL(s(x1)) = 2·x1
POL(tt) = 1
POL(zeros) = 0
POL(zerosInact) = 0
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zerosInact)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
length(nil) → 0
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Used ordering:
length(nil) → 0
POL(0) = 0
POL(a(x1)) = x1
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = 2·x1
POL(nil) = 2
POL(s(x1)) = 2·x1
POL(zeros) = 0
POL(zerosInact) = 0
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
zeros → zerosInact
a(zerosInact) → zeros
Used ordering:
zeros → zerosInact
POL(0) = 0
POL(a(x1)) = 2·x1
POL(cons(x1, x2)) = x1 + 2·x2
POL(length(x1)) = 2·x1
POL(s(x1)) = x1
POL(zeros) = 2
POL(zerosInact) = 1
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(x) → x
a(zerosInact) → zeros
Used ordering:
a(x) → x
POL(0) = 0
POL(a(x1)) = 1 + x1
POL(cons(x1, x2)) = 1 + 2·x1 + x2
POL(length(x1)) = x1
POL(s(x1)) = x1
POL(zeros) = 1
POL(zerosInact) = 0
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ Complete Giesl Middeldorp-Transformation
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
zeros
length(cons(x0, x1))
a(zerosInact)
LENGTH(cons(N, L)) → A(L)
LENGTH(cons(N, L)) → LENGTH(a(L))
A(zerosInact) → ZEROS
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
zeros
length(cons(x0, x1))
a(zerosInact)
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(N, L)) → A(L)
LENGTH(cons(N, L)) → LENGTH(a(L))
A(zerosInact) → ZEROS
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
zeros
length(cons(x0, x1))
a(zerosInact)
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(N, L)) → LENGTH(a(L))
zeros → cons(0, zerosInact)
length(cons(N, L)) → s(length(a(L)))
a(zerosInact) → zeros
zeros
length(cons(x0, x1))
a(zerosInact)
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(N, L)) → LENGTH(a(L))
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
zeros
length(cons(x0, x1))
a(zerosInact)
length(cons(x0, x1))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(N, L)) → LENGTH(a(L))
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
zeros
a(zerosInact)
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
a(zerosInact) → zeros
zeros → cons(0, zerosInact)
zeros
a(zerosInact)
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
zeros → cons(0, zerosInact)
zeros
a(zerosInact)
a(zerosInact)
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(y0, zerosInact)) → LENGTH(zeros)
zeros → cons(0, zerosInact)
zeros
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
zeros → cons(0, zerosInact)
zeros
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
zeros
zeros
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(y0, zerosInact)) → LENGTH(cons(0, zerosInact))
LENGTH(cons(0, zerosInact)) → LENGTH(cons(0, zerosInact))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ NonTerminationProof
↳ Complete Giesl Middeldorp-Transformation
LENGTH(cons(0, zerosInact)) → LENGTH(cons(0, zerosInact))
LENGTH(cons(0, zerosInact)) → LENGTH(cons(0, 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(and(tt, X)) → mark(X)
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(s(length(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(and(x1, x2)) → and(active(x1), x2)
and(mark(x1), x2) → mark(and(x1, x2))
proper(and(x1, x2)) → and(proper(x1), proper(x2))
and(ok(x1), ok(x2)) → ok(and(x1, x2))
proper(tt) → ok(tt)
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)
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
top(mark(x0))
top(ok(x0))
active(zeros) → mark(cons(0, zeros))
active(and(tt, X)) → mark(X)
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(s(length(L)))
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(and(x1, x2)) → and(active(x1), x2)
and(mark(x1), x2) → mark(and(x1, x2))
proper(and(x1, x2)) → and(proper(x1), proper(x2))
and(ok(x1), ok(x2)) → ok(and(x1, x2))
proper(tt) → ok(tt)
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)
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
top(mark(x0))
top(ok(x0))
Used ordering:
active(length(nil)) → mark(0)
POL(0) = 0
POL(active(x1)) = x1
POL(and(x1, x2)) = x1 + 2·x2
POL(cons(x1, x2)) = 2·x1 + x2
POL(length(x1)) = 2·x1
POL(mark(x1)) = x1
POL(nil) = 2
POL(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
↳ RRRPoloQTRSProof
active(zeros) → mark(cons(0, zeros))
active(and(tt, X)) → mark(X)
active(length(cons(N, L))) → mark(s(length(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(and(x1, x2)) → and(active(x1), x2)
and(mark(x1), x2) → mark(and(x1, x2))
proper(and(x1, x2)) → and(proper(x1), proper(x2))
and(ok(x1), ok(x2)) → ok(and(x1, x2))
proper(tt) → ok(tt)
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)
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
top(mark(x0))
top(ok(x0))
active(zeros) → mark(cons(0, zeros))
active(and(tt, X)) → mark(X)
active(length(cons(N, L))) → mark(s(length(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(and(x1, x2)) → and(active(x1), x2)
and(mark(x1), x2) → mark(and(x1, x2))
proper(and(x1, x2)) → and(proper(x1), proper(x2))
and(ok(x1), ok(x2)) → ok(and(x1, x2))
proper(tt) → ok(tt)
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)
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
top(mark(x0))
top(ok(x0))
Used ordering:
active(and(tt, X)) → mark(X)
POL(0) = 0
POL(active(x1)) = x1
POL(and(x1, x2)) = 2·x1 + 2·x2
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = x1
POL(mark(x1)) = x1
POL(nil) = 0
POL(ok(x1)) = x1
POL(proper(x1)) = x1
POL(s(x1)) = x1
POL(top(x1)) = x1
POL(tt) = 1
POL(zeros) = 0
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(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(and(x1, x2)) → and(active(x1), x2)
and(mark(x1), x2) → mark(and(x1, x2))
proper(and(x1, x2)) → and(proper(x1), proper(x2))
and(ok(x1), ok(x2)) → ok(and(x1, x2))
proper(tt) → ok(tt)
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)
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
top(mark(x0))
top(ok(x0))
AND(ok(x1), ok(x2)) → AND(x1, x2)
TOP(mark(x)) → PROPER(x)
ACTIVE(zeros) → CONS(0, zeros)
PROPER(and(x1, x2)) → PROPER(x1)
LENGTH(ok(x1)) → LENGTH(x1)
PROPER(length(x1)) → PROPER(x1)
S(mark(x1)) → S(x1)
ACTIVE(length(cons(N, L))) → LENGTH(L)
PROPER(and(x1, x2)) → AND(proper(x1), proper(x2))
LENGTH(mark(x1)) → LENGTH(x1)
ACTIVE(and(x1, x2)) → ACTIVE(x1)
TOP(mark(x)) → TOP(proper(x))
PROPER(s(x1)) → S(proper(x1))
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(cons(N, L))) → S(length(L))
ACTIVE(length(x1)) → ACTIVE(x1)
ACTIVE(cons(x1, x2)) → ACTIVE(x1)
PROPER(cons(x1, x2)) → PROPER(x1)
ACTIVE(length(x1)) → LENGTH(active(x1))
PROPER(length(x1)) → LENGTH(proper(x1))
TOP(ok(x)) → ACTIVE(x)
ACTIVE(s(x1)) → S(active(x1))
PROPER(cons(x1, x2)) → CONS(proper(x1), proper(x2))
PROPER(s(x1)) → PROPER(x1)
TOP(ok(x)) → TOP(active(x))
PROPER(cons(x1, x2)) → PROPER(x2)
CONS(ok(x1), ok(x2)) → CONS(x1, x2)
PROPER(and(x1, x2)) → PROPER(x2)
ACTIVE(and(x1, x2)) → AND(active(x1), x2)
AND(mark(x1), x2) → AND(x1, x2)
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(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(and(x1, x2)) → and(active(x1), x2)
and(mark(x1), x2) → mark(and(x1, x2))
proper(and(x1, x2)) → and(proper(x1), proper(x2))
and(ok(x1), ok(x2)) → ok(and(x1, x2))
proper(tt) → ok(tt)
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)
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
AND(ok(x1), ok(x2)) → AND(x1, x2)
TOP(mark(x)) → PROPER(x)
ACTIVE(zeros) → CONS(0, zeros)
PROPER(and(x1, x2)) → PROPER(x1)
LENGTH(ok(x1)) → LENGTH(x1)
PROPER(length(x1)) → PROPER(x1)
S(mark(x1)) → S(x1)
ACTIVE(length(cons(N, L))) → LENGTH(L)
PROPER(and(x1, x2)) → AND(proper(x1), proper(x2))
LENGTH(mark(x1)) → LENGTH(x1)
ACTIVE(and(x1, x2)) → ACTIVE(x1)
TOP(mark(x)) → TOP(proper(x))
PROPER(s(x1)) → S(proper(x1))
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(cons(N, L))) → S(length(L))
ACTIVE(length(x1)) → ACTIVE(x1)
ACTIVE(cons(x1, x2)) → ACTIVE(x1)
PROPER(cons(x1, x2)) → PROPER(x1)
ACTIVE(length(x1)) → LENGTH(active(x1))
PROPER(length(x1)) → LENGTH(proper(x1))
TOP(ok(x)) → ACTIVE(x)
ACTIVE(s(x1)) → S(active(x1))
PROPER(cons(x1, x2)) → CONS(proper(x1), proper(x2))
PROPER(s(x1)) → PROPER(x1)
TOP(ok(x)) → TOP(active(x))
PROPER(cons(x1, x2)) → PROPER(x2)
CONS(ok(x1), ok(x2)) → CONS(x1, x2)
PROPER(and(x1, x2)) → PROPER(x2)
ACTIVE(and(x1, x2)) → AND(active(x1), x2)
AND(mark(x1), x2) → AND(x1, x2)
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(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(and(x1, x2)) → and(active(x1), x2)
and(mark(x1), x2) → mark(and(x1, x2))
proper(and(x1, x2)) → and(proper(x1), proper(x2))
and(ok(x1), ok(x2)) → ok(and(x1, x2))
proper(tt) → ok(tt)
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)
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ 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(length(cons(N, L))) → mark(s(length(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(and(x1, x2)) → and(active(x1), x2)
and(mark(x1), x2) → mark(and(x1, x2))
proper(and(x1, x2)) → and(proper(x1), proper(x2))
and(ok(x1), ok(x2)) → ok(and(x1, x2))
proper(tt) → ok(tt)
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)
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ 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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ 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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
LENGTH(mark(x1)) → LENGTH(x1)
LENGTH(ok(x1)) → LENGTH(x1)
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(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(and(x1, x2)) → and(active(x1), x2)
and(mark(x1), x2) → mark(and(x1, x2))
proper(and(x1, x2)) → and(proper(x1), proper(x2))
and(ok(x1), ok(x2)) → ok(and(x1, x2))
proper(tt) → ok(tt)
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)
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ 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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ 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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
AND(ok(x1), ok(x2)) → AND(x1, x2)
AND(mark(x1), x2) → AND(x1, x2)
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(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(and(x1, x2)) → and(active(x1), x2)
and(mark(x1), x2) → mark(and(x1, x2))
proper(and(x1, x2)) → and(proper(x1), proper(x2))
and(ok(x1), ok(x2)) → ok(and(x1, x2))
proper(tt) → ok(tt)
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)
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
AND(ok(x1), ok(x2)) → AND(x1, x2)
AND(mark(x1), x2) → AND(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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
AND(ok(x1), ok(x2)) → AND(x1, x2)
AND(mark(x1), x2) → AND(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ 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(length(cons(N, L))) → mark(s(length(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(and(x1, x2)) → and(active(x1), x2)
and(mark(x1), x2) → mark(and(x1, x2))
proper(and(x1, x2)) → and(proper(x1), proper(x2))
and(ok(x1), ok(x2)) → ok(and(x1, x2))
proper(tt) → ok(tt)
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)
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ 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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ 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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
PROPER(and(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(and(x1, x2)) → PROPER(x2)
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(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(and(x1, x2)) → and(active(x1), x2)
and(mark(x1), x2) → mark(and(x1, x2))
proper(and(x1, x2)) → and(proper(x1), proper(x2))
and(ok(x1), ok(x2)) → ok(and(x1, x2))
proper(tt) → ok(tt)
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)
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
PROPER(and(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(and(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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
top(mark(x0))
top(ok(x0))
active(zeros)
proper(zeros)
active(cons(x0, x1))
proper(cons(x0, x1))
proper(0)
active(and(x0, x1))
proper(and(x0, x1))
proper(tt)
active(length(x0))
proper(length(x0))
proper(nil)
active(s(x0))
proper(s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
PROPER(and(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(and(x1, x2)) → PROPER(x2)
cons(mark(x0), x1)
cons(ok(x0), ok(x1))
and(mark(x0), x1)
and(ok(x0), ok(x1))
length(mark(x0))
length(ok(x0))
s(mark(x0))
s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
ACTIVE(length(x1)) → ACTIVE(x1)
ACTIVE(cons(x1, x2)) → ACTIVE(x1)
ACTIVE(and(x1, x2)) → ACTIVE(x1)
ACTIVE(s(x1)) → ACTIVE(x1)
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(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(and(x1, x2)) → and(active(x1), x2)
and(mark(x1), x2) → mark(and(x1, x2))
proper(and(x1, x2)) → and(proper(x1), proper(x2))
and(ok(x1), ok(x2)) → ok(and(x1, x2))
proper(tt) → ok(tt)
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)
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
ACTIVE(length(x1)) → ACTIVE(x1)
ACTIVE(cons(x1, x2)) → ACTIVE(x1)
ACTIVE(and(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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
top(mark(x0))
top(ok(x0))
active(zeros)
proper(zeros)
active(cons(x0, x1))
proper(cons(x0, x1))
proper(0)
active(and(x0, x1))
proper(and(x0, x1))
proper(tt)
active(length(x0))
proper(length(x0))
proper(nil)
active(s(x0))
proper(s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
ACTIVE(length(x1)) → ACTIVE(x1)
ACTIVE(cons(x1, x2)) → ACTIVE(x1)
ACTIVE(and(x1, x2)) → ACTIVE(x1)
ACTIVE(s(x1)) → ACTIVE(x1)
cons(mark(x0), x1)
cons(ok(x0), ok(x1))
and(mark(x0), x1)
and(ok(x0), ok(x1))
length(mark(x0))
length(ok(x0))
s(mark(x0))
s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ 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(length(cons(N, L))) → mark(s(length(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(and(x1, x2)) → and(active(x1), x2)
and(mark(x1), x2) → mark(and(x1, x2))
proper(and(x1, x2)) → and(proper(x1), proper(x2))
and(ok(x1), ok(x2)) → ok(and(x1, x2))
proper(tt) → ok(tt)
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)
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
s(ok(x1)) → ok(s(x1))
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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ 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(length(cons(N, L))) → mark(s(length(L)))
active(cons(x1, x2)) → cons(active(x1), x2)
active(and(x1, x2)) → and(active(x1), x2)
active(length(x1)) → length(active(x1))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
and(mark(x1), x2) → mark(and(x1, x2))
and(ok(x1), ok(x2)) → ok(and(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(and(x1, x2)) → and(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
proper(s(x1)) → s(proper(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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ 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(length(cons(N, L))) → mark(s(length(L)))
active(cons(x1, x2)) → cons(active(x1), x2)
active(and(x1, x2)) → and(active(x1), x2)
active(length(x1)) → length(active(x1))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
and(mark(x1), x2) → mark(and(x1, x2))
and(ok(x1), ok(x2)) → ok(and(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(and(x1, x2)) → and(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
proper(s(x1)) → s(proper(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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
TOP(ok(and(x0, x1))) → TOP(and(active(x0), x1))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(ok(zeros)) → TOP(mark(cons(0, zeros)))
TOP(ok(cons(x0, x1))) → TOP(cons(active(x0), x1))
TOP(ok(length(cons(x0, x1)))) → TOP(mark(s(length(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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
TOP(ok(and(x0, x1))) → TOP(and(active(x0), x1))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(ok(length(cons(x0, x1)))) → TOP(mark(s(length(x1))))
TOP(mark(x)) → TOP(proper(x))
TOP(ok(zeros)) → TOP(mark(cons(0, zeros)))
TOP(ok(cons(x0, x1))) → TOP(cons(active(x0), x1))
TOP(ok(length(x0))) → TOP(length(active(x0)))
active(zeros) → mark(cons(0, zeros))
active(length(cons(N, L))) → mark(s(length(L)))
active(cons(x1, x2)) → cons(active(x1), x2)
active(and(x1, x2)) → and(active(x1), x2)
active(length(x1)) → length(active(x1))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
and(mark(x1), x2) → mark(and(x1, x2))
and(ok(x1), ok(x2)) → ok(and(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(and(x1, x2)) → and(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
proper(s(x1)) → s(proper(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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
TOP(mark(nil)) → TOP(ok(nil))
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(mark(and(x0, x1))) → TOP(and(proper(x0), proper(x1)))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(mark(zeros)) → TOP(ok(zeros))
TOP(mark(length(x0))) → TOP(length(proper(x0)))
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
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
TOP(ok(and(x0, x1))) → TOP(and(active(x0), x1))
TOP(ok(length(cons(x0, x1)))) → TOP(mark(s(length(x1))))
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(mark(and(x0, x1))) → TOP(and(proper(x0), proper(x1)))
TOP(ok(zeros)) → TOP(mark(cons(0, zeros)))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(mark(zeros)) → TOP(ok(zeros))
TOP(ok(length(x0))) → TOP(length(active(x0)))
TOP(mark(tt)) → TOP(ok(tt))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(nil)) → TOP(ok(nil))
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(length(cons(N, L))) → mark(s(length(L)))
active(cons(x1, x2)) → cons(active(x1), x2)
active(and(x1, x2)) → and(active(x1), x2)
active(length(x1)) → length(active(x1))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
and(mark(x1), x2) → mark(and(x1, x2))
and(ok(x1), ok(x2)) → ok(and(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(and(x1, x2)) → and(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
proper(s(x1)) → s(proper(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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
TOP(ok(and(x0, x1))) → TOP(and(active(x0), x1))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(ok(length(cons(x0, x1)))) → TOP(mark(s(length(x1))))
TOP(mark(and(x0, x1))) → TOP(and(proper(x0), proper(x1)))
TOP(ok(zeros)) → TOP(mark(cons(0, zeros)))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(ok(cons(x0, x1))) → TOP(cons(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(length(cons(N, L))) → mark(s(length(L)))
active(cons(x1, x2)) → cons(active(x1), x2)
active(and(x1, x2)) → and(active(x1), x2)
active(length(x1)) → length(active(x1))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
and(mark(x1), x2) → mark(and(x1, x2))
and(ok(x1), ok(x2)) → ok(and(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(and(x1, x2)) → and(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
proper(s(x1)) → s(proper(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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
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(ok(and(x0, x1))) → TOP(and(active(x0), x1))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(ok(length(cons(x0, x1)))) → TOP(mark(s(length(x1))))
TOP(mark(and(x0, x1))) → TOP(and(proper(x0), proper(x1)))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(ok(cons(x0, x1))) → TOP(cons(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(active(x1)) = 0
POL(and(x1, x2)) = 0
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
length(ok(x1)) → ok(length(x1))
and(mark(x1), x2) → mark(and(x1, x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
s(mark(x1)) → mark(s(x1))
and(ok(x1), ok(x2)) → ok(and(x1, x2))
s(ok(x1)) → ok(s(x1))
cons(mark(x1), x2) → mark(cons(x1, x2))
length(mark(x1)) → mark(length(x1))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
TOP(ok(and(x0, x1))) → TOP(and(active(x0), x1))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(ok(length(cons(x0, x1)))) → TOP(mark(s(length(x1))))
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(mark(and(x0, x1))) → TOP(and(proper(x0), proper(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(length(cons(N, L))) → mark(s(length(L)))
active(cons(x1, x2)) → cons(active(x1), x2)
active(and(x1, x2)) → and(active(x1), x2)
active(length(x1)) → length(active(x1))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
and(mark(x1), x2) → mark(and(x1, x2))
and(ok(x1), ok(x2)) → ok(and(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(and(x1, x2)) → and(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
proper(s(x1)) → s(proper(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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))
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(s(length(x1))))
Used ordering: Polynomial interpretation [25]:
TOP(ok(and(x0, x1))) → TOP(and(active(x0), x1))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(mark(and(x0, x1))) → TOP(and(proper(x0), proper(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(active(x1)) = x1
POL(and(x1, x2)) = x1 + x2
POL(cons(x1, x2)) = 1
POL(length(x1)) = 1 + x1
POL(mark(x1)) = x1
POL(nil) = 0
POL(ok(x1)) = x1
POL(proper(x1)) = x1
POL(s(x1)) = 1
POL(tt) = 0
POL(zeros) = 1
active(length(x1)) → length(active(x1))
length(ok(x1)) → ok(length(x1))
proper(zeros) → ok(zeros)
proper(tt) → ok(tt)
active(and(x1, x2)) → and(active(x1), x2)
active(s(x1)) → s(active(x1))
and(mark(x1), x2) → mark(and(x1, x2))
cons(ok(x1), ok(x2)) → ok(cons(x1, x2))
active(cons(x1, x2)) → cons(active(x1), x2)
proper(and(x1, x2)) → and(proper(x1), proper(x2))
s(mark(x1)) → mark(s(x1))
proper(s(x1)) → s(proper(x1))
proper(0) → ok(0)
and(ok(x1), ok(x2)) → ok(and(x1, x2))
s(ok(x1)) → ok(s(x1))
active(length(cons(N, L))) → mark(s(length(L)))
proper(nil) → ok(nil)
proper(cons(x1, x2)) → cons(proper(x1), proper(x2))
active(zeros) → mark(cons(0, zeros))
cons(mark(x1), x2) → mark(cons(x1, x2))
length(mark(x1)) → mark(length(x1))
proper(length(x1)) → length(proper(x1))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ Improved Ferreira Ribeiro-Transformation
↳ Complete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
TOP(ok(and(x0, x1))) → TOP(and(active(x0), x1))
TOP(ok(s(x0))) → TOP(s(active(x0)))
TOP(mark(cons(x0, x1))) → TOP(cons(proper(x0), proper(x1)))
TOP(mark(and(x0, x1))) → TOP(and(proper(x0), proper(x1)))
TOP(mark(s(x0))) → TOP(s(proper(x0)))
TOP(ok(cons(x0, x1))) → TOP(cons(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(length(cons(N, L))) → mark(s(length(L)))
active(cons(x1, x2)) → cons(active(x1), x2)
active(and(x1, x2)) → and(active(x1), x2)
active(length(x1)) → length(active(x1))
active(s(x1)) → s(active(x1))
s(mark(x1)) → mark(s(x1))
s(ok(x1)) → ok(s(x1))
length(mark(x1)) → mark(length(x1))
length(ok(x1)) → ok(length(x1))
and(mark(x1), x2) → mark(and(x1, x2))
and(ok(x1), ok(x2)) → ok(and(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(and(x1, x2)) → and(proper(x1), proper(x2))
proper(tt) → ok(tt)
proper(length(x1)) → length(proper(x1))
proper(nil) → ok(nil)
proper(s(x1)) → s(proper(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(and(x0, x1))
and(mark(x0), x1)
proper(and(x0, x1))
and(ok(x0), ok(x1))
proper(tt)
active(length(x0))
length(mark(x0))
proper(length(x0))
length(ok(x0))
proper(nil)
active(s(x0))
s(mark(x0))
proper(s(x0))
s(ok(x0))