(0) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.

(1) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.

(2) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(__(__(X, Y), Z)) → __1(X, __(Y, Z))
ACTIVE(__(__(X, Y), Z)) → __1(Y, Z)
ACTIVE(U11(tt, V)) → U121(isNeList(V))
ACTIVE(U11(tt, V)) → ISNELIST(V)
ACTIVE(U21(tt, V1, V2)) → U221(isList(V1), V2)
ACTIVE(U21(tt, V1, V2)) → ISLIST(V1)
ACTIVE(U22(tt, V2)) → U231(isList(V2))
ACTIVE(U22(tt, V2)) → ISLIST(V2)
ACTIVE(U31(tt, V)) → U321(isQid(V))
ACTIVE(U31(tt, V)) → ISQID(V)
ACTIVE(U41(tt, V1, V2)) → U421(isList(V1), V2)
ACTIVE(U41(tt, V1, V2)) → ISLIST(V1)
ACTIVE(U42(tt, V2)) → U431(isNeList(V2))
ACTIVE(U42(tt, V2)) → ISNELIST(V2)
ACTIVE(U51(tt, V1, V2)) → U521(isNeList(V1), V2)
ACTIVE(U51(tt, V1, V2)) → ISNELIST(V1)
ACTIVE(U52(tt, V2)) → U531(isList(V2))
ACTIVE(U52(tt, V2)) → ISLIST(V2)
ACTIVE(U61(tt, V)) → U621(isQid(V))
ACTIVE(U61(tt, V)) → ISQID(V)
ACTIVE(U71(tt, V)) → U721(isNePal(V))
ACTIVE(U71(tt, V)) → ISNEPAL(V)
ACTIVE(isList(V)) → U111(isPalListKind(V), V)
ACTIVE(isList(V)) → ISPALLISTKIND(V)
ACTIVE(isList(__(V1, V2))) → U211(and(isPalListKind(V1), isPalListKind(V2)), V1, V2)
ACTIVE(isList(__(V1, V2))) → AND(isPalListKind(V1), isPalListKind(V2))
ACTIVE(isList(__(V1, V2))) → ISPALLISTKIND(V1)
ACTIVE(isList(__(V1, V2))) → ISPALLISTKIND(V2)
ACTIVE(isNeList(V)) → U311(isPalListKind(V), V)
ACTIVE(isNeList(V)) → ISPALLISTKIND(V)
ACTIVE(isNeList(__(V1, V2))) → U411(and(isPalListKind(V1), isPalListKind(V2)), V1, V2)
ACTIVE(isNeList(__(V1, V2))) → AND(isPalListKind(V1), isPalListKind(V2))
ACTIVE(isNeList(__(V1, V2))) → ISPALLISTKIND(V1)
ACTIVE(isNeList(__(V1, V2))) → ISPALLISTKIND(V2)
ACTIVE(isNeList(__(V1, V2))) → U511(and(isPalListKind(V1), isPalListKind(V2)), V1, V2)
ACTIVE(isNePal(V)) → U611(isPalListKind(V), V)
ACTIVE(isNePal(V)) → ISPALLISTKIND(V)
ACTIVE(isNePal(__(I, __(P, I)))) → AND(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P)))
ACTIVE(isNePal(__(I, __(P, I)))) → AND(isQid(I), isPalListKind(I))
ACTIVE(isNePal(__(I, __(P, I)))) → ISQID(I)
ACTIVE(isNePal(__(I, __(P, I)))) → ISPALLISTKIND(I)
ACTIVE(isNePal(__(I, __(P, I)))) → AND(isPal(P), isPalListKind(P))
ACTIVE(isNePal(__(I, __(P, I)))) → ISPAL(P)
ACTIVE(isNePal(__(I, __(P, I)))) → ISPALLISTKIND(P)
ACTIVE(isPal(V)) → U711(isPalListKind(V), V)
ACTIVE(isPal(V)) → ISPALLISTKIND(V)
ACTIVE(isPalListKind(__(V1, V2))) → AND(isPalListKind(V1), isPalListKind(V2))
ACTIVE(isPalListKind(__(V1, V2))) → ISPALLISTKIND(V1)
ACTIVE(isPalListKind(__(V1, V2))) → ISPALLISTKIND(V2)
ACTIVE(__(X1, X2)) → __1(active(X1), X2)
ACTIVE(__(X1, X2)) → ACTIVE(X1)
ACTIVE(__(X1, X2)) → __1(X1, active(X2))
ACTIVE(__(X1, X2)) → ACTIVE(X2)
ACTIVE(U11(X1, X2)) → U111(active(X1), X2)
ACTIVE(U11(X1, X2)) → ACTIVE(X1)
ACTIVE(U12(X)) → U121(active(X))
ACTIVE(U12(X)) → ACTIVE(X)
ACTIVE(U21(X1, X2, X3)) → U211(active(X1), X2, X3)
ACTIVE(U21(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U22(X1, X2)) → U221(active(X1), X2)
ACTIVE(U22(X1, X2)) → ACTIVE(X1)
ACTIVE(U23(X)) → U231(active(X))
ACTIVE(U23(X)) → ACTIVE(X)
ACTIVE(U31(X1, X2)) → U311(active(X1), X2)
ACTIVE(U31(X1, X2)) → ACTIVE(X1)
ACTIVE(U32(X)) → U321(active(X))
ACTIVE(U32(X)) → ACTIVE(X)
ACTIVE(U41(X1, X2, X3)) → U411(active(X1), X2, X3)
ACTIVE(U41(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U42(X1, X2)) → U421(active(X1), X2)
ACTIVE(U42(X1, X2)) → ACTIVE(X1)
ACTIVE(U43(X)) → U431(active(X))
ACTIVE(U43(X)) → ACTIVE(X)
ACTIVE(U51(X1, X2, X3)) → U511(active(X1), X2, X3)
ACTIVE(U51(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U52(X1, X2)) → U521(active(X1), X2)
ACTIVE(U52(X1, X2)) → ACTIVE(X1)
ACTIVE(U53(X)) → U531(active(X))
ACTIVE(U53(X)) → ACTIVE(X)
ACTIVE(U61(X1, X2)) → U611(active(X1), X2)
ACTIVE(U61(X1, X2)) → ACTIVE(X1)
ACTIVE(U62(X)) → U621(active(X))
ACTIVE(U62(X)) → ACTIVE(X)
ACTIVE(U71(X1, X2)) → U711(active(X1), X2)
ACTIVE(U71(X1, X2)) → ACTIVE(X1)
ACTIVE(U72(X)) → U721(active(X))
ACTIVE(U72(X)) → ACTIVE(X)
ACTIVE(and(X1, X2)) → AND(active(X1), X2)
ACTIVE(and(X1, X2)) → ACTIVE(X1)
__1(mark(X1), X2) → __1(X1, X2)
__1(X1, mark(X2)) → __1(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U121(mark(X)) → U121(X)
U211(mark(X1), X2, X3) → U211(X1, X2, X3)
U221(mark(X1), X2) → U221(X1, X2)
U231(mark(X)) → U231(X)
U311(mark(X1), X2) → U311(X1, X2)
U321(mark(X)) → U321(X)
U411(mark(X1), X2, X3) → U411(X1, X2, X3)
U421(mark(X1), X2) → U421(X1, X2)
U431(mark(X)) → U431(X)
U511(mark(X1), X2, X3) → U511(X1, X2, X3)
U521(mark(X1), X2) → U521(X1, X2)
U531(mark(X)) → U531(X)
U611(mark(X1), X2) → U611(X1, X2)
U621(mark(X)) → U621(X)
U711(mark(X1), X2) → U711(X1, X2)
U721(mark(X)) → U721(X)
AND(mark(X1), X2) → AND(X1, X2)
PROPER(__(X1, X2)) → __1(proper(X1), proper(X2))
PROPER(__(X1, X2)) → PROPER(X1)
PROPER(__(X1, X2)) → PROPER(X2)
PROPER(U11(X1, X2)) → U111(proper(X1), proper(X2))
PROPER(U11(X1, X2)) → PROPER(X1)
PROPER(U11(X1, X2)) → PROPER(X2)
PROPER(U12(X)) → U121(proper(X))
PROPER(U12(X)) → PROPER(X)
PROPER(isNeList(X)) → ISNELIST(proper(X))
PROPER(isNeList(X)) → PROPER(X)
PROPER(U21(X1, X2, X3)) → U211(proper(X1), proper(X2), proper(X3))
PROPER(U21(X1, X2, X3)) → PROPER(X1)
PROPER(U21(X1, X2, X3)) → PROPER(X2)
PROPER(U21(X1, X2, X3)) → PROPER(X3)
PROPER(U22(X1, X2)) → U221(proper(X1), proper(X2))
PROPER(U22(X1, X2)) → PROPER(X1)
PROPER(U22(X1, X2)) → PROPER(X2)
PROPER(isList(X)) → ISLIST(proper(X))
PROPER(isList(X)) → PROPER(X)
PROPER(U23(X)) → U231(proper(X))
PROPER(U23(X)) → PROPER(X)
PROPER(U31(X1, X2)) → U311(proper(X1), proper(X2))
PROPER(U31(X1, X2)) → PROPER(X1)
PROPER(U31(X1, X2)) → PROPER(X2)
PROPER(U32(X)) → U321(proper(X))
PROPER(U32(X)) → PROPER(X)
PROPER(isQid(X)) → ISQID(proper(X))
PROPER(isQid(X)) → PROPER(X)
PROPER(U41(X1, X2, X3)) → U411(proper(X1), proper(X2), proper(X3))
PROPER(U41(X1, X2, X3)) → PROPER(X1)
PROPER(U41(X1, X2, X3)) → PROPER(X2)
PROPER(U41(X1, X2, X3)) → PROPER(X3)
PROPER(U42(X1, X2)) → U421(proper(X1), proper(X2))
PROPER(U42(X1, X2)) → PROPER(X1)
PROPER(U42(X1, X2)) → PROPER(X2)
PROPER(U43(X)) → U431(proper(X))
PROPER(U43(X)) → PROPER(X)
PROPER(U51(X1, X2, X3)) → U511(proper(X1), proper(X2), proper(X3))
PROPER(U51(X1, X2, X3)) → PROPER(X1)
PROPER(U51(X1, X2, X3)) → PROPER(X2)
PROPER(U51(X1, X2, X3)) → PROPER(X3)
PROPER(U52(X1, X2)) → U521(proper(X1), proper(X2))
PROPER(U52(X1, X2)) → PROPER(X1)
PROPER(U52(X1, X2)) → PROPER(X2)
PROPER(U53(X)) → U531(proper(X))
PROPER(U53(X)) → PROPER(X)
PROPER(U61(X1, X2)) → U611(proper(X1), proper(X2))
PROPER(U61(X1, X2)) → PROPER(X1)
PROPER(U61(X1, X2)) → PROPER(X2)
PROPER(U62(X)) → U621(proper(X))
PROPER(U62(X)) → PROPER(X)
PROPER(U71(X1, X2)) → U711(proper(X1), proper(X2))
PROPER(U71(X1, X2)) → PROPER(X1)
PROPER(U71(X1, X2)) → PROPER(X2)
PROPER(U72(X)) → U721(proper(X))
PROPER(U72(X)) → PROPER(X)
PROPER(isNePal(X)) → ISNEPAL(proper(X))
PROPER(isNePal(X)) → PROPER(X)
PROPER(and(X1, X2)) → AND(proper(X1), proper(X2))
PROPER(and(X1, X2)) → PROPER(X1)
PROPER(and(X1, X2)) → PROPER(X2)
PROPER(isPalListKind(X)) → ISPALLISTKIND(proper(X))
PROPER(isPalListKind(X)) → PROPER(X)
PROPER(isPal(X)) → ISPAL(proper(X))
PROPER(isPal(X)) → PROPER(X)
__1(ok(X1), ok(X2)) → __1(X1, X2)
U111(ok(X1), ok(X2)) → U111(X1, X2)
U121(ok(X)) → U121(X)
ISNELIST(ok(X)) → ISNELIST(X)
U211(ok(X1), ok(X2), ok(X3)) → U211(X1, X2, X3)
U221(ok(X1), ok(X2)) → U221(X1, X2)
ISLIST(ok(X)) → ISLIST(X)
U231(ok(X)) → U231(X)
U311(ok(X1), ok(X2)) → U311(X1, X2)
U321(ok(X)) → U321(X)
ISQID(ok(X)) → ISQID(X)
U411(ok(X1), ok(X2), ok(X3)) → U411(X1, X2, X3)
U421(ok(X1), ok(X2)) → U421(X1, X2)
U431(ok(X)) → U431(X)
U511(ok(X1), ok(X2), ok(X3)) → U511(X1, X2, X3)
U521(ok(X1), ok(X2)) → U521(X1, X2)
U531(ok(X)) → U531(X)
U611(ok(X1), ok(X2)) → U611(X1, X2)
U621(ok(X)) → U621(X)
U711(ok(X1), ok(X2)) → U711(X1, X2)
U721(ok(X)) → U721(X)
ISNEPAL(ok(X)) → ISNEPAL(X)
AND(ok(X1), ok(X2)) → AND(X1, X2)
ISPALLISTKIND(ok(X)) → ISPALLISTKIND(X)
ISPAL(ok(X)) → ISPAL(X)
TOP(mark(X)) → TOP(proper(X))
TOP(mark(X)) → PROPER(X)
TOP(ok(X)) → TOP(active(X))
TOP(ok(X)) → ACTIVE(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(3) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 28 SCCs with 96 less nodes.

(4) Complex Obligation (AND)

(5) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISPAL(ok(X)) → ISPAL(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(6) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISPAL(ok(X)) → ISPAL(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ISPAL(x1)  =  ISPAL(x1)
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x2)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  x1
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, U121, U211, U421, U531, U711, proper1, top] > _2 > U411 > isList1 > [ISPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U111 > isNeList1 > [ISPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U231 > [ISPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U321 > [ISPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U521 > isList1 > [ISPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > isNePal1 > U611 > U621 > [ISPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > a > [ISPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > e > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > i > [ISPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > o
[active1, U121, U211, U421, U531, U711, proper1, top] > u

Status:
ISPAL1: [1]
ok1: [1]
active1: [1]
_2: multiset
mark: []
nil: multiset
U111: [1]
tt: multiset
U121: [1]
isNeList1: [1]
U211: [1]
U221: [1]
isList1: [1]
U231: [1]
U321: [1]
U411: multiset
U421: [1]
U431: [1]
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
isNePal1: [1]
isPalListKind1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(7) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(8) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(9) TRUE

(10) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISPALLISTKIND(ok(X)) → ISPALLISTKIND(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(11) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISPALLISTKIND(ok(X)) → ISPALLISTKIND(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ISPALLISTKIND(x1)  =  ISPALLISTKIND(x1)
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x2)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  x1
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, U121, U211, U421, U531, U711, proper1, top] > _2 > U411 > isList1 > [ISPALLISTKIND1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U111 > isNeList1 > [ISPALLISTKIND1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U231 > [ISPALLISTKIND1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U321 > [ISPALLISTKIND1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U521 > isList1 > [ISPALLISTKIND1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > isNePal1 > U611 > U621 > [ISPALLISTKIND1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > a > [ISPALLISTKIND1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > e > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > i > [ISPALLISTKIND1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > o
[active1, U121, U211, U421, U531, U711, proper1, top] > u

Status:
ISPALLISTKIND1: [1]
ok1: [1]
active1: [1]
_2: multiset
mark: []
nil: multiset
U111: [1]
tt: multiset
U121: [1]
isNeList1: [1]
U211: [1]
U221: [1]
isList1: [1]
U231: [1]
U321: [1]
U411: multiset
U421: [1]
U431: [1]
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
isNePal1: [1]
isPalListKind1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(12) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(13) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(14) TRUE

(15) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNEPAL(ok(X)) → ISNEPAL(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(16) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNEPAL(ok(X)) → ISNEPAL(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ISNEPAL(x1)  =  ISNEPAL(x1)
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x2)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  x1
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, U121, U211, U421, U531, U711, proper1, top] > _2 > U411 > isList1 > [ISNEPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U111 > isNeList1 > [ISNEPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U231 > [ISNEPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U321 > [ISNEPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U521 > isList1 > [ISNEPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > isNePal1 > U611 > U621 > [ISNEPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > a > [ISNEPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > e > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > i > [ISNEPAL1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > o
[active1, U121, U211, U421, U531, U711, proper1, top] > u

Status:
ISNEPAL1: [1]
ok1: [1]
active1: [1]
_2: multiset
mark: []
nil: multiset
U111: [1]
tt: multiset
U121: [1]
isNeList1: [1]
U211: [1]
U221: [1]
isList1: [1]
U231: [1]
U321: [1]
U411: multiset
U421: [1]
U431: [1]
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
isNePal1: [1]
isPalListKind1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(17) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(18) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(19) TRUE

(20) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISQID(ok(X)) → ISQID(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(21) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISQID(ok(X)) → ISQID(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ISQID(x1)  =  ISQID(x1)
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x2)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  x1
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, U121, U211, U421, U531, U711, proper1, top] > _2 > U411 > isList1 > [ISQID1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U111 > isNeList1 > [ISQID1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U231 > [ISQID1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U321 > [ISQID1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U521 > isList1 > [ISQID1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > isNePal1 > U611 > U621 > [ISQID1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > a > [ISQID1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > e > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > i > [ISQID1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > o
[active1, U121, U211, U421, U531, U711, proper1, top] > u

Status:
ISQID1: [1]
ok1: [1]
active1: [1]
_2: multiset
mark: []
nil: multiset
U111: [1]
tt: multiset
U121: [1]
isNeList1: [1]
U211: [1]
U221: [1]
isList1: [1]
U231: [1]
U321: [1]
U411: multiset
U421: [1]
U431: [1]
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
isNePal1: [1]
isPalListKind1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(22) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(23) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(24) TRUE

(25) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISLIST(ok(X)) → ISLIST(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(26) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISLIST(ok(X)) → ISLIST(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ISLIST(x1)  =  ISLIST(x1)
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x2)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  x1
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, U121, U211, U421, U531, U711, proper1, top] > _2 > U411 > isList1 > [ISLIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U111 > isNeList1 > [ISLIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U231 > [ISLIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U321 > [ISLIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U521 > isList1 > [ISLIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > isNePal1 > U611 > U621 > [ISLIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > a > [ISLIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > e > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > i > [ISLIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > o
[active1, U121, U211, U421, U531, U711, proper1, top] > u

Status:
ISLIST1: [1]
ok1: [1]
active1: [1]
_2: multiset
mark: []
nil: multiset
U111: [1]
tt: multiset
U121: [1]
isNeList1: [1]
U211: [1]
U221: [1]
isList1: [1]
U231: [1]
U321: [1]
U411: multiset
U421: [1]
U431: [1]
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
isNePal1: [1]
isPalListKind1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(27) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(28) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(29) TRUE

(30) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNELIST(ok(X)) → ISNELIST(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(31) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNELIST(ok(X)) → ISNELIST(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ISNELIST(x1)  =  ISNELIST(x1)
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x2)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  x1
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, U121, U211, U421, U531, U711, proper1, top] > _2 > U411 > isList1 > [ISNELIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U111 > isNeList1 > [ISNELIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U231 > [ISNELIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U321 > [ISNELIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U521 > isList1 > [ISNELIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > isNePal1 > U611 > U621 > [ISNELIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > a > [ISNELIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > e > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > i > [ISNELIST1, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > o
[active1, U121, U211, U421, U531, U711, proper1, top] > u

Status:
ISNELIST1: [1]
ok1: [1]
active1: [1]
_2: multiset
mark: []
nil: multiset
U111: [1]
tt: multiset
U121: [1]
isNeList1: [1]
U211: [1]
U221: [1]
isList1: [1]
U231: [1]
U321: [1]
U411: multiset
U421: [1]
U431: [1]
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
isNePal1: [1]
isPalListKind1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(32) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(33) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(34) TRUE

(35) Obligation:

Q DP problem:
The TRS P consists of the following rules:

AND(ok(X1), ok(X2)) → AND(X1, X2)
AND(mark(X1), X2) → AND(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(36) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


AND(ok(X1), ok(X2)) → AND(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
AND(x1, x2)  =  x2
ok(x1)  =  ok(x1)
mark(x1)  =  mark
active(x1)  =  active(x1)
__(x1, x2)  =  x2
nil  =  nil
U11(x1, x2)  =  x2
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  x3
U22(x1, x2)  =  U22(x2)
isList(x1)  =  isList(x1)
U23(x1)  =  x1
U31(x1, x2)  =  U31(x2)
U32(x1)  =  x1
isQid(x1)  =  x1
U41(x1, x2, x3)  =  x3
U42(x1, x2)  =  x2
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  U51(x1)
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x2)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  U72(x1)
isNePal(x1)  =  x1
and(x1, x2)  =  x2
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
top > [active1, U121, proper1] > nil > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > U221 > isList1 > isPalListKind1 > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > U511 > U521 > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > U531 > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > U611 > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > U721 > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > a > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > e > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > i > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > o > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > u > tt > [ok1, U311, U431, U621, U711] > mark

Status:
ok1: [1]
mark: multiset
active1: multiset
nil: multiset
tt: multiset
U121: multiset
U221: [1]
isList1: multiset
U311: [1]
U431: [1]
U511: multiset
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
U721: [1]
isPalListKind1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(37) Obligation:

Q DP problem:
The TRS P consists of the following rules:

AND(mark(X1), X2) → AND(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(38) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


AND(mark(X1), X2) → AND(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
AND(x1, x2)  =  AND(x1)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList
U21(x1, x2, x3)  =  U21(x1)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList
U23(x1)  =  U23(x1)
U31(x1, x2)  =  U31(x1)
U32(x1)  =  x1
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x1)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  U51(x1)
U52(x1, x2)  =  U52(x1)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  U72(x1)
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
ok(x1)  =  ok
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
AND1 > [nil, isNeList, i, o, ok]
[active1, U431, U621] > _2 > U211 > U221 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > _2 > isQid > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U111 > U121 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U231 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U311 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U411 > U421 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U511 > U521 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U611 > isQid > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U712 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U712 > isNePal1 > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > and2 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
a > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
e > [nil, isNeList, i, o, ok]
u > [nil, isNeList, i, o, ok]
top > [nil, isNeList, i, o, ok]

Status:
AND1: multiset
mark1: [1]
active1: multiset
_2: [2,1]
nil: multiset
U111: multiset
tt: multiset
U121: [1]
isNeList: multiset
U211: [1]
U221: multiset
isList: multiset
U231: [1]
U311: [1]
isQid: multiset
U411: [1]
U421: multiset
U431: multiset
U511: [1]
U521: [1]
U531: [1]
U611: multiset
U621: multiset
U712: [1,2]
U721: [1]
isNePal1: multiset
and2: [2,1]
isPalListKind: []
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
ok: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(39) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(40) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(41) TRUE

(42) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U721(ok(X)) → U721(X)
U721(mark(X)) → U721(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(43) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U721(mark(X)) → U721(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U721(x1)  =  x1
ok(x1)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  U11(x1, x2)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  U21(x1, x2, x3)
U22(x1, x2)  =  U22(x1, x2)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  U31(x1)
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1, x2, x3)
U42(x1, x2)  =  U42(x1, x2)
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x1, x2, x3)
U52(x1, x2)  =  U52(x1, x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1, x2)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  x1
isNePal(x1)  =  x1
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  x1
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, 2, U413] > U112 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U213 > [U222, isList1, U522] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U311 > U321 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U311 > [isQid, U612] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U422 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U513 > [U222, isList1, U522] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U712 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > and2 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > isPal1 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
nil > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
e > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
o > [mark1, U121, U231, U531, U621, i, u] > [tt, a]

Status:
mark1: multiset
active1: [1]
_2: [1,2]
nil: multiset
U112: multiset
tt: multiset
U121: multiset
U213: multiset
U222: [2,1]
isList1: [1]
U231: multiset
U311: [1]
U321: [1]
isQid: []
U413: [2,3,1]
U422: multiset
U513: [1,3,2]
U522: [2,1]
U531: multiset
U612: [2,1]
U621: multiset
U712: multiset
and2: [1,2]
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(44) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U721(ok(X)) → U721(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(45) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U721(ok(X)) → U721(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U721(x1)  =  U721(x1)
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x2)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  x1
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, U121, U211, U421, U531, U711, proper1, top] > _2 > U411 > isList1 > [U72^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U111 > isNeList1 > [U72^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U231 > [U72^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U321 > [U72^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U521 > isList1 > [U72^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > isNePal1 > U611 > U621 > [U72^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > a > [U72^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > e > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > i > [U72^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > o
[active1, U121, U211, U421, U531, U711, proper1, top] > u

Status:
U72^11: [1]
ok1: [1]
active1: [1]
_2: multiset
mark: []
nil: multiset
U111: [1]
tt: multiset
U121: [1]
isNeList1: [1]
U211: [1]
U221: [1]
isList1: [1]
U231: [1]
U321: [1]
U411: multiset
U421: [1]
U431: [1]
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
isNePal1: [1]
isPalListKind1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(46) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(47) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(48) TRUE

(49) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U711(ok(X1), ok(X2)) → U711(X1, X2)
U711(mark(X1), X2) → U711(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(50) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U711(ok(X1), ok(X2)) → U711(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U711(x1, x2)  =  U711(x2)
ok(x1)  =  ok(x1)
mark(x1)  =  mark
active(x1)  =  x1
__(x1, x2)  =  x2
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  x1
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x3)
U22(x1, x2)  =  U22(x2)
isList(x1)  =  x1
U23(x1)  =  x1
U31(x1, x2)  =  x2
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid(x1)
U41(x1, x2, x3)  =  U41(x3)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x2, x3)
U52(x1, x2)  =  U52(x1, x2)
U53(x1)  =  x1
U61(x1, x2)  =  x2
U62(x1)  =  x1
U71(x1, x2)  =  x1
U72(x1)  =  U72(x1)
isNePal(x1)  =  x1
and(x1, x2)  =  and(x2)
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
U71^11 > [mark, a, o, u]
nil > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
[tt, i] > U221 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
[tt, i] > U321 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
[tt, i] > isQid1 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
[tt, i] > U522 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
[tt, i] > U721 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
e > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > U211 > U221 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > U321 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > isQid1 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > U411 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > U512 > U522 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > U721 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > isPalListKind1 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > isPal1 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]

Status:
U71^11: multiset
ok1: [1]
mark: multiset
nil: multiset
U111: [1]
tt: multiset
isNeList1: [1]
U211: multiset
U221: [1]
U321: [1]
isQid1: [1]
U411: [1]
U421: [1]
U512: [1,2]
U522: [1,2]
U721: [1]
and1: multiset
isPalListKind1: multiset
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(51) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U711(mark(X1), X2) → U711(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(52) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U711(mark(X1), X2) → U711(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U711(x1, x2)  =  U711(x1, x2)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  x1
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList
U21(x1, x2, x3)  =  x1
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x1)
U43(x1)  =  x1
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x1)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  x1
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  U72(x1)
isNePal(x1)  =  x1
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
ok(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
U71^12 > isPal1
[active1, isList] > _2 > U411 > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
[active1, isList] > _2 > and2 > [mark1, U121, U231, U531] > isPal1
[active1, isList] > _2 > isPalListKind > tt > U221 > [mark1, U121, U231, U531] > isPal1
[active1, isList] > _2 > isPalListKind > tt > isQid > [mark1, U121, U231, U531] > isPal1
[active1, isList] > _2 > isPalListKind > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
[active1, isList] > _2 > isPalListKind > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U321 > tt > U221 > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U321 > tt > isQid > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U321 > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U321 > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U521 > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U621 > tt > U221 > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U621 > tt > isQid > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U621 > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U621 > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
nil > tt > U221 > [mark1, U121, U231, U531] > isPal1
nil > tt > isQid > [mark1, U121, U231, U531] > isPal1
nil > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
nil > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
a > [mark1, U121, U231, U531] > isPal1
e > tt > U221 > [mark1, U121, U231, U531] > isPal1
e > tt > isQid > [mark1, U121, U231, U531] > isPal1
e > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
e > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
i > tt > U221 > [mark1, U121, U231, U531] > isPal1
i > tt > isQid > [mark1, U121, U231, U531] > isPal1
i > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
i > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
o > tt > U221 > [mark1, U121, U231, U531] > isPal1
o > tt > isQid > [mark1, U121, U231, U531] > isPal1
o > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
o > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
u > tt > U221 > [mark1, U121, U231, U531] > isPal1
u > tt > isQid > [mark1, U121, U231, U531] > isPal1
u > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
u > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
top > isPal1

Status:
U71^12: multiset
mark1: [1]
active1: multiset
_2: [2,1]
nil: multiset
tt: multiset
U121: [1]
isNeList: multiset
U221: multiset
isList: multiset
U231: [1]
U321: [1]
isQid: multiset
U411: [1]
U421: multiset
U521: [1]
U531: [1]
U621: multiset
U712: multiset
U721: multiset
and2: [2,1]
isPalListKind: multiset
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(53) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(54) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(55) TRUE

(56) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U621(ok(X)) → U621(X)
U621(mark(X)) → U621(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(57) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U621(mark(X)) → U621(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U621(x1)  =  x1
ok(x1)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  U11(x1, x2)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  U21(x1, x2, x3)
U22(x1, x2)  =  U22(x1, x2)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  U31(x1)
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1, x2, x3)
U42(x1, x2)  =  U42(x1, x2)
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x1, x2, x3)
U52(x1, x2)  =  U52(x1, x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1, x2)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  x1
isNePal(x1)  =  x1
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  x1
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, 2, U413] > U112 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U213 > [U222, isList1, U522] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U311 > U321 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U311 > [isQid, U612] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U422 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U513 > [U222, isList1, U522] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U712 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > and2 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > isPal1 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
nil > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
e > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
o > [mark1, U121, U231, U531, U621, i, u] > [tt, a]

Status:
mark1: multiset
active1: [1]
_2: [1,2]
nil: multiset
U112: multiset
tt: multiset
U121: multiset
U213: multiset
U222: [2,1]
isList1: [1]
U231: multiset
U311: [1]
U321: [1]
isQid: []
U413: [2,3,1]
U422: multiset
U513: [1,3,2]
U522: [2,1]
U531: multiset
U612: [2,1]
U621: multiset
U712: multiset
and2: [1,2]
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(58) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U621(ok(X)) → U621(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(59) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U621(ok(X)) → U621(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U621(x1)  =  U621(x1)
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x2)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  x1
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, U121, U211, U421, U531, U711, proper1, top] > _2 > U411 > isList1 > [U62^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U111 > isNeList1 > [U62^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U231 > [U62^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U321 > [U62^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U521 > isList1 > [U62^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > isNePal1 > U611 > U621 > [U62^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > a > [U62^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > e > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > i > [U62^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > o
[active1, U121, U211, U421, U531, U711, proper1, top] > u

Status:
U62^11: [1]
ok1: [1]
active1: [1]
_2: multiset
mark: []
nil: multiset
U111: [1]
tt: multiset
U121: [1]
isNeList1: [1]
U211: [1]
U221: [1]
isList1: [1]
U231: [1]
U321: [1]
U411: multiset
U421: [1]
U431: [1]
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
isNePal1: [1]
isPalListKind1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(60) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(61) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(62) TRUE

(63) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U611(ok(X1), ok(X2)) → U611(X1, X2)
U611(mark(X1), X2) → U611(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(64) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U611(ok(X1), ok(X2)) → U611(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U611(x1, x2)  =  U611(x2)
ok(x1)  =  ok(x1)
mark(x1)  =  mark
active(x1)  =  x1
__(x1, x2)  =  x2
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  x1
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x3)
U22(x1, x2)  =  U22(x2)
isList(x1)  =  x1
U23(x1)  =  x1
U31(x1, x2)  =  x2
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid(x1)
U41(x1, x2, x3)  =  U41(x3)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x2, x3)
U52(x1, x2)  =  U52(x1, x2)
U53(x1)  =  x1
U61(x1, x2)  =  x2
U62(x1)  =  x1
U71(x1, x2)  =  x1
U72(x1)  =  U72(x1)
isNePal(x1)  =  x1
and(x1, x2)  =  and(x2)
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
U61^11 > [mark, a, o, u]
nil > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
[tt, i] > U221 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
[tt, i] > U321 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
[tt, i] > isQid1 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
[tt, i] > U522 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
[tt, i] > U721 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
e > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > U211 > U221 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > U321 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > isQid1 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > U411 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > U512 > U522 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > U721 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > isPalListKind1 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > isPal1 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]

Status:
U61^11: multiset
ok1: [1]
mark: multiset
nil: multiset
U111: [1]
tt: multiset
isNeList1: [1]
U211: multiset
U221: [1]
U321: [1]
isQid1: [1]
U411: [1]
U421: [1]
U512: [1,2]
U522: [1,2]
U721: [1]
and1: multiset
isPalListKind1: multiset
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(65) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U611(mark(X1), X2) → U611(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(66) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U611(mark(X1), X2) → U611(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U611(x1, x2)  =  U611(x1, x2)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  x1
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList
U21(x1, x2, x3)  =  x1
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x1)
U43(x1)  =  x1
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x1)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  x1
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  U72(x1)
isNePal(x1)  =  x1
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
ok(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
U61^12 > isPal1
[active1, isList] > _2 > U411 > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
[active1, isList] > _2 > and2 > [mark1, U121, U231, U531] > isPal1
[active1, isList] > _2 > isPalListKind > tt > U221 > [mark1, U121, U231, U531] > isPal1
[active1, isList] > _2 > isPalListKind > tt > isQid > [mark1, U121, U231, U531] > isPal1
[active1, isList] > _2 > isPalListKind > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
[active1, isList] > _2 > isPalListKind > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U321 > tt > U221 > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U321 > tt > isQid > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U321 > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U321 > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U521 > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U621 > tt > U221 > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U621 > tt > isQid > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U621 > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U621 > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
nil > tt > U221 > [mark1, U121, U231, U531] > isPal1
nil > tt > isQid > [mark1, U121, U231, U531] > isPal1
nil > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
nil > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
a > [mark1, U121, U231, U531] > isPal1
e > tt > U221 > [mark1, U121, U231, U531] > isPal1
e > tt > isQid > [mark1, U121, U231, U531] > isPal1
e > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
e > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
i > tt > U221 > [mark1, U121, U231, U531] > isPal1
i > tt > isQid > [mark1, U121, U231, U531] > isPal1
i > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
i > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
o > tt > U221 > [mark1, U121, U231, U531] > isPal1
o > tt > isQid > [mark1, U121, U231, U531] > isPal1
o > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
o > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
u > tt > U221 > [mark1, U121, U231, U531] > isPal1
u > tt > isQid > [mark1, U121, U231, U531] > isPal1
u > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
u > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
top > isPal1

Status:
U61^12: multiset
mark1: [1]
active1: multiset
_2: [2,1]
nil: multiset
tt: multiset
U121: [1]
isNeList: multiset
U221: multiset
isList: multiset
U231: [1]
U321: [1]
isQid: multiset
U411: [1]
U421: multiset
U521: [1]
U531: [1]
U621: multiset
U712: multiset
U721: multiset
and2: [2,1]
isPalListKind: multiset
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(67) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(68) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(69) TRUE

(70) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U531(ok(X)) → U531(X)
U531(mark(X)) → U531(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(71) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U531(mark(X)) → U531(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U531(x1)  =  x1
ok(x1)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  U11(x1, x2)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  U21(x1, x2, x3)
U22(x1, x2)  =  U22(x1, x2)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  U31(x1)
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1, x2, x3)
U42(x1, x2)  =  U42(x1, x2)
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x1, x2, x3)
U52(x1, x2)  =  U52(x1, x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1, x2)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  x1
isNePal(x1)  =  x1
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  x1
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, 2, U413] > U112 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U213 > [U222, isList1, U522] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U311 > U321 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U311 > [isQid, U612] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U422 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U513 > [U222, isList1, U522] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U712 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > and2 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > isPal1 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
nil > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
e > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
o > [mark1, U121, U231, U531, U621, i, u] > [tt, a]

Status:
mark1: multiset
active1: [1]
_2: [1,2]
nil: multiset
U112: multiset
tt: multiset
U121: multiset
U213: multiset
U222: [2,1]
isList1: [1]
U231: multiset
U311: [1]
U321: [1]
isQid: []
U413: [2,3,1]
U422: multiset
U513: [1,3,2]
U522: [2,1]
U531: multiset
U612: [2,1]
U621: multiset
U712: multiset
and2: [1,2]
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(72) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U531(ok(X)) → U531(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(73) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U531(ok(X)) → U531(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U531(x1)  =  U531(x1)
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x2)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  x1
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, U121, U211, U421, U531, U711, proper1, top] > _2 > U411 > isList1 > [U53^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U111 > isNeList1 > [U53^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U231 > [U53^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U321 > [U53^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U521 > isList1 > [U53^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > isNePal1 > U611 > U621 > [U53^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > a > [U53^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > e > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > i > [U53^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > o
[active1, U121, U211, U421, U531, U711, proper1, top] > u

Status:
U53^11: [1]
ok1: [1]
active1: [1]
_2: multiset
mark: []
nil: multiset
U111: [1]
tt: multiset
U121: [1]
isNeList1: [1]
U211: [1]
U221: [1]
isList1: [1]
U231: [1]
U321: [1]
U411: multiset
U421: [1]
U431: [1]
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
isNePal1: [1]
isPalListKind1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(74) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(75) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(76) TRUE

(77) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U521(ok(X1), ok(X2)) → U521(X1, X2)
U521(mark(X1), X2) → U521(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(78) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U521(mark(X1), X2) → U521(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U521(x1, x2)  =  U521(x1)
ok(x1)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  x1
tt  =  tt
U12(x1)  =  x1
isNeList(x1)  =  isNeList
U21(x1, x2, x3)  =  U21(x1)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList
U23(x1)  =  x1
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x1)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x1)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  x1
U62(x1)  =  x1
U71(x1, x2)  =  U71(x1)
U72(x1)  =  U72(x1)
isNePal(x1)  =  isNePal
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, isQid, isPalListKind, proper1] > [nil, tt, isList, U521, a, e, i, o, u] > isNeList > [2, isNePal, and2] > [mark1, U531]
[active1, isQid, isPalListKind, proper1] > [nil, tt, isList, U521, a, e, i, o, u] > isNeList > [2, isNePal, and2] > isPal
[active1, isQid, isPalListKind, proper1] > [nil, tt, isList, U521, a, e, i, o, u] > isNeList > U411 > U421 > [mark1, U531]
[active1, isQid, isPalListKind, proper1] > [nil, tt, isList, U521, a, e, i, o, u] > U211 > [mark1, U531]
[active1, isQid, isPalListKind, proper1] > [nil, tt, isList, U521, a, e, i, o, u] > U221 > [mark1, U531]
[active1, isQid, isPalListKind, proper1] > [nil, tt, isList, U521, a, e, i, o, u] > U321 > [mark1, U531]
[active1, isQid, isPalListKind, proper1] > [nil, tt, isList, U521, a, e, i, o, u] > U431 > [mark1, U531]
[active1, isQid, isPalListKind, proper1] > [nil, tt, isList, U521, a, e, i, o, u] > U721 > [mark1, U531]
[active1, isQid, isPalListKind, proper1] > U711 > [2, isNePal, and2] > [mark1, U531]
[active1, isQid, isPalListKind, proper1] > U711 > [2, isNePal, and2] > isPal
[active1, isQid, isPalListKind, proper1] > U711 > U721 > [mark1, U531]

Status:
U52^11: [1]
mark1: multiset
active1: multiset
_2: multiset
nil: multiset
tt: multiset
isNeList: []
U211: [1]
U221: [1]
isList: multiset
U321: [1]
isQid: multiset
U411: [1]
U421: multiset
U431: multiset
U521: multiset
U531: multiset
U711: multiset
U721: [1]
isNePal: multiset
and2: multiset
isPalListKind: multiset
isPal: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(79) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U521(ok(X1), ok(X2)) → U521(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(80) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U521(ok(X1), ok(X2)) → U521(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U521(x1, x2)  =  U521(x1)
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  x1
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  x1
tt  =  tt
U12(x1)  =  x1
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  x1
U22(x1, x2)  =  x1
isList(x1)  =  x1
U23(x1)  =  x1
U31(x1, x2)  =  x2
U32(x1)  =  x1
isQid(x1)  =  x1
U41(x1, x2, x3)  =  x2
U42(x1, x2)  =  x2
U43(x1)  =  x1
U51(x1, x2, x3)  =  x3
U52(x1, x2)  =  x2
U53(x1)  =  x1
U61(x1, x2)  =  x2
U62(x1)  =  x1
U71(x1, x2)  =  x1
U72(x1)  =  x1
isNePal(x1)  =  x1
and(x1, x2)  =  x1
isPalListKind(x1)  =  x1
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
proper > nil > [U52^11, ok1, active1, mark, a, top]
proper > e > [tt, o] > [U52^11, ok1, active1, mark, a, top]
proper > i > [tt, o] > [U52^11, ok1, active1, mark, a, top]
proper > u > [tt, o] > [U52^11, ok1, active1, mark, a, top]

Status:
U52^11: multiset
ok1: multiset
active1: multiset
mark: multiset
nil: multiset
tt: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper: []
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(81) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(82) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(83) TRUE

(84) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U511(ok(X1), ok(X2), ok(X3)) → U511(X1, X2, X3)
U511(mark(X1), X2, X3) → U511(X1, X2, X3)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(85) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U511(ok(X1), ok(X2), ok(X3)) → U511(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U511(x1, x2, x3)  =  U511(x3)
ok(x1)  =  ok(x1)
mark(x1)  =  mark
active(x1)  =  x1
__(x1, x2)  =  x1
nil  =  nil
U11(x1, x2)  =  U11(x1, x2)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  U21(x2)
U22(x1, x2)  =  x1
isList(x1)  =  x1
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1, x2, x3)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x1, x2)
U52(x1, x2)  =  x2
U53(x1)  =  U53(x1)
U61(x1, x2)  =  x1
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  and(x2)
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[U112, U711, isNePal1, proper1] > U211 > [U51^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > U231 > [U51^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > U321 > [U51^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > U413 > [U51^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > U512 > [U51^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > U531 > [U51^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > U621 > [U51^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > and1 > [U51^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > isPal1 > [U51^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
i > [U51^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]

Status:
U51^11: multiset
ok1: [1]
mark: multiset
nil: multiset
U112: [2,1]
tt: multiset
U121: [1]
U211: [1]
U231: multiset
U321: [1]
U413: multiset
U421: [1]
U512: [1,2]
U531: [1]
U621: multiset
U711: [1]
isNePal1: [1]
and1: multiset
isPalListKind1: [1]
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(86) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U511(mark(X1), X2, X3) → U511(X1, X2, X3)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(87) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U511(mark(X1), X2, X3) → U511(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U511(x1, x2, x3)  =  U511(x1, x3)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList
U21(x1, x2, x3)  =  x1
U22(x1, x2)  =  x1
isList(x1)  =  isList
U23(x1)  =  x1
U31(x1, x2)  =  U31(x1)
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  x1
U42(x1, x2)  =  U42(x1)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x1)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  x1
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
ok(x1)  =  ok
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
nil > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > U51^12
nil > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
nil > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > U51^12
nil > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
nil > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > isQid > ok
nil > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > U51^12
nil > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
a > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > U51^12
a > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
a > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > U51^12
a > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
a > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > isQid > ok
a > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > U51^12
a > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
e > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > U51^12
e > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
e > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > U51^12
e > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
e > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > isQid > ok
e > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > U51^12
e > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
i > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > U51^12
i > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
i > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > U51^12
i > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
i > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > isQid > ok
i > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > U51^12
i > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
o > [mark1, U111, U431, U521] > U51^12
o > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
u > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > U51^12
u > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
u > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > U51^12
u > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
u > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > isQid > ok
u > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > U51^12
u > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
top > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > U51^12
top > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
top > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > U51^12
top > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
top > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > isQid > ok
top > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > U51^12
top > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok

Status:
U51^12: [1,2]
mark1: [1]
active1: multiset
_2: multiset
nil: multiset
U111: [1]
tt: multiset
U121: multiset
isNeList: multiset
isList: multiset
U311: multiset
U321: multiset
isQid: multiset
U421: multiset
U431: [1]
U521: [1]
U531: multiset
U621: multiset
U712: multiset
isNePal1: multiset
and2: multiset
isPalListKind: multiset
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
ok: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(88) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(89) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(90) TRUE

(91) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U431(ok(X)) → U431(X)
U431(mark(X)) → U431(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(92) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U431(mark(X)) → U431(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U431(x1)  =  x1
ok(x1)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  U11(x1, x2)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  U21(x1, x2, x3)
U22(x1, x2)  =  U22(x1, x2)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  U31(x1)
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1, x2, x3)
U42(x1, x2)  =  U42(x1, x2)
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x1, x2, x3)
U52(x1, x2)  =  U52(x1, x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1, x2)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  x1
isNePal(x1)  =  x1
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  x1
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, 2, U413] > U112 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U213 > [U222, isList1, U522] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U311 > U321 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U311 > [isQid, U612] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U422 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U513 > [U222, isList1, U522] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U712 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > and2 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > isPal1 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
nil > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
e > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
o > [mark1, U121, U231, U531, U621, i, u] > [tt, a]

Status:
mark1: multiset
active1: [1]
_2: [1,2]
nil: multiset
U112: multiset
tt: multiset
U121: multiset
U213: multiset
U222: [2,1]
isList1: [1]
U231: multiset
U311: [1]
U321: [1]
isQid: []
U413: [2,3,1]
U422: multiset
U513: [1,3,2]
U522: [2,1]
U531: multiset
U612: [2,1]
U621: multiset
U712: multiset
and2: [1,2]
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(93) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U431(ok(X)) → U431(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(94) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U431(ok(X)) → U431(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U431(x1)  =  U431(x1)
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x2)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  x1
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, U121, U211, U421, U531, U711, proper1, top] > _2 > U411 > isList1 > [U43^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U111 > isNeList1 > [U43^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U231 > [U43^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U321 > [U43^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U521 > isList1 > [U43^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > isNePal1 > U611 > U621 > [U43^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > a > [U43^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > e > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > i > [U43^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > o
[active1, U121, U211, U421, U531, U711, proper1, top] > u

Status:
U43^11: [1]
ok1: [1]
active1: [1]
_2: multiset
mark: []
nil: multiset
U111: [1]
tt: multiset
U121: [1]
isNeList1: [1]
U211: [1]
U221: [1]
isList1: [1]
U231: [1]
U321: [1]
U411: multiset
U421: [1]
U431: [1]
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
isNePal1: [1]
isPalListKind1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(95) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(96) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(97) TRUE

(98) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U421(ok(X1), ok(X2)) → U421(X1, X2)
U421(mark(X1), X2) → U421(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(99) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U421(mark(X1), X2) → U421(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U421(x1, x2)  =  U421(x1)
ok(x1)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  x1
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList
U21(x1, x2, x3)  =  x1
U22(x1, x2)  =  x1
isList(x1)  =  isList
U23(x1)  =  x1
U31(x1, x2)  =  U31(x1)
U32(x1)  =  x1
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  x1
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x1)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  x1
U62(x1)  =  U62(x1)
U71(x1, x2)  =  x1
U72(x1)  =  x1
isNePal(x1)  =  isNePal
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, isNeList, proper1] > [2, U411] > [mark1, nil] > [tt, isQid] > isNePal
[active1, isNeList, proper1] > [2, U411] > [mark1, nil] > top
[active1, isNeList, proper1] > [2, U411] > isPal
[active1, isNeList, proper1] > U121 > [mark1, nil] > [tt, isQid] > isNePal
[active1, isNeList, proper1] > U121 > [mark1, nil] > top
[active1, isNeList, proper1] > [isList, U521, and2, isPalListKind] > U531 > [mark1, nil] > [tt, isQid] > isNePal
[active1, isNeList, proper1] > [isList, U521, and2, isPalListKind] > U531 > [mark1, nil] > top
[active1, isNeList, proper1] > U311 > [mark1, nil] > [tt, isQid] > isNePal
[active1, isNeList, proper1] > U311 > [mark1, nil] > top
[active1, isNeList, proper1] > U431 > [mark1, nil] > [tt, isQid] > isNePal
[active1, isNeList, proper1] > U431 > [mark1, nil] > top
[active1, isNeList, proper1] > U621 > [mark1, nil] > [tt, isQid] > isNePal
[active1, isNeList, proper1] > U621 > [mark1, nil] > top
[active1, isNeList, proper1] > a > [tt, isQid] > isNePal
[active1, isNeList, proper1] > e > [tt, isQid] > isNePal
[active1, isNeList, proper1] > i
[active1, isNeList, proper1] > o
[active1, isNeList, proper1] > u

Status:
U42^11: multiset
mark1: [1]
active1: [1]
_2: multiset
nil: multiset
tt: multiset
U121: multiset
isNeList: []
isList: []
U311: [1]
isQid: multiset
U411: [1]
U431: multiset
U521: [1]
U531: [1]
U621: multiset
isNePal: multiset
and2: [2,1]
isPalListKind: multiset
isPal: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(100) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U421(ok(X1), ok(X2)) → U421(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(101) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U421(ok(X1), ok(X2)) → U421(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U421(x1, x2)  =  U421(x1)
ok(x1)  =  ok(x1)
active(x1)  =  x1
__(x1, x2)  =  x1
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  x1
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x2, x3)
U22(x1, x2)  =  x2
isList(x1)  =  x1
U23(x1)  =  U23(x1)
U31(x1, x2)  =  U31(x2)
U32(x1)  =  x1
isQid(x1)  =  x1
U41(x1, x2, x3)  =  x2
U42(x1, x2)  =  x2
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x3
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  x2
U62(x1)  =  x1
U71(x1, x2)  =  x2
U72(x1)  =  U72(x1)
isNePal(x1)  =  x1
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  x1
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
U42^11 > [mark, i]
[nil, isNeList1, U212, U231, U431, and2, proper1] > [ok1, U121, U311, U521, U531, U721, isPal1, top] > tt > [mark, i]
[nil, isNeList1, U212, U231, U431, and2, proper1] > a > tt > [mark, i]
[nil, isNeList1, U212, U231, U431, and2, proper1] > e > [mark, i]
[nil, isNeList1, U212, U231, U431, and2, proper1] > o > [mark, i]
[nil, isNeList1, U212, U231, U431, and2, proper1] > u > tt > [mark, i]

Status:
U42^11: [1]
ok1: [1]
mark: []
nil: multiset
tt: multiset
U121: [1]
isNeList1: [1]
U212: [1,2]
U231: [1]
U311: [1]
U431: [1]
U521: [1]
U531: [1]
U721: [1]
and2: [1,2]
isPal1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(102) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(103) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(104) TRUE

(105) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U411(ok(X1), ok(X2), ok(X3)) → U411(X1, X2, X3)
U411(mark(X1), X2, X3) → U411(X1, X2, X3)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(106) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U411(ok(X1), ok(X2), ok(X3)) → U411(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U411(x1, x2, x3)  =  U411(x3)
ok(x1)  =  ok(x1)
mark(x1)  =  mark
active(x1)  =  x1
__(x1, x2)  =  x1
nil  =  nil
U11(x1, x2)  =  U11(x1, x2)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  U21(x2)
U22(x1, x2)  =  x1
isList(x1)  =  x1
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1, x2, x3)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x1, x2)
U52(x1, x2)  =  x2
U53(x1)  =  U53(x1)
U61(x1, x2)  =  x1
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  and(x2)
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[U112, U711, isNePal1, proper1] > U211 > [U41^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > U231 > [U41^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > U321 > [U41^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > U413 > [U41^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > U512 > [U41^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > U531 > [U41^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > U621 > [U41^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > and1 > [U41^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
[U112, U711, isNePal1, proper1] > isPal1 > [U41^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]
i > [U41^11, ok1, nil, tt, U121, U421, isPalListKind1, e, u] > top > [mark, a, o]

Status:
U41^11: multiset
ok1: [1]
mark: multiset
nil: multiset
U112: [2,1]
tt: multiset
U121: [1]
U211: [1]
U231: multiset
U321: [1]
U413: multiset
U421: [1]
U512: [1,2]
U531: [1]
U621: multiset
U711: [1]
isNePal1: [1]
and1: multiset
isPalListKind1: [1]
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(107) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U411(mark(X1), X2, X3) → U411(X1, X2, X3)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(108) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U411(mark(X1), X2, X3) → U411(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U411(x1, x2, x3)  =  U411(x1, x3)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList
U21(x1, x2, x3)  =  x1
U22(x1, x2)  =  x1
isList(x1)  =  isList
U23(x1)  =  x1
U31(x1, x2)  =  U31(x1)
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  x1
U42(x1, x2)  =  U42(x1)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x1)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  x1
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
ok(x1)  =  ok
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
nil > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > U41^12
nil > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
nil > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > U41^12
nil > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
nil > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > isQid > ok
nil > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > U41^12
nil > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
a > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > U41^12
a > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
a > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > U41^12
a > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
a > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > isQid > ok
a > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > U41^12
a > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
e > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > U41^12
e > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
e > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > U41^12
e > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
e > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > isQid > ok
e > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > U41^12
e > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
i > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > U41^12
i > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
i > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > U41^12
i > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
i > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > isQid > ok
i > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > U41^12
i > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
o > [mark1, U111, U431, U521] > U41^12
o > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
u > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > U41^12
u > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
u > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > U41^12
u > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
u > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > isQid > ok
u > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > U41^12
u > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
top > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > U41^12
top > [active1, 2, tt, U121, U311, U321, U421, U531] > isList > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
top > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > U41^12
top > [active1, 2, tt, U121, U311, U321, U421, U531] > U621 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok
top > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > isQid > ok
top > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > U41^12
top > [active1, 2, tt, U121, U311, U321, U421, U531] > [isNePal1, and2, isPal1] > U712 > [mark1, U111, U431, U521] > isNeList > isPalListKind > ok

Status:
U41^12: [1,2]
mark1: [1]
active1: multiset
_2: multiset
nil: multiset
U111: [1]
tt: multiset
U121: multiset
isNeList: multiset
isList: multiset
U311: multiset
U321: multiset
isQid: multiset
U421: multiset
U431: [1]
U521: [1]
U531: multiset
U621: multiset
U712: multiset
isNePal1: multiset
and2: multiset
isPalListKind: multiset
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
ok: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(109) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(110) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(111) TRUE

(112) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U321(ok(X)) → U321(X)
U321(mark(X)) → U321(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(113) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U321(mark(X)) → U321(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U321(x1)  =  x1
ok(x1)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  U11(x1, x2)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  U21(x1, x2, x3)
U22(x1, x2)  =  U22(x1, x2)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  U31(x1)
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1, x2, x3)
U42(x1, x2)  =  U42(x1, x2)
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x1, x2, x3)
U52(x1, x2)  =  U52(x1, x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1, x2)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  x1
isNePal(x1)  =  x1
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  x1
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, 2, U413] > U112 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U213 > [U222, isList1, U522] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U311 > U321 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U311 > [isQid, U612] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U422 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U513 > [U222, isList1, U522] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U712 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > and2 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > isPal1 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
nil > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
e > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
o > [mark1, U121, U231, U531, U621, i, u] > [tt, a]

Status:
mark1: multiset
active1: [1]
_2: [1,2]
nil: multiset
U112: multiset
tt: multiset
U121: multiset
U213: multiset
U222: [2,1]
isList1: [1]
U231: multiset
U311: [1]
U321: [1]
isQid: []
U413: [2,3,1]
U422: multiset
U513: [1,3,2]
U522: [2,1]
U531: multiset
U612: [2,1]
U621: multiset
U712: multiset
and2: [1,2]
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(114) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U321(ok(X)) → U321(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(115) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U321(ok(X)) → U321(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U321(x1)  =  U321(x1)
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x2)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  x1
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, U121, U211, U421, U531, U711, proper1, top] > _2 > U411 > isList1 > [U32^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U111 > isNeList1 > [U32^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U231 > [U32^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U321 > [U32^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U521 > isList1 > [U32^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > isNePal1 > U611 > U621 > [U32^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > a > [U32^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > e > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > i > [U32^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > o
[active1, U121, U211, U421, U531, U711, proper1, top] > u

Status:
U32^11: [1]
ok1: [1]
active1: [1]
_2: multiset
mark: []
nil: multiset
U111: [1]
tt: multiset
U121: [1]
isNeList1: [1]
U211: [1]
U221: [1]
isList1: [1]
U231: [1]
U321: [1]
U411: multiset
U421: [1]
U431: [1]
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
isNePal1: [1]
isPalListKind1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(116) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(117) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(118) TRUE

(119) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U311(ok(X1), ok(X2)) → U311(X1, X2)
U311(mark(X1), X2) → U311(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(120) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U311(ok(X1), ok(X2)) → U311(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U311(x1, x2)  =  x2
ok(x1)  =  ok(x1)
mark(x1)  =  mark
active(x1)  =  active(x1)
__(x1, x2)  =  x2
nil  =  nil
U11(x1, x2)  =  x2
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  x3
U22(x1, x2)  =  U22(x2)
isList(x1)  =  isList(x1)
U23(x1)  =  x1
U31(x1, x2)  =  U31(x2)
U32(x1)  =  x1
isQid(x1)  =  x1
U41(x1, x2, x3)  =  x3
U42(x1, x2)  =  x2
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  U51(x1)
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x2)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  U72(x1)
isNePal(x1)  =  x1
and(x1, x2)  =  x2
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
top > [active1, U121, proper1] > nil > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > U221 > isList1 > isPalListKind1 > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > U511 > U521 > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > U531 > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > U611 > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > U721 > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > a > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > e > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > i > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > o > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > u > tt > [ok1, U311, U431, U621, U711] > mark

Status:
ok1: [1]
mark: multiset
active1: multiset
nil: multiset
tt: multiset
U121: multiset
U221: [1]
isList1: multiset
U311: [1]
U431: [1]
U511: multiset
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
U721: [1]
isPalListKind1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(121) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U311(mark(X1), X2) → U311(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(122) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U311(mark(X1), X2) → U311(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U311(x1, x2)  =  U311(x1)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList
U21(x1, x2, x3)  =  U21(x1)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList
U23(x1)  =  U23(x1)
U31(x1, x2)  =  U31(x1)
U32(x1)  =  x1
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x1)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  U51(x1)
U52(x1, x2)  =  U52(x1)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  U72(x1)
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
ok(x1)  =  ok
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
U31^11 > [nil, isNeList, i, o, ok]
[active1, U431, U621] > _2 > U211 > U221 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > _2 > isQid > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U111 > U121 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U231 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U311 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U411 > U421 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U511 > U521 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U611 > isQid > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U712 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U712 > isNePal1 > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > and2 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
a > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
e > [nil, isNeList, i, o, ok]
u > [nil, isNeList, i, o, ok]
top > [nil, isNeList, i, o, ok]

Status:
U31^11: multiset
mark1: [1]
active1: multiset
_2: [2,1]
nil: multiset
U111: multiset
tt: multiset
U121: [1]
isNeList: multiset
U211: [1]
U221: multiset
isList: multiset
U231: [1]
U311: [1]
isQid: multiset
U411: [1]
U421: multiset
U431: multiset
U511: [1]
U521: [1]
U531: [1]
U611: multiset
U621: multiset
U712: [1,2]
U721: [1]
isNePal1: multiset
and2: [2,1]
isPalListKind: []
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
ok: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(123) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(124) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(125) TRUE

(126) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U231(ok(X)) → U231(X)
U231(mark(X)) → U231(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(127) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U231(mark(X)) → U231(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U231(x1)  =  x1
ok(x1)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  U11(x1, x2)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  U21(x1, x2, x3)
U22(x1, x2)  =  U22(x1, x2)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  U31(x1)
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1, x2, x3)
U42(x1, x2)  =  U42(x1, x2)
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x1, x2, x3)
U52(x1, x2)  =  U52(x1, x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1, x2)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  x1
isNePal(x1)  =  x1
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  x1
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, 2, U413] > U112 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U213 > [U222, isList1, U522] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U311 > U321 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U311 > [isQid, U612] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U422 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U513 > [U222, isList1, U522] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U712 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > and2 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > isPal1 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
nil > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
e > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
o > [mark1, U121, U231, U531, U621, i, u] > [tt, a]

Status:
mark1: multiset
active1: [1]
_2: [1,2]
nil: multiset
U112: multiset
tt: multiset
U121: multiset
U213: multiset
U222: [2,1]
isList1: [1]
U231: multiset
U311: [1]
U321: [1]
isQid: []
U413: [2,3,1]
U422: multiset
U513: [1,3,2]
U522: [2,1]
U531: multiset
U612: [2,1]
U621: multiset
U712: multiset
and2: [1,2]
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(128) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U231(ok(X)) → U231(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(129) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U231(ok(X)) → U231(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U231(x1)  =  U231(x1)
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x2)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  x1
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, U121, U211, U421, U531, U711, proper1, top] > _2 > U411 > isList1 > [U23^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U111 > isNeList1 > [U23^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U231 > [U23^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U321 > [U23^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U521 > isList1 > [U23^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > isNePal1 > U611 > U621 > [U23^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > a > [U23^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > e > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > i > [U23^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > o
[active1, U121, U211, U421, U531, U711, proper1, top] > u

Status:
U23^11: [1]
ok1: [1]
active1: [1]
_2: multiset
mark: []
nil: multiset
U111: [1]
tt: multiset
U121: [1]
isNeList1: [1]
U211: [1]
U221: [1]
isList1: [1]
U231: [1]
U321: [1]
U411: multiset
U421: [1]
U431: [1]
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
isNePal1: [1]
isPalListKind1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(130) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(131) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(132) TRUE

(133) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U221(ok(X1), ok(X2)) → U221(X1, X2)
U221(mark(X1), X2) → U221(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(134) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U221(ok(X1), ok(X2)) → U221(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U221(x1, x2)  =  U221(x2)
ok(x1)  =  ok(x1)
mark(x1)  =  mark
active(x1)  =  x1
__(x1, x2)  =  x2
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  x1
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x3)
U22(x1, x2)  =  U22(x2)
isList(x1)  =  x1
U23(x1)  =  x1
U31(x1, x2)  =  x2
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid(x1)
U41(x1, x2, x3)  =  U41(x3)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x2, x3)
U52(x1, x2)  =  U52(x1, x2)
U53(x1)  =  x1
U61(x1, x2)  =  x2
U62(x1)  =  x1
U71(x1, x2)  =  x1
U72(x1)  =  U72(x1)
isNePal(x1)  =  x1
and(x1, x2)  =  and(x2)
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
U22^11 > [mark, a, o, u]
nil > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
[tt, i] > U221 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
[tt, i] > U321 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
[tt, i] > isQid1 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
[tt, i] > U522 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
[tt, i] > U721 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
e > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > U211 > U221 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > U321 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > isQid1 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > U411 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > U512 > U522 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > U721 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > isPalListKind1 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]
top > [and1, proper1] > isPal1 > [ok1, U111, isNeList1, U421] > [mark, a, o, u]

Status:
U22^11: multiset
ok1: [1]
mark: multiset
nil: multiset
U111: [1]
tt: multiset
isNeList1: [1]
U211: multiset
U221: [1]
U321: [1]
isQid1: [1]
U411: [1]
U421: [1]
U512: [1,2]
U522: [1,2]
U721: [1]
and1: multiset
isPalListKind1: multiset
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(135) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U221(mark(X1), X2) → U221(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(136) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U221(mark(X1), X2) → U221(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U221(x1, x2)  =  U221(x1, x2)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  x1
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList
U21(x1, x2, x3)  =  x1
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x1)
U43(x1)  =  x1
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x1)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  x1
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  U72(x1)
isNePal(x1)  =  x1
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
ok(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
U22^12 > isPal1
[active1, isList] > _2 > U411 > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
[active1, isList] > _2 > and2 > [mark1, U121, U231, U531] > isPal1
[active1, isList] > _2 > isPalListKind > tt > U221 > [mark1, U121, U231, U531] > isPal1
[active1, isList] > _2 > isPalListKind > tt > isQid > [mark1, U121, U231, U531] > isPal1
[active1, isList] > _2 > isPalListKind > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
[active1, isList] > _2 > isPalListKind > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U321 > tt > U221 > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U321 > tt > isQid > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U321 > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U321 > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U521 > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U621 > tt > U221 > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U621 > tt > isQid > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U621 > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
[active1, isList] > U621 > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
nil > tt > U221 > [mark1, U121, U231, U531] > isPal1
nil > tt > isQid > [mark1, U121, U231, U531] > isPal1
nil > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
nil > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
a > [mark1, U121, U231, U531] > isPal1
e > tt > U221 > [mark1, U121, U231, U531] > isPal1
e > tt > isQid > [mark1, U121, U231, U531] > isPal1
e > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
e > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
i > tt > U221 > [mark1, U121, U231, U531] > isPal1
i > tt > isQid > [mark1, U121, U231, U531] > isPal1
i > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
i > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
o > tt > U221 > [mark1, U121, U231, U531] > isPal1
o > tt > isQid > [mark1, U121, U231, U531] > isPal1
o > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
o > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
u > tt > U221 > [mark1, U121, U231, U531] > isPal1
u > tt > isQid > [mark1, U121, U231, U531] > isPal1
u > tt > U421 > isNeList > [mark1, U121, U231, U531] > isPal1
u > tt > [U712, U721] > [mark1, U121, U231, U531] > isPal1
top > isPal1

Status:
U22^12: multiset
mark1: [1]
active1: multiset
_2: [2,1]
nil: multiset
tt: multiset
U121: [1]
isNeList: multiset
U221: multiset
isList: multiset
U231: [1]
U321: [1]
isQid: multiset
U411: [1]
U421: multiset
U521: [1]
U531: [1]
U621: multiset
U712: multiset
U721: multiset
and2: [2,1]
isPalListKind: multiset
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(137) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(138) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(139) TRUE

(140) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U211(ok(X1), ok(X2), ok(X3)) → U211(X1, X2, X3)
U211(mark(X1), X2, X3) → U211(X1, X2, X3)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(141) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U211(ok(X1), ok(X2), ok(X3)) → U211(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U211(x1, x2, x3)  =  U211(x2)
ok(x1)  =  ok(x1)
mark(x1)  =  mark
active(x1)  =  x1
__(x1, x2)  =  x1
nil  =  nil
U11(x1, x2)  =  x1
tt  =  tt
U12(x1)  =  x1
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  x1
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList(x1)
U23(x1)  =  x1
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  x3
U42(x1, x2)  =  x1
U43(x1)  =  x1
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x1, x2)
U53(x1)  =  x1
U61(x1, x2)  =  x1
U62(x1)  =  x1
U71(x1, x2)  =  x2
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  x1
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[isList1, isPalListKind1, proper1] > nil > [mark, tt, a, i, o, top]
[isList1, isPalListKind1, proper1] > isNeList1 > ok1 > U21^11 > [mark, tt, a, i, o, top]
[isList1, isPalListKind1, proper1] > U221 > ok1 > U21^11 > [mark, tt, a, i, o, top]
[isList1, isPalListKind1, proper1] > U321 > ok1 > U21^11 > [mark, tt, a, i, o, top]
[isList1, isPalListKind1, proper1] > U522 > ok1 > U21^11 > [mark, tt, a, i, o, top]
[isList1, isPalListKind1, proper1] > isNePal1 > ok1 > U21^11 > [mark, tt, a, i, o, top]
[isList1, isPalListKind1, proper1] > e > ok1 > U21^11 > [mark, tt, a, i, o, top]
[isList1, isPalListKind1, proper1] > u > [mark, tt, a, i, o, top]

Status:
U21^11: multiset
ok1: [1]
mark: []
nil: multiset
tt: multiset
isNeList1: [1]
U221: [1]
isList1: multiset
U321: multiset
U522: multiset
isNePal1: [1]
isPalListKind1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(142) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U211(mark(X1), X2, X3) → U211(X1, X2, X3)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(143) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U211(mark(X1), X2, X3) → U211(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U211(x1, x2, x3)  =  U211(x1, x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  x1
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList
U21(x1, x2, x3)  =  U21(x1)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList
U23(x1)  =  U23(x1)
U31(x1, x2)  =  U31(x1)
U32(x1)  =  x1
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x1)
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x1)
U52(x1, x2)  =  U52(x1)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1)
U72(x1)  =  U72(x1)
isNePal(x1)  =  isNePal
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
ok(x1)  =  ok
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, U221, isQid, U611, isNePal] > [2, and2] > U211 > [mark1, U121, U411, U511, U531] > U21^13
[active1, U221, isQid, U611, isNePal] > [2, and2] > U211 > [mark1, U121, U411, U511, U531] > [isNeList, isList, ok]
[active1, U221, isQid, U611, isNePal] > [2, and2] > [isPalListKind, isPal] > U711 > [mark1, U121, U411, U511, U531] > U21^13
[active1, U221, isQid, U611, isNePal] > [2, and2] > [isPalListKind, isPal] > U711 > [mark1, U121, U411, U511, U531] > [isNeList, isList, ok]
[active1, U221, isQid, U611, isNePal] > [tt, e, u] > U231 > [mark1, U121, U411, U511, U531] > U21^13
[active1, U221, isQid, U611, isNePal] > [tt, e, u] > U231 > [mark1, U121, U411, U511, U531] > [isNeList, isList, ok]
[active1, U221, isQid, U611, isNePal] > [tt, e, u] > U421 > [mark1, U121, U411, U511, U531] > U21^13
[active1, U221, isQid, U611, isNePal] > [tt, e, u] > U421 > [mark1, U121, U411, U511, U531] > [isNeList, isList, ok]
[active1, U221, isQid, U611, isNePal] > [tt, e, u] > U521 > [mark1, U121, U411, U511, U531] > U21^13
[active1, U221, isQid, U611, isNePal] > [tt, e, u] > U521 > [mark1, U121, U411, U511, U531] > [isNeList, isList, ok]
[active1, U221, isQid, U611, isNePal] > [tt, e, u] > U621 > [mark1, U121, U411, U511, U531] > U21^13
[active1, U221, isQid, U611, isNePal] > [tt, e, u] > U621 > [mark1, U121, U411, U511, U531] > [isNeList, isList, ok]
[active1, U221, isQid, U611, isNePal] > [tt, e, u] > U721 > [mark1, U121, U411, U511, U531] > U21^13
[active1, U221, isQid, U611, isNePal] > [tt, e, u] > U721 > [mark1, U121, U411, U511, U531] > [isNeList, isList, ok]
[active1, U221, isQid, U611, isNePal] > U311 > [mark1, U121, U411, U511, U531] > U21^13
[active1, U221, isQid, U611, isNePal] > U311 > [mark1, U121, U411, U511, U531] > [isNeList, isList, ok]
nil > [mark1, U121, U411, U511, U531] > U21^13
nil > [mark1, U121, U411, U511, U531] > [isNeList, isList, ok]
a > [tt, e, u] > U231 > [mark1, U121, U411, U511, U531] > U21^13
a > [tt, e, u] > U231 > [mark1, U121, U411, U511, U531] > [isNeList, isList, ok]
a > [tt, e, u] > U421 > [mark1, U121, U411, U511, U531] > U21^13
a > [tt, e, u] > U421 > [mark1, U121, U411, U511, U531] > [isNeList, isList, ok]
a > [tt, e, u] > U521 > [mark1, U121, U411, U511, U531] > U21^13
a > [tt, e, u] > U521 > [mark1, U121, U411, U511, U531] > [isNeList, isList, ok]
a > [tt, e, u] > U621 > [mark1, U121, U411, U511, U531] > U21^13
a > [tt, e, u] > U621 > [mark1, U121, U411, U511, U531] > [isNeList, isList, ok]
a > [tt, e, u] > U721 > [mark1, U121, U411, U511, U531] > U21^13
a > [tt, e, u] > U721 > [mark1, U121, U411, U511, U531] > [isNeList, isList, ok]
i > [isNeList, isList, ok]
o > [mark1, U121, U411, U511, U531] > U21^13
o > [mark1, U121, U411, U511, U531] > [isNeList, isList, ok]

Status:
U21^13: [1,2,3]
mark1: multiset
active1: multiset
_2: [1,2]
nil: multiset
tt: multiset
U121: multiset
isNeList: multiset
U211: [1]
U221: multiset
isList: multiset
U231: [1]
U311: [1]
isQid: multiset
U411: multiset
U421: [1]
U511: multiset
U521: multiset
U531: multiset
U611: multiset
U621: multiset
U711: [1]
U721: [1]
isNePal: multiset
and2: multiset
isPalListKind: multiset
isPal: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
ok: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(144) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(145) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(146) TRUE

(147) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U121(ok(X)) → U121(X)
U121(mark(X)) → U121(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(148) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U121(mark(X)) → U121(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U121(x1)  =  x1
ok(x1)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  U11(x1, x2)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  U21(x1, x2, x3)
U22(x1, x2)  =  U22(x1, x2)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  U31(x1)
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1, x2, x3)
U42(x1, x2)  =  U42(x1, x2)
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x1, x2, x3)
U52(x1, x2)  =  U52(x1, x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1, x2)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  x1
isNePal(x1)  =  x1
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  x1
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, 2, U413] > U112 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U213 > [U222, isList1, U522] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U311 > U321 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U311 > [isQid, U612] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U422 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U513 > [U222, isList1, U522] > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > U712 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > and2 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
[active1, 2, U413] > isPal1 > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
nil > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
e > [mark1, U121, U231, U531, U621, i, u] > [tt, a]
o > [mark1, U121, U231, U531, U621, i, u] > [tt, a]

Status:
mark1: multiset
active1: [1]
_2: [1,2]
nil: multiset
U112: multiset
tt: multiset
U121: multiset
U213: multiset
U222: [2,1]
isList1: [1]
U231: multiset
U311: [1]
U321: [1]
isQid: []
U413: [2,3,1]
U422: multiset
U513: [1,3,2]
U522: [2,1]
U531: multiset
U612: [2,1]
U621: multiset
U712: multiset
and2: [1,2]
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(149) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U121(ok(X)) → U121(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(150) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U121(ok(X)) → U121(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U121(x1)  =  U121(x1)
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x2)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x2)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  x1
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  x1
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, U121, U211, U421, U531, U711, proper1, top] > _2 > U411 > isList1 > [U12^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U111 > isNeList1 > [U12^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U231 > [U12^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U321 > [U12^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > U521 > isList1 > [U12^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > isNePal1 > U611 > U621 > [U12^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > a > [U12^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > e > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > i > [U12^11, ok1, U221, U431, isPalListKind1] > tt > [mark, nil]
[active1, U121, U211, U421, U531, U711, proper1, top] > o
[active1, U121, U211, U421, U531, U711, proper1, top] > u

Status:
U12^11: [1]
ok1: [1]
active1: [1]
_2: multiset
mark: []
nil: multiset
U111: [1]
tt: multiset
U121: [1]
isNeList1: [1]
U211: [1]
U221: [1]
isList1: [1]
U231: [1]
U321: [1]
U411: multiset
U421: [1]
U431: [1]
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
isNePal1: [1]
isPalListKind1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(151) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(152) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(153) TRUE

(154) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U111(ok(X1), ok(X2)) → U111(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(155) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U111(ok(X1), ok(X2)) → U111(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U111(x1, x2)  =  x2
ok(x1)  =  ok(x1)
mark(x1)  =  mark
active(x1)  =  active(x1)
__(x1, x2)  =  x2
nil  =  nil
U11(x1, x2)  =  x2
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  x3
U22(x1, x2)  =  U22(x2)
isList(x1)  =  isList(x1)
U23(x1)  =  x1
U31(x1, x2)  =  U31(x2)
U32(x1)  =  x1
isQid(x1)  =  x1
U41(x1, x2, x3)  =  x3
U42(x1, x2)  =  x2
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  U51(x1)
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x2)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  U72(x1)
isNePal(x1)  =  x1
and(x1, x2)  =  x2
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
top > [active1, U121, proper1] > nil > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > U221 > isList1 > isPalListKind1 > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > U511 > U521 > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > U531 > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > U611 > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > U721 > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > a > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > e > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > i > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > o > tt > [ok1, U311, U431, U621, U711] > mark
top > [active1, U121, proper1] > u > tt > [ok1, U311, U431, U621, U711] > mark

Status:
ok1: [1]
mark: multiset
active1: multiset
nil: multiset
tt: multiset
U121: multiset
U221: [1]
isList1: multiset
U311: [1]
U431: [1]
U511: multiset
U521: [1]
U531: [1]
U611: [1]
U621: [1]
U711: [1]
U721: [1]
isPalListKind1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(156) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U111(mark(X1), X2) → U111(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(157) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U111(mark(X1), X2) → U111(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U111(x1, x2)  =  U111(x1)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList
U21(x1, x2, x3)  =  U21(x1)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList
U23(x1)  =  U23(x1)
U31(x1, x2)  =  U31(x1)
U32(x1)  =  x1
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x1)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  U51(x1)
U52(x1, x2)  =  U52(x1)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  U72(x1)
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
ok(x1)  =  ok
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
U11^11 > [nil, isNeList, i, o, ok]
[active1, U431, U621] > _2 > U211 > U221 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > _2 > isQid > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U111 > U121 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U231 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U311 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U411 > U421 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U511 > U521 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U611 > isQid > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U712 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > U712 > isNePal1 > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
[active1, U431, U621] > and2 > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
a > [mark1, U531, U721] > [tt, isPal1] > [isList, isPalListKind] > [nil, isNeList, i, o, ok]
e > [nil, isNeList, i, o, ok]
u > [nil, isNeList, i, o, ok]
top > [nil, isNeList, i, o, ok]

Status:
U11^11: multiset
mark1: [1]
active1: multiset
_2: [2,1]
nil: multiset
U111: multiset
tt: multiset
U121: [1]
isNeList: multiset
U211: [1]
U221: multiset
isList: multiset
U231: [1]
U311: [1]
isQid: multiset
U411: [1]
U421: multiset
U431: multiset
U511: [1]
U521: [1]
U531: [1]
U611: multiset
U621: multiset
U712: [1,2]
U721: [1]
isNePal1: multiset
and2: [2,1]
isPalListKind: []
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
ok: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(158) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(159) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(160) TRUE

(161) Obligation:

Q DP problem:
The TRS P consists of the following rules:

__1(X1, mark(X2)) → __1(X1, X2)
__1(mark(X1), X2) → __1(X1, X2)
__1(ok(X1), ok(X2)) → __1(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(162) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


__1(ok(X1), ok(X2)) → __1(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
__1(x1, x2)  =  __1(x2)
mark(x1)  =  x1
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  x2
tt  =  tt
U12(x1)  =  x1
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  U21(x1, x2, x3)
U22(x1, x2)  =  U22(x1, x2)
isList(x1)  =  x1
U23(x1)  =  x1
U31(x1, x2)  =  x2
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x3)
U42(x1, x2)  =  x2
U43(x1)  =  x1
U51(x1, x2, x3)  =  x3
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1, x2)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x2)
U72(x1)  =  U72(x1)
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
_^11 > [ok1, U711, U721]
[active1, 2, U321, U411, U521, U531, isNePal1, isPal1, a, i, u, proper1] > U213 > U222 > [ok1, U711, U721]
[active1, 2, U321, U411, U521, U531, isNePal1, isPal1, a, i, u, proper1] > and2 > [ok1, U711, U721]
[active1, 2, U321, U411, U521, U531, isNePal1, isPal1, a, i, u, proper1] > isPalListKind1 > [nil, tt] > U222 > [ok1, U711, U721]
[active1, 2, U321, U411, U521, U531, isNePal1, isPal1, a, i, u, proper1] > isPalListKind1 > [nil, tt] > [U612, U621] > [ok1, U711, U721]
[active1, 2, U321, U411, U521, U531, isNePal1, isPal1, a, i, u, proper1] > e > [nil, tt] > U222 > [ok1, U711, U721]
[active1, 2, U321, U411, U521, U531, isNePal1, isPal1, a, i, u, proper1] > e > [nil, tt] > [U612, U621] > [ok1, U711, U721]
[active1, 2, U321, U411, U521, U531, isNePal1, isPal1, a, i, u, proper1] > o > [nil, tt] > U222 > [ok1, U711, U721]
[active1, 2, U321, U411, U521, U531, isNePal1, isPal1, a, i, u, proper1] > o > [nil, tt] > [U612, U621] > [ok1, U711, U721]
top > [ok1, U711, U721]

Status:
_^11: [1]
ok1: [1]
active1: multiset
_2: multiset
nil: multiset
tt: multiset
U213: [2,1,3]
U222: multiset
U321: multiset
U411: multiset
U521: multiset
U531: multiset
U612: [1,2]
U621: [1]
U711: [1]
U721: [1]
isNePal1: multiset
and2: multiset
isPalListKind1: multiset
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(163) Obligation:

Q DP problem:
The TRS P consists of the following rules:

__1(X1, mark(X2)) → __1(X1, X2)
__1(mark(X1), X2) → __1(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(164) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


__1(mark(X1), X2) → __1(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
__1(x1, x2)  =  __1(x1)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  x1
tt  =  tt
U12(x1)  =  x1
isNeList(x1)  =  isNeList
U21(x1, x2, x3)  =  U21(x1)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  isList
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  U42(x1)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  U51(x1)
U52(x1, x2)  =  U52(x1)
U53(x1)  =  x1
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1)
U72(x1)  =  x1
isNePal(x1)  =  isNePal
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
ok(x1)  =  ok
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
a > tt > isQid > [mark1, U211, U431, ok]
a > tt > U621 > [mark1, U211, U431, ok]
[o, proper1] > [active1, isNePal] > [2, isPalListKind, isPal] > [isList, U521, and2] > tt > isQid > [mark1, U211, U431, ok]
[o, proper1] > [active1, isNePal] > [2, isPalListKind, isPal] > [isList, U521, and2] > tt > U621 > [mark1, U211, U431, ok]
[o, proper1] > [active1, isNePal] > [2, isPalListKind, isPal] > U511 > isNeList > [mark1, U211, U431, ok]
[o, proper1] > [active1, isNePal] > [2, isPalListKind, isPal] > U711 > [mark1, U211, U431, ok]
[o, proper1] > [active1, isNePal] > [U221, U231] > [isList, U521, and2] > tt > isQid > [mark1, U211, U431, ok]
[o, proper1] > [active1, isNePal] > [U221, U231] > [isList, U521, and2] > tt > U621 > [mark1, U211, U431, ok]
[o, proper1] > [active1, isNePal] > U321 > tt > isQid > [mark1, U211, U431, ok]
[o, proper1] > [active1, isNePal] > U321 > tt > U621 > [mark1, U211, U431, ok]
[o, proper1] > [active1, isNePal] > U411 > [isList, U521, and2] > tt > isQid > [mark1, U211, U431, ok]
[o, proper1] > [active1, isNePal] > U411 > [isList, U521, and2] > tt > U621 > [mark1, U211, U431, ok]
[o, proper1] > [active1, isNePal] > U411 > U421 > [mark1, U211, U431, ok]
[o, proper1] > [active1, isNePal] > U611 > isQid > [mark1, U211, U431, ok]
[o, proper1] > [active1, isNePal] > U611 > U621 > [mark1, U211, U431, ok]
[o, proper1] > nil > tt > isQid > [mark1, U211, U431, ok]
[o, proper1] > nil > tt > U621 > [mark1, U211, U431, ok]
[o, proper1] > e > tt > isQid > [mark1, U211, U431, ok]
[o, proper1] > e > tt > U621 > [mark1, U211, U431, ok]
[o, proper1] > i > tt > isQid > [mark1, U211, U431, ok]
[o, proper1] > i > tt > U621 > [mark1, U211, U431, ok]
[o, proper1] > u > tt > isQid > [mark1, U211, U431, ok]
[o, proper1] > u > tt > U621 > [mark1, U211, U431, ok]

Status:
_^11: multiset
mark1: multiset
active1: multiset
_2: multiset
nil: multiset
tt: multiset
isNeList: multiset
U211: multiset
U221: multiset
isList: multiset
U231: [1]
U321: [1]
isQid: multiset
U411: [1]
U421: multiset
U431: multiset
U511: [1]
U521: multiset
U611: [1]
U621: multiset
U711: multiset
isNePal: multiset
and2: multiset
isPalListKind: multiset
isPal: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
ok: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(165) Obligation:

Q DP problem:
The TRS P consists of the following rules:

__1(X1, mark(X2)) → __1(X1, X2)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(166) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


__1(X1, mark(X2)) → __1(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
__1(x1, x2)  =  __1(x2)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  U11(x1)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList
U21(x1, x2, x3)  =  x1
U22(x1, x2)  =  x1
isList(x1)  =  isList
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  x1
U43(x1)  =  x1
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x1)
U53(x1)  =  x1
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1)
U72(x1)  =  U72(x1)
isNePal(x1)  =  isNePal
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
ok(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, isNePal] > [2, and2] > isQid > [^11, mark1, U121, U321, U621, U721] > [isPalListKind, isPal]
[active1, isNePal] > [2, and2] > U411 > [^11, mark1, U121, U321, U621, U721] > [isPalListKind, isPal]
[active1, isNePal] > U231 > [U111, tt, isNeList, isList, U521] > isQid > [^11, mark1, U121, U321, U621, U721] > [isPalListKind, isPal]
[active1, isNePal] > U231 > [U111, tt, isNeList, isList, U521] > U411 > [^11, mark1, U121, U321, U621, U721] > [isPalListKind, isPal]
[active1, isNePal] > U611 > [^11, mark1, U121, U321, U621, U721] > [isPalListKind, isPal]
[active1, isNePal] > U711 > [^11, mark1, U121, U321, U621, U721] > [isPalListKind, isPal]
nil > [isPalListKind, isPal]
a > [^11, mark1, U121, U321, U621, U721] > [isPalListKind, isPal]
e > [^11, mark1, U121, U321, U621, U721] > [isPalListKind, isPal]
i > [U111, tt, isNeList, isList, U521] > isQid > [^11, mark1, U121, U321, U621, U721] > [isPalListKind, isPal]
i > [U111, tt, isNeList, isList, U521] > U411 > [^11, mark1, U121, U321, U621, U721] > [isPalListKind, isPal]
o > [^11, mark1, U121, U321, U621, U721] > [isPalListKind, isPal]
u > [U111, tt, isNeList, isList, U521] > isQid > [^11, mark1, U121, U321, U621, U721] > [isPalListKind, isPal]
u > [U111, tt, isNeList, isList, U521] > U411 > [^11, mark1, U121, U321, U621, U721] > [isPalListKind, isPal]
top > [isPalListKind, isPal]

Status:
_^11: multiset
mark1: multiset
active1: [1]
_2: [1,2]
nil: multiset
U111: [1]
tt: multiset
U121: multiset
isNeList: multiset
isList: []
U231: multiset
U321: multiset
isQid: multiset
U411: [1]
U521: [1]
U611: [1]
U621: multiset
U711: multiset
U721: multiset
isNePal: []
and2: [1,2]
isPalListKind: []
isPal: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(167) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(168) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(169) TRUE

(170) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PROPER(__(X1, X2)) → PROPER(X2)
PROPER(__(X1, X2)) → PROPER(X1)
PROPER(U11(X1, X2)) → PROPER(X1)
PROPER(U11(X1, X2)) → PROPER(X2)
PROPER(U12(X)) → PROPER(X)
PROPER(isNeList(X)) → PROPER(X)
PROPER(U21(X1, X2, X3)) → PROPER(X1)
PROPER(U21(X1, X2, X3)) → PROPER(X2)
PROPER(U21(X1, X2, X3)) → PROPER(X3)
PROPER(U22(X1, X2)) → PROPER(X1)
PROPER(U22(X1, X2)) → PROPER(X2)
PROPER(isList(X)) → PROPER(X)
PROPER(U23(X)) → PROPER(X)
PROPER(U31(X1, X2)) → PROPER(X1)
PROPER(U31(X1, X2)) → PROPER(X2)
PROPER(U32(X)) → PROPER(X)
PROPER(isQid(X)) → PROPER(X)
PROPER(U41(X1, X2, X3)) → PROPER(X1)
PROPER(U41(X1, X2, X3)) → PROPER(X2)
PROPER(U41(X1, X2, X3)) → PROPER(X3)
PROPER(U42(X1, X2)) → PROPER(X1)
PROPER(U42(X1, X2)) → PROPER(X2)
PROPER(U43(X)) → PROPER(X)
PROPER(U51(X1, X2, X3)) → PROPER(X1)
PROPER(U51(X1, X2, X3)) → PROPER(X2)
PROPER(U51(X1, X2, X3)) → PROPER(X3)
PROPER(U52(X1, X2)) → PROPER(X1)
PROPER(U52(X1, X2)) → PROPER(X2)
PROPER(U53(X)) → PROPER(X)
PROPER(U61(X1, X2)) → PROPER(X1)
PROPER(U61(X1, X2)) → PROPER(X2)
PROPER(U62(X)) → PROPER(X)
PROPER(U71(X1, X2)) → PROPER(X1)
PROPER(U71(X1, X2)) → PROPER(X2)
PROPER(U72(X)) → PROPER(X)
PROPER(isNePal(X)) → PROPER(X)
PROPER(and(X1, X2)) → PROPER(X1)
PROPER(and(X1, X2)) → PROPER(X2)
PROPER(isPalListKind(X)) → PROPER(X)
PROPER(isPal(X)) → PROPER(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(171) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PROPER(__(X1, X2)) → PROPER(X2)
PROPER(__(X1, X2)) → PROPER(X1)
PROPER(U11(X1, X2)) → PROPER(X1)
PROPER(U11(X1, X2)) → PROPER(X2)
PROPER(U21(X1, X2, X3)) → PROPER(X1)
PROPER(U21(X1, X2, X3)) → PROPER(X2)
PROPER(U21(X1, X2, X3)) → PROPER(X3)
PROPER(U22(X1, X2)) → PROPER(X1)
PROPER(U22(X1, X2)) → PROPER(X2)
PROPER(U23(X)) → PROPER(X)
PROPER(U31(X1, X2)) → PROPER(X1)
PROPER(U31(X1, X2)) → PROPER(X2)
PROPER(isQid(X)) → PROPER(X)
PROPER(U41(X1, X2, X3)) → PROPER(X1)
PROPER(U41(X1, X2, X3)) → PROPER(X2)
PROPER(U41(X1, X2, X3)) → PROPER(X3)
PROPER(U42(X1, X2)) → PROPER(X1)
PROPER(U42(X1, X2)) → PROPER(X2)
PROPER(U51(X1, X2, X3)) → PROPER(X1)
PROPER(U51(X1, X2, X3)) → PROPER(X2)
PROPER(U51(X1, X2, X3)) → PROPER(X3)
PROPER(U52(X1, X2)) → PROPER(X1)
PROPER(U52(X1, X2)) → PROPER(X2)
PROPER(U61(X1, X2)) → PROPER(X1)
PROPER(U61(X1, X2)) → PROPER(X2)
PROPER(U71(X1, X2)) → PROPER(X1)
PROPER(U71(X1, X2)) → PROPER(X2)
PROPER(and(X1, X2)) → PROPER(X1)
PROPER(and(X1, X2)) → PROPER(X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
PROPER(x1)  =  PROPER(x1)
__(x1, x2)  =  __(x1, x2)
U11(x1, x2)  =  U11(x1, x2)
U12(x1)  =  x1
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  U21(x1, x2, x3)
U22(x1, x2)  =  U22(x1, x2)
isList(x1)  =  x1
U23(x1)  =  U23(x1)
U31(x1, x2)  =  U31(x1, x2)
U32(x1)  =  x1
isQid(x1)  =  isQid(x1)
U41(x1, x2, x3)  =  U41(x1, x2, x3)
U42(x1, x2)  =  U42(x1, x2)
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x1, x2, x3)
U52(x1, x2)  =  U52(x1, x2)
U53(x1)  =  x1
U61(x1, x2)  =  U61(x1, x2)
U62(x1)  =  x1
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  x1
isNePal(x1)  =  x1
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  x1
isPal(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1
nil  =  nil
tt  =  tt
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
ok(x1)  =  ok
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
top > active1 > [U222, U231, o, proper1] > U213 > [nil, i, ok] > isQid1 > [2, U612, U712, and2]
top > active1 > [U222, U231, o, proper1] > U213 > [nil, i, ok] > U513 > [2, U612, U712, and2]
top > active1 > [U222, U231, o, proper1] > U312 > [PROPER1, U112] > [nil, i, ok] > isQid1 > [2, U612, U712, and2]
top > active1 > [U222, U231, o, proper1] > U312 > [PROPER1, U112] > [nil, i, ok] > U513 > [2, U612, U712, and2]
top > active1 > [U222, U231, o, proper1] > U413 > U422 > [nil, i, ok] > isQid1 > [2, U612, U712, and2]
top > active1 > [U222, U231, o, proper1] > U413 > U422 > [nil, i, ok] > U513 > [2, U612, U712, and2]
top > active1 > [U222, U231, o, proper1] > U522 > [PROPER1, U112] > [nil, i, ok] > isQid1 > [2, U612, U712, and2]
top > active1 > [U222, U231, o, proper1] > U522 > [PROPER1, U112] > [nil, i, ok] > U513 > [2, U612, U712, and2]
top > active1 > [U222, U231, o, proper1] > tt > U422 > [nil, i, ok] > isQid1 > [2, U612, U712, and2]
top > active1 > [U222, U231, o, proper1] > tt > U422 > [nil, i, ok] > U513 > [2, U612, U712, and2]
top > active1 > [U222, U231, o, proper1] > a > [nil, i, ok] > isQid1 > [2, U612, U712, and2]
top > active1 > [U222, U231, o, proper1] > a > [nil, i, ok] > U513 > [2, U612, U712, and2]
top > active1 > [U222, U231, o, proper1] > e > [2, U612, U712, and2]
top > active1 > [U222, U231, o, proper1] > u > [2, U612, U712, and2]

Status:
PROPER1: [1]
_2: multiset
U112: [2,1]
U213: multiset
U222: multiset
U231: multiset
U312: multiset
isQid1: multiset
U413: [2,1,3]
U422: multiset
U513: [1,3,2]
U522: [1,2]
U612: multiset
U712: multiset
and2: multiset
active1: [1]
nil: multiset
tt: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: multiset
ok: []
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(172) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PROPER(U12(X)) → PROPER(X)
PROPER(isNeList(X)) → PROPER(X)
PROPER(isList(X)) → PROPER(X)
PROPER(U32(X)) → PROPER(X)
PROPER(U43(X)) → PROPER(X)
PROPER(U53(X)) → PROPER(X)
PROPER(U62(X)) → PROPER(X)
PROPER(U72(X)) → PROPER(X)
PROPER(isNePal(X)) → PROPER(X)
PROPER(isPalListKind(X)) → PROPER(X)
PROPER(isPal(X)) → PROPER(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(173) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PROPER(U12(X)) → PROPER(X)
PROPER(isNeList(X)) → PROPER(X)
PROPER(isList(X)) → PROPER(X)
PROPER(U43(X)) → PROPER(X)
PROPER(U62(X)) → PROPER(X)
PROPER(U72(X)) → PROPER(X)
PROPER(isNePal(X)) → PROPER(X)
PROPER(isPalListKind(X)) → PROPER(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
PROPER(x1)  =  PROPER(x1)
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
isList(x1)  =  isList(x1)
U32(x1)  =  x1
U43(x1)  =  U43(x1)
U53(x1)  =  x1
U62(x1)  =  U62(x1)
U72(x1)  =  U72(x1)
isNePal(x1)  =  isNePal(x1)
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  x1
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  x1
tt  =  tt
U21(x1, x2, x3)  =  U21(x1, x2, x3)
U22(x1, x2)  =  U22(x1)
U23(x1)  =  x1
U31(x1, x2)  =  U31(x2)
isQid(x1)  =  isQid(x1)
U41(x1, x2, x3)  =  U41(x1)
U42(x1, x2)  =  x1
U51(x1, x2, x3)  =  U51(x2)
U52(x1, x2)  =  x2
U61(x1, x2)  =  x2
U71(x1, x2)  =  U71(x2)
and(x1, x2)  =  and(x2)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
ok(x1)  =  ok(x1)
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[PROPER1, isList1, isQid1, o, proper1] > [isPalListKind1, tt] > [U431, U621, active1, U213] > U121 > [mark, nil, U311, U711, and1, i, ok1]
[PROPER1, isList1, isQid1, o, proper1] > [isPalListKind1, tt] > [U431, U621, active1, U213] > isNeList1 > U511 > [mark, nil, U311, U711, and1, i, ok1]
[PROPER1, isList1, isQid1, o, proper1] > [isPalListKind1, tt] > [U431, U621, active1, U213] > U721 > [mark, nil, U311, U711, and1, i, ok1]
[PROPER1, isList1, isQid1, o, proper1] > [isPalListKind1, tt] > [U431, U621, active1, U213] > isNePal1 > [mark, nil, U311, U711, and1, i, ok1]
[PROPER1, isList1, isQid1, o, proper1] > [isPalListKind1, tt] > [U431, U621, active1, U213] > [2, U411] > U511 > [mark, nil, U311, U711, and1, i, ok1]
[PROPER1, isList1, isQid1, o, proper1] > [isPalListKind1, tt] > [U431, U621, active1, U213] > U221 > [mark, nil, U311, U711, and1, i, ok1]
[PROPER1, isList1, isQid1, o, proper1] > a > [mark, nil, U311, U711, and1, i, ok1]
[PROPER1, isList1, isQid1, o, proper1] > e > [mark, nil, U311, U711, and1, i, ok1]
[PROPER1, isList1, isQid1, o, proper1] > u > [mark, nil, U311, U711, and1, i, ok1]
top > [mark, nil, U311, U711, and1, i, ok1]

Status:
PROPER1: [1]
U121: [1]
isNeList1: multiset
isList1: [1]
U431: [1]
U621: [1]
U721: multiset
isNePal1: [1]
isPalListKind1: multiset
active1: [1]
_2: multiset
mark: multiset
nil: multiset
tt: multiset
U213: [3,1,2]
U221: [1]
U311: [1]
isQid1: [1]
U411: [1]
U511: [1]
U711: [1]
and1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
ok1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(174) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PROPER(U32(X)) → PROPER(X)
PROPER(U53(X)) → PROPER(X)
PROPER(isPal(X)) → PROPER(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(175) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PROPER(U32(X)) → PROPER(X)
PROPER(U53(X)) → PROPER(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
PROPER(x1)  =  PROPER(x1)
U32(x1)  =  U32(x1)
U53(x1)  =  U53(x1)
isPal(x1)  =  x1
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  U11
tt  =  tt
U12(x1)  =  x1
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  U21(x1, x2, x3)
U22(x1, x2)  =  U22(x1, x2)
isList(x1)  =  isList(x1)
U23(x1)  =  x1
U31(x1, x2)  =  x1
isQid(x1)  =  isQid(x1)
U41(x1, x2, x3)  =  U41
U42(x1, x2)  =  x2
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x1)
U52(x1, x2)  =  x2
U61(x1, x2)  =  U61(x1, x2)
U62(x1)  =  U62
U71(x1, x2)  =  x1
U72(x1)  =  U72
isNePal(x1)  =  isNePal
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
ok(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
nil > [mark, U11, U222, U41, U62, u]
a > [mark, U11, U222, U41, U62, u]
e > [active1, tt, isQid1, U511, isNePal, i, o] > U321 > [PROPER1, U531] > [mark, U11, U222, U41, U62, u]
e > [active1, tt, isQid1, U511, isNePal, i, o] > [2, and2] > U213 > isList1 > [mark, U11, U222, U41, U62, u]
e > [active1, tt, isQid1, U511, isNePal, i, o] > U612 > [mark, U11, U222, U41, U62, u]
e > [active1, tt, isQid1, U511, isNePal, i, o] > U72 > [mark, U11, U222, U41, U62, u]
top > [active1, tt, isQid1, U511, isNePal, i, o] > U321 > [PROPER1, U531] > [mark, U11, U222, U41, U62, u]
top > [active1, tt, isQid1, U511, isNePal, i, o] > [2, and2] > U213 > isList1 > [mark, U11, U222, U41, U62, u]
top > [active1, tt, isQid1, U511, isNePal, i, o] > U612 > [mark, U11, U222, U41, U62, u]
top > [active1, tt, isQid1, U511, isNePal, i, o] > U72 > [mark, U11, U222, U41, U62, u]

Status:
PROPER1: multiset
U321: multiset
U531: multiset
active1: [1]
_2: [1,2]
mark: []
nil: multiset
U11: []
tt: multiset
U213: multiset
U222: multiset
isList1: multiset
isQid1: [1]
U41: []
U511: [1]
U612: [1,2]
U62: []
U72: multiset
isNePal: multiset
and2: [1,2]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(176) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PROPER(isPal(X)) → PROPER(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(177) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PROPER(isPal(X)) → PROPER(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
PROPER(x1)  =  x1
isPal(x1)  =  isPal(x1)
active(x1)  =  x1
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  x1
nil  =  nil
U11(x1, x2)  =  x2
tt  =  tt
U12(x1)  =  U12
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x1, x2, x3)
U22(x1, x2)  =  U22(x1)
isList(x1)  =  x1
U23(x1)  =  U23
U31(x1, x2)  =  U31
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x3)
U42(x1, x2)  =  U42
U43(x1)  =  U43
U51(x1, x2, x3)  =  U51(x3)
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53
U61(x1, x2)  =  x2
U62(x1)  =  x1
U71(x1, x2)  =  U71
U72(x1)  =  U72
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  and(x2)
isPalListKind(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
ok(x1)  =  x1
top(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
isPal1 > [U71, U72, isNePal1] > [tt, U12, U321, isQid, U43, a, i]
_2 > [U213, U221] > U23 > [tt, U12, U321, isQid, U43, a, i]
_2 > [U411, U42] > [tt, U12, U321, isQid, U43, a, i]
_2 > [U511, U521] > U53 > [tt, U12, U321, isQid, U43, a, i]
_2 > and1 > [tt, U12, U321, isQid, U43, a, i]
nil > [tt, U12, U321, isQid, U43, a, i]
isNeList1 > U31 > [tt, U12, U321, isQid, U43, a, i]
isNeList1 > [U411, U42] > [tt, U12, U321, isQid, U43, a, i]
isNeList1 > [U511, U521] > U53 > [tt, U12, U321, isQid, U43, a, i]
e > [tt, U12, U321, isQid, U43, a, i]
o > [tt, U12, U321, isQid, U43, a, i]
u > [tt, U12, U321, isQid, U43, a, i]

Status:
isPal1: multiset
_2: [1,2]
nil: multiset
tt: multiset
U12: multiset
isNeList1: multiset
U213: [2,3,1]
U221: [1]
U23: multiset
U31: []
U321: multiset
isQid: multiset
U411: multiset
U42: multiset
U43: multiset
U511: [1]
U521: [1]
U53: multiset
U71: multiset
U72: multiset
isNePal1: multiset
and1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(178) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(179) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(180) TRUE

(181) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(__(X1, X2)) → ACTIVE(X2)
ACTIVE(__(X1, X2)) → ACTIVE(X1)
ACTIVE(U11(X1, X2)) → ACTIVE(X1)
ACTIVE(U12(X)) → ACTIVE(X)
ACTIVE(U21(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U22(X1, X2)) → ACTIVE(X1)
ACTIVE(U23(X)) → ACTIVE(X)
ACTIVE(U31(X1, X2)) → ACTIVE(X1)
ACTIVE(U32(X)) → ACTIVE(X)
ACTIVE(U41(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U42(X1, X2)) → ACTIVE(X1)
ACTIVE(U43(X)) → ACTIVE(X)
ACTIVE(U51(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U52(X1, X2)) → ACTIVE(X1)
ACTIVE(U53(X)) → ACTIVE(X)
ACTIVE(U61(X1, X2)) → ACTIVE(X1)
ACTIVE(U62(X)) → ACTIVE(X)
ACTIVE(U71(X1, X2)) → ACTIVE(X1)
ACTIVE(U72(X)) → ACTIVE(X)
ACTIVE(and(X1, X2)) → ACTIVE(X1)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(182) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ACTIVE(__(X1, X2)) → ACTIVE(X2)
ACTIVE(__(X1, X2)) → ACTIVE(X1)
ACTIVE(U42(X1, X2)) → ACTIVE(X1)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ACTIVE(x1)  =  ACTIVE(x1)
__(x1, x2)  =  __(x1, x2)
U11(x1, x2)  =  x1
U12(x1)  =  x1
U21(x1, x2, x3)  =  x1
U22(x1, x2)  =  x1
U23(x1)  =  x1
U31(x1, x2)  =  x1
U32(x1)  =  x1
U41(x1, x2, x3)  =  x1
U42(x1, x2)  =  U42(x1)
U43(x1)  =  x1
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  x1
U53(x1)  =  x1
U61(x1, x2)  =  x1
U62(x1)  =  x1
U71(x1, x2)  =  x1
U72(x1)  =  x1
and(x1, x2)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  mark
nil  =  nil
tt  =  tt
isNeList(x1)  =  isNeList
isList(x1)  =  isList
isQid(x1)  =  isQid(x1)
isNePal(x1)  =  x1
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
ok(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
active1 > isList > [isPal1, proper1] > [ACTIVE1, 2] > [isNeList, isPalListKind] > [U421, mark, tt] > isQid1
active1 > isList > [isPal1, proper1] > nil > [U421, mark, tt] > isQid1
active1 > isList > [isPal1, proper1] > a
active1 > isList > [isPal1, proper1] > e
active1 > isList > [isPal1, proper1] > i
active1 > isList > [isPal1, proper1] > o
active1 > isList > [isPal1, proper1] > u > [U421, mark, tt] > isQid1
top > [isPal1, proper1] > [ACTIVE1, 2] > [isNeList, isPalListKind] > [U421, mark, tt] > isQid1
top > [isPal1, proper1] > nil > [U421, mark, tt] > isQid1
top > [isPal1, proper1] > a
top > [isPal1, proper1] > e
top > [isPal1, proper1] > i
top > [isPal1, proper1] > o
top > [isPal1, proper1] > u > [U421, mark, tt] > isQid1

Status:
ACTIVE1: multiset
_2: multiset
U421: [1]
active1: multiset
mark: []
nil: multiset
tt: multiset
isNeList: []
isList: multiset
isQid1: [1]
isPalListKind: []
isPal1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(183) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(U11(X1, X2)) → ACTIVE(X1)
ACTIVE(U12(X)) → ACTIVE(X)
ACTIVE(U21(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U22(X1, X2)) → ACTIVE(X1)
ACTIVE(U23(X)) → ACTIVE(X)
ACTIVE(U31(X1, X2)) → ACTIVE(X1)
ACTIVE(U32(X)) → ACTIVE(X)
ACTIVE(U41(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U43(X)) → ACTIVE(X)
ACTIVE(U51(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U52(X1, X2)) → ACTIVE(X1)
ACTIVE(U53(X)) → ACTIVE(X)
ACTIVE(U61(X1, X2)) → ACTIVE(X1)
ACTIVE(U62(X)) → ACTIVE(X)
ACTIVE(U71(X1, X2)) → ACTIVE(X1)
ACTIVE(U72(X)) → ACTIVE(X)
ACTIVE(and(X1, X2)) → ACTIVE(X1)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(184) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ACTIVE(U52(X1, X2)) → ACTIVE(X1)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ACTIVE(x1)  =  ACTIVE(x1)
U11(x1, x2)  =  x1
U12(x1)  =  x1
U21(x1, x2, x3)  =  x1
U22(x1, x2)  =  x1
U23(x1)  =  x1
U31(x1, x2)  =  x1
U32(x1)  =  x1
U41(x1, x2, x3)  =  x1
U43(x1)  =  x1
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52(x1)
U53(x1)  =  x1
U61(x1, x2)  =  x1
U62(x1)  =  x1
U71(x1, x2)  =  x1
U72(x1)  =  x1
and(x1, x2)  =  x1
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
tt  =  tt
isNeList(x1)  =  isNeList
isList(x1)  =  isList(x1)
isQid(x1)  =  isQid
U42(x1, x2)  =  U42(x1, x2)
isNePal(x1)  =  x1
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
ok(x1)  =  ok
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[active1, mark, nil, isQid, u, proper1] > _2 > isPalListKind1 > [a, ok]
[active1, mark, nil, isQid, u, proper1] > [tt, isNeList, isList1, U422, e] > [ACTIVE1, U521] > [a, ok]
[active1, mark, nil, isQid, u, proper1] > [tt, isNeList, isList1, U422, e] > isPalListKind1 > [a, ok]
[active1, mark, nil, isQid, u, proper1] > isPal1 > isPalListKind1 > [a, ok]
[active1, mark, nil, isQid, u, proper1] > i > [a, ok]
[active1, mark, nil, isQid, u, proper1] > o > [a, ok]
[active1, mark, nil, isQid, u, proper1] > top

Status:
ACTIVE1: multiset
U521: multiset
active1: [1]
_2: multiset
mark: []
nil: multiset
tt: multiset
isNeList: multiset
isList1: multiset
isQid: []
U422: multiset
isPalListKind1: multiset
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
ok: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(185) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(U11(X1, X2)) → ACTIVE(X1)
ACTIVE(U12(X)) → ACTIVE(X)
ACTIVE(U21(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U22(X1, X2)) → ACTIVE(X1)
ACTIVE(U23(X)) → ACTIVE(X)
ACTIVE(U31(X1, X2)) → ACTIVE(X1)
ACTIVE(U32(X)) → ACTIVE(X)
ACTIVE(U41(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U43(X)) → ACTIVE(X)
ACTIVE(U51(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U53(X)) → ACTIVE(X)
ACTIVE(U61(X1, X2)) → ACTIVE(X1)
ACTIVE(U62(X)) → ACTIVE(X)
ACTIVE(U71(X1, X2)) → ACTIVE(X1)
ACTIVE(U72(X)) → ACTIVE(X)
ACTIVE(and(X1, X2)) → ACTIVE(X1)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(186) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ACTIVE(U41(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U51(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U53(X)) → ACTIVE(X)
ACTIVE(U71(X1, X2)) → ACTIVE(X1)
ACTIVE(and(X1, X2)) → ACTIVE(X1)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ACTIVE(x1)  =  x1
U11(x1, x2)  =  x1
U12(x1)  =  x1
U21(x1, x2, x3)  =  x1
U22(x1, x2)  =  x1
U23(x1)  =  x1
U31(x1, x2)  =  x1
U32(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1)
U43(x1)  =  x1
U51(x1, x2, x3)  =  U51(x1)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  x1
U62(x1)  =  x1
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  x1
and(x1, x2)  =  and(x1, x2)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark
nil  =  nil
tt  =  tt
isNeList(x1)  =  isNeList(x1)
isList(x1)  =  isList
isQid(x1)  =  x1
U42(x1, x2)  =  U42(x1, x2)
U52(x1, x2)  =  x1
isNePal(x1)  =  isNePal(x1)
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
ok(x1)  =  ok
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[U511, and2, active1, isNeList1] > [U411, isList, U422] > [U712, mark, top] > [U531, tt] > [e, ok] > isPalListKind1 > _2
[U511, and2, active1, isNeList1] > isNePal1 > [U712, mark, top] > [U531, tt] > [e, ok] > isPalListKind1 > _2
[U511, and2, active1, isNeList1] > isNePal1 > isPal1 > [U531, tt] > [e, ok] > isPalListKind1 > _2
nil > [U712, mark, top] > [U531, tt] > [e, ok] > isPalListKind1 > _2
a > [U712, mark, top] > [U531, tt] > [e, ok] > isPalListKind1 > _2
i > [U712, mark, top] > [U531, tt] > [e, ok] > isPalListKind1 > _2
o > [U531, tt] > [e, ok] > isPalListKind1 > _2
u > [U531, tt] > [e, ok] > isPalListKind1 > _2

Status:
U411: multiset
U511: multiset
U531: [1]
U712: multiset
and2: multiset
active1: multiset
_2: multiset
mark: multiset
nil: multiset
tt: multiset
isNeList1: multiset
isList: multiset
U422: [2,1]
isNePal1: multiset
isPalListKind1: multiset
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
ok: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(187) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(U11(X1, X2)) → ACTIVE(X1)
ACTIVE(U12(X)) → ACTIVE(X)
ACTIVE(U21(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U22(X1, X2)) → ACTIVE(X1)
ACTIVE(U23(X)) → ACTIVE(X)
ACTIVE(U31(X1, X2)) → ACTIVE(X1)
ACTIVE(U32(X)) → ACTIVE(X)
ACTIVE(U43(X)) → ACTIVE(X)
ACTIVE(U61(X1, X2)) → ACTIVE(X1)
ACTIVE(U62(X)) → ACTIVE(X)
ACTIVE(U72(X)) → ACTIVE(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(188) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ACTIVE(U11(X1, X2)) → ACTIVE(X1)
ACTIVE(U21(X1, X2, X3)) → ACTIVE(X1)
ACTIVE(U32(X)) → ACTIVE(X)
ACTIVE(U62(X)) → ACTIVE(X)
ACTIVE(U72(X)) → ACTIVE(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ACTIVE(x1)  =  ACTIVE(x1)
U11(x1, x2)  =  U11(x1, x2)
U12(x1)  =  x1
U21(x1, x2, x3)  =  U21(x1, x2)
U22(x1, x2)  =  x1
U23(x1)  =  x1
U31(x1, x2)  =  x1
U32(x1)  =  U32(x1)
U43(x1)  =  x1
U61(x1, x2)  =  x1
U62(x1)  =  U62(x1)
U72(x1)  =  U72(x1)
active(x1)  =  x1
__(x1, x2)  =  x2
mark(x1)  =  mark
nil  =  nil
tt  =  tt
isNeList(x1)  =  isNeList(x1)
isList(x1)  =  isList(x1)
isQid(x1)  =  isQid(x1)
U41(x1, x2, x3)  =  x3
U42(x1, x2)  =  x1
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  x1
U53(x1)  =  U53(x1)
U71(x1, x2)  =  U71(x1)
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  and(x2)
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
ok(x1)  =  ok
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > U321 > ok > U621 > [mark, nil, u]
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > U321 > ok > U721 > ACTIVE1 > [mark, nil, u]
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > U321 > ok > U531 > [mark, nil, u]
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > U321 > ok > top > [mark, nil, u]
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > isNeList1 > ok > U621 > [mark, nil, u]
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > isNeList1 > ok > U721 > ACTIVE1 > [mark, nil, u]
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > isNeList1 > ok > U531 > [mark, nil, u]
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > isNeList1 > ok > top > [mark, nil, u]
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > isList1 > ok > U621 > [mark, nil, u]
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > isList1 > ok > U721 > ACTIVE1 > [mark, nil, u]
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > isList1 > ok > U531 > [mark, nil, u]
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > isList1 > ok > top > [mark, nil, u]
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > isPal1 > ok > U621 > [mark, nil, u]
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > isPal1 > ok > U721 > ACTIVE1 > [mark, nil, u]
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > isPal1 > ok > U531 > [mark, nil, u]
[U112, U212, and1, e, proper1] > [tt, isQid1, U711, isNePal1, isPalListKind1] > isPal1 > ok > top > [mark, nil, u]
[U112, U212, and1, e, proper1] > i > [mark, nil, u]
[U112, U212, and1, e, proper1] > o > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > U321 > ok > U621 > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > U321 > ok > U721 > ACTIVE1 > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > U321 > ok > U531 > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > U321 > ok > top > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > isNeList1 > ok > U621 > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > isNeList1 > ok > U721 > ACTIVE1 > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > isNeList1 > ok > U531 > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > isNeList1 > ok > top > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > isList1 > ok > U621 > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > isList1 > ok > U721 > ACTIVE1 > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > isList1 > ok > U531 > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > isList1 > ok > top > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > isPal1 > ok > U621 > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > isPal1 > ok > U721 > ACTIVE1 > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > isPal1 > ok > U531 > [mark, nil, u]
a > [tt, isQid1, U711, isNePal1, isPalListKind1] > isPal1 > ok > top > [mark, nil, u]

Status:
ACTIVE1: [1]
U112: [2,1]
U212: [1,2]
U321: multiset
U621: [1]
U721: [1]
mark: []
nil: multiset
tt: multiset
isNeList1: [1]
isList1: [1]
isQid1: [1]
U531: multiset
U711: [1]
isNePal1: multiset
and1: [1]
isPalListKind1: multiset
isPal1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: [1]
ok: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(189) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(U12(X)) → ACTIVE(X)
ACTIVE(U22(X1, X2)) → ACTIVE(X1)
ACTIVE(U23(X)) → ACTIVE(X)
ACTIVE(U31(X1, X2)) → ACTIVE(X1)
ACTIVE(U43(X)) → ACTIVE(X)
ACTIVE(U61(X1, X2)) → ACTIVE(X1)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(190) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ACTIVE(U22(X1, X2)) → ACTIVE(X1)
ACTIVE(U23(X)) → ACTIVE(X)
ACTIVE(U43(X)) → ACTIVE(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ACTIVE(x1)  =  ACTIVE(x1)
U12(x1)  =  x1
U22(x1, x2)  =  U22(x1, x2)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  x1
U43(x1)  =  U43(x1)
U61(x1, x2)  =  x1
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  mark(x1)
nil  =  nil
U11(x1, x2)  =  U11(x1, x2)
tt  =  tt
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x1, x2, x3)
isList(x1)  =  isList(x1)
U32(x1)  =  U32(x1)
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  U41(x1, x2, x3)
U42(x1, x2)  =  U42(x1, x2)
U51(x1, x2, x3)  =  U51(x1, x2, x3)
U52(x1, x2)  =  U52(x1, x2)
U53(x1)  =  x1
U62(x1)  =  x1
U71(x1, x2)  =  x1
U72(x1)  =  x1
isNePal(x1)  =  isNePal
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
ok(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
active1 > [2, U413] > U213 > U222 > [U231, U431, mark1]
active1 > [2, U413] > U213 > U222 > isList1 > isPalListKind
active1 > [2, U413] > isPal > [tt, isNeList1, U321, U513, e, u] > U222 > [U231, U431, mark1]
active1 > [2, U413] > isPal > [tt, isNeList1, U321, U513, e, u] > U222 > isList1 > isPalListKind
active1 > [2, U413] > isPal > [tt, isNeList1, U321, U513, e, u] > isQid
active1 > [2, U413] > isPal > [tt, isNeList1, U321, U513, e, u] > U422 > [U231, U431, mark1]
active1 > [2, U413] > isPal > [tt, isNeList1, U321, U513, e, u] > U522 > [U231, U431, mark1]
active1 > [2, U413] > isPal > [tt, isNeList1, U321, U513, e, u] > U522 > isList1 > isPalListKind
active1 > [2, U413] > isPal > [tt, isNeList1, U321, U513, e, u] > and2 > [U231, U431, mark1]
active1 > U112 > [tt, isNeList1, U321, U513, e, u] > U222 > [U231, U431, mark1]
active1 > U112 > [tt, isNeList1, U321, U513, e, u] > U222 > isList1 > isPalListKind
active1 > U112 > [tt, isNeList1, U321, U513, e, u] > isQid
active1 > U112 > [tt, isNeList1, U321, U513, e, u] > U422 > [U231, U431, mark1]
active1 > U112 > [tt, isNeList1, U321, U513, e, u] > U522 > [U231, U431, mark1]
active1 > U112 > [tt, isNeList1, U321, U513, e, u] > U522 > isList1 > isPalListKind
active1 > U112 > [tt, isNeList1, U321, U513, e, u] > and2 > [U231, U431, mark1]
active1 > isNePal > isPal > [tt, isNeList1, U321, U513, e, u] > U222 > [U231, U431, mark1]
active1 > isNePal > isPal > [tt, isNeList1, U321, U513, e, u] > U222 > isList1 > isPalListKind
active1 > isNePal > isPal > [tt, isNeList1, U321, U513, e, u] > isQid
active1 > isNePal > isPal > [tt, isNeList1, U321, U513, e, u] > U422 > [U231, U431, mark1]
active1 > isNePal > isPal > [tt, isNeList1, U321, U513, e, u] > U522 > [U231, U431, mark1]
active1 > isNePal > isPal > [tt, isNeList1, U321, U513, e, u] > U522 > isList1 > isPalListKind
active1 > isNePal > isPal > [tt, isNeList1, U321, U513, e, u] > and2 > [U231, U431, mark1]
nil > [U231, U431, mark1]
a > [U231, U431, mark1]
o > [tt, isNeList1, U321, U513, e, u] > U222 > [U231, U431, mark1]
o > [tt, isNeList1, U321, U513, e, u] > U222 > isList1 > isPalListKind
o > [tt, isNeList1, U321, U513, e, u] > isQid
o > [tt, isNeList1, U321, U513, e, u] > U422 > [U231, U431, mark1]
o > [tt, isNeList1, U321, U513, e, u] > U522 > [U231, U431, mark1]
o > [tt, isNeList1, U321, U513, e, u] > U522 > isList1 > isPalListKind
o > [tt, isNeList1, U321, U513, e, u] > and2 > [U231, U431, mark1]

Status:
ACTIVE1: [1]
U222: multiset
U231: [1]
U431: [1]
active1: [1]
_2: [1,2]
mark1: [1]
nil: multiset
U112: [1,2]
tt: multiset
isNeList1: multiset
U213: multiset
isList1: multiset
U321: [1]
isQid: []
U413: multiset
U422: [2,1]
U513: [2,3,1]
U522: multiset
isNePal: []
and2: [2,1]
isPalListKind: multiset
isPal: []
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(191) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(U12(X)) → ACTIVE(X)
ACTIVE(U31(X1, X2)) → ACTIVE(X1)
ACTIVE(U61(X1, X2)) → ACTIVE(X1)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(192) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ACTIVE(U61(X1, X2)) → ACTIVE(X1)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ACTIVE(x1)  =  ACTIVE(x1)
U12(x1)  =  x1
U31(x1, x2)  =  x1
U61(x1, x2)  =  U61(x1, x2)
active(x1)  =  x1
__(x1, x2)  =  __(x1)
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  U11(x1, x2)
tt  =  tt
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21
U22(x1, x2)  =  x1
isList(x1)  =  isList
U23(x1)  =  U23
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x3)
U42(x1, x2)  =  U42
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  U52
U53(x1)  =  U53(x1)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71
U72(x1)  =  U72(x1)
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  and
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  x1
ok(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
ACTIVE1 > [U612, mark, U21, isList, U23, U321, U531, U621, U71, U721, isPalListKind1, isPal1, top]
_1 > [U612, mark, U21, isList, U23, U321, U531, U621, U71, U721, isPalListKind1, isPal1, top]
nil > [U612, mark, U21, isList, U23, U321, U531, U621, U71, U721, isPalListKind1, isPal1, top]
U112 > [U612, mark, U21, isList, U23, U321, U531, U621, U71, U721, isPalListKind1, isPal1, top]
e > [U612, mark, U21, isList, U23, U321, U531, U621, U71, U721, isPalListKind1, isPal1, top]
i > [U612, mark, U21, isList, U23, U321, U531, U621, U71, U721, isPalListKind1, isPal1, top]
u > [tt, a, o] > [U411, U42, U431] > [isNeList1, and] > [U612, mark, U21, isList, U23, U321, U531, U621, U71, U721, isPalListKind1, isPal1, top]
u > [tt, a, o] > U52 > [U612, mark, U21, isList, U23, U321, U531, U621, U71, U721, isPalListKind1, isPal1, top]
u > [tt, a, o] > isNePal1 > [isNeList1, and] > [U612, mark, U21, isList, U23, U321, U531, U621, U71, U721, isPalListKind1, isPal1, top]

Status:
ACTIVE1: [1]
U612: [1,2]
_1: multiset
mark: []
nil: multiset
U112: multiset
tt: multiset
isNeList1: multiset
U21: []
isList: []
U23: []
U321: [1]
U411: multiset
U42: []
U431: [1]
U52: multiset
U531: [1]
U621: [1]
U71: []
U721: [1]
isNePal1: multiset
and: multiset
isPalListKind1: [1]
isPal1: [1]
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(193) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(U12(X)) → ACTIVE(X)
ACTIVE(U31(X1, X2)) → ACTIVE(X1)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(194) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ACTIVE(U31(X1, X2)) → ACTIVE(X1)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ACTIVE(x1)  =  ACTIVE(x1)
U12(x1)  =  x1
U31(x1, x2)  =  U31(x1, x2)
active(x1)  =  x1
__(x1, x2)  =  x1
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  x2
tt  =  tt
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  x2
U22(x1, x2)  =  x2
isList(x1)  =  x1
U23(x1)  =  x1
U32(x1)  =  U32
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x3)
U42(x1, x2)  =  U42
U43(x1)  =  x1
U51(x1, x2, x3)  =  x3
U52(x1, x2)  =  U52(x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61
U62(x1)  =  U62
U71(x1, x2)  =  U71
U72(x1)  =  U72
isNePal(x1)  =  isNePal
and(x1, x2)  =  and(x2)
isPalListKind(x1)  =  isPalListKind
isPal(x1)  =  isPal
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
ok(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
ACTIVE1 > [mark, U32, U521, U61, U62, U71, U72, isNePal, isPal, a, o, top]
nil > [U312, tt, isNeList1, U411] > U531 > [mark, U32, U521, U61, U62, U71, U72, isNePal, isPal, a, o, top]
U42 > [isPalListKind, proper1] > [U312, tt, isNeList1, U411] > U531 > [mark, U32, U521, U61, U62, U71, U72, isNePal, isPal, a, o, top]
U42 > [isPalListKind, proper1] > and1 > [mark, U32, U521, U61, U62, U71, U72, isNePal, isPal, a, o, top]
e > [U312, tt, isNeList1, U411] > U531 > [mark, U32, U521, U61, U62, U71, U72, isNePal, isPal, a, o, top]
i > [U312, tt, isNeList1, U411] > U531 > [mark, U32, U521, U61, U62, U71, U72, isNePal, isPal, a, o, top]
u > [U312, tt, isNeList1, U411] > U531 > [mark, U32, U521, U61, U62, U71, U72, isNePal, isPal, a, o, top]

Status:
ACTIVE1: [1]
U312: [2,1]
mark: multiset
nil: multiset
tt: multiset
isNeList1: multiset
U32: multiset
U411: multiset
U42: multiset
U521: multiset
U531: multiset
U61: multiset
U62: multiset
U71: multiset
U72: multiset
isNePal: multiset
and1: [1]
isPalListKind: []
isPal: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(195) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(U12(X)) → ACTIVE(X)

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(196) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ACTIVE(U12(X)) → ACTIVE(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ACTIVE(x1)  =  x1
U12(x1)  =  U12(x1)
active(x1)  =  active(x1)
__(x1, x2)  =  __(x1, x2)
mark(x1)  =  x1
nil  =  nil
U11(x1, x2)  =  x2
tt  =  tt
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  x2
U22(x1, x2)  =  x1
isList(x1)  =  isList(x1)
U23(x1)  =  U23
U31(x1, x2)  =  U31
U32(x1)  =  U32
isQid(x1)  =  isQid
U41(x1, x2, x3)  =  x3
U42(x1, x2)  =  U42
U43(x1)  =  U43
U51(x1, x2, x3)  =  U51(x2, x3)
U52(x1, x2)  =  x1
U53(x1)  =  U53
U61(x1, x2)  =  U61(x1)
U62(x1)  =  U62
U71(x1, x2)  =  x2
U72(x1)  =  U72(x1)
isNePal(x1)  =  x1
and(x1, x2)  =  and(x2)
isPalListKind(x1)  =  x1
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper(x1)
ok(x1)  =  x1
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
proper1 > [active1, 2, isList1, U23, U32, U42, U611, U721, and1] > U121 > [tt, isNeList1, U512, U53, a, e, i, o]
proper1 > [active1, 2, isList1, U23, U32, U42, U611, U721, and1] > U31 > [tt, isNeList1, U512, U53, a, e, i, o]
proper1 > [active1, 2, isList1, U23, U32, U42, U611, U721, and1] > U43 > [tt, isNeList1, U512, U53, a, e, i, o]
proper1 > [active1, 2, isList1, U23, U32, U42, U611, U721, and1] > U62 > [tt, isNeList1, U512, U53, a, e, i, o]
proper1 > nil > [tt, isNeList1, U512, U53, a, e, i, o]
proper1 > isQid > [tt, isNeList1, U512, U53, a, e, i, o]
proper1 > isPal1 > [tt, isNeList1, U512, U53, a, e, i, o]
proper1 > u > [tt, isNeList1, U512, U53, a, e, i, o]
top > [tt, isNeList1, U512, U53, a, e, i, o]

Status:
U121: multiset
active1: [1]
_2: [1,2]
nil: multiset
tt: multiset
isNeList1: multiset
isList1: [1]
U23: []
U31: multiset
U32: []
isQid: multiset
U42: []
U43: multiset
U512: multiset
U53: []
U611: [1]
U62: multiset
U721: [1]
and1: [1]
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper1: multiset
top: []


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(197) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(198) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(199) TRUE

(200) Obligation:

Q DP problem:
The TRS P consists of the following rules:

TOP(ok(X)) → TOP(active(X))
TOP(mark(X)) → TOP(proper(X))

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(201) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


TOP(mark(X)) → TOP(proper(X))
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
TOP(x1)  =  TOP(x1)
ok(x1)  =  x1
active(x1)  =  x1
mark(x1)  =  mark(x1)
proper(x1)  =  x1
__(x1, x2)  =  __(x1, x2)
nil  =  nil
U11(x1, x2)  =  U11(x1, x2)
tt  =  tt
U12(x1)  =  U12(x1)
isNeList(x1)  =  isNeList(x1)
U21(x1, x2, x3)  =  U21(x1, x2, x3)
U22(x1, x2)  =  U22(x1, x2)
isList(x1)  =  isList(x1)
U23(x1)  =  U23(x1)
U31(x1, x2)  =  U31(x1, x2)
U32(x1)  =  U32(x1)
isQid(x1)  =  x1
U41(x1, x2, x3)  =  U41(x1, x2, x3)
U42(x1, x2)  =  U42(x1, x2)
U43(x1)  =  U43(x1)
U51(x1, x2, x3)  =  U51(x1, x2, x3)
U52(x1, x2)  =  U52(x1, x2)
U53(x1)  =  U53(x1)
U61(x1, x2)  =  U61(x1, x2)
U62(x1)  =  U62(x1)
U71(x1, x2)  =  U71(x1, x2)
U72(x1)  =  U72(x1)
isNePal(x1)  =  isNePal(x1)
and(x1, x2)  =  and(x1, x2)
isPalListKind(x1)  =  isPalListKind(x1)
isPal(x1)  =  isPal(x1)
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
_2 > U213 > [U222, isList1, U522] > [U112, isNeList1] > U121 > [TOP1, mark1, U231, U531, U721, top] > tt
_2 > U213 > [U222, isList1, U522] > [U112, isNeList1] > U312 > U321 > [TOP1, mark1, U231, U531, U721, top] > tt
_2 > U213 > [U222, isList1, U522] > [U112, isNeList1] > [and2, isPalListKind1] > [TOP1, mark1, U231, U531, U721, top] > tt
_2 > U413 > [U222, isList1, U522] > [U112, isNeList1] > U121 > [TOP1, mark1, U231, U531, U721, top] > tt
_2 > U413 > [U222, isList1, U522] > [U112, isNeList1] > U312 > U321 > [TOP1, mark1, U231, U531, U721, top] > tt
_2 > U413 > [U222, isList1, U522] > [U112, isNeList1] > [and2, isPalListKind1] > [TOP1, mark1, U231, U531, U721, top] > tt
_2 > U413 > U422 > [U112, isNeList1] > U121 > [TOP1, mark1, U231, U531, U721, top] > tt
_2 > U413 > U422 > [U112, isNeList1] > U312 > U321 > [TOP1, mark1, U231, U531, U721, top] > tt
_2 > U413 > U422 > [U112, isNeList1] > [and2, isPalListKind1] > [TOP1, mark1, U231, U531, U721, top] > tt
_2 > U413 > U422 > U431 > [TOP1, mark1, U231, U531, U721, top] > tt
_2 > U513 > [U222, isList1, U522] > [U112, isNeList1] > U121 > [TOP1, mark1, U231, U531, U721, top] > tt
_2 > U513 > [U222, isList1, U522] > [U112, isNeList1] > U312 > U321 > [TOP1, mark1, U231, U531, U721, top] > tt
_2 > U513 > [U222, isList1, U522] > [U112, isNeList1] > [and2, isPalListKind1] > [TOP1, mark1, U231, U531, U721, top] > tt
_2 > isPal1 > [U712, isNePal1] > [U612, U621] > [TOP1, mark1, U231, U531, U721, top] > tt
_2 > isPal1 > [U712, isNePal1] > [and2, isPalListKind1] > [TOP1, mark1, U231, U531, U721, top] > tt
nil > [TOP1, mark1, U231, U531, U721, top] > tt
a > [TOP1, mark1, U231, U531, U721, top] > tt
e > [TOP1, mark1, U231, U531, U721, top] > tt
i > [TOP1, mark1, U231, U531, U721, top] > tt
o > [TOP1, mark1, U231, U531, U721, top] > tt
u > [TOP1, mark1, U231, U531, U721, top] > tt

Status:
TOP1: [1]
mark1: [1]
_2: [1,2]
nil: multiset
U112: [2,1]
tt: multiset
U121: [1]
isNeList1: [1]
U213: [1,2,3]
U222: multiset
isList1: multiset
U231: [1]
U312: [2,1]
U321: multiset
U413: [2,1,3]
U422: [1,2]
U431: [1]
U513: multiset
U522: multiset
U531: [1]
U612: [2,1]
U621: [1]
U712: [2,1]
U721: [1]
isNePal1: [1]
and2: [2,1]
isPalListKind1: multiset
isPal1: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(202) Obligation:

Q DP problem:
The TRS P consists of the following rules:

TOP(ok(X)) → TOP(active(X))

The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(203) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


TOP(ok(X)) → TOP(active(X))
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
TOP(x1)  =  x1
ok(x1)  =  ok(x1)
active(x1)  =  x1
__(x1, x2)  =  x2
mark(x1)  =  mark
nil  =  nil
U11(x1, x2)  =  x2
tt  =  tt
U12(x1)  =  x1
isNeList(x1)  =  x1
U21(x1, x2, x3)  =  x3
U22(x1, x2)  =  x2
isList(x1)  =  x1
U23(x1)  =  x1
U31(x1, x2)  =  x1
U32(x1)  =  x1
isQid(x1)  =  x1
U41(x1, x2, x3)  =  x1
U42(x1, x2)  =  x1
U43(x1)  =  x1
U51(x1, x2, x3)  =  x1
U52(x1, x2)  =  x2
U53(x1)  =  x1
U61(x1, x2)  =  x1
U62(x1)  =  x1
U71(x1, x2)  =  x1
U72(x1)  =  x1
isNePal(x1)  =  x1
and(x1, x2)  =  x2
isPalListKind(x1)  =  x1
isPal(x1)  =  x1
a  =  a
e  =  e
i  =  i
o  =  o
u  =  u
proper(x1)  =  proper
top(x1)  =  top

Recursive path order with status [RPO].
Quasi-Precedence:
top > proper > e > [ok1, nil] > [mark, tt, a]
top > proper > i > [ok1, nil] > [mark, tt, a]
top > proper > o > [ok1, nil] > [mark, tt, a]
top > proper > u > [ok1, nil] > [mark, tt, a]

Status:
ok1: [1]
mark: multiset
nil: multiset
tt: multiset
a: multiset
e: multiset
i: multiset
o: multiset
u: multiset
proper: []
top: multiset


The following usable rules [FROCOS05] were oriented:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

(204) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt, V)) → mark(U12(isNeList(V)))
active(U12(tt)) → mark(tt)
active(U21(tt, V1, V2)) → mark(U22(isList(V1), V2))
active(U22(tt, V2)) → mark(U23(isList(V2)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isQid(V)))
active(U32(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isList(V1), V2))
active(U42(tt, V2)) → mark(U43(isNeList(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNeList(V1), V2))
active(U52(tt, V2)) → mark(U53(isList(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V)) → mark(U62(isQid(V)))
active(U62(tt)) → mark(tt)
active(U71(tt, V)) → mark(U72(isNePal(V)))
active(U72(tt)) → mark(tt)
active(and(tt, X)) → mark(X)
active(isList(V)) → mark(U11(isPalListKind(V), V))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(V)) → mark(U31(isPalListKind(V), V))
active(isNeList(__(V1, V2))) → mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNeList(__(V1, V2))) → mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2))
active(isNePal(V)) → mark(U61(isPalListKind(V), V))
active(isNePal(__(I, __(P, I)))) → mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))))
active(isPal(V)) → mark(U71(isPalListKind(V), V))
active(isPal(nil)) → mark(tt)
active(isPalListKind(a)) → mark(tt)
active(isPalListKind(e)) → mark(tt)
active(isPalListKind(i)) → mark(tt)
active(isPalListKind(nil)) → mark(tt)
active(isPalListKind(o)) → mark(tt)
active(isPalListKind(u)) → mark(tt)
active(isPalListKind(__(V1, V2))) → mark(and(isPalListKind(V1), isPalListKind(V2)))
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
active(__(X1, X2)) → __(active(X1), X2)
active(__(X1, X2)) → __(X1, active(X2))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X)) → U12(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X)) → U32(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2)) → U42(active(X1), X2)
active(U43(X)) → U43(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2)) → U52(active(X1), X2)
active(U53(X)) → U53(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X)) → U72(active(X))
active(and(X1, X2)) → and(active(X1), X2)
__(mark(X1), X2) → mark(__(X1, X2))
__(X1, mark(X2)) → mark(__(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X)) → mark(U12(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X)) → mark(U32(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2) → mark(U42(X1, X2))
U43(mark(X)) → mark(U43(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2) → mark(U52(X1, X2))
U53(mark(X)) → mark(U53(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X)) → mark(U72(X))
and(mark(X1), X2) → mark(and(X1, X2))
proper(__(X1, X2)) → __(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X)) → U12(proper(X))
proper(isNeList(X)) → isNeList(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isList(X)) → isList(proper(X))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X)) → U32(proper(X))
proper(isQid(X)) → isQid(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2)) → U42(proper(X1), proper(X2))
proper(U43(X)) → U43(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2)) → U52(proper(X1), proper(X2))
proper(U53(X)) → U53(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X)) → U72(proper(X))
proper(isNePal(X)) → isNePal(proper(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(isPalListKind(X)) → isPalListKind(proper(X))
proper(isPal(X)) → isPal(proper(X))
proper(a) → ok(a)
proper(e) → ok(e)
proper(i) → ok(i)
proper(o) → ok(o)
proper(u) → ok(u)
__(ok(X1), ok(X2)) → ok(__(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X)) → ok(U12(X))
isNeList(ok(X)) → ok(isNeList(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isList(ok(X)) → ok(isList(X))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X)) → ok(U32(X))
isQid(ok(X)) → ok(isQid(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2)) → ok(U42(X1, X2))
U43(ok(X)) → ok(U43(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2)) → ok(U52(X1, X2))
U53(ok(X)) → ok(U53(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X)) → ok(U72(X))
isNePal(ok(X)) → ok(isNePal(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
isPalListKind(ok(X)) → ok(isPalListKind(X))
isPal(ok(X)) → ok(isPal(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(205) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(206) TRUE