(STRATEGY INNERMOST) (VAR I P V V1 V2 X X1 X2 X3 Y Z) (DATATYPES A = µX.< mark(X), nil, tt, a, e, i, o, u, ok(X) >) (SIGNATURES active :: [A] -> A __ :: [A x A] -> A U11 :: [A x A] -> A U12 :: [A] -> A U21 :: [A x A x A] -> A U22 :: [A x A] -> A U23 :: [A] -> A U31 :: [A x A] -> A U32 :: [A] -> A U41 :: [A x A x A] -> A U42 :: [A x A] -> A U43 :: [A] -> A U51 :: [A x A x A] -> A U52 :: [A x A] -> A U53 :: [A] -> A U61 :: [A x A] -> A U62 :: [A] -> A U71 :: [A x A] -> A U72 :: [A] -> A and :: [A x A] -> A proper :: [A] -> A isNeList :: [A] -> A isList :: [A] -> A isQid :: [A] -> A isNePal :: [A] -> A isPalListKind :: [A] -> A isPal :: [A] -> A top :: [A] -> A) (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)))