YES
nats → cons(0, incr(nats))
pairs → cons(0, incr(odds))
odds → incr(pairs)
incr(cons(X, XS)) → cons(s(X), incr(XS))
head(cons(X, XS)) → X
tail(cons(X, XS)) → XS
nats: empty set
cons: {1}
0: empty set
incr: {1}
pairs: empty set
odds: empty set
s: {1}
head: {1}
tail: {1}
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
nats → cons(0, incr(nats))
pairs → cons(0, incr(odds))
odds → incr(pairs)
incr(cons(X, XS)) → cons(s(X), incr(XS))
head(cons(X, XS)) → X
tail(cons(X, XS)) → XS
nats: empty set
cons: {1}
0: empty set
incr: {1}
pairs: empty set
odds: empty set
s: {1}
head: {1}
tail: {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
nats → cons(0, incrInact(nats))
pairs → cons(0, incrInact(odds))
odds → incr(pairs)
incr(cons(X, XS)) → cons(s(X), incrInact(a(XS)))
head(cons(X, XS)) → X
tail(cons(X, XS)) → a(XS)
a(x) → x
incr(x1) → incrInact(x1)
a(incrInact(x1)) → incr(x1)
nats → cons(0, incrInact(nats))
pairs → cons(0, incrInact(odds))
odds → incr(pairs)
incr(cons(X, XS)) → cons(s(X), incrInact(a(XS)))
head(cons(X, XS)) → X
tail(cons(X, XS)) → a(XS)
a(x) → x
incr(x1) → incrInact(x1)
a(incrInact(x1)) → incr(x1)
Used ordering:
head(cons(X, XS)) → X
tail(cons(X, XS)) → a(XS)
POL(0) = 0
POL(a(x1)) = x1
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(head(x1)) = 1 + x1
POL(incr(x1)) = x1
POL(incrInact(x1)) = x1
POL(nats) = 0
POL(odds) = 0
POL(pairs) = 0
POL(s(x1)) = x1
POL(tail(x1)) = 1 + x1
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ Incomplete Giesl Middeldorp-Transformation
nats → cons(0, incrInact(nats))
pairs → cons(0, incrInact(odds))
odds → incr(pairs)
incr(cons(X, XS)) → cons(s(X), incrInact(a(XS)))
a(x) → x
incr(x1) → incrInact(x1)
a(incrInact(x1)) → incr(x1)
NATS → NATS
A(incrInact(x1)) → INCR(x1)
PAIRS → ODDS
ODDS → PAIRS
INCR(cons(X, XS)) → A(XS)
ODDS → INCR(pairs)
nats → cons(0, incrInact(nats))
pairs → cons(0, incrInact(odds))
odds → incr(pairs)
incr(cons(X, XS)) → cons(s(X), incrInact(a(XS)))
a(x) → x
incr(x1) → incrInact(x1)
a(incrInact(x1)) → incr(x1)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ Incomplete Giesl Middeldorp-Transformation
NATS → NATS
A(incrInact(x1)) → INCR(x1)
PAIRS → ODDS
ODDS → PAIRS
INCR(cons(X, XS)) → A(XS)
ODDS → INCR(pairs)
nats → cons(0, incrInact(nats))
pairs → cons(0, incrInact(odds))
odds → incr(pairs)
incr(cons(X, XS)) → cons(s(X), incrInact(a(XS)))
a(x) → x
incr(x1) → incrInact(x1)
a(incrInact(x1)) → incr(x1)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ Incomplete Giesl Middeldorp-Transformation
A(incrInact(x1)) → INCR(x1)
INCR(cons(X, XS)) → A(XS)
nats → cons(0, incrInact(nats))
pairs → cons(0, incrInact(odds))
odds → incr(pairs)
incr(cons(X, XS)) → cons(s(X), incrInact(a(XS)))
a(x) → x
incr(x1) → incrInact(x1)
a(incrInact(x1)) → incr(x1)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ Incomplete Giesl Middeldorp-Transformation
A(incrInact(x1)) → INCR(x1)
INCR(cons(X, XS)) → A(XS)
From the DPs we obtained the following set of size-change graphs:
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Incomplete Giesl Middeldorp-Transformation
PAIRS → ODDS
ODDS → PAIRS
nats → cons(0, incrInact(nats))
pairs → cons(0, incrInact(odds))
odds → incr(pairs)
incr(cons(X, XS)) → cons(s(X), incrInact(a(XS)))
a(x) → x
incr(x1) → incrInact(x1)
a(incrInact(x1)) → incr(x1)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ NonTerminationProof
↳ QDP
↳ Incomplete Giesl Middeldorp-Transformation
PAIRS → ODDS
ODDS → PAIRS
PAIRS → ODDS
ODDS → PAIRS
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ Incomplete Giesl Middeldorp-Transformation
NATS → NATS
nats → cons(0, incrInact(nats))
pairs → cons(0, incrInact(odds))
odds → incr(pairs)
incr(cons(X, XS)) → cons(s(X), incrInact(a(XS)))
a(x) → x
incr(x1) → incrInact(x1)
a(incrInact(x1)) → incr(x1)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ NonTerminationProof
↳ Incomplete Giesl Middeldorp-Transformation
NATS → NATS
NATS → NATS
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
mark(nats) → natsActive
natsActive → nats
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(head(x1)) → headActive(mark(x1))
headActive(x1) → head(x1)
mark(tail(x1)) → tailActive(mark(x1))
tailActive(x1) → tail(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
headActive(cons(X, XS)) → mark(X)
tailActive(cons(X, XS)) → mark(XS)
mark(nats) → natsActive
natsActive → nats
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(head(x1)) → headActive(mark(x1))
headActive(x1) → head(x1)
mark(tail(x1)) → tailActive(mark(x1))
tailActive(x1) → tail(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
headActive(cons(X, XS)) → mark(X)
tailActive(cons(X, XS)) → mark(XS)
Used ordering:
mark(head(x1)) → headActive(mark(x1))
headActive(cons(X, XS)) → mark(X)
POL(0) = 0
POL(cons(x1, x2)) = x1 + x2
POL(head(x1)) = 2 + 2·x1
POL(headActive(x1)) = 2 + 2·x1
POL(incr(x1)) = 2·x1
POL(incrActive(x1)) = 2·x1
POL(mark(x1)) = 2·x1
POL(nats) = 0
POL(natsActive) = 0
POL(odds) = 0
POL(oddsActive) = 0
POL(pairs) = 0
POL(pairsActive) = 0
POL(s(x1)) = x1
POL(tail(x1)) = 2·x1
POL(tailActive(x1)) = 2·x1
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
mark(nats) → natsActive
natsActive → nats
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
headActive(x1) → head(x1)
mark(tail(x1)) → tailActive(mark(x1))
tailActive(x1) → tail(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
tailActive(cons(X, XS)) → mark(XS)
mark(nats) → natsActive
natsActive → nats
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
headActive(x1) → head(x1)
mark(tail(x1)) → tailActive(mark(x1))
tailActive(x1) → tail(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
tailActive(cons(X, XS)) → mark(XS)
Used ordering:
headActive(x1) → head(x1)
POL(0) = 0
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(head(x1)) = 1 + x1
POL(headActive(x1)) = 2 + x1
POL(incr(x1)) = 2·x1
POL(incrActive(x1)) = 2·x1
POL(mark(x1)) = x1
POL(nats) = 0
POL(natsActive) = 0
POL(odds) = 0
POL(oddsActive) = 0
POL(pairs) = 0
POL(pairsActive) = 0
POL(s(x1)) = 2·x1
POL(tail(x1)) = 2·x1
POL(tailActive(x1)) = 2·x1
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
mark(nats) → natsActive
natsActive → nats
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(tail(x1)) → tailActive(mark(x1))
tailActive(x1) → tail(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
tailActive(cons(X, XS)) → mark(XS)
mark(nats) → natsActive
natsActive → nats
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(tail(x1)) → tailActive(mark(x1))
tailActive(x1) → tail(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
tailActive(cons(X, XS)) → mark(XS)
Used ordering:
tailActive(cons(X, XS)) → mark(XS)
POL(0) = 0
POL(cons(x1, x2)) = 2·x1 + x2
POL(incr(x1)) = 2·x1
POL(incrActive(x1)) = 2·x1
POL(mark(x1)) = x1
POL(nats) = 0
POL(natsActive) = 0
POL(odds) = 0
POL(oddsActive) = 0
POL(pairs) = 0
POL(pairsActive) = 0
POL(s(x1)) = 2·x1
POL(tail(x1)) = 1 + 2·x1
POL(tailActive(x1)) = 1 + 2·x1
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
mark(nats) → natsActive
natsActive → nats
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(tail(x1)) → tailActive(mark(x1))
tailActive(x1) → tail(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
mark(nats) → natsActive
natsActive → nats
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(tail(x1)) → tailActive(mark(x1))
tailActive(x1) → tail(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
Used ordering:
mark(tail(x1)) → tailActive(mark(x1))
POL(0) = 0
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(incr(x1)) = 2·x1
POL(incrActive(x1)) = 2·x1
POL(mark(x1)) = 2·x1
POL(nats) = 0
POL(natsActive) = 0
POL(odds) = 0
POL(oddsActive) = 0
POL(pairs) = 0
POL(pairsActive) = 0
POL(s(x1)) = x1
POL(tail(x1)) = 2 + 2·x1
POL(tailActive(x1)) = 2 + 2·x1
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
mark(nats) → natsActive
natsActive → nats
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
tailActive(x1) → tail(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
mark(nats) → natsActive
natsActive → nats
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
tailActive(x1) → tail(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
Used ordering:
tailActive(x1) → tail(x1)
POL(0) = 0
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(incr(x1)) = x1
POL(incrActive(x1)) = x1
POL(mark(x1)) = x1
POL(nats) = 0
POL(natsActive) = 0
POL(odds) = 0
POL(oddsActive) = 0
POL(pairs) = 0
POL(pairsActive) = 0
POL(s(x1)) = x1
POL(tail(x1)) = 1 + 2·x1
POL(tailActive(x1)) = 2 + 2·x1
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
mark(nats) → natsActive
natsActive → nats
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
mark(nats) → natsActive
natsActive → nats
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
Used ordering:
natsActive → nats
POL(0) = 0
POL(cons(x1, x2)) = 2·x1 + x2
POL(incr(x1)) = 2·x1
POL(incrActive(x1)) = 2·x1
POL(mark(x1)) = 2·x1
POL(nats) = 1
POL(natsActive) = 2
POL(odds) = 0
POL(oddsActive) = 0
POL(pairs) = 0
POL(pairsActive) = 0
POL(s(x1)) = x1
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
mark(nats) → natsActive
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
INCRACTIVE(cons(X, XS)) → MARK(X)
MARK(pairs) → PAIRSACTIVE
MARK(s(x1)) → MARK(x1)
ODDSACTIVE → PAIRSACTIVE
MARK(odds) → ODDSACTIVE
MARK(nats) → NATSACTIVE
ODDSACTIVE → INCRACTIVE(pairsActive)
MARK(incr(x1)) → MARK(x1)
MARK(incr(x1)) → INCRACTIVE(mark(x1))
MARK(cons(x1, x2)) → MARK(x1)
mark(nats) → natsActive
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
INCRACTIVE(cons(X, XS)) → MARK(X)
MARK(pairs) → PAIRSACTIVE
MARK(s(x1)) → MARK(x1)
ODDSACTIVE → PAIRSACTIVE
MARK(odds) → ODDSACTIVE
MARK(nats) → NATSACTIVE
ODDSACTIVE → INCRACTIVE(pairsActive)
MARK(incr(x1)) → MARK(x1)
MARK(incr(x1)) → INCRACTIVE(mark(x1))
MARK(cons(x1, x2)) → MARK(x1)
mark(nats) → natsActive
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ RuleRemovalProof
INCRACTIVE(cons(X, XS)) → MARK(X)
MARK(s(x1)) → MARK(x1)
MARK(odds) → ODDSACTIVE
ODDSACTIVE → INCRACTIVE(pairsActive)
MARK(incr(x1)) → MARK(x1)
MARK(incr(x1)) → INCRACTIVE(mark(x1))
MARK(cons(x1, x2)) → MARK(x1)
mark(nats) → natsActive
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
MARK(odds) → ODDSACTIVE
POL(0) = 0
POL(INCRACTIVE(x1)) = x1
POL(MARK(x1)) = 2·x1
POL(ODDSACTIVE) = 1
POL(cons(x1, x2)) = 2·x1 + x2
POL(incr(x1)) = x1
POL(incrActive(x1)) = x1
POL(mark(x1)) = x1
POL(nats) = 0
POL(natsActive) = 0
POL(odds) = 1
POL(oddsActive) = 1
POL(pairs) = 1
POL(pairsActive) = 1
POL(s(x1)) = x1
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ DependencyGraphProof
INCRACTIVE(cons(X, XS)) → MARK(X)
MARK(s(x1)) → MARK(x1)
ODDSACTIVE → INCRACTIVE(pairsActive)
MARK(incr(x1)) → INCRACTIVE(mark(x1))
MARK(incr(x1)) → MARK(x1)
MARK(cons(x1, x2)) → MARK(x1)
mark(nats) → natsActive
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
INCRACTIVE(cons(X, XS)) → MARK(X)
MARK(s(x1)) → MARK(x1)
MARK(incr(x1)) → MARK(x1)
MARK(incr(x1)) → INCRACTIVE(mark(x1))
MARK(cons(x1, x2)) → MARK(x1)
mark(nats) → natsActive
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(s(x1)) → MARK(x1)
MARK(incr(x1)) → MARK(x1)
MARK(incr(x1)) → INCRACTIVE(mark(x1))
Used ordering: Polynomial interpretation [25]:
INCRACTIVE(cons(X, XS)) → MARK(X)
MARK(cons(x1, x2)) → MARK(x1)
POL(0) = 0
POL(INCRACTIVE(x1)) = x1
POL(MARK(x1)) = x1
POL(cons(x1, x2)) = x1
POL(incr(x1)) = 1 + x1
POL(incrActive(x1)) = 1 + x1
POL(mark(x1)) = x1
POL(nats) = 0
POL(natsActive) = 0
POL(odds) = 1
POL(oddsActive) = 1
POL(pairs) = 0
POL(pairsActive) = 0
POL(s(x1)) = 1 + x1
mark(nats) → natsActive
mark(cons(x1, x2)) → cons(mark(x1), x2)
oddsActive → incrActive(pairsActive)
mark(odds) → oddsActive
mark(0) → 0
pairsActive → cons(0, incr(odds))
oddsActive → odds
natsActive → cons(0, incr(nats))
mark(s(x1)) → s(mark(x1))
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(pairs) → pairsActive
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
pairsActive → pairs
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
INCRACTIVE(cons(X, XS)) → MARK(X)
MARK(cons(x1, x2)) → MARK(x1)
mark(nats) → natsActive
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
MARK(cons(x1, x2)) → MARK(x1)
mark(nats) → natsActive
mark(pairs) → pairsActive
pairsActive → pairs
mark(odds) → oddsActive
oddsActive → odds
mark(incr(x1)) → incrActive(mark(x1))
incrActive(x1) → incr(x1)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(s(x1)) → s(mark(x1))
natsActive → cons(0, incr(nats))
pairsActive → cons(0, incr(odds))
oddsActive → incrActive(pairsActive)
incrActive(cons(X, XS)) → cons(s(mark(X)), incr(XS))
↳ CSR
↳ Zantema-Transformation
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
MARK(cons(x1, x2)) → MARK(x1)
From the DPs we obtained the following set of size-change graphs: