(STRATEGY INNERMOST) (VAR I P V V1 V2 X X1 X2 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] -> A U21 :: [A x A] -> A U22 :: [A] -> A U31 :: [A] -> A U41 :: [A x A] -> A U42 :: [A] -> A U51 :: [A x A] -> A U52 :: [A] -> A U61 :: [A] -> A U71 :: [A x A] -> A U72 :: [A] -> A U81 :: [A] -> A proper :: [A] -> A isList :: [A] -> A isNeList :: [A] -> A isPal :: [A] -> A isQid :: [A] -> A isNePal :: [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())) -> mark(tt()) active(U21(tt(),V2)) -> mark(U22(isList(V2))) active(U22(tt())) -> mark(tt()) active(U31(tt())) -> mark(tt()) active(U41(tt(),V2)) -> mark(U42(isNeList(V2))) active(U42(tt())) -> mark(tt()) active(U51(tt(),V2)) -> mark(U52(isList(V2))) active(U52(tt())) -> mark(tt()) active(U61(tt())) -> mark(tt()) active(U71(tt(),P)) -> mark(U72(isPal(P))) active(U72(tt())) -> mark(tt()) active(U81(tt())) -> mark(tt()) active(isList(V)) -> mark(U11(isNeList(V))) active(isList(nil())) -> mark(tt()) active(isList(__(V1,V2))) -> mark(U21(isList(V1),V2)) active(isNeList(V)) -> mark(U31(isQid(V))) active(isNeList(__(V1,V2))) -> mark(U41(isList(V1),V2)) active(isNeList(__(V1,V2))) -> mark(U51(isNeList(V1),V2)) active(isNePal(V)) -> mark(U61(isQid(V))) active(isNePal(__(I ,__(P,I)))) -> mark(U71(isQid(I) ,P)) active(isPal(V)) -> mark(U81(isNePal(V))) active(isPal(nil())) -> mark(tt()) 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(X)) -> U11(active(X)) active(U21(X1,X2)) -> U21(active(X1),X2) active(U22(X)) -> U22(active(X)) active(U31(X)) -> U31(active(X)) active(U41(X1,X2)) -> U41(active(X1),X2) active(U42(X)) -> U42(active(X)) active(U51(X1,X2)) -> U51(active(X1),X2) active(U52(X)) -> U52(active(X)) active(U61(X)) -> U61(active(X)) active(U71(X1,X2)) -> U71(active(X1),X2) active(U72(X)) -> U72(active(X)) active(U81(X)) -> U81(active(X)) __(mark(X1),X2) -> mark(__(X1 ,X2)) __(X1,mark(X2)) -> mark(__(X1 ,X2)) U11(mark(X)) -> mark(U11(X)) U21(mark(X1),X2) -> mark(U21(X1 ,X2)) U22(mark(X)) -> mark(U22(X)) U31(mark(X)) -> mark(U31(X)) U41(mark(X1),X2) -> mark(U41(X1 ,X2)) U42(mark(X)) -> mark(U42(X)) U51(mark(X1),X2) -> mark(U51(X1 ,X2)) U52(mark(X)) -> mark(U52(X)) U61(mark(X)) -> mark(U61(X)) U71(mark(X1),X2) -> mark(U71(X1 ,X2)) U72(mark(X)) -> mark(U72(X)) U81(mark(X)) -> mark(U81(X)) proper(__(X1,X2)) -> __(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(U11(X)) -> U11(proper(X)) proper(tt()) -> ok(tt()) proper(U21(X1,X2)) -> U21(proper(X1),proper(X2)) proper(U22(X)) -> U22(proper(X)) proper(isList(X)) -> isList(proper(X)) proper(U31(X)) -> U31(proper(X)) proper(U41(X1,X2)) -> U41(proper(X1),proper(X2)) proper(U42(X)) -> U42(proper(X)) proper(isNeList(X)) -> isNeList(proper(X)) proper(U51(X1,X2)) -> U51(proper(X1),proper(X2)) proper(U52(X)) -> U52(proper(X)) proper(U61(X)) -> U61(proper(X)) proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) proper(U72(X)) -> U72(proper(X)) proper(isPal(X)) -> isPal(proper(X)) proper(U81(X)) -> U81(proper(X)) proper(isQid(X)) -> isQid(proper(X)) proper(isNePal(X)) -> isNePal(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(X)) -> ok(U11(X)) U21(ok(X1),ok(X2)) -> ok(U21(X1 ,X2)) U22(ok(X)) -> ok(U22(X)) isList(ok(X)) -> ok(isList(X)) U31(ok(X)) -> ok(U31(X)) U41(ok(X1),ok(X2)) -> ok(U41(X1 ,X2)) U42(ok(X)) -> ok(U42(X)) isNeList(ok(X)) -> ok(isNeList(X)) U51(ok(X1),ok(X2)) -> ok(U51(X1 ,X2)) U52(ok(X)) -> ok(U52(X)) U61(ok(X)) -> ok(U61(X)) U71(ok(X1),ok(X2)) -> ok(U71(X1 ,X2)) U72(ok(X)) -> ok(U72(X)) isPal(ok(X)) -> ok(isPal(X)) U81(ok(X)) -> ok(U81(X)) isQid(ok(X)) -> ok(isQid(X)) isNePal(ok(X)) -> ok(isNePal(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)))