0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPOrderProof (⇔)
↳7 QDP
↳8 PisEmptyProof (⇔)
↳9 TRUE
↳10 QDP
↳11 QDPOrderProof (⇔)
↳12 QDP
↳13 QDPOrderProof (⇔)
↳14 QDP
↳15 PisEmptyProof (⇔)
↳16 TRUE
a__eq(0, 0) → true
a__eq(s(X), s(Y)) → a__eq(X, Y)
a__eq(X, Y) → false
a__inf(X) → cons(X, inf(s(X)))
a__take(0, X) → nil
a__take(s(X), cons(Y, L)) → cons(Y, take(X, L))
a__length(nil) → 0
a__length(cons(X, L)) → s(length(L))
mark(eq(X1, X2)) → a__eq(X1, X2)
mark(inf(X)) → a__inf(mark(X))
mark(take(X1, X2)) → a__take(mark(X1), mark(X2))
mark(length(X)) → a__length(mark(X))
mark(0) → 0
mark(true) → true
mark(s(X)) → s(X)
mark(false) → false
mark(cons(X1, X2)) → cons(X1, X2)
mark(nil) → nil
a__eq(X1, X2) → eq(X1, X2)
a__inf(X) → inf(X)
a__take(X1, X2) → take(X1, X2)
a__length(X) → length(X)
A__EQ(s(X), s(Y)) → A__EQ(X, Y)
MARK(eq(X1, X2)) → A__EQ(X1, X2)
MARK(inf(X)) → A__INF(mark(X))
MARK(inf(X)) → MARK(X)
MARK(take(X1, X2)) → A__TAKE(mark(X1), mark(X2))
MARK(take(X1, X2)) → MARK(X1)
MARK(take(X1, X2)) → MARK(X2)
MARK(length(X)) → A__LENGTH(mark(X))
MARK(length(X)) → MARK(X)
a__eq(0, 0) → true
a__eq(s(X), s(Y)) → a__eq(X, Y)
a__eq(X, Y) → false
a__inf(X) → cons(X, inf(s(X)))
a__take(0, X) → nil
a__take(s(X), cons(Y, L)) → cons(Y, take(X, L))
a__length(nil) → 0
a__length(cons(X, L)) → s(length(L))
mark(eq(X1, X2)) → a__eq(X1, X2)
mark(inf(X)) → a__inf(mark(X))
mark(take(X1, X2)) → a__take(mark(X1), mark(X2))
mark(length(X)) → a__length(mark(X))
mark(0) → 0
mark(true) → true
mark(s(X)) → s(X)
mark(false) → false
mark(cons(X1, X2)) → cons(X1, X2)
mark(nil) → nil
a__eq(X1, X2) → eq(X1, X2)
a__inf(X) → inf(X)
a__take(X1, X2) → take(X1, X2)
a__length(X) → length(X)
A__EQ(s(X), s(Y)) → A__EQ(X, Y)
a__eq(0, 0) → true
a__eq(s(X), s(Y)) → a__eq(X, Y)
a__eq(X, Y) → false
a__inf(X) → cons(X, inf(s(X)))
a__take(0, X) → nil
a__take(s(X), cons(Y, L)) → cons(Y, take(X, L))
a__length(nil) → 0
a__length(cons(X, L)) → s(length(L))
mark(eq(X1, X2)) → a__eq(X1, X2)
mark(inf(X)) → a__inf(mark(X))
mark(take(X1, X2)) → a__take(mark(X1), mark(X2))
mark(length(X)) → a__length(mark(X))
mark(0) → 0
mark(true) → true
mark(s(X)) → s(X)
mark(false) → false
mark(cons(X1, X2)) → cons(X1, X2)
mark(nil) → nil
a__eq(X1, X2) → eq(X1, X2)
a__inf(X) → inf(X)
a__take(X1, X2) → take(X1, X2)
a__length(X) → length(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
A__EQ(s(X), s(Y)) → A__EQ(X, Y)
mark1 > aeq1 > true > inf
mark1 > aeq1 > false > inf
mark1 > aeq1 > eq1 > inf
mark1 > ainf > s1 > AEQ2 > inf
mark1 > ainf > s1 > take1 > inf
mark1 > atake1 > nil > inf
mark1 > atake1 > take1 > inf
mark1 > alength1 > s1 > AEQ2 > inf
mark1 > alength1 > s1 > take1 > inf
mark1 > alength1 > 0 > true > inf
mark1 > alength1 > 0 > nil > inf
mark1 > alength1 > length1 > inf
a__eq(0, 0) → true
a__eq(s(X), s(Y)) → a__eq(X, Y)
a__eq(X, Y) → false
a__inf(X) → cons(X, inf(s(X)))
a__take(0, X) → nil
a__take(s(X), cons(Y, L)) → cons(Y, take(X, L))
a__length(nil) → 0
a__length(cons(X, L)) → s(length(L))
mark(eq(X1, X2)) → a__eq(X1, X2)
mark(inf(X)) → a__inf(mark(X))
mark(take(X1, X2)) → a__take(mark(X1), mark(X2))
mark(length(X)) → a__length(mark(X))
mark(0) → 0
mark(true) → true
mark(s(X)) → s(X)
mark(false) → false
mark(cons(X1, X2)) → cons(X1, X2)
mark(nil) → nil
a__eq(X1, X2) → eq(X1, X2)
a__inf(X) → inf(X)
a__take(X1, X2) → take(X1, X2)
a__length(X) → length(X)
a__eq(0, 0) → true
a__eq(s(X), s(Y)) → a__eq(X, Y)
a__eq(X, Y) → false
a__inf(X) → cons(X, inf(s(X)))
a__take(0, X) → nil
a__take(s(X), cons(Y, L)) → cons(Y, take(X, L))
a__length(nil) → 0
a__length(cons(X, L)) → s(length(L))
mark(eq(X1, X2)) → a__eq(X1, X2)
mark(inf(X)) → a__inf(mark(X))
mark(take(X1, X2)) → a__take(mark(X1), mark(X2))
mark(length(X)) → a__length(mark(X))
mark(0) → 0
mark(true) → true
mark(s(X)) → s(X)
mark(false) → false
mark(cons(X1, X2)) → cons(X1, X2)
mark(nil) → nil
a__eq(X1, X2) → eq(X1, X2)
a__inf(X) → inf(X)
a__take(X1, X2) → take(X1, X2)
a__length(X) → length(X)
MARK(take(X1, X2)) → MARK(X1)
MARK(inf(X)) → MARK(X)
MARK(take(X1, X2)) → MARK(X2)
MARK(length(X)) → MARK(X)
a__eq(0, 0) → true
a__eq(s(X), s(Y)) → a__eq(X, Y)
a__eq(X, Y) → false
a__inf(X) → cons(X, inf(s(X)))
a__take(0, X) → nil
a__take(s(X), cons(Y, L)) → cons(Y, take(X, L))
a__length(nil) → 0
a__length(cons(X, L)) → s(length(L))
mark(eq(X1, X2)) → a__eq(X1, X2)
mark(inf(X)) → a__inf(mark(X))
mark(take(X1, X2)) → a__take(mark(X1), mark(X2))
mark(length(X)) → a__length(mark(X))
mark(0) → 0
mark(true) → true
mark(s(X)) → s(X)
mark(false) → false
mark(cons(X1, X2)) → cons(X1, X2)
mark(nil) → nil
a__eq(X1, X2) → eq(X1, X2)
a__inf(X) → inf(X)
a__take(X1, X2) → take(X1, X2)
a__length(X) → length(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(take(X1, X2)) → MARK(X1)
MARK(take(X1, X2)) → MARK(X2)
MARK(length(X)) → MARK(X)
MARK1 > cons
mark1 > aeq > true > cons
mark1 > aeq > false > cons
mark1 > aeq > eq > cons
mark1 > atake2 > take2 > cons
mark1 > atake2 > nil > 0 > cons
mark1 > alength1 > length1 > cons
mark1 > alength1 > 0 > cons
mark1 > alength1 > s > cons
a__eq(0, 0) → true
a__eq(s(X), s(Y)) → a__eq(X, Y)
a__eq(X, Y) → false
a__inf(X) → cons(X, inf(s(X)))
a__take(0, X) → nil
a__take(s(X), cons(Y, L)) → cons(Y, take(X, L))
a__length(nil) → 0
a__length(cons(X, L)) → s(length(L))
mark(eq(X1, X2)) → a__eq(X1, X2)
mark(inf(X)) → a__inf(mark(X))
mark(take(X1, X2)) → a__take(mark(X1), mark(X2))
mark(length(X)) → a__length(mark(X))
mark(0) → 0
mark(true) → true
mark(s(X)) → s(X)
mark(false) → false
mark(cons(X1, X2)) → cons(X1, X2)
mark(nil) → nil
a__eq(X1, X2) → eq(X1, X2)
a__inf(X) → inf(X)
a__take(X1, X2) → take(X1, X2)
a__length(X) → length(X)
MARK(inf(X)) → MARK(X)
a__eq(0, 0) → true
a__eq(s(X), s(Y)) → a__eq(X, Y)
a__eq(X, Y) → false
a__inf(X) → cons(X, inf(s(X)))
a__take(0, X) → nil
a__take(s(X), cons(Y, L)) → cons(Y, take(X, L))
a__length(nil) → 0
a__length(cons(X, L)) → s(length(L))
mark(eq(X1, X2)) → a__eq(X1, X2)
mark(inf(X)) → a__inf(mark(X))
mark(take(X1, X2)) → a__take(mark(X1), mark(X2))
mark(length(X)) → a__length(mark(X))
mark(0) → 0
mark(true) → true
mark(s(X)) → s(X)
mark(false) → false
mark(cons(X1, X2)) → cons(X1, X2)
mark(nil) → nil
a__eq(X1, X2) → eq(X1, X2)
a__inf(X) → inf(X)
a__take(X1, X2) → take(X1, X2)
a__length(X) → length(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(inf(X)) → MARK(X)
mark1 > aeq1 > true > nil
mark1 > aeq1 > false > nil
mark1 > ainf1 > inf1 > nil
mark1 > alength1 > 0 > nil
mark1 > alength1 > length1 > nil
a__eq(0, 0) → true
a__eq(s(X), s(Y)) → a__eq(X, Y)
a__eq(X, Y) → false
a__inf(X) → cons(X, inf(s(X)))
a__take(0, X) → nil
a__take(s(X), cons(Y, L)) → cons(Y, take(X, L))
a__length(nil) → 0
a__length(cons(X, L)) → s(length(L))
mark(eq(X1, X2)) → a__eq(X1, X2)
mark(inf(X)) → a__inf(mark(X))
mark(take(X1, X2)) → a__take(mark(X1), mark(X2))
mark(length(X)) → a__length(mark(X))
mark(0) → 0
mark(true) → true
mark(s(X)) → s(X)
mark(false) → false
mark(cons(X1, X2)) → cons(X1, X2)
mark(nil) → nil
a__eq(X1, X2) → eq(X1, X2)
a__inf(X) → inf(X)
a__take(X1, X2) → take(X1, X2)
a__length(X) → length(X)
a__eq(0, 0) → true
a__eq(s(X), s(Y)) → a__eq(X, Y)
a__eq(X, Y) → false
a__inf(X) → cons(X, inf(s(X)))
a__take(0, X) → nil
a__take(s(X), cons(Y, L)) → cons(Y, take(X, L))
a__length(nil) → 0
a__length(cons(X, L)) → s(length(L))
mark(eq(X1, X2)) → a__eq(X1, X2)
mark(inf(X)) → a__inf(mark(X))
mark(take(X1, X2)) → a__take(mark(X1), mark(X2))
mark(length(X)) → a__length(mark(X))
mark(0) → 0
mark(true) → true
mark(s(X)) → s(X)
mark(false) → false
mark(cons(X1, X2)) → cons(X1, X2)
mark(nil) → nil
a__eq(X1, X2) → eq(X1, X2)
a__inf(X) → inf(X)
a__take(X1, X2) → take(X1, X2)
a__length(X) → length(X)