YES
0 QTRS
↳1 QTRSRRRProof (⇔, 85 ms)
↳2 QTRS
↳3 QTRSRRRProof (⇔, 2 ms)
↳4 QTRS
↳5 QTRSRRRProof (⇔, 14 ms)
↳6 QTRS
↳7 QTRSRRRProof (⇔, 0 ms)
↳8 QTRS
↳9 QTRSRRRProof (⇔, 0 ms)
↳10 QTRS
↳11 QTRSRRRProof (⇔, 0 ms)
↳12 QTRS
↳13 RisEmptyProof (⇔, 0 ms)
↳14 YES
a____(__(X, Y), Z) → a____(mark(X), a____(mark(Y), mark(Z)))
a____(X, nil) → mark(X)
a____(nil, X) → mark(X)
a__U11(tt) → tt
a__U21(tt, V2) → a__U22(a__isList(V2))
a__U22(tt) → tt
a__U31(tt) → tt
a__U41(tt, V2) → a__U42(a__isNeList(V2))
a__U42(tt) → tt
a__U51(tt, V2) → a__U52(a__isList(V2))
a__U52(tt) → tt
a__U61(tt) → tt
a__U71(tt, P) → a__U72(a__isPal(P))
a__U72(tt) → tt
a__U81(tt) → tt
a__isList(V) → a__U11(a__isNeList(V))
a__isList(nil) → tt
a__isList(__(V1, V2)) → a__U21(a__isList(V1), V2)
a__isNeList(V) → a__U31(a__isQid(V))
a__isNeList(__(V1, V2)) → a__U41(a__isList(V1), V2)
a__isNeList(__(V1, V2)) → a__U51(a__isNeList(V1), V2)
a__isNePal(V) → a__U61(a__isQid(V))
a__isNePal(__(I, __(P, I))) → a__U71(a__isQid(I), P)
a__isPal(V) → a__U81(a__isNePal(V))
a__isPal(nil) → tt
a__isQid(a) → tt
a__isQid(e) → tt
a__isQid(i) → tt
a__isQid(o) → tt
a__isQid(u) → tt
mark(__(X1, X2)) → a____(mark(X1), mark(X2))
mark(U11(X)) → a__U11(mark(X))
mark(U21(X1, X2)) → a__U21(mark(X1), X2)
mark(U22(X)) → a__U22(mark(X))
mark(isList(X)) → a__isList(X)
mark(U31(X)) → a__U31(mark(X))
mark(U41(X1, X2)) → a__U41(mark(X1), X2)
mark(U42(X)) → a__U42(mark(X))
mark(isNeList(X)) → a__isNeList(X)
mark(U51(X1, X2)) → a__U51(mark(X1), X2)
mark(U52(X)) → a__U52(mark(X))
mark(U61(X)) → a__U61(mark(X))
mark(U71(X1, X2)) → a__U71(mark(X1), X2)
mark(U72(X)) → a__U72(mark(X))
mark(isPal(X)) → a__isPal(X)
mark(U81(X)) → a__U81(mark(X))
mark(isQid(X)) → a__isQid(X)
mark(isNePal(X)) → a__isNePal(X)
mark(nil) → nil
mark(tt) → tt
mark(a) → a
mark(e) → e
mark(i) → i
mark(o) → o
mark(u) → u
a____(X1, X2) → __(X1, X2)
a__U11(X) → U11(X)
a__U21(X1, X2) → U21(X1, X2)
a__U22(X) → U22(X)
a__isList(X) → isList(X)
a__U31(X) → U31(X)
a__U41(X1, X2) → U41(X1, X2)
a__U42(X) → U42(X)
a__isNeList(X) → isNeList(X)
a__U51(X1, X2) → U51(X1, X2)
a__U52(X) → U52(X)
a__U61(X) → U61(X)
a__U71(X1, X2) → U71(X1, X2)
a__U72(X) → U72(X)
a__isPal(X) → isPal(X)
a__U81(X) → U81(X)
a__isQid(X) → isQid(X)
a__isNePal(X) → isNePal(X)
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
POL(U11(x1)) = x1
POL(U21(x1, x2)) = 2·x1 + 2·x2
POL(U22(x1)) = 2 + x1
POL(U31(x1)) = 2·x1
POL(U41(x1, x2)) = 2·x1 + 2·x2
POL(U42(x1)) = 2 + x1
POL(U51(x1, x2)) = x1 + 2·x2
POL(U52(x1)) = x1
POL(U61(x1)) = x1
POL(U71(x1, x2)) = x1 + 2·x2
POL(U72(x1)) = x1
POL(U81(x1)) = 2 + x1
POL(__(x1, x2)) = 2 + 2·x1 + x2
POL(a) = 2
POL(a__U11(x1)) = x1
POL(a__U21(x1, x2)) = 2·x1 + 2·x2
POL(a__U22(x1)) = 2 + x1
POL(a__U31(x1)) = 2·x1
POL(a__U41(x1, x2)) = 2·x1 + 2·x2
POL(a__U42(x1)) = 2 + x1
POL(a__U51(x1, x2)) = x1 + 2·x2
POL(a__U52(x1)) = x1
POL(a__U61(x1)) = x1
POL(a__U71(x1, x2)) = x1 + 2·x2
POL(a__U72(x1)) = x1
POL(a__U81(x1)) = 2 + x1
POL(a____(x1, x2)) = 2 + 2·x1 + x2
POL(a__isList(x1)) = 2 + 2·x1
POL(a__isNeList(x1)) = 1 + 2·x1
POL(a__isNePal(x1)) = x1
POL(a__isPal(x1)) = 2 + 2·x1
POL(a__isQid(x1)) = x1
POL(e) = 2
POL(i) = 2
POL(isList(x1)) = 2 + 2·x1
POL(isNeList(x1)) = 1 + 2·x1
POL(isNePal(x1)) = x1
POL(isPal(x1)) = 2 + 2·x1
POL(isQid(x1)) = x1
POL(mark(x1)) = x1
POL(nil) = 0
POL(o) = 2
POL(tt) = 2
POL(u) = 2
a____(__(X, Y), Z) → a____(mark(X), a____(mark(Y), mark(Z)))
a____(X, nil) → mark(X)
a____(nil, X) → mark(X)
a__U22(tt) → tt
a__U31(tt) → tt
a__U41(tt, V2) → a__U42(a__isNeList(V2))
a__U42(tt) → tt
a__U81(tt) → tt
a__isList(V) → a__U11(a__isNeList(V))
a__isList(__(V1, V2)) → a__U21(a__isList(V1), V2)
a__isNeList(V) → a__U31(a__isQid(V))
a__isNeList(__(V1, V2)) → a__U41(a__isList(V1), V2)
a__isNeList(__(V1, V2)) → a__U51(a__isNeList(V1), V2)
a__isNePal(__(I, __(P, I))) → a__U71(a__isQid(I), P)
a__U11(tt) → tt
a__U21(tt, V2) → a__U22(a__isList(V2))
a__U51(tt, V2) → a__U52(a__isList(V2))
a__U52(tt) → tt
a__U61(tt) → tt
a__U71(tt, P) → a__U72(a__isPal(P))
a__U72(tt) → tt
a__isList(nil) → tt
a__isNePal(V) → a__U61(a__isQid(V))
a__isPal(V) → a__U81(a__isNePal(V))
a__isPal(nil) → tt
a__isQid(a) → tt
a__isQid(e) → tt
a__isQid(i) → tt
a__isQid(o) → tt
a__isQid(u) → tt
mark(__(X1, X2)) → a____(mark(X1), mark(X2))
mark(U11(X)) → a__U11(mark(X))
mark(U21(X1, X2)) → a__U21(mark(X1), X2)
mark(U22(X)) → a__U22(mark(X))
mark(isList(X)) → a__isList(X)
mark(U31(X)) → a__U31(mark(X))
mark(U41(X1, X2)) → a__U41(mark(X1), X2)
mark(U42(X)) → a__U42(mark(X))
mark(isNeList(X)) → a__isNeList(X)
mark(U51(X1, X2)) → a__U51(mark(X1), X2)
mark(U52(X)) → a__U52(mark(X))
mark(U61(X)) → a__U61(mark(X))
mark(U71(X1, X2)) → a__U71(mark(X1), X2)
mark(U72(X)) → a__U72(mark(X))
mark(isPal(X)) → a__isPal(X)
mark(U81(X)) → a__U81(mark(X))
mark(isQid(X)) → a__isQid(X)
mark(isNePal(X)) → a__isNePal(X)
mark(nil) → nil
mark(tt) → tt
mark(a) → a
mark(e) → e
mark(i) → i
mark(o) → o
mark(u) → u
a____(X1, X2) → __(X1, X2)
a__U11(X) → U11(X)
a__U21(X1, X2) → U21(X1, X2)
a__U22(X) → U22(X)
a__isList(X) → isList(X)
a__U31(X) → U31(X)
a__U41(X1, X2) → U41(X1, X2)
a__U42(X) → U42(X)
a__isNeList(X) → isNeList(X)
a__U51(X1, X2) → U51(X1, X2)
a__U52(X) → U52(X)
a__U61(X) → U61(X)
a__U71(X1, X2) → U71(X1, X2)
a__U72(X) → U72(X)
a__isPal(X) → isPal(X)
a__U81(X) → U81(X)
a__isQid(X) → isQid(X)
a__isNePal(X) → isNePal(X)
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
POL(U11(x1)) = 2 + 2·x1
POL(U21(x1, x2)) = 1 + x1 + 2·x2
POL(U22(x1)) = 1 + x1
POL(U31(x1)) = 2 + x1
POL(U41(x1, x2)) = 2 + x1 + x2
POL(U42(x1)) = 2 + 2·x1
POL(U51(x1, x2)) = 2 + x1 + 2·x2
POL(U52(x1)) = 1 + x1
POL(U61(x1)) = x1
POL(U71(x1, x2)) = 2 + x1 + 2·x2
POL(U72(x1)) = x1
POL(U81(x1)) = x1
POL(__(x1, x2)) = 2 + x1 + x2
POL(a) = 0
POL(a__U11(x1)) = 2 + 2·x1
POL(a__U21(x1, x2)) = 2 + x1 + 2·x2
POL(a__U22(x1)) = 2 + x1
POL(a__U31(x1)) = 2 + x1
POL(a__U41(x1, x2)) = 2 + x1 + 2·x2
POL(a__U42(x1)) = 2 + 2·x1
POL(a__U51(x1, x2)) = 2 + x1 + 2·x2
POL(a__U52(x1)) = 2 + x1
POL(a__U61(x1)) = x1
POL(a__U71(x1, x2)) = 2 + x1 + 2·x2
POL(a__U72(x1)) = x1
POL(a__U81(x1)) = x1
POL(a____(x1, x2)) = 2 + x1 + x2
POL(a__isList(x1)) = 2·x1
POL(a__isNeList(x1)) = 2 + x1
POL(a__isNePal(x1)) = 2 + 2·x1
POL(a__isPal(x1)) = 2 + 2·x1
POL(a__isQid(x1)) = 2 + x1
POL(e) = 1
POL(i) = 0
POL(isList(x1)) = x1
POL(isNeList(x1)) = 1 + x1
POL(isNePal(x1)) = 1 + x1
POL(isPal(x1)) = 1 + x1
POL(isQid(x1)) = 1 + x1
POL(mark(x1)) = 2 + 2·x1
POL(nil) = 2
POL(o) = 1
POL(tt) = 0
POL(u) = 1
a__U11(tt) → tt
a__U52(tt) → tt
a__isList(nil) → tt
a__isPal(nil) → tt
a__isQid(a) → tt
a__isQid(e) → tt
a__isQid(i) → tt
a__isQid(o) → tt
a__isQid(u) → tt
mark(isList(X)) → a__isList(X)
mark(U31(X)) → a__U31(mark(X))
mark(U41(X1, X2)) → a__U41(mark(X1), X2)
mark(isNeList(X)) → a__isNeList(X)
mark(U51(X1, X2)) → a__U51(mark(X1), X2)
mark(U71(X1, X2)) → a__U71(mark(X1), X2)
mark(isPal(X)) → a__isPal(X)
mark(isQid(X)) → a__isQid(X)
mark(isNePal(X)) → a__isNePal(X)
mark(nil) → nil
mark(tt) → tt
mark(a) → a
mark(e) → e
mark(i) → i
mark(o) → o
mark(u) → u
a__U21(X1, X2) → U21(X1, X2)
a__U22(X) → U22(X)
a__isNeList(X) → isNeList(X)
a__U52(X) → U52(X)
a__isPal(X) → isPal(X)
a__isQid(X) → isQid(X)
a__isNePal(X) → isNePal(X)
a__U21(tt, V2) → a__U22(a__isList(V2))
a__U51(tt, V2) → a__U52(a__isList(V2))
a__U61(tt) → tt
a__U71(tt, P) → a__U72(a__isPal(P))
a__U72(tt) → tt
a__isNePal(V) → a__U61(a__isQid(V))
a__isPal(V) → a__U81(a__isNePal(V))
mark(__(X1, X2)) → a____(mark(X1), mark(X2))
mark(U11(X)) → a__U11(mark(X))
mark(U21(X1, X2)) → a__U21(mark(X1), X2)
mark(U22(X)) → a__U22(mark(X))
mark(U42(X)) → a__U42(mark(X))
mark(U52(X)) → a__U52(mark(X))
mark(U61(X)) → a__U61(mark(X))
mark(U72(X)) → a__U72(mark(X))
mark(U81(X)) → a__U81(mark(X))
a____(X1, X2) → __(X1, X2)
a__U11(X) → U11(X)
a__isList(X) → isList(X)
a__U31(X) → U31(X)
a__U41(X1, X2) → U41(X1, X2)
a__U42(X) → U42(X)
a__U51(X1, X2) → U51(X1, X2)
a__U61(X) → U61(X)
a__U71(X1, X2) → U71(X1, X2)
a__U72(X) → U72(X)
a__U81(X) → U81(X)
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
POL(U11(x1)) = x1
POL(U21(x1, x2)) = x1 + 2·x2
POL(U22(x1)) = 2·x1
POL(U31(x1)) = x1
POL(U41(x1, x2)) = 1 + x1 + x2
POL(U42(x1)) = x1
POL(U51(x1, x2)) = x1 + x2
POL(U52(x1)) = 2·x1
POL(U61(x1)) = x1
POL(U71(x1, x2)) = x1 + 2·x2
POL(U72(x1)) = x1
POL(U81(x1)) = x1
POL(__(x1, x2)) = x1 + x2
POL(a__U11(x1)) = x1
POL(a__U21(x1, x2)) = x1 + 2·x2
POL(a__U22(x1)) = 2·x1
POL(a__U31(x1)) = 2 + 2·x1
POL(a__U41(x1, x2)) = 2 + 2·x1 + 2·x2
POL(a__U42(x1)) = x1
POL(a__U51(x1, x2)) = 2·x1 + 2·x2
POL(a__U52(x1)) = x1
POL(a__U61(x1)) = x1
POL(a__U71(x1, x2)) = 2·x1 + 2·x2
POL(a__U72(x1)) = x1
POL(a__U81(x1)) = x1
POL(a____(x1, x2)) = x1 + x2
POL(a__isList(x1)) = x1
POL(a__isNePal(x1)) = x1
POL(a__isPal(x1)) = x1
POL(a__isQid(x1)) = x1
POL(isList(x1)) = x1
POL(mark(x1)) = x1
POL(tt) = 0
a__U31(X) → U31(X)
a__U41(X1, X2) → U41(X1, X2)
a__U21(tt, V2) → a__U22(a__isList(V2))
a__U51(tt, V2) → a__U52(a__isList(V2))
a__U61(tt) → tt
a__U71(tt, P) → a__U72(a__isPal(P))
a__U72(tt) → tt
a__isNePal(V) → a__U61(a__isQid(V))
a__isPal(V) → a__U81(a__isNePal(V))
mark(__(X1, X2)) → a____(mark(X1), mark(X2))
mark(U11(X)) → a__U11(mark(X))
mark(U21(X1, X2)) → a__U21(mark(X1), X2)
mark(U22(X)) → a__U22(mark(X))
mark(U42(X)) → a__U42(mark(X))
mark(U52(X)) → a__U52(mark(X))
mark(U61(X)) → a__U61(mark(X))
mark(U72(X)) → a__U72(mark(X))
mark(U81(X)) → a__U81(mark(X))
a____(X1, X2) → __(X1, X2)
a__U11(X) → U11(X)
a__isList(X) → isList(X)
a__U42(X) → U42(X)
a__U51(X1, X2) → U51(X1, X2)
a__U61(X) → U61(X)
a__U71(X1, X2) → U71(X1, X2)
a__U72(X) → U72(X)
a__U81(X) → U81(X)
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
POL(U11(x1)) = 1 + x1
POL(U21(x1, x2)) = 2 + 2·x1 + 2·x2
POL(U22(x1)) = 2 + 2·x1
POL(U42(x1)) = 2 + x1
POL(U51(x1, x2)) = 1 + 2·x1 + x2
POL(U52(x1)) = 2 + 2·x1
POL(U61(x1)) = x1
POL(U71(x1, x2)) = 1 + x1 + 2·x2
POL(U72(x1)) = x1
POL(U81(x1)) = 1 + x1
POL(__(x1, x2)) = 2 + x1 + x2
POL(a__U11(x1)) = 1 + x1
POL(a__U21(x1, x2)) = 1 + 2·x1 + 2·x2
POL(a__U22(x1)) = 1 + 2·x1
POL(a__U42(x1)) = 2 + x1
POL(a__U51(x1, x2)) = 2 + 2·x1 + 2·x2
POL(a__U52(x1)) = 1 + 2·x1
POL(a__U61(x1)) = x1
POL(a__U71(x1, x2)) = 2 + 2·x1 + 2·x2
POL(a__U72(x1)) = x1
POL(a__U81(x1)) = 2 + x1
POL(a____(x1, x2)) = 2 + x1 + x2
POL(a__isList(x1)) = x1
POL(a__isNePal(x1)) = x1
POL(a__isPal(x1)) = 2 + x1
POL(a__isQid(x1)) = x1
POL(isList(x1)) = x1
POL(mark(x1)) = 2 + 2·x1
POL(tt) = 0
a__U51(tt, V2) → a__U52(a__isList(V2))
mark(U11(X)) → a__U11(mark(X))
mark(U21(X1, X2)) → a__U21(mark(X1), X2)
mark(U22(X)) → a__U22(mark(X))
mark(U42(X)) → a__U42(mark(X))
mark(U52(X)) → a__U52(mark(X))
a__U51(X1, X2) → U51(X1, X2)
a__U71(X1, X2) → U71(X1, X2)
a__U81(X) → U81(X)
a__U21(tt, V2) → a__U22(a__isList(V2))
a__U61(tt) → tt
a__U71(tt, P) → a__U72(a__isPal(P))
a__U72(tt) → tt
a__isNePal(V) → a__U61(a__isQid(V))
a__isPal(V) → a__U81(a__isNePal(V))
mark(__(X1, X2)) → a____(mark(X1), mark(X2))
mark(U61(X)) → a__U61(mark(X))
mark(U72(X)) → a__U72(mark(X))
mark(U81(X)) → a__U81(mark(X))
a____(X1, X2) → __(X1, X2)
a__U11(X) → U11(X)
a__isList(X) → isList(X)
a__U42(X) → U42(X)
a__U61(X) → U61(X)
a__U72(X) → U72(X)
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
POL(U11(x1)) = 1 + x1
POL(U42(x1)) = 1 + x1
POL(U61(x1)) = x1
POL(U72(x1)) = x1
POL(U81(x1)) = 2·x1
POL(__(x1, x2)) = x1 + x2
POL(a__U11(x1)) = 2 + 2·x1
POL(a__U21(x1, x2)) = x1 + 2·x2
POL(a__U22(x1)) = 2·x1
POL(a__U42(x1)) = 1 + 2·x1
POL(a__U61(x1)) = x1
POL(a__U71(x1, x2)) = x1 + 2·x2
POL(a__U72(x1)) = x1
POL(a__U81(x1)) = x1
POL(a____(x1, x2)) = x1 + x2
POL(a__isList(x1)) = x1
POL(a__isNePal(x1)) = x1
POL(a__isPal(x1)) = x1
POL(a__isQid(x1)) = x1
POL(isList(x1)) = x1
POL(mark(x1)) = x1
POL(tt) = 0
a__U11(X) → U11(X)
a__U21(tt, V2) → a__U22(a__isList(V2))
a__U61(tt) → tt
a__U71(tt, P) → a__U72(a__isPal(P))
a__U72(tt) → tt
a__isNePal(V) → a__U61(a__isQid(V))
a__isPal(V) → a__U81(a__isNePal(V))
mark(__(X1, X2)) → a____(mark(X1), mark(X2))
mark(U61(X)) → a__U61(mark(X))
mark(U72(X)) → a__U72(mark(X))
mark(U81(X)) → a__U81(mark(X))
a____(X1, X2) → __(X1, X2)
a__isList(X) → isList(X)
a__U42(X) → U42(X)
a__U61(X) → U61(X)
a__U72(X) → U72(X)
mark1 > tt > aisQid1 > aU611 > U611 > a2 > _2 > aU212 > aU811 > aU712 > aisList1 > aisNePal1 > U421 > aU421 > isList1 > aU221 > U811 > aU721 > U721 > aisPal1
tt=1
a__U22_1=1
a__isList_1=2
a__U61_1=1
a__U72_1=2
a__isPal_1=5
a__isNePal_1=3
a__isQid_1=1
a__U81_1=1
mark_1=0
U61_1=1
U72_1=2
U81_1=2
isList_1=1
a__U42_1=2
U42_1=1
a__U21_2=2
a__U71_2=6
___2=0
a_____2=0
a__U21(tt, V2) → a__U22(a__isList(V2))
a__U61(tt) → tt
a__U71(tt, P) → a__U72(a__isPal(P))
a__U72(tt) → tt
a__isNePal(V) → a__U61(a__isQid(V))
a__isPal(V) → a__U81(a__isNePal(V))
mark(__(X1, X2)) → a____(mark(X1), mark(X2))
mark(U61(X)) → a__U61(mark(X))
mark(U72(X)) → a__U72(mark(X))
mark(U81(X)) → a__U81(mark(X))
a____(X1, X2) → __(X1, X2)
a__isList(X) → isList(X)
a__U42(X) → U42(X)
a__U61(X) → U61(X)
a__U72(X) → U72(X)