rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
↳ QTRS
↳ Overlay + Local Confluence
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
REV1(X, cons(Y, L)) → REV1(Y, L)
REV2(X, cons(Y, L)) → REV(rev2(Y, L))
REV(cons(X, L)) → REV2(X, L)
REV2(X, cons(Y, L)) → REV2(Y, L)
REV2(X, cons(Y, L)) → REV(cons(X, rev(rev2(Y, L))))
REV(cons(X, L)) → REV1(X, L)
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
REV1(X, cons(Y, L)) → REV1(Y, L)
REV2(X, cons(Y, L)) → REV(rev2(Y, L))
REV(cons(X, L)) → REV2(X, L)
REV2(X, cons(Y, L)) → REV2(Y, L)
REV2(X, cons(Y, L)) → REV(cons(X, rev(rev2(Y, L))))
REV(cons(X, L)) → REV1(X, L)
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
REV1(X, cons(Y, L)) → REV1(Y, L)
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
REV1(X, cons(Y, L)) → REV1(Y, L)
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
REV1(X, cons(Y, L)) → REV1(Y, L)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
REV2(X, cons(Y, L)) → REV(rev2(Y, L))
REV(cons(X, L)) → REV2(X, L)
REV2(X, cons(Y, L)) → REV2(Y, L)
REV2(X, cons(Y, L)) → REV(cons(X, rev(rev2(Y, L))))
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
REV2(X, cons(Y, L)) → REV(rev2(Y, L))
REV2(X, cons(Y, L)) → REV2(Y, L)
REV2(X, cons(Y, L)) → REV(cons(X, rev(rev2(Y, L))))
Used ordering: Polynomial interpretation [25]:
REV(cons(X, L)) → REV2(X, L)
POL(0) = 0
POL(REV(x1)) = x1
POL(REV2(x1, x2)) = 1 + x2
POL(cons(x1, x2)) = 1 + x2
POL(nil) = 0
POL(rev(x1)) = x1
POL(rev1(x1, x2)) = 0
POL(rev2(x1, x2)) = x2
POL(s(x1)) = 0
rev(nil) → nil
rev2(X, nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
REV(cons(X, L)) → REV2(X, L)
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))