(STRATEGY INNERMOST) (VAR L X X1 X2 XS Y YS) (DATATYPES A = µX.< nil, cons(X, X), app(X, X), from(X), s(X), zWadr(X, X), prefix(X) >) (SIGNATURES a__app :: [A x A] -> A a__from :: [A] -> A a__zWadr :: [A x A] -> A a__prefix :: [A] -> A mark :: [A] -> A) (RULES a__app(nil(),YS) -> mark(YS) a__app(cons(X,XS),YS) -> cons(mark(X),app(XS,YS)) a__from(X) -> cons(mark(X) ,from(s(X))) a__zWadr(nil(),YS) -> nil() a__zWadr(XS,nil()) -> nil() a__zWadr(cons(X,XS) ,cons(Y,YS)) -> cons(a__app(mark(Y) ,cons(mark(X),nil())) ,zWadr(XS,YS)) a__prefix(L) -> cons(nil() ,zWadr(L,prefix(L))) mark(app(X1,X2)) -> a__app(mark(X1),mark(X2)) mark(from(X)) -> a__from(mark(X)) mark(zWadr(X1,X2)) -> a__zWadr(mark(X1),mark(X2)) mark(prefix(X)) -> a__prefix(mark(X)) mark(nil()) -> nil() mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) a__app(X1,X2) -> app(X1,X2) a__from(X) -> from(X) a__zWadr(X1,X2) -> zWadr(X1,X2) a__prefix(X) -> prefix(X))