MAYBE Problem: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Proof: DP Processor: DPs: active#(sel(s(X),cons(Y,Z))) -> sel#(X,Z) active#(first(s(X),cons(Y,Z))) -> first#(X,Z) active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z)) active#(from(X)) -> s#(X) active#(from(X)) -> from#(s(X)) active#(from(X)) -> cons#(X,from(s(X))) active#(sel1(s(X),cons(Y,Z))) -> sel1#(X,Z) active#(sel1(0(),cons(X,Z))) -> quote#(X) active#(first1(s(X),cons(Y,Z))) -> first1#(X,Z) active#(first1(s(X),cons(Y,Z))) -> quote#(Y) active#(first1(s(X),cons(Y,Z))) -> cons1#(quote(Y),first1(X,Z)) active#(quote1(cons(X,Z))) -> quote1#(Z) active#(quote1(cons(X,Z))) -> quote#(X) active#(quote1(cons(X,Z))) -> cons1#(quote(X),quote1(Z)) active#(quote(s(X))) -> quote#(X) active#(quote(s(X))) -> s1#(quote(X)) active#(quote(sel(X,Z))) -> sel1#(X,Z) active#(quote1(first(X,Z))) -> first1#(X,Z) active#(unquote(s1(X))) -> unquote#(X) active#(unquote(s1(X))) -> s#(unquote(X)) active#(unquote1(cons1(X,Z))) -> unquote1#(Z) active#(unquote1(cons1(X,Z))) -> unquote#(X) active#(unquote1(cons1(X,Z))) -> fcons#(unquote(X),unquote1(Z)) active#(fcons(X,Z)) -> cons#(X,Z) active#(sel(X1,X2)) -> active#(X1) active#(sel(X1,X2)) -> sel#(active(X1),X2) active#(sel(X1,X2)) -> active#(X2) active#(sel(X1,X2)) -> sel#(X1,active(X2)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(first(X1,X2)) -> active#(X1) active#(first(X1,X2)) -> first#(active(X1),X2) active#(first(X1,X2)) -> active#(X2) active#(first(X1,X2)) -> first#(X1,active(X2)) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(sel1(X1,X2)) -> active#(X1) active#(sel1(X1,X2)) -> sel1#(active(X1),X2) active#(sel1(X1,X2)) -> active#(X2) active#(sel1(X1,X2)) -> sel1#(X1,active(X2)) active#(first1(X1,X2)) -> active#(X1) active#(first1(X1,X2)) -> first1#(active(X1),X2) active#(first1(X1,X2)) -> active#(X2) active#(first1(X1,X2)) -> first1#(X1,active(X2)) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(s1(X)) -> active#(X) active#(s1(X)) -> s1#(active(X)) active#(unquote(X)) -> active#(X) active#(unquote(X)) -> unquote#(active(X)) active#(unquote1(X)) -> active#(X) active#(unquote1(X)) -> unquote1#(active(X)) active#(fcons(X1,X2)) -> active#(X1) active#(fcons(X1,X2)) -> fcons#(active(X1),X2) active#(fcons(X1,X2)) -> active#(X2) active#(fcons(X1,X2)) -> fcons#(X1,active(X2)) sel#(mark(X1),X2) -> sel#(X1,X2) sel#(X1,mark(X2)) -> sel#(X1,X2) s#(mark(X)) -> s#(X) cons#(mark(X1),X2) -> cons#(X1,X2) first#(mark(X1),X2) -> first#(X1,X2) first#(X1,mark(X2)) -> first#(X1,X2) from#(mark(X)) -> from#(X) sel1#(mark(X1),X2) -> sel1#(X1,X2) sel1#(X1,mark(X2)) -> sel1#(X1,X2) first1#(mark(X1),X2) -> first1#(X1,X2) first1#(X1,mark(X2)) -> first1#(X1,X2) cons1#(mark(X1),X2) -> cons1#(X1,X2) cons1#(X1,mark(X2)) -> cons1#(X1,X2) s1#(mark(X)) -> s1#(X) unquote#(mark(X)) -> unquote#(X) unquote1#(mark(X)) -> unquote1#(X) fcons#(mark(X1),X2) -> fcons#(X1,X2) fcons#(X1,mark(X2)) -> fcons#(X1,X2) proper#(sel(X1,X2)) -> proper#(X2) proper#(sel(X1,X2)) -> proper#(X1) proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2)) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(first(X1,X2)) -> proper#(X2) proper#(first(X1,X2)) -> proper#(X1) proper#(first(X1,X2)) -> first#(proper(X1),proper(X2)) proper#(from(X)) -> proper#(X) proper#(from(X)) -> from#(proper(X)) proper#(sel1(X1,X2)) -> proper#(X2) proper#(sel1(X1,X2)) -> proper#(X1) proper#(sel1(X1,X2)) -> sel1#(proper(X1),proper(X2)) proper#(quote(X)) -> proper#(X) proper#(quote(X)) -> quote#(proper(X)) proper#(first1(X1,X2)) -> proper#(X2) proper#(first1(X1,X2)) -> proper#(X1) proper#(first1(X1,X2)) -> first1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(quote1(X)) -> proper#(X) proper#(quote1(X)) -> quote1#(proper(X)) proper#(s1(X)) -> proper#(X) proper#(s1(X)) -> s1#(proper(X)) proper#(unquote(X)) -> proper#(X) proper#(unquote(X)) -> unquote#(proper(X)) proper#(unquote1(X)) -> proper#(X) proper#(unquote1(X)) -> unquote1#(proper(X)) proper#(fcons(X1,X2)) -> proper#(X2) proper#(fcons(X1,X2)) -> proper#(X1) proper#(fcons(X1,X2)) -> fcons#(proper(X1),proper(X2)) sel#(ok(X1),ok(X2)) -> sel#(X1,X2) s#(ok(X)) -> s#(X) cons#(ok(X1),ok(X2)) -> cons#(X1,X2) first#(ok(X1),ok(X2)) -> first#(X1,X2) from#(ok(X)) -> from#(X) sel1#(ok(X1),ok(X2)) -> sel1#(X1,X2) quote#(ok(X)) -> quote#(X) first1#(ok(X1),ok(X2)) -> first1#(X1,X2) cons1#(ok(X1),ok(X2)) -> cons1#(X1,X2) quote1#(ok(X)) -> quote1#(X) s1#(ok(X)) -> s1#(X) unquote#(ok(X)) -> unquote#(X) unquote1#(ok(X)) -> unquote1#(X) fcons#(ok(X1),ok(X2)) -> fcons#(X1,X2) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) TDG Processor: DPs: active#(sel(s(X),cons(Y,Z))) -> sel#(X,Z) active#(first(s(X),cons(Y,Z))) -> first#(X,Z) active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z)) active#(from(X)) -> s#(X) active#(from(X)) -> from#(s(X)) active#(from(X)) -> cons#(X,from(s(X))) active#(sel1(s(X),cons(Y,Z))) -> sel1#(X,Z) active#(sel1(0(),cons(X,Z))) -> quote#(X) active#(first1(s(X),cons(Y,Z))) -> first1#(X,Z) active#(first1(s(X),cons(Y,Z))) -> quote#(Y) active#(first1(s(X),cons(Y,Z))) -> cons1#(quote(Y),first1(X,Z)) active#(quote1(cons(X,Z))) -> quote1#(Z) active#(quote1(cons(X,Z))) -> quote#(X) active#(quote1(cons(X,Z))) -> cons1#(quote(X),quote1(Z)) active#(quote(s(X))) -> quote#(X) active#(quote(s(X))) -> s1#(quote(X)) active#(quote(sel(X,Z))) -> sel1#(X,Z) active#(quote1(first(X,Z))) -> first1#(X,Z) active#(unquote(s1(X))) -> unquote#(X) active#(unquote(s1(X))) -> s#(unquote(X)) active#(unquote1(cons1(X,Z))) -> unquote1#(Z) active#(unquote1(cons1(X,Z))) -> unquote#(X) active#(unquote1(cons1(X,Z))) -> fcons#(unquote(X),unquote1(Z)) active#(fcons(X,Z)) -> cons#(X,Z) active#(sel(X1,X2)) -> active#(X1) active#(sel(X1,X2)) -> sel#(active(X1),X2) active#(sel(X1,X2)) -> active#(X2) active#(sel(X1,X2)) -> sel#(X1,active(X2)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(first(X1,X2)) -> active#(X1) active#(first(X1,X2)) -> first#(active(X1),X2) active#(first(X1,X2)) -> active#(X2) active#(first(X1,X2)) -> first#(X1,active(X2)) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(sel1(X1,X2)) -> active#(X1) active#(sel1(X1,X2)) -> sel1#(active(X1),X2) active#(sel1(X1,X2)) -> active#(X2) active#(sel1(X1,X2)) -> sel1#(X1,active(X2)) active#(first1(X1,X2)) -> active#(X1) active#(first1(X1,X2)) -> first1#(active(X1),X2) active#(first1(X1,X2)) -> active#(X2) active#(first1(X1,X2)) -> first1#(X1,active(X2)) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(s1(X)) -> active#(X) active#(s1(X)) -> s1#(active(X)) active#(unquote(X)) -> active#(X) active#(unquote(X)) -> unquote#(active(X)) active#(unquote1(X)) -> active#(X) active#(unquote1(X)) -> unquote1#(active(X)) active#(fcons(X1,X2)) -> active#(X1) active#(fcons(X1,X2)) -> fcons#(active(X1),X2) active#(fcons(X1,X2)) -> active#(X2) active#(fcons(X1,X2)) -> fcons#(X1,active(X2)) sel#(mark(X1),X2) -> sel#(X1,X2) sel#(X1,mark(X2)) -> sel#(X1,X2) s#(mark(X)) -> s#(X) cons#(mark(X1),X2) -> cons#(X1,X2) first#(mark(X1),X2) -> first#(X1,X2) first#(X1,mark(X2)) -> first#(X1,X2) from#(mark(X)) -> from#(X) sel1#(mark(X1),X2) -> sel1#(X1,X2) sel1#(X1,mark(X2)) -> sel1#(X1,X2) first1#(mark(X1),X2) -> first1#(X1,X2) first1#(X1,mark(X2)) -> first1#(X1,X2) cons1#(mark(X1),X2) -> cons1#(X1,X2) cons1#(X1,mark(X2)) -> cons1#(X1,X2) s1#(mark(X)) -> s1#(X) unquote#(mark(X)) -> unquote#(X) unquote1#(mark(X)) -> unquote1#(X) fcons#(mark(X1),X2) -> fcons#(X1,X2) fcons#(X1,mark(X2)) -> fcons#(X1,X2) proper#(sel(X1,X2)) -> proper#(X2) proper#(sel(X1,X2)) -> proper#(X1) proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2)) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(first(X1,X2)) -> proper#(X2) proper#(first(X1,X2)) -> proper#(X1) proper#(first(X1,X2)) -> first#(proper(X1),proper(X2)) proper#(from(X)) -> proper#(X) proper#(from(X)) -> from#(proper(X)) proper#(sel1(X1,X2)) -> proper#(X2) proper#(sel1(X1,X2)) -> proper#(X1) proper#(sel1(X1,X2)) -> sel1#(proper(X1),proper(X2)) proper#(quote(X)) -> proper#(X) proper#(quote(X)) -> quote#(proper(X)) proper#(first1(X1,X2)) -> proper#(X2) proper#(first1(X1,X2)) -> proper#(X1) proper#(first1(X1,X2)) -> first1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(quote1(X)) -> proper#(X) proper#(quote1(X)) -> quote1#(proper(X)) proper#(s1(X)) -> proper#(X) proper#(s1(X)) -> s1#(proper(X)) proper#(unquote(X)) -> proper#(X) proper#(unquote(X)) -> unquote#(proper(X)) proper#(unquote1(X)) -> proper#(X) proper#(unquote1(X)) -> unquote1#(proper(X)) proper#(fcons(X1,X2)) -> proper#(X2) proper#(fcons(X1,X2)) -> proper#(X1) proper#(fcons(X1,X2)) -> fcons#(proper(X1),proper(X2)) sel#(ok(X1),ok(X2)) -> sel#(X1,X2) s#(ok(X)) -> s#(X) cons#(ok(X1),ok(X2)) -> cons#(X1,X2) first#(ok(X1),ok(X2)) -> first#(X1,X2) from#(ok(X)) -> from#(X) sel1#(ok(X1),ok(X2)) -> sel1#(X1,X2) quote#(ok(X)) -> quote#(X) first1#(ok(X1),ok(X2)) -> first1#(X1,X2) cons1#(ok(X1),ok(X2)) -> cons1#(X1,X2) quote1#(ok(X)) -> quote1#(X) s1#(ok(X)) -> s1#(X) unquote#(ok(X)) -> unquote#(X) unquote1#(ok(X)) -> unquote1#(X) fcons#(ok(X1),ok(X2)) -> fcons#(X1,X2) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) graph: ... SCC Processor: #sccs: 17 #rules: 73 #arcs: 2130/17161 DPs: top#(ok(X)) -> top#(active(X)) top#(mark(X)) -> top#(proper(X)) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Open DPs: active#(sel(X1,X2)) -> active#(X1) active#(sel(X1,X2)) -> active#(X2) active#(s(X)) -> active#(X) active#(cons(X1,X2)) -> active#(X1) active#(first(X1,X2)) -> active#(X1) active#(first(X1,X2)) -> active#(X2) active#(from(X)) -> active#(X) active#(sel1(X1,X2)) -> active#(X1) active#(sel1(X1,X2)) -> active#(X2) active#(first1(X1,X2)) -> active#(X1) active#(first1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> active#(X2) active#(s1(X)) -> active#(X) active#(unquote(X)) -> active#(X) active#(unquote1(X)) -> active#(X) active#(fcons(X1,X2)) -> active#(X1) active#(fcons(X1,X2)) -> active#(X2) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(active#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: proper#(sel(X1,X2)) -> proper#(X2) proper#(sel(X1,X2)) -> proper#(X1) proper#(s(X)) -> proper#(X) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons(X1,X2)) -> proper#(X1) proper#(first(X1,X2)) -> proper#(X2) proper#(first(X1,X2)) -> proper#(X1) proper#(from(X)) -> proper#(X) proper#(sel1(X1,X2)) -> proper#(X2) proper#(sel1(X1,X2)) -> proper#(X1) proper#(quote(X)) -> proper#(X) proper#(first1(X1,X2)) -> proper#(X2) proper#(first1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> proper#(X1) proper#(quote1(X)) -> proper#(X) proper#(s1(X)) -> proper#(X) proper#(unquote(X)) -> proper#(X) proper#(unquote1(X)) -> proper#(X) proper#(fcons(X1,X2)) -> proper#(X2) proper#(fcons(X1,X2)) -> proper#(X1) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(proper#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: fcons#(mark(X1),X2) -> fcons#(X1,X2) fcons#(X1,mark(X2)) -> fcons#(X1,X2) fcons#(ok(X1),ok(X2)) -> fcons#(X1,X2) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(fcons#) = 1 problem: DPs: fcons#(mark(X1),X2) -> fcons#(X1,X2) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(fcons#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: unquote1#(mark(X)) -> unquote1#(X) unquote1#(ok(X)) -> unquote1#(X) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(unquote1#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: unquote#(mark(X)) -> unquote#(X) unquote#(ok(X)) -> unquote#(X) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(unquote#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: s1#(mark(X)) -> s1#(X) s1#(ok(X)) -> s1#(X) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(s1#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: quote1#(ok(X)) -> quote1#(X) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(quote1#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: cons1#(mark(X1),X2) -> cons1#(X1,X2) cons1#(X1,mark(X2)) -> cons1#(X1,X2) cons1#(ok(X1),ok(X2)) -> cons1#(X1,X2) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(cons1#) = 1 problem: DPs: cons1#(mark(X1),X2) -> cons1#(X1,X2) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(cons1#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: first1#(mark(X1),X2) -> first1#(X1,X2) first1#(X1,mark(X2)) -> first1#(X1,X2) first1#(ok(X1),ok(X2)) -> first1#(X1,X2) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(first1#) = 1 problem: DPs: first1#(mark(X1),X2) -> first1#(X1,X2) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(first1#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: quote#(ok(X)) -> quote#(X) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(quote#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: sel1#(mark(X1),X2) -> sel1#(X1,X2) sel1#(X1,mark(X2)) -> sel1#(X1,X2) sel1#(ok(X1),ok(X2)) -> sel1#(X1,X2) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(sel1#) = 1 problem: DPs: sel1#(mark(X1),X2) -> sel1#(X1,X2) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(sel1#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) 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(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(from#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: first#(mark(X1),X2) -> first#(X1,X2) first#(X1,mark(X2)) -> first#(X1,X2) first#(ok(X1),ok(X2)) -> first#(X1,X2) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(first#) = 1 problem: DPs: first#(mark(X1),X2) -> first#(X1,X2) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(first#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) 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(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(cons#) = 1 problem: DPs: cons#(mark(X1),X2) -> cons#(X1,X2) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(cons#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) 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(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(s#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed DPs: sel#(mark(X1),X2) -> sel#(X1,X2) sel#(X1,mark(X2)) -> sel#(X1,X2) sel#(ok(X1),ok(X2)) -> sel#(X1,X2) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(sel#) = 1 problem: DPs: sel#(mark(X1),X2) -> sel#(X1,X2) TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Subterm Criterion Processor: simple projection: pi(sel#) = 0 problem: DPs: TRS: active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) active(sel(0(),cons(X,Z))) -> mark(X) active(first(0(),Z)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) active(sel1(s(X),cons(Y,Z))) -> mark(sel1(X,Z)) active(sel1(0(),cons(X,Z))) -> mark(quote(X)) active(first1(0(),Z)) -> mark(nil1()) active(first1(s(X),cons(Y,Z))) -> mark(cons1(quote(Y),first1(X,Z))) active(quote(0())) -> mark(01()) active(quote1(cons(X,Z))) -> mark(cons1(quote(X),quote1(Z))) active(quote1(nil())) -> mark(nil1()) active(quote(s(X))) -> mark(s1(quote(X))) active(quote(sel(X,Z))) -> mark(sel1(X,Z)) active(quote1(first(X,Z))) -> mark(first1(X,Z)) active(unquote(01())) -> mark(0()) active(unquote(s1(X))) -> mark(s(unquote(X))) active(unquote1(nil1())) -> mark(nil()) active(unquote1(cons1(X,Z))) -> mark(fcons(unquote(X),unquote1(Z))) active(fcons(X,Z)) -> mark(cons(X,Z)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(X1,X2)) -> sel(X1,active(X2)) active(s(X)) -> s(active(X)) active(cons(X1,X2)) -> cons(active(X1),X2) active(first(X1,X2)) -> first(active(X1),X2) active(first(X1,X2)) -> first(X1,active(X2)) active(from(X)) -> from(active(X)) active(sel1(X1,X2)) -> sel1(active(X1),X2) active(sel1(X1,X2)) -> sel1(X1,active(X2)) active(first1(X1,X2)) -> first1(active(X1),X2) active(first1(X1,X2)) -> first1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(s1(X)) -> s1(active(X)) active(unquote(X)) -> unquote(active(X)) active(unquote1(X)) -> unquote1(active(X)) active(fcons(X1,X2)) -> fcons(active(X1),X2) active(fcons(X1,X2)) -> fcons(X1,active(X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) s(mark(X)) -> mark(s(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) first(mark(X1),X2) -> mark(first(X1,X2)) first(X1,mark(X2)) -> mark(first(X1,X2)) from(mark(X)) -> mark(from(X)) sel1(mark(X1),X2) -> mark(sel1(X1,X2)) sel1(X1,mark(X2)) -> mark(sel1(X1,X2)) first1(mark(X1),X2) -> mark(first1(X1,X2)) first1(X1,mark(X2)) -> mark(first1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) s1(mark(X)) -> mark(s1(X)) unquote(mark(X)) -> mark(unquote(X)) unquote1(mark(X)) -> mark(unquote1(X)) fcons(mark(X1),X2) -> mark(fcons(X1,X2)) fcons(X1,mark(X2)) -> mark(fcons(X1,X2)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) proper(s(X)) -> s(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(0()) -> ok(0()) proper(first(X1,X2)) -> first(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(from(X)) -> from(proper(X)) proper(sel1(X1,X2)) -> sel1(proper(X1),proper(X2)) proper(quote(X)) -> quote(proper(X)) proper(first1(X1,X2)) -> first1(proper(X1),proper(X2)) proper(nil1()) -> ok(nil1()) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(01()) -> ok(01()) proper(quote1(X)) -> quote1(proper(X)) proper(s1(X)) -> s1(proper(X)) proper(unquote(X)) -> unquote(proper(X)) proper(unquote1(X)) -> unquote1(proper(X)) proper(fcons(X1,X2)) -> fcons(proper(X1),proper(X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) s(ok(X)) -> ok(s(X)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) first(ok(X1),ok(X2)) -> ok(first(X1,X2)) from(ok(X)) -> ok(from(X)) sel1(ok(X1),ok(X2)) -> ok(sel1(X1,X2)) quote(ok(X)) -> ok(quote(X)) first1(ok(X1),ok(X2)) -> ok(first1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) quote1(ok(X)) -> ok(quote1(X)) s1(ok(X)) -> ok(s1(X)) unquote(ok(X)) -> ok(unquote(X)) unquote1(ok(X)) -> ok(unquote1(X)) fcons(ok(X1),ok(X2)) -> ok(fcons(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Qed