0 QTRS
↳1 QTRSRRRProof (⇔, 83 ms)
↳2 QTRS
↳3 QTRSRRRProof (⇔, 0 ms)
↳4 QTRS
↳5 DependencyPairsProof (⇔, 0 ms)
↳6 QDP
↳7 DependencyGraphProof (⇔, 0 ms)
↳8 AND
↳9 QDP
↳10 NonLoopProof (⇔, 0 ms)
↳11 NO
↳12 QDP
↳13 QDPSizeChangeProof (⇔, 0 ms)
↳14 YES
↳15 QDP
↳16 QDPSizeChangeProof (⇔, 0 ms)
↳17 YES
incr(nil) → nil
incr(cons(X, L)) → cons(s(X), incr(L))
adx(nil) → nil
adx(cons(X, L)) → incr(cons(X, adx(L)))
nats → adx(zeros)
zeros → cons(0, zeros)
head(cons(X, L)) → X
tail(cons(X, L)) → L
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
POL(0) = 0
POL(adx(x1)) = 2·x1
POL(cons(x1, x2)) = 2·x1 + x2
POL(head(x1)) = 2 + x1
POL(incr(x1)) = x1
POL(nats) = 0
POL(nil) = 2
POL(s(x1)) = x1
POL(tail(x1)) = 2 + x1
POL(zeros) = 0
adx(nil) → nil
head(cons(X, L)) → X
tail(cons(X, L)) → L
incr(nil) → nil
incr(cons(X, L)) → cons(s(X), incr(L))
adx(cons(X, L)) → incr(cons(X, adx(L)))
nats → adx(zeros)
zeros → cons(0, zeros)
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
POL(0) = 0
POL(adx(x1)) = 2·x1
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(incr(x1)) = x1
POL(nats) = 2
POL(nil) = 0
POL(s(x1)) = x1
POL(zeros) = 0
nats → adx(zeros)
incr(nil) → nil
incr(cons(X, L)) → cons(s(X), incr(L))
adx(cons(X, L)) → incr(cons(X, adx(L)))
zeros → cons(0, zeros)
INCR(cons(X, L)) → INCR(L)
ADX(cons(X, L)) → INCR(cons(X, adx(L)))
ADX(cons(X, L)) → ADX(L)
ZEROS → ZEROS
incr(nil) → nil
incr(cons(X, L)) → cons(s(X), incr(L))
adx(cons(X, L)) → incr(cons(X, adx(L)))
zeros → cons(0, zeros)
ZEROS → ZEROS
incr(nil) → nil
incr(cons(X, L)) → cons(s(X), incr(L))
adx(cons(X, L)) → incr(cons(X, adx(L)))
zeros → cons(0, zeros)
INCR(cons(X, L)) → INCR(L)
incr(nil) → nil
incr(cons(X, L)) → cons(s(X), incr(L))
adx(cons(X, L)) → incr(cons(X, adx(L)))
zeros → cons(0, zeros)
From the DPs we obtained the following set of size-change graphs:
ADX(cons(X, L)) → ADX(L)
incr(nil) → nil
incr(cons(X, L)) → cons(s(X), incr(L))
adx(cons(X, L)) → incr(cons(X, adx(L)))
zeros → cons(0, zeros)
From the DPs we obtained the following set of size-change graphs: