/export/starexec/sandbox/solver/bin/starexec_run_ttt2-1.17+nonreach /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES Problem: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Proof: DP Processor: DPs: active#(app(cons(X,XS),YS)) -> app#(XS,YS) active#(app(cons(X,XS),YS)) -> cons#(X,app(XS,YS)) active#(from(X)) -> s#(X) active#(from(X)) -> from#(s(X)) active#(from(X)) -> cons#(X,from(s(X))) active#(zWadr(cons(X,XS),cons(Y,YS))) -> zWadr#(XS,YS) active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(X,nil()) active#(zWadr(cons(X,XS),cons(Y,YS))) -> app#(Y,cons(X,nil())) active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(app(Y,cons(X,nil())),zWadr(XS,YS)) active#(prefix(L)) -> zWadr#(L,prefix(L)) active#(prefix(L)) -> cons#(nil(),zWadr(L,prefix(L))) active#(app(X1,X2)) -> active#(X1) active#(app(X1,X2)) -> app#(active(X1),X2) active#(app(X1,X2)) -> active#(X2) active#(app(X1,X2)) -> app#(X1,active(X2)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) active#(zWadr(X1,X2)) -> active#(X1) active#(zWadr(X1,X2)) -> zWadr#(active(X1),X2) active#(zWadr(X1,X2)) -> active#(X2) active#(zWadr(X1,X2)) -> zWadr#(X1,active(X2)) active#(prefix(X)) -> active#(X) active#(prefix(X)) -> prefix#(active(X)) app#(mark(X1),X2) -> app#(X1,X2) app#(X1,mark(X2)) -> app#(X1,X2) cons#(mark(X1),X2) -> cons#(X1,X2) from#(mark(X)) -> from#(X) s#(mark(X)) -> s#(X) zWadr#(mark(X1),X2) -> zWadr#(X1,X2) zWadr#(X1,mark(X2)) -> zWadr#(X1,X2) prefix#(mark(X)) -> prefix#(X) proper#(app(X1,X2)) -> proper#(X2) proper#(app(X1,X2)) -> proper#(X1) proper#(app(X1,X2)) -> app#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(from(X)) -> proper#(X) proper#(from(X)) -> from#(proper(X)) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) proper#(zWadr(X1,X2)) -> proper#(X2) proper#(zWadr(X1,X2)) -> proper#(X1) proper#(zWadr(X1,X2)) -> zWadr#(proper(X1),proper(X2)) proper#(prefix(X)) -> proper#(X) proper#(prefix(X)) -> prefix#(proper(X)) app#(ok(X1),ok(X2)) -> app#(X1,X2) cons#(ok(X1),ok(X2)) -> cons#(X1,X2) from#(ok(X)) -> from#(X) s#(ok(X)) -> s#(X) zWadr#(ok(X1),ok(X2)) -> zWadr#(X1,X2) prefix#(ok(X)) -> prefix#(X) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) TDG Processor: DPs: active#(app(cons(X,XS),YS)) -> app#(XS,YS) active#(app(cons(X,XS),YS)) -> cons#(X,app(XS,YS)) active#(from(X)) -> s#(X) active#(from(X)) -> from#(s(X)) active#(from(X)) -> cons#(X,from(s(X))) active#(zWadr(cons(X,XS),cons(Y,YS))) -> zWadr#(XS,YS) active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(X,nil()) active#(zWadr(cons(X,XS),cons(Y,YS))) -> app#(Y,cons(X,nil())) active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(app(Y,cons(X,nil())),zWadr(XS,YS)) active#(prefix(L)) -> zWadr#(L,prefix(L)) active#(prefix(L)) -> cons#(nil(),zWadr(L,prefix(L))) active#(app(X1,X2)) -> active#(X1) active#(app(X1,X2)) -> app#(active(X1),X2) active#(app(X1,X2)) -> active#(X2) active#(app(X1,X2)) -> app#(X1,active(X2)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) active#(zWadr(X1,X2)) -> active#(X1) active#(zWadr(X1,X2)) -> zWadr#(active(X1),X2) active#(zWadr(X1,X2)) -> active#(X2) active#(zWadr(X1,X2)) -> zWadr#(X1,active(X2)) active#(prefix(X)) -> active#(X) active#(prefix(X)) -> prefix#(active(X)) app#(mark(X1),X2) -> app#(X1,X2) app#(X1,mark(X2)) -> app#(X1,X2) cons#(mark(X1),X2) -> cons#(X1,X2) from#(mark(X)) -> from#(X) s#(mark(X)) -> s#(X) zWadr#(mark(X1),X2) -> zWadr#(X1,X2) zWadr#(X1,mark(X2)) -> zWadr#(X1,X2) prefix#(mark(X)) -> prefix#(X) proper#(app(X1,X2)) -> proper#(X2) proper#(app(X1,X2)) -> proper#(X1) proper#(app(X1,X2)) -> app#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(from(X)) -> proper#(X) proper#(from(X)) -> from#(proper(X)) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) proper#(zWadr(X1,X2)) -> proper#(X2) proper#(zWadr(X1,X2)) -> proper#(X1) proper#(zWadr(X1,X2)) -> zWadr#(proper(X1),proper(X2)) proper#(prefix(X)) -> proper#(X) proper#(prefix(X)) -> prefix#(proper(X)) app#(ok(X1),ok(X2)) -> app#(X1,X2) cons#(ok(X1),ok(X2)) -> cons#(X1,X2) from#(ok(X)) -> from#(X) s#(ok(X)) -> s#(X) zWadr#(ok(X1),ok(X2)) -> zWadr#(X1,X2) prefix#(ok(X)) -> prefix#(X) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) graph: top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> top#(active(X)) top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) -> top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> top#(active(X)) -> top#(mark(X)) -> proper#(X) top#(ok(X)) -> active#(X) -> active#(prefix(X)) -> prefix#(active(X)) top#(ok(X)) -> active#(X) -> active#(prefix(X)) -> active#(X) top#(ok(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> zWadr#(X1,active(X2)) top#(ok(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> active#(X2) top#(ok(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> zWadr#(active(X1),X2) top#(ok(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> active#(X1) top#(ok(X)) -> active#(X) -> active#(s(X)) -> s#(active(X)) top#(ok(X)) -> active#(X) -> active#(s(X)) -> active#(X) top#(ok(X)) -> active#(X) -> active#(from(X)) -> from#(active(X)) top#(ok(X)) -> active#(X) -> active#(from(X)) -> active#(X) top#(ok(X)) -> active#(X) -> active#(cons(X1,X2)) -> cons#(active(X1),X2) top#(ok(X)) -> active#(X) -> active#(cons(X1,X2)) -> active#(X1) top#(ok(X)) -> active#(X) -> active#(app(X1,X2)) -> app#(X1,active(X2)) top#(ok(X)) -> active#(X) -> active#(app(X1,X2)) -> active#(X2) top#(ok(X)) -> active#(X) -> active#(app(X1,X2)) -> app#(active(X1),X2) top#(ok(X)) -> active#(X) -> active#(app(X1,X2)) -> active#(X1) top#(ok(X)) -> active#(X) -> active#(prefix(L)) -> cons#(nil(),zWadr(L,prefix(L))) top#(ok(X)) -> active#(X) -> active#(prefix(L)) -> zWadr#(L,prefix(L)) top#(ok(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(app(Y,cons(X,nil())),zWadr(XS,YS)) top#(ok(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> app#(Y,cons(X,nil())) top#(ok(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(X,nil()) top#(ok(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> zWadr#(XS,YS) top#(ok(X)) -> active#(X) -> active#(from(X)) -> cons#(X,from(s(X))) top#(ok(X)) -> active#(X) -> active#(from(X)) -> from#(s(X)) top#(ok(X)) -> active#(X) -> active#(from(X)) -> s#(X) top#(ok(X)) -> active#(X) -> active#(app(cons(X,XS),YS)) -> cons#(X,app(XS,YS)) top#(ok(X)) -> active#(X) -> active#(app(cons(X,XS),YS)) -> app#(XS,YS) top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> top#(active(X)) top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> active#(X) top#(mark(X)) -> top#(proper(X)) -> top#(mark(X)) -> top#(proper(X)) top#(mark(X)) -> top#(proper(X)) -> top#(mark(X)) -> proper#(X) top#(mark(X)) -> proper#(X) -> proper#(prefix(X)) -> prefix#(proper(X)) top#(mark(X)) -> proper#(X) -> proper#(prefix(X)) -> proper#(X) top#(mark(X)) -> proper#(X) -> proper#(zWadr(X1,X2)) -> zWadr#(proper(X1),proper(X2)) top#(mark(X)) -> proper#(X) -> proper#(zWadr(X1,X2)) -> proper#(X1) top#(mark(X)) -> proper#(X) -> proper#(zWadr(X1,X2)) -> proper#(X2) top#(mark(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X)) top#(mark(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X) top#(mark(X)) -> proper#(X) -> proper#(from(X)) -> from#(proper(X)) top#(mark(X)) -> proper#(X) -> proper#(from(X)) -> proper#(X) top#(mark(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) top#(mark(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X1) top#(mark(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X2) top#(mark(X)) -> proper#(X) -> proper#(app(X1,X2)) -> app#(proper(X1),proper(X2)) top#(mark(X)) -> proper#(X) -> proper#(app(X1,X2)) -> proper#(X1) top#(mark(X)) -> proper#(X) -> proper#(app(X1,X2)) -> proper#(X2) proper#(prefix(X)) -> proper#(X) -> proper#(prefix(X)) -> prefix#(proper(X)) proper#(prefix(X)) -> proper#(X) -> proper#(prefix(X)) -> proper#(X) proper#(prefix(X)) -> proper#(X) -> proper#(zWadr(X1,X2)) -> zWadr#(proper(X1),proper(X2)) proper#(prefix(X)) -> proper#(X) -> proper#(zWadr(X1,X2)) -> proper#(X1) proper#(prefix(X)) -> proper#(X) -> proper#(zWadr(X1,X2)) -> proper#(X2) proper#(prefix(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X)) proper#(prefix(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X) proper#(prefix(X)) -> proper#(X) -> proper#(from(X)) -> from#(proper(X)) proper#(prefix(X)) -> proper#(X) -> proper#(from(X)) -> proper#(X) proper#(prefix(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(prefix(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X1) proper#(prefix(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X2) proper#(prefix(X)) -> proper#(X) -> proper#(app(X1,X2)) -> app#(proper(X1),proper(X2)) proper#(prefix(X)) -> proper#(X) -> proper#(app(X1,X2)) -> proper#(X1) proper#(prefix(X)) -> proper#(X) -> proper#(app(X1,X2)) -> proper#(X2) proper#(prefix(X)) -> prefix#(proper(X)) -> prefix#(ok(X)) -> prefix#(X) proper#(prefix(X)) -> prefix#(proper(X)) -> prefix#(mark(X)) -> prefix#(X) proper#(zWadr(X1,X2)) -> proper#(X2) -> proper#(prefix(X)) -> prefix#(proper(X)) proper#(zWadr(X1,X2)) -> proper#(X2) -> proper#(prefix(X)) -> proper#(X) proper#(zWadr(X1,X2)) -> proper#(X2) -> proper#(zWadr(X1,X2)) -> zWadr#(proper(X1),proper(X2)) proper#(zWadr(X1,X2)) -> proper#(X2) -> proper#(zWadr(X1,X2)) -> proper#(X1) proper#(zWadr(X1,X2)) -> proper#(X2) -> proper#(zWadr(X1,X2)) -> proper#(X2) proper#(zWadr(X1,X2)) -> proper#(X2) -> proper#(s(X)) -> s#(proper(X)) proper#(zWadr(X1,X2)) -> proper#(X2) -> proper#(s(X)) -> proper#(X) proper#(zWadr(X1,X2)) -> proper#(X2) -> proper#(from(X)) -> from#(proper(X)) proper#(zWadr(X1,X2)) -> proper#(X2) -> proper#(from(X)) -> proper#(X) proper#(zWadr(X1,X2)) -> proper#(X2) -> proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(zWadr(X1,X2)) -> proper#(X2) -> proper#(cons(X1,X2)) -> proper#(X1) proper#(zWadr(X1,X2)) -> proper#(X2) -> proper#(cons(X1,X2)) -> proper#(X2) proper#(zWadr(X1,X2)) -> proper#(X2) -> proper#(app(X1,X2)) -> app#(proper(X1),proper(X2)) proper#(zWadr(X1,X2)) -> proper#(X2) -> proper#(app(X1,X2)) -> proper#(X1) proper#(zWadr(X1,X2)) -> proper#(X2) -> proper#(app(X1,X2)) -> proper#(X2) proper#(zWadr(X1,X2)) -> proper#(X1) -> proper#(prefix(X)) -> prefix#(proper(X)) proper#(zWadr(X1,X2)) -> proper#(X1) -> proper#(prefix(X)) -> proper#(X) proper#(zWadr(X1,X2)) -> proper#(X1) -> proper#(zWadr(X1,X2)) -> zWadr#(proper(X1),proper(X2)) proper#(zWadr(X1,X2)) -> proper#(X1) -> proper#(zWadr(X1,X2)) -> proper#(X1) proper#(zWadr(X1,X2)) -> proper#(X1) -> proper#(zWadr(X1,X2)) -> proper#(X2) proper#(zWadr(X1,X2)) -> proper#(X1) -> proper#(s(X)) -> s#(proper(X)) proper#(zWadr(X1,X2)) -> proper#(X1) -> proper#(s(X)) -> proper#(X) proper#(zWadr(X1,X2)) -> proper#(X1) -> proper#(from(X)) -> from#(proper(X)) proper#(zWadr(X1,X2)) -> proper#(X1) -> proper#(from(X)) -> proper#(X) proper#(zWadr(X1,X2)) -> proper#(X1) -> proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(zWadr(X1,X2)) -> proper#(X1) -> proper#(cons(X1,X2)) -> proper#(X1) proper#(zWadr(X1,X2)) -> proper#(X1) -> proper#(cons(X1,X2)) -> proper#(X2) proper#(zWadr(X1,X2)) -> proper#(X1) -> proper#(app(X1,X2)) -> app#(proper(X1),proper(X2)) proper#(zWadr(X1,X2)) -> proper#(X1) -> proper#(app(X1,X2)) -> proper#(X1) proper#(zWadr(X1,X2)) -> proper#(X1) -> proper#(app(X1,X2)) -> proper#(X2) proper#(zWadr(X1,X2)) -> zWadr#(proper(X1),proper(X2)) -> zWadr#(ok(X1),ok(X2)) -> zWadr#(X1,X2) proper#(zWadr(X1,X2)) -> zWadr#(proper(X1),proper(X2)) -> zWadr#(X1,mark(X2)) -> zWadr#(X1,X2) proper#(zWadr(X1,X2)) -> zWadr#(proper(X1),proper(X2)) -> zWadr#(mark(X1),X2) -> zWadr#(X1,X2) proper#(s(X)) -> proper#(X) -> proper#(prefix(X)) -> prefix#(proper(X)) proper#(s(X)) -> proper#(X) -> proper#(prefix(X)) -> proper#(X) proper#(s(X)) -> proper#(X) -> proper#(zWadr(X1,X2)) -> zWadr#(proper(X1),proper(X2)) proper#(s(X)) -> proper#(X) -> proper#(zWadr(X1,X2)) -> proper#(X1) proper#(s(X)) -> proper#(X) -> proper#(zWadr(X1,X2)) -> proper#(X2) proper#(s(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X)) proper#(s(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X) proper#(s(X)) -> proper#(X) -> proper#(from(X)) -> from#(proper(X)) proper#(s(X)) -> proper#(X) -> proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(s(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X1) proper#(s(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X2) proper#(s(X)) -> proper#(X) -> proper#(app(X1,X2)) -> app#(proper(X1),proper(X2)) proper#(s(X)) -> proper#(X) -> proper#(app(X1,X2)) -> proper#(X1) proper#(s(X)) -> proper#(X) -> proper#(app(X1,X2)) -> proper#(X2) proper#(s(X)) -> s#(proper(X)) -> s#(ok(X)) -> s#(X) proper#(s(X)) -> s#(proper(X)) -> s#(mark(X)) -> s#(X) proper#(from(X)) -> proper#(X) -> proper#(prefix(X)) -> prefix#(proper(X)) proper#(from(X)) -> proper#(X) -> proper#(prefix(X)) -> proper#(X) proper#(from(X)) -> proper#(X) -> proper#(zWadr(X1,X2)) -> zWadr#(proper(X1),proper(X2)) proper#(from(X)) -> proper#(X) -> proper#(zWadr(X1,X2)) -> proper#(X1) proper#(from(X)) -> proper#(X) -> proper#(zWadr(X1,X2)) -> proper#(X2) proper#(from(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X)) proper#(from(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X) proper#(from(X)) -> proper#(X) -> proper#(from(X)) -> from#(proper(X)) proper#(from(X)) -> proper#(X) -> proper#(from(X)) -> proper#(X) proper#(from(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(from(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X1) proper#(from(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X2) proper#(from(X)) -> proper#(X) -> proper#(app(X1,X2)) -> app#(proper(X1),proper(X2)) proper#(from(X)) -> proper#(X) -> proper#(app(X1,X2)) -> proper#(X1) proper#(from(X)) -> proper#(X) -> proper#(app(X1,X2)) -> proper#(X2) proper#(from(X)) -> from#(proper(X)) -> from#(ok(X)) -> from#(X) proper#(from(X)) -> from#(proper(X)) -> from#(mark(X)) -> from#(X) proper#(cons(X1,X2)) -> proper#(X2) -> proper#(prefix(X)) -> prefix#(proper(X)) proper#(cons(X1,X2)) -> proper#(X2) -> proper#(prefix(X)) -> proper#(X) proper#(cons(X1,X2)) -> proper#(X2) -> proper#(zWadr(X1,X2)) -> zWadr#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X2) -> proper#(zWadr(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) -> proper#(zWadr(X1,X2)) -> proper#(X2) proper#(cons(X1,X2)) -> proper#(X2) -> proper#(s(X)) -> s#(proper(X)) proper#(cons(X1,X2)) -> proper#(X2) -> proper#(s(X)) -> proper#(X) proper#(cons(X1,X2)) -> proper#(X2) -> proper#(from(X)) -> from#(proper(X)) proper#(cons(X1,X2)) -> proper#(X2) -> proper#(from(X)) -> proper#(X) proper#(cons(X1,X2)) -> proper#(X2) -> proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X2) -> proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) -> proper#(cons(X1,X2)) -> proper#(X2) proper#(cons(X1,X2)) -> proper#(X2) -> proper#(app(X1,X2)) -> app#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X2) -> proper#(app(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) -> proper#(app(X1,X2)) -> proper#(X2) proper#(cons(X1,X2)) -> proper#(X1) -> proper#(prefix(X)) -> prefix#(proper(X)) proper#(cons(X1,X2)) -> proper#(X1) -> proper#(prefix(X)) -> proper#(X) proper#(cons(X1,X2)) -> proper#(X1) -> proper#(zWadr(X1,X2)) -> zWadr#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) -> proper#(zWadr(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X1) -> proper#(zWadr(X1,X2)) -> proper#(X2) proper#(cons(X1,X2)) -> proper#(X1) -> proper#(s(X)) -> s#(proper(X)) proper#(cons(X1,X2)) -> proper#(X1) -> proper#(s(X)) -> proper#(X) proper#(cons(X1,X2)) -> proper#(X1) -> proper#(from(X)) -> from#(proper(X)) proper#(cons(X1,X2)) -> proper#(X1) -> proper#(from(X)) -> proper#(X) proper#(cons(X1,X2)) -> proper#(X1) -> proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) -> proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X1) -> proper#(cons(X1,X2)) -> proper#(X2) proper#(cons(X1,X2)) -> proper#(X1) -> proper#(app(X1,X2)) -> app#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) -> proper#(app(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X1) -> proper#(app(X1,X2)) -> proper#(X2) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) -> cons#(ok(X1),ok(X2)) -> cons#(X1,X2) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) -> cons#(mark(X1),X2) -> cons#(X1,X2) proper#(app(X1,X2)) -> proper#(X2) -> proper#(prefix(X)) -> prefix#(proper(X)) proper#(app(X1,X2)) -> proper#(X2) -> proper#(prefix(X)) -> proper#(X) proper#(app(X1,X2)) -> proper#(X2) -> proper#(zWadr(X1,X2)) -> zWadr#(proper(X1),proper(X2)) proper#(app(X1,X2)) -> proper#(X2) -> proper#(zWadr(X1,X2)) -> proper#(X1) proper#(app(X1,X2)) -> proper#(X2) -> proper#(zWadr(X1,X2)) -> proper#(X2) proper#(app(X1,X2)) -> proper#(X2) -> proper#(s(X)) -> s#(proper(X)) proper#(app(X1,X2)) -> proper#(X2) -> proper#(s(X)) -> proper#(X) proper#(app(X1,X2)) -> proper#(X2) -> proper#(from(X)) -> from#(proper(X)) proper#(app(X1,X2)) -> proper#(X2) -> proper#(from(X)) -> proper#(X) proper#(app(X1,X2)) -> proper#(X2) -> proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(app(X1,X2)) -> proper#(X2) -> proper#(cons(X1,X2)) -> proper#(X1) proper#(app(X1,X2)) -> proper#(X2) -> proper#(cons(X1,X2)) -> proper#(X2) proper#(app(X1,X2)) -> proper#(X2) -> proper#(app(X1,X2)) -> app#(proper(X1),proper(X2)) proper#(app(X1,X2)) -> proper#(X2) -> proper#(app(X1,X2)) -> proper#(X1) proper#(app(X1,X2)) -> proper#(X2) -> proper#(app(X1,X2)) -> proper#(X2) proper#(app(X1,X2)) -> proper#(X1) -> proper#(prefix(X)) -> prefix#(proper(X)) proper#(app(X1,X2)) -> proper#(X1) -> proper#(prefix(X)) -> proper#(X) proper#(app(X1,X2)) -> proper#(X1) -> proper#(zWadr(X1,X2)) -> zWadr#(proper(X1),proper(X2)) proper#(app(X1,X2)) -> proper#(X1) -> proper#(zWadr(X1,X2)) -> proper#(X1) proper#(app(X1,X2)) -> proper#(X1) -> proper#(zWadr(X1,X2)) -> proper#(X2) proper#(app(X1,X2)) -> proper#(X1) -> proper#(s(X)) -> s#(proper(X)) proper#(app(X1,X2)) -> proper#(X1) -> proper#(s(X)) -> proper#(X) proper#(app(X1,X2)) -> proper#(X1) -> proper#(from(X)) -> from#(proper(X)) proper#(app(X1,X2)) -> proper#(X1) -> proper#(from(X)) -> proper#(X) proper#(app(X1,X2)) -> proper#(X1) -> proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(app(X1,X2)) -> proper#(X1) -> proper#(cons(X1,X2)) -> proper#(X1) proper#(app(X1,X2)) -> proper#(X1) -> proper#(cons(X1,X2)) -> proper#(X2) proper#(app(X1,X2)) -> proper#(X1) -> proper#(app(X1,X2)) -> app#(proper(X1),proper(X2)) proper#(app(X1,X2)) -> proper#(X1) -> proper#(app(X1,X2)) -> proper#(X1) proper#(app(X1,X2)) -> proper#(X1) -> proper#(app(X1,X2)) -> proper#(X2) proper#(app(X1,X2)) -> app#(proper(X1),proper(X2)) -> app#(ok(X1),ok(X2)) -> app#(X1,X2) proper#(app(X1,X2)) -> app#(proper(X1),proper(X2)) -> app#(X1,mark(X2)) -> app#(X1,X2) proper#(app(X1,X2)) -> app#(proper(X1),proper(X2)) -> app#(mark(X1),X2) -> app#(X1,X2) prefix#(ok(X)) -> prefix#(X) -> prefix#(ok(X)) -> prefix#(X) prefix#(ok(X)) -> prefix#(X) -> prefix#(mark(X)) -> prefix#(X) prefix#(mark(X)) -> prefix#(X) -> prefix#(ok(X)) -> prefix#(X) prefix#(mark(X)) -> prefix#(X) -> prefix#(mark(X)) -> prefix#(X) zWadr#(ok(X1),ok(X2)) -> zWadr#(X1,X2) -> zWadr#(ok(X1),ok(X2)) -> zWadr#(X1,X2) zWadr#(ok(X1),ok(X2)) -> zWadr#(X1,X2) -> zWadr#(X1,mark(X2)) -> zWadr#(X1,X2) zWadr#(ok(X1),ok(X2)) -> zWadr#(X1,X2) -> zWadr#(mark(X1),X2) -> zWadr#(X1,X2) zWadr#(mark(X1),X2) -> zWadr#(X1,X2) -> zWadr#(ok(X1),ok(X2)) -> zWadr#(X1,X2) zWadr#(mark(X1),X2) -> zWadr#(X1,X2) -> zWadr#(X1,mark(X2)) -> zWadr#(X1,X2) zWadr#(mark(X1),X2) -> zWadr#(X1,X2) -> zWadr#(mark(X1),X2) -> zWadr#(X1,X2) zWadr#(X1,mark(X2)) -> zWadr#(X1,X2) -> zWadr#(ok(X1),ok(X2)) -> zWadr#(X1,X2) zWadr#(X1,mark(X2)) -> zWadr#(X1,X2) -> zWadr#(X1,mark(X2)) -> zWadr#(X1,X2) zWadr#(X1,mark(X2)) -> zWadr#(X1,X2) -> zWadr#(mark(X1),X2) -> zWadr#(X1,X2) from#(ok(X)) -> from#(X) -> from#(ok(X)) -> from#(X) from#(ok(X)) -> from#(X) -> from#(mark(X)) -> from#(X) from#(mark(X)) -> from#(X) -> from#(ok(X)) -> from#(X) from#(mark(X)) -> from#(X) -> from#(mark(X)) -> from#(X) s#(ok(X)) -> s#(X) -> s#(ok(X)) -> s#(X) s#(ok(X)) -> s#(X) -> s#(mark(X)) -> s#(X) s#(mark(X)) -> s#(X) -> s#(ok(X)) -> s#(X) s#(mark(X)) -> s#(X) -> s#(mark(X)) -> s#(X) cons#(ok(X1),ok(X2)) -> cons#(X1,X2) -> cons#(ok(X1),ok(X2)) -> cons#(X1,X2) cons#(ok(X1),ok(X2)) -> cons#(X1,X2) -> cons#(mark(X1),X2) -> cons#(X1,X2) cons#(mark(X1),X2) -> cons#(X1,X2) -> cons#(ok(X1),ok(X2)) -> cons#(X1,X2) cons#(mark(X1),X2) -> cons#(X1,X2) -> cons#(mark(X1),X2) -> cons#(X1,X2) app#(ok(X1),ok(X2)) -> app#(X1,X2) -> app#(ok(X1),ok(X2)) -> app#(X1,X2) app#(ok(X1),ok(X2)) -> app#(X1,X2) -> app#(X1,mark(X2)) -> app#(X1,X2) app#(ok(X1),ok(X2)) -> app#(X1,X2) -> app#(mark(X1),X2) -> app#(X1,X2) app#(mark(X1),X2) -> app#(X1,X2) -> app#(ok(X1),ok(X2)) -> app#(X1,X2) app#(mark(X1),X2) -> app#(X1,X2) -> app#(X1,mark(X2)) -> app#(X1,X2) app#(mark(X1),X2) -> app#(X1,X2) -> app#(mark(X1),X2) -> app#(X1,X2) app#(X1,mark(X2)) -> app#(X1,X2) -> app#(ok(X1),ok(X2)) -> app#(X1,X2) app#(X1,mark(X2)) -> app#(X1,X2) -> app#(X1,mark(X2)) -> app#(X1,X2) app#(X1,mark(X2)) -> app#(X1,X2) -> app#(mark(X1),X2) -> app#(X1,X2) active#(prefix(L)) -> zWadr#(L,prefix(L)) -> zWadr#(ok(X1),ok(X2)) -> zWadr#(X1,X2) active#(prefix(L)) -> zWadr#(L,prefix(L)) -> zWadr#(X1,mark(X2)) -> zWadr#(X1,X2) active#(prefix(L)) -> zWadr#(L,prefix(L)) -> zWadr#(mark(X1),X2) -> zWadr#(X1,X2) active#(prefix(L)) -> cons#(nil(),zWadr(L,prefix(L))) -> cons#(ok(X1),ok(X2)) -> cons#(X1,X2) active#(prefix(L)) -> cons#(nil(),zWadr(L,prefix(L))) -> cons#(mark(X1),X2) -> cons#(X1,X2) active#(prefix(X)) -> prefix#(active(X)) -> prefix#(ok(X)) -> prefix#(X) active#(prefix(X)) -> prefix#(active(X)) -> prefix#(mark(X)) -> prefix#(X) active#(prefix(X)) -> active#(X) -> active#(prefix(X)) -> prefix#(active(X)) active#(prefix(X)) -> active#(X) -> active#(prefix(X)) -> active#(X) active#(prefix(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> zWadr#(X1,active(X2)) active#(prefix(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> active#(X2) active#(prefix(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> zWadr#(active(X1),X2) active#(prefix(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> active#(X1) active#(prefix(X)) -> active#(X) -> active#(s(X)) -> s#(active(X)) active#(prefix(X)) -> active#(X) -> active#(s(X)) -> active#(X) active#(prefix(X)) -> active#(X) -> active#(from(X)) -> from#(active(X)) active#(prefix(X)) -> active#(X) -> active#(from(X)) -> active#(X) active#(prefix(X)) -> active#(X) -> active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(prefix(X)) -> active#(X) -> active#(cons(X1,X2)) -> active#(X1) active#(prefix(X)) -> active#(X) -> active#(app(X1,X2)) -> app#(X1,active(X2)) active#(prefix(X)) -> active#(X) -> active#(app(X1,X2)) -> active#(X2) active#(prefix(X)) -> active#(X) -> active#(app(X1,X2)) -> app#(active(X1),X2) active#(prefix(X)) -> active#(X) -> active#(app(X1,X2)) -> active#(X1) active#(prefix(X)) -> active#(X) -> active#(prefix(L)) -> cons#(nil(),zWadr(L,prefix(L))) active#(prefix(X)) -> active#(X) -> active#(prefix(L)) -> zWadr#(L,prefix(L)) active#(prefix(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(app(Y,cons(X,nil())),zWadr(XS,YS)) active#(prefix(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> app#(Y,cons(X,nil())) active#(prefix(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(X,nil()) active#(prefix(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> zWadr#(XS,YS) active#(prefix(X)) -> active#(X) -> active#(from(X)) -> cons#(X,from(s(X))) active#(prefix(X)) -> active#(X) -> active#(from(X)) -> from#(s(X)) active#(prefix(X)) -> active#(X) -> active#(from(X)) -> s#(X) active#(prefix(X)) -> active#(X) -> active#(app(cons(X,XS),YS)) -> cons#(X,app(XS,YS)) active#(prefix(X)) -> active#(X) -> active#(app(cons(X,XS),YS)) -> app#(XS,YS) active#(zWadr(cons(X,XS),cons(Y,YS))) -> zWadr#(XS,YS) -> zWadr#(ok(X1),ok(X2)) -> zWadr#(X1,X2) active#(zWadr(cons(X,XS),cons(Y,YS))) -> zWadr#(XS,YS) -> zWadr#(X1,mark(X2)) -> zWadr#(X1,X2) active#(zWadr(cons(X,XS),cons(Y,YS))) -> zWadr#(XS,YS) -> zWadr#(mark(X1),X2) -> zWadr#(X1,X2) active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(app(Y,cons(X,nil())),zWadr(XS,YS)) -> cons#(ok(X1),ok(X2)) -> cons#(X1,X2) active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(app(Y,cons(X,nil())),zWadr(XS,YS)) -> cons#(mark(X1),X2) -> cons#(X1,X2) active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(X,nil()) -> cons#(ok(X1),ok(X2)) -> cons#(X1,X2) active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(X,nil()) -> cons#(mark(X1),X2) -> cons#(X1,X2) active#(zWadr(cons(X,XS),cons(Y,YS))) -> app#(Y,cons(X,nil())) -> app#(ok(X1),ok(X2)) -> app#(X1,X2) active#(zWadr(cons(X,XS),cons(Y,YS))) -> app#(Y,cons(X,nil())) -> app#(X1,mark(X2)) -> app#(X1,X2) active#(zWadr(cons(X,XS),cons(Y,YS))) -> app#(Y,cons(X,nil())) -> app#(mark(X1),X2) -> app#(X1,X2) active#(zWadr(X1,X2)) -> zWadr#(active(X1),X2) -> zWadr#(ok(X1),ok(X2)) -> zWadr#(X1,X2) active#(zWadr(X1,X2)) -> zWadr#(active(X1),X2) -> zWadr#(X1,mark(X2)) -> zWadr#(X1,X2) active#(zWadr(X1,X2)) -> zWadr#(active(X1),X2) -> zWadr#(mark(X1),X2) -> zWadr#(X1,X2) active#(zWadr(X1,X2)) -> zWadr#(X1,active(X2)) -> zWadr#(ok(X1),ok(X2)) -> zWadr#(X1,X2) active#(zWadr(X1,X2)) -> zWadr#(X1,active(X2)) -> zWadr#(X1,mark(X2)) -> zWadr#(X1,X2) active#(zWadr(X1,X2)) -> zWadr#(X1,active(X2)) -> zWadr#(mark(X1),X2) -> zWadr#(X1,X2) active#(zWadr(X1,X2)) -> active#(X2) -> active#(prefix(X)) -> prefix#(active(X)) active#(zWadr(X1,X2)) -> active#(X2) -> active#(prefix(X)) -> active#(X) active#(zWadr(X1,X2)) -> active#(X2) -> active#(zWadr(X1,X2)) -> zWadr#(X1,active(X2)) active#(zWadr(X1,X2)) -> active#(X2) -> active#(zWadr(X1,X2)) -> active#(X2) active#(zWadr(X1,X2)) -> active#(X2) -> active#(zWadr(X1,X2)) -> zWadr#(active(X1),X2) active#(zWadr(X1,X2)) -> active#(X2) -> active#(zWadr(X1,X2)) -> active#(X1) active#(zWadr(X1,X2)) -> active#(X2) -> active#(s(X)) -> s#(active(X)) active#(zWadr(X1,X2)) -> active#(X2) -> active#(s(X)) -> active#(X) active#(zWadr(X1,X2)) -> active#(X2) -> active#(from(X)) -> from#(active(X)) active#(zWadr(X1,X2)) -> active#(X2) -> active#(from(X)) -> active#(X) active#(zWadr(X1,X2)) -> active#(X2) -> active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(zWadr(X1,X2)) -> active#(X2) -> active#(cons(X1,X2)) -> active#(X1) active#(zWadr(X1,X2)) -> active#(X2) -> active#(app(X1,X2)) -> app#(X1,active(X2)) active#(zWadr(X1,X2)) -> active#(X2) -> active#(app(X1,X2)) -> active#(X2) active#(zWadr(X1,X2)) -> active#(X2) -> active#(app(X1,X2)) -> app#(active(X1),X2) active#(zWadr(X1,X2)) -> active#(X2) -> active#(app(X1,X2)) -> active#(X1) active#(zWadr(X1,X2)) -> active#(X2) -> active#(prefix(L)) -> cons#(nil(),zWadr(L,prefix(L))) active#(zWadr(X1,X2)) -> active#(X2) -> active#(prefix(L)) -> zWadr#(L,prefix(L)) active#(zWadr(X1,X2)) -> active#(X2) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(app(Y,cons(X,nil())),zWadr(XS,YS)) active#(zWadr(X1,X2)) -> active#(X2) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> app#(Y,cons(X,nil())) active#(zWadr(X1,X2)) -> active#(X2) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(X,nil()) active#(zWadr(X1,X2)) -> active#(X2) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> zWadr#(XS,YS) active#(zWadr(X1,X2)) -> active#(X2) -> active#(from(X)) -> cons#(X,from(s(X))) active#(zWadr(X1,X2)) -> active#(X2) -> active#(from(X)) -> from#(s(X)) active#(zWadr(X1,X2)) -> active#(X2) -> active#(from(X)) -> s#(X) active#(zWadr(X1,X2)) -> active#(X2) -> active#(app(cons(X,XS),YS)) -> cons#(X,app(XS,YS)) active#(zWadr(X1,X2)) -> active#(X2) -> active#(app(cons(X,XS),YS)) -> app#(XS,YS) active#(zWadr(X1,X2)) -> active#(X1) -> active#(prefix(X)) -> prefix#(active(X)) active#(zWadr(X1,X2)) -> active#(X1) -> active#(prefix(X)) -> active#(X) active#(zWadr(X1,X2)) -> active#(X1) -> active#(zWadr(X1,X2)) -> zWadr#(X1,active(X2)) active#(zWadr(X1,X2)) -> active#(X1) -> active#(zWadr(X1,X2)) -> active#(X2) active#(zWadr(X1,X2)) -> active#(X1) -> active#(zWadr(X1,X2)) -> zWadr#(active(X1),X2) active#(zWadr(X1,X2)) -> active#(X1) -> active#(zWadr(X1,X2)) -> active#(X1) active#(zWadr(X1,X2)) -> active#(X1) -> active#(s(X)) -> s#(active(X)) active#(zWadr(X1,X2)) -> active#(X1) -> active#(s(X)) -> active#(X) active#(zWadr(X1,X2)) -> active#(X1) -> active#(from(X)) -> from#(active(X)) active#(zWadr(X1,X2)) -> active#(X1) -> active#(from(X)) -> active#(X) active#(zWadr(X1,X2)) -> active#(X1) -> active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(zWadr(X1,X2)) -> active#(X1) -> active#(cons(X1,X2)) -> active#(X1) active#(zWadr(X1,X2)) -> active#(X1) -> active#(app(X1,X2)) -> app#(X1,active(X2)) active#(zWadr(X1,X2)) -> active#(X1) -> active#(app(X1,X2)) -> active#(X2) active#(zWadr(X1,X2)) -> active#(X1) -> active#(app(X1,X2)) -> app#(active(X1),X2) active#(zWadr(X1,X2)) -> active#(X1) -> active#(app(X1,X2)) -> active#(X1) active#(zWadr(X1,X2)) -> active#(X1) -> active#(prefix(L)) -> cons#(nil(),zWadr(L,prefix(L))) active#(zWadr(X1,X2)) -> active#(X1) -> active#(prefix(L)) -> zWadr#(L,prefix(L)) active#(zWadr(X1,X2)) -> active#(X1) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(app(Y,cons(X,nil())),zWadr(XS,YS)) active#(zWadr(X1,X2)) -> active#(X1) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> app#(Y,cons(X,nil())) active#(zWadr(X1,X2)) -> active#(X1) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(X,nil()) active#(zWadr(X1,X2)) -> active#(X1) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> zWadr#(XS,YS) active#(zWadr(X1,X2)) -> active#(X1) -> active#(from(X)) -> cons#(X,from(s(X))) active#(zWadr(X1,X2)) -> active#(X1) -> active#(from(X)) -> from#(s(X)) active#(zWadr(X1,X2)) -> active#(X1) -> active#(from(X)) -> s#(X) active#(zWadr(X1,X2)) -> active#(X1) -> active#(app(cons(X,XS),YS)) -> cons#(X,app(XS,YS)) active#(zWadr(X1,X2)) -> active#(X1) -> active#(app(cons(X,XS),YS)) -> app#(XS,YS) active#(s(X)) -> s#(active(X)) -> s#(ok(X)) -> s#(X) active#(s(X)) -> s#(active(X)) -> s#(mark(X)) -> s#(X) active#(s(X)) -> active#(X) -> active#(prefix(X)) -> prefix#(active(X)) active#(s(X)) -> active#(X) -> active#(prefix(X)) -> active#(X) active#(s(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> zWadr#(X1,active(X2)) active#(s(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> active#(X2) active#(s(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> zWadr#(active(X1),X2) active#(s(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> active#(X1) active#(s(X)) -> active#(X) -> active#(s(X)) -> s#(active(X)) active#(s(X)) -> active#(X) -> active#(s(X)) -> active#(X) active#(s(X)) -> active#(X) -> active#(from(X)) -> from#(active(X)) active#(s(X)) -> active#(X) -> active#(from(X)) -> active#(X) active#(s(X)) -> active#(X) -> active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(s(X)) -> active#(X) -> active#(cons(X1,X2)) -> active#(X1) active#(s(X)) -> active#(X) -> active#(app(X1,X2)) -> app#(X1,active(X2)) active#(s(X)) -> active#(X) -> active#(app(X1,X2)) -> active#(X2) active#(s(X)) -> active#(X) -> active#(app(X1,X2)) -> app#(active(X1),X2) active#(s(X)) -> active#(X) -> active#(app(X1,X2)) -> active#(X1) active#(s(X)) -> active#(X) -> active#(prefix(L)) -> cons#(nil(),zWadr(L,prefix(L))) active#(s(X)) -> active#(X) -> active#(prefix(L)) -> zWadr#(L,prefix(L)) active#(s(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(app(Y,cons(X,nil())),zWadr(XS,YS)) active#(s(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> app#(Y,cons(X,nil())) active#(s(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(X,nil()) active#(s(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> zWadr#(XS,YS) active#(s(X)) -> active#(X) -> active#(from(X)) -> cons#(X,from(s(X))) active#(s(X)) -> active#(X) -> active#(from(X)) -> from#(s(X)) active#(s(X)) -> active#(X) -> active#(from(X)) -> s#(X) active#(s(X)) -> active#(X) -> active#(app(cons(X,XS),YS)) -> cons#(X,app(XS,YS)) active#(s(X)) -> active#(X) -> active#(app(cons(X,XS),YS)) -> app#(XS,YS) active#(from(X)) -> from#(s(X)) -> from#(ok(X)) -> from#(X) active#(from(X)) -> from#(s(X)) -> from#(mark(X)) -> from#(X) active#(from(X)) -> from#(active(X)) -> from#(ok(X)) -> from#(X) active#(from(X)) -> from#(active(X)) -> from#(mark(X)) -> from#(X) active#(from(X)) -> s#(X) -> s#(ok(X)) -> s#(X) active#(from(X)) -> s#(X) -> s#(mark(X)) -> s#(X) active#(from(X)) -> cons#(X,from(s(X))) -> cons#(ok(X1),ok(X2)) -> cons#(X1,X2) active#(from(X)) -> cons#(X,from(s(X))) -> cons#(mark(X1),X2) -> cons#(X1,X2) active#(from(X)) -> active#(X) -> active#(prefix(X)) -> prefix#(active(X)) active#(from(X)) -> active#(X) -> active#(prefix(X)) -> active#(X) active#(from(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> zWadr#(X1,active(X2)) active#(from(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> active#(X2) active#(from(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> zWadr#(active(X1),X2) active#(from(X)) -> active#(X) -> active#(zWadr(X1,X2)) -> active#(X1) active#(from(X)) -> active#(X) -> active#(s(X)) -> s#(active(X)) active#(from(X)) -> active#(X) -> active#(s(X)) -> active#(X) active#(from(X)) -> active#(X) -> active#(from(X)) -> from#(active(X)) active#(from(X)) -> active#(X) -> active#(from(X)) -> active#(X) active#(from(X)) -> active#(X) -> active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(from(X)) -> active#(X) -> active#(cons(X1,X2)) -> active#(X1) active#(from(X)) -> active#(X) -> active#(app(X1,X2)) -> app#(X1,active(X2)) active#(from(X)) -> active#(X) -> active#(app(X1,X2)) -> active#(X2) active#(from(X)) -> active#(X) -> active#(app(X1,X2)) -> app#(active(X1),X2) active#(from(X)) -> active#(X) -> active#(app(X1,X2)) -> active#(X1) active#(from(X)) -> active#(X) -> active#(prefix(L)) -> cons#(nil(),zWadr(L,prefix(L))) active#(from(X)) -> active#(X) -> active#(prefix(L)) -> zWadr#(L,prefix(L)) active#(from(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(app(Y,cons(X,nil())),zWadr(XS,YS)) active#(from(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> app#(Y,cons(X,nil())) active#(from(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(X,nil()) active#(from(X)) -> active#(X) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> zWadr#(XS,YS) active#(from(X)) -> active#(X) -> active#(from(X)) -> cons#(X,from(s(X))) active#(from(X)) -> active#(X) -> active#(from(X)) -> from#(s(X)) active#(from(X)) -> active#(X) -> active#(from(X)) -> s#(X) active#(from(X)) -> active#(X) -> active#(app(cons(X,XS),YS)) -> cons#(X,app(XS,YS)) active#(from(X)) -> active#(X) -> active#(app(cons(X,XS),YS)) -> app#(XS,YS) active#(cons(X1,X2)) -> cons#(active(X1),X2) -> cons#(ok(X1),ok(X2)) -> cons#(X1,X2) active#(cons(X1,X2)) -> cons#(active(X1),X2) -> cons#(mark(X1),X2) -> cons#(X1,X2) active#(cons(X1,X2)) -> active#(X1) -> active#(prefix(X)) -> prefix#(active(X)) active#(cons(X1,X2)) -> active#(X1) -> active#(prefix(X)) -> active#(X) active#(cons(X1,X2)) -> active#(X1) -> active#(zWadr(X1,X2)) -> zWadr#(X1,active(X2)) active#(cons(X1,X2)) -> active#(X1) -> active#(zWadr(X1,X2)) -> active#(X2) active#(cons(X1,X2)) -> active#(X1) -> active#(zWadr(X1,X2)) -> zWadr#(active(X1),X2) active#(cons(X1,X2)) -> active#(X1) -> active#(zWadr(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> active#(X1) -> active#(s(X)) -> s#(active(X)) active#(cons(X1,X2)) -> active#(X1) -> active#(s(X)) -> active#(X) active#(cons(X1,X2)) -> active#(X1) -> active#(from(X)) -> from#(active(X)) active#(cons(X1,X2)) -> active#(X1) -> active#(from(X)) -> active#(X) active#(cons(X1,X2)) -> active#(X1) -> active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(cons(X1,X2)) -> active#(X1) -> active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> active#(X1) -> active#(app(X1,X2)) -> app#(X1,active(X2)) active#(cons(X1,X2)) -> active#(X1) -> active#(app(X1,X2)) -> active#(X2) active#(cons(X1,X2)) -> active#(X1) -> active#(app(X1,X2)) -> app#(active(X1),X2) active#(cons(X1,X2)) -> active#(X1) -> active#(app(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> active#(X1) -> active#(prefix(L)) -> cons#(nil(),zWadr(L,prefix(L))) active#(cons(X1,X2)) -> active#(X1) -> active#(prefix(L)) -> zWadr#(L,prefix(L)) active#(cons(X1,X2)) -> active#(X1) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(app(Y,cons(X,nil())),zWadr(XS,YS)) active#(cons(X1,X2)) -> active#(X1) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> app#(Y,cons(X,nil())) active#(cons(X1,X2)) -> active#(X1) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(X,nil()) active#(cons(X1,X2)) -> active#(X1) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> zWadr#(XS,YS) active#(cons(X1,X2)) -> active#(X1) -> active#(from(X)) -> cons#(X,from(s(X))) active#(cons(X1,X2)) -> active#(X1) -> active#(from(X)) -> from#(s(X)) active#(cons(X1,X2)) -> active#(X1) -> active#(from(X)) -> s#(X) active#(cons(X1,X2)) -> active#(X1) -> active#(app(cons(X,XS),YS)) -> cons#(X,app(XS,YS)) active#(cons(X1,X2)) -> active#(X1) -> active#(app(cons(X,XS),YS)) -> app#(XS,YS) active#(app(cons(X,XS),YS)) -> cons#(X,app(XS,YS)) -> cons#(ok(X1),ok(X2)) -> cons#(X1,X2) active#(app(cons(X,XS),YS)) -> cons#(X,app(XS,YS)) -> cons#(mark(X1),X2) -> cons#(X1,X2) active#(app(cons(X,XS),YS)) -> app#(XS,YS) -> app#(ok(X1),ok(X2)) -> app#(X1,X2) active#(app(cons(X,XS),YS)) -> app#(XS,YS) -> app#(X1,mark(X2)) -> app#(X1,X2) active#(app(cons(X,XS),YS)) -> app#(XS,YS) -> app#(mark(X1),X2) -> app#(X1,X2) active#(app(X1,X2)) -> app#(active(X1),X2) -> app#(ok(X1),ok(X2)) -> app#(X1,X2) active#(app(X1,X2)) -> app#(active(X1),X2) -> app#(X1,mark(X2)) -> app#(X1,X2) active#(app(X1,X2)) -> app#(active(X1),X2) -> app#(mark(X1),X2) -> app#(X1,X2) active#(app(X1,X2)) -> app#(X1,active(X2)) -> app#(ok(X1),ok(X2)) -> app#(X1,X2) active#(app(X1,X2)) -> app#(X1,active(X2)) -> app#(X1,mark(X2)) -> app#(X1,X2) active#(app(X1,X2)) -> app#(X1,active(X2)) -> app#(mark(X1),X2) -> app#(X1,X2) active#(app(X1,X2)) -> active#(X2) -> active#(prefix(X)) -> prefix#(active(X)) active#(app(X1,X2)) -> active#(X2) -> active#(prefix(X)) -> active#(X) active#(app(X1,X2)) -> active#(X2) -> active#(zWadr(X1,X2)) -> zWadr#(X1,active(X2)) active#(app(X1,X2)) -> active#(X2) -> active#(zWadr(X1,X2)) -> active#(X2) active#(app(X1,X2)) -> active#(X2) -> active#(zWadr(X1,X2)) -> zWadr#(active(X1),X2) active#(app(X1,X2)) -> active#(X2) -> active#(zWadr(X1,X2)) -> active#(X1) active#(app(X1,X2)) -> active#(X2) -> active#(s(X)) -> s#(active(X)) active#(app(X1,X2)) -> active#(X2) -> active#(s(X)) -> active#(X) active#(app(X1,X2)) -> active#(X2) -> active#(from(X)) -> from#(active(X)) active#(app(X1,X2)) -> active#(X2) -> active#(from(X)) -> active#(X) active#(app(X1,X2)) -> active#(X2) -> active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(app(X1,X2)) -> active#(X2) -> active#(cons(X1,X2)) -> active#(X1) active#(app(X1,X2)) -> active#(X2) -> active#(app(X1,X2)) -> app#(X1,active(X2)) active#(app(X1,X2)) -> active#(X2) -> active#(app(X1,X2)) -> active#(X2) active#(app(X1,X2)) -> active#(X2) -> active#(app(X1,X2)) -> app#(active(X1),X2) active#(app(X1,X2)) -> active#(X2) -> active#(app(X1,X2)) -> active#(X1) active#(app(X1,X2)) -> active#(X2) -> active#(prefix(L)) -> cons#(nil(),zWadr(L,prefix(L))) active#(app(X1,X2)) -> active#(X2) -> active#(prefix(L)) -> zWadr#(L,prefix(L)) active#(app(X1,X2)) -> active#(X2) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(app(Y,cons(X,nil())),zWadr(XS,YS)) active#(app(X1,X2)) -> active#(X2) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> app#(Y,cons(X,nil())) active#(app(X1,X2)) -> active#(X2) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(X,nil()) active#(app(X1,X2)) -> active#(X2) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> zWadr#(XS,YS) active#(app(X1,X2)) -> active#(X2) -> active#(from(X)) -> cons#(X,from(s(X))) active#(app(X1,X2)) -> active#(X2) -> active#(from(X)) -> from#(s(X)) active#(app(X1,X2)) -> active#(X2) -> active#(from(X)) -> s#(X) active#(app(X1,X2)) -> active#(X2) -> active#(app(cons(X,XS),YS)) -> cons#(X,app(XS,YS)) active#(app(X1,X2)) -> active#(X2) -> active#(app(cons(X,XS),YS)) -> app#(XS,YS) active#(app(X1,X2)) -> active#(X1) -> active#(prefix(X)) -> prefix#(active(X)) active#(app(X1,X2)) -> active#(X1) -> active#(prefix(X)) -> active#(X) active#(app(X1,X2)) -> active#(X1) -> active#(zWadr(X1,X2)) -> zWadr#(X1,active(X2)) active#(app(X1,X2)) -> active#(X1) -> active#(zWadr(X1,X2)) -> active#(X2) active#(app(X1,X2)) -> active#(X1) -> active#(zWadr(X1,X2)) -> zWadr#(active(X1),X2) active#(app(X1,X2)) -> active#(X1) -> active#(zWadr(X1,X2)) -> active#(X1) active#(app(X1,X2)) -> active#(X1) -> active#(s(X)) -> s#(active(X)) active#(app(X1,X2)) -> active#(X1) -> active#(s(X)) -> active#(X) active#(app(X1,X2)) -> active#(X1) -> active#(from(X)) -> from#(active(X)) active#(app(X1,X2)) -> active#(X1) -> active#(from(X)) -> active#(X) active#(app(X1,X2)) -> active#(X1) -> active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(app(X1,X2)) -> active#(X1) -> active#(cons(X1,X2)) -> active#(X1) active#(app(X1,X2)) -> active#(X1) -> active#(app(X1,X2)) -> app#(X1,active(X2)) active#(app(X1,X2)) -> active#(X1) -> active#(app(X1,X2)) -> active#(X2) active#(app(X1,X2)) -> active#(X1) -> active#(app(X1,X2)) -> app#(active(X1),X2) active#(app(X1,X2)) -> active#(X1) -> active#(app(X1,X2)) -> active#(X1) active#(app(X1,X2)) -> active#(X1) -> active#(prefix(L)) -> cons#(nil(),zWadr(L,prefix(L))) active#(app(X1,X2)) -> active#(X1) -> active#(prefix(L)) -> zWadr#(L,prefix(L)) active#(app(X1,X2)) -> active#(X1) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(app(Y,cons(X,nil())),zWadr(XS,YS)) active#(app(X1,X2)) -> active#(X1) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> app#(Y,cons(X,nil())) active#(app(X1,X2)) -> active#(X1) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> cons#(X,nil()) active#(app(X1,X2)) -> active#(X1) -> active#(zWadr(cons(X,XS),cons(Y,YS))) -> zWadr#(XS,YS) active#(app(X1,X2)) -> active#(X1) -> active#(from(X)) -> cons#(X,from(s(X))) active#(app(X1,X2)) -> active#(X1) -> active#(from(X)) -> from#(s(X)) active#(app(X1,X2)) -> active#(X1) -> active#(from(X)) -> s#(X) active#(app(X1,X2)) -> active#(X1) -> active#(app(cons(X,XS),YS)) -> cons#(X,app(XS,YS)) active#(app(X1,X2)) -> active#(X1) -> active#(app(cons(X,XS),YS)) -> app#(XS,YS) SCC Processor: #sccs: 9 #rules: 33 #arcs: 495/3600 DPs: top#(ok(X)) -> top#(active(X)) top#(mark(X)) -> top#(proper(X)) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Usable Rule Processor: DPs: top#(ok(X)) -> top#(active(X)) top#(mark(X)) -> top#(proper(X)) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) prefix(ok(X)) -> ok(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) KBO Processor: argument filtering: pi(nil) = [] pi(app) = [0,1] pi(active) = 0 pi(mark) = [0] pi(cons) = 0 pi(from) = [0] pi(s) = 0 pi(zWadr) = [0,1] pi(prefix) = [0] pi(proper) = 0 pi(ok) = 0 pi(top#) = 0 usable rules: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) prefix(ok(X)) -> ok(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) weight function: w0 = 1 w(top#) = w(prefix) = w(zWadr) = w(from) = w(mark) = w(nil) = 1 w(ok) = w(proper) = w(s) = w(cons) = w(active) = w(app) = 0 precedence: app > zWadr > prefix ~ from > top# ~ ok ~ proper ~ s ~ cons ~ mark ~ active ~ nil problem: DPs: top#(ok(X)) -> top#(active(X)) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) prefix(ok(X)) -> ok(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) Restore Modifier: DPs: top#(ok(X)) -> top#(active(X)) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(app) = 1 pi(active) = [0,0] pi(mark) = 0 pi(cons) = 1 pi(from) = [0,0] pi(s) = [0,0] pi(zWadr) = [0,1] pi(prefix) = 0 pi(ok) = [0,0,0] pi(top#) = 0 problem: DPs: TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: active#(app(X1,X2)) -> active#(X1) active#(app(X1,X2)) -> active#(X2) active#(cons(X1,X2)) -> active#(X1) active#(from(X)) -> active#(X) active#(s(X)) -> active#(X) active#(zWadr(X1,X2)) -> active#(X1) active#(zWadr(X1,X2)) -> active#(X2) active#(prefix(X)) -> active#(X) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(active#) = 0 problem: DPs: TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: proper#(app(X1,X2)) -> proper#(X2) proper#(app(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons(X1,X2)) -> proper#(X1) proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) proper#(zWadr(X1,X2)) -> proper#(X2) proper#(zWadr(X1,X2)) -> proper#(X1) proper#(prefix(X)) -> proper#(X) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(proper#) = 0 problem: DPs: TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: prefix#(mark(X)) -> prefix#(X) prefix#(ok(X)) -> prefix#(X) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(prefix#) = 0 problem: DPs: TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: zWadr#(mark(X1),X2) -> zWadr#(X1,X2) zWadr#(X1,mark(X2)) -> zWadr#(X1,X2) zWadr#(ok(X1),ok(X2)) -> zWadr#(X1,X2) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(zWadr#) = 0 problem: DPs: zWadr#(X1,mark(X2)) -> zWadr#(X1,X2) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(zWadr#) = 1 problem: DPs: TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: s#(mark(X)) -> s#(X) s#(ok(X)) -> s#(X) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(s#) = 0 problem: DPs: TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: from#(mark(X)) -> from#(X) from#(ok(X)) -> from#(X) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(from#) = 0 problem: DPs: TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: cons#(mark(X1),X2) -> cons#(X1,X2) cons#(ok(X1),ok(X2)) -> cons#(X1,X2) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(cons#) = 0 problem: DPs: TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: app#(mark(X1),X2) -> app#(X1,X2) app#(X1,mark(X2)) -> app#(X1,X2) app#(ok(X1),ok(X2)) -> app#(X1,X2) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(app#) = 0 problem: DPs: app#(X1,mark(X2)) -> app#(X1,X2) TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(app#) = 1 problem: DPs: TRS: active(app(nil(),YS)) -> mark(YS) active(app(cons(X,XS),YS)) -> mark(cons(X,app(XS,YS))) active(from(X)) -> mark(cons(X,from(s(X)))) active(zWadr(nil(),YS)) -> mark(nil()) active(zWadr(XS,nil())) -> mark(nil()) active(zWadr(cons(X,XS),cons(Y,YS))) -> mark(cons(app(Y,cons(X,nil())),zWadr(XS,YS))) active(prefix(L)) -> mark(cons(nil(),zWadr(L,prefix(L)))) active(app(X1,X2)) -> app(active(X1),X2) active(app(X1,X2)) -> app(X1,active(X2)) active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(s(X)) -> s(active(X)) active(zWadr(X1,X2)) -> zWadr(active(X1),X2) active(zWadr(X1,X2)) -> zWadr(X1,active(X2)) active(prefix(X)) -> prefix(active(X)) app(mark(X1),X2) -> mark(app(X1,X2)) app(X1,mark(X2)) -> mark(app(X1,X2)) cons(mark(X1),X2) -> mark(cons(X1,X2)) from(mark(X)) -> mark(from(X)) s(mark(X)) -> mark(s(X)) zWadr(mark(X1),X2) -> mark(zWadr(X1,X2)) zWadr(X1,mark(X2)) -> mark(zWadr(X1,X2)) prefix(mark(X)) -> mark(prefix(X)) proper(app(X1,X2)) -> app(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(zWadr(X1,X2)) -> zWadr(proper(X1),proper(X2)) proper(prefix(X)) -> prefix(proper(X)) app(ok(X1),ok(X2)) -> ok(app(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(ok(X)) -> ok(from(X)) s(ok(X)) -> ok(s(X)) zWadr(ok(X1),ok(X2)) -> ok(zWadr(X1,X2)) prefix(ok(X)) -> ok(prefix(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed