MAYBE Problem: a__from(X) -> cons(mark(X),from(s(X))) a__head(cons(X,XS)) -> mark(X) a__2nd(cons(X,XS)) -> a__head(mark(XS)) a__take(0(),XS) -> nil() a__take(s(N),cons(X,XS)) -> cons(mark(X),take(N,XS)) a__sel(0(),cons(X,XS)) -> mark(X) a__sel(s(N),cons(X,XS)) -> a__sel(mark(N),mark(XS)) mark(from(X)) -> a__from(mark(X)) mark(head(X)) -> a__head(mark(X)) mark(2nd(X)) -> a__2nd(mark(X)) mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) mark(sel(X1,X2)) -> a__sel(mark(X1),mark(X2)) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) mark(0()) -> 0() mark(nil()) -> nil() a__from(X) -> from(X) a__head(X) -> head(X) a__2nd(X) -> 2nd(X) a__take(X1,X2) -> take(X1,X2) a__sel(X1,X2) -> sel(X1,X2) Proof: DP Processor: DPs: a__from#(X) -> mark#(X) a__head#(cons(X,XS)) -> mark#(X) a__2nd#(cons(X,XS)) -> mark#(XS) a__2nd#(cons(X,XS)) -> a__head#(mark(XS)) a__take#(s(N),cons(X,XS)) -> mark#(X) a__sel#(0(),cons(X,XS)) -> mark#(X) a__sel#(s(N),cons(X,XS)) -> mark#(XS) a__sel#(s(N),cons(X,XS)) -> mark#(N) a__sel#(s(N),cons(X,XS)) -> a__sel#(mark(N),mark(XS)) mark#(from(X)) -> mark#(X) mark#(from(X)) -> a__from#(mark(X)) mark#(head(X)) -> mark#(X) mark#(head(X)) -> a__head#(mark(X)) mark#(2nd(X)) -> mark#(X) mark#(2nd(X)) -> a__2nd#(mark(X)) mark#(take(X1,X2)) -> mark#(X2) mark#(take(X1,X2)) -> mark#(X1) mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) mark#(sel(X1,X2)) -> mark#(X2) mark#(sel(X1,X2)) -> mark#(X1) mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) mark#(cons(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) TRS: a__from(X) -> cons(mark(X),from(s(X))) a__head(cons(X,XS)) -> mark(X) a__2nd(cons(X,XS)) -> a__head(mark(XS)) a__take(0(),XS) -> nil() a__take(s(N),cons(X,XS)) -> cons(mark(X),take(N,XS)) a__sel(0(),cons(X,XS)) -> mark(X) a__sel(s(N),cons(X,XS)) -> a__sel(mark(N),mark(XS)) mark(from(X)) -> a__from(mark(X)) mark(head(X)) -> a__head(mark(X)) mark(2nd(X)) -> a__2nd(mark(X)) mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) mark(sel(X1,X2)) -> a__sel(mark(X1),mark(X2)) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) mark(0()) -> 0() mark(nil()) -> nil() a__from(X) -> from(X) a__head(X) -> head(X) a__2nd(X) -> 2nd(X) a__take(X1,X2) -> take(X1,X2) a__sel(X1,X2) -> sel(X1,X2) EDG Processor: DPs: a__from#(X) -> mark#(X) a__head#(cons(X,XS)) -> mark#(X) a__2nd#(cons(X,XS)) -> mark#(XS) a__2nd#(cons(X,XS)) -> a__head#(mark(XS)) a__take#(s(N),cons(X,XS)) -> mark#(X) a__sel#(0(),cons(X,XS)) -> mark#(X) a__sel#(s(N),cons(X,XS)) -> mark#(XS) a__sel#(s(N),cons(X,XS)) -> mark#(N) a__sel#(s(N),cons(X,XS)) -> a__sel#(mark(N),mark(XS)) mark#(from(X)) -> mark#(X) mark#(from(X)) -> a__from#(mark(X)) mark#(head(X)) -> mark#(X) mark#(head(X)) -> a__head#(mark(X)) mark#(2nd(X)) -> mark#(X) mark#(2nd(X)) -> a__2nd#(mark(X)) mark#(take(X1,X2)) -> mark#(X2) mark#(take(X1,X2)) -> mark#(X1) mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) mark#(sel(X1,X2)) -> mark#(X2) mark#(sel(X1,X2)) -> mark#(X1) mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) mark#(cons(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) TRS: a__from(X) -> cons(mark(X),from(s(X))) a__head(cons(X,XS)) -> mark(X) a__2nd(cons(X,XS)) -> a__head(mark(XS)) a__take(0(),XS) -> nil() a__take(s(N),cons(X,XS)) -> cons(mark(X),take(N,XS)) a__sel(0(),cons(X,XS)) -> mark(X) a__sel(s(N),cons(X,XS)) -> a__sel(mark(N),mark(XS)) mark(from(X)) -> a__from(mark(X)) mark(head(X)) -> a__head(mark(X)) mark(2nd(X)) -> a__2nd(mark(X)) mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) mark(sel(X1,X2)) -> a__sel(mark(X1),mark(X2)) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) mark(0()) -> 0() mark(nil()) -> nil() a__from(X) -> from(X) a__head(X) -> head(X) a__2nd(X) -> 2nd(X) a__take(X1,X2) -> take(X1,X2) a__sel(X1,X2) -> sel(X1,X2) graph: a__sel#(0(),cons(X,XS)) -> mark#(X) -> mark#(from(X)) -> mark#(X) a__sel#(0(),cons(X,XS)) -> mark#(X) -> mark#(from(X)) -> a__from#(mark(X)) a__sel#(0(),cons(X,XS)) -> mark#(X) -> mark#(head(X)) -> mark#(X) a__sel#(0(),cons(X,XS)) -> mark#(X) -> mark#(head(X)) -> a__head#(mark(X)) a__sel#(0(),cons(X,XS)) -> mark#(X) -> mark#(2nd(X)) -> mark#(X) a__sel#(0(),cons(X,XS)) -> mark#(X) -> mark#(2nd(X)) -> a__2nd#(mark(X)) a__sel#(0(),cons(X,XS)) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X2) a__sel#(0(),cons(X,XS)) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X1) a__sel#(0(),cons(X,XS)) -> mark#(X) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) a__sel#(0(),cons(X,XS)) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X2) a__sel#(0(),cons(X,XS)) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X1) a__sel#(0(),cons(X,XS)) -> mark#(X) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) a__sel#(0(),cons(X,XS)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) a__sel#(0(),cons(X,XS)) -> mark#(X) -> mark#(s(X)) -> mark#(X) a__sel#(s(N),cons(X,XS)) -> a__sel#(mark(N),mark(XS)) -> a__sel#(0(),cons(X,XS)) -> mark#(X) a__sel#(s(N),cons(X,XS)) -> a__sel#(mark(N),mark(XS)) -> a__sel#(s(N),cons(X,XS)) -> mark#(XS) a__sel#(s(N),cons(X,XS)) -> a__sel#(mark(N),mark(XS)) -> a__sel#(s(N),cons(X,XS)) -> mark#(N) a__sel#(s(N),cons(X,XS)) -> a__sel#(mark(N),mark(XS)) -> a__sel#(s(N),cons(X,XS)) -> a__sel#(mark(N),mark(XS)) a__sel#(s(N),cons(X,XS)) -> mark#(N) -> mark#(from(X)) -> mark#(X) a__sel#(s(N),cons(X,XS)) -> mark#(N) -> mark#(from(X)) -> a__from#(mark(X)) a__sel#(s(N),cons(X,XS)) -> mark#(N) -> mark#(head(X)) -> mark#(X) a__sel#(s(N),cons(X,XS)) -> mark#(N) -> mark#(head(X)) -> a__head#(mark(X)) a__sel#(s(N),cons(X,XS)) -> mark#(N) -> mark#(2nd(X)) -> mark#(X) a__sel#(s(N),cons(X,XS)) -> mark#(N) -> mark#(2nd(X)) -> a__2nd#(mark(X)) a__sel#(s(N),cons(X,XS)) -> mark#(N) -> mark#(take(X1,X2)) -> mark#(X2) a__sel#(s(N),cons(X,XS)) -> mark#(N) -> mark#(take(X1,X2)) -> mark#(X1) a__sel#(s(N),cons(X,XS)) -> mark#(N) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) a__sel#(s(N),cons(X,XS)) -> mark#(N) -> mark#(sel(X1,X2)) -> mark#(X2) a__sel#(s(N),cons(X,XS)) -> mark#(N) -> mark#(sel(X1,X2)) -> mark#(X1) a__sel#(s(N),cons(X,XS)) -> mark#(N) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) a__sel#(s(N),cons(X,XS)) -> mark#(N) -> mark#(cons(X1,X2)) -> mark#(X1) a__sel#(s(N),cons(X,XS)) -> mark#(N) -> mark#(s(X)) -> mark#(X) a__sel#(s(N),cons(X,XS)) -> mark#(XS) -> mark#(from(X)) -> mark#(X) a__sel#(s(N),cons(X,XS)) -> mark#(XS) -> mark#(from(X)) -> a__from#(mark(X)) a__sel#(s(N),cons(X,XS)) -> mark#(XS) -> mark#(head(X)) -> mark#(X) a__sel#(s(N),cons(X,XS)) -> mark#(XS) -> mark#(head(X)) -> a__head#(mark(X)) a__sel#(s(N),cons(X,XS)) -> mark#(XS) -> mark#(2nd(X)) -> mark#(X) a__sel#(s(N),cons(X,XS)) -> mark#(XS) -> mark#(2nd(X)) -> a__2nd#(mark(X)) a__sel#(s(N),cons(X,XS)) -> mark#(XS) -> mark#(take(X1,X2)) -> mark#(X2) a__sel#(s(N),cons(X,XS)) -> mark#(XS) -> mark#(take(X1,X2)) -> mark#(X1) a__sel#(s(N),cons(X,XS)) -> mark#(XS) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) a__sel#(s(N),cons(X,XS)) -> mark#(XS) -> mark#(sel(X1,X2)) -> mark#(X2) a__sel#(s(N),cons(X,XS)) -> mark#(XS) -> mark#(sel(X1,X2)) -> mark#(X1) a__sel#(s(N),cons(X,XS)) -> mark#(XS) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) a__sel#(s(N),cons(X,XS)) -> mark#(XS) -> mark#(cons(X1,X2)) -> mark#(X1) a__sel#(s(N),cons(X,XS)) -> mark#(XS) -> mark#(s(X)) -> mark#(X) a__take#(s(N),cons(X,XS)) -> mark#(X) -> mark#(from(X)) -> mark#(X) a__take#(s(N),cons(X,XS)) -> mark#(X) -> mark#(from(X)) -> a__from#(mark(X)) a__take#(s(N),cons(X,XS)) -> mark#(X) -> mark#(head(X)) -> mark#(X) a__take#(s(N),cons(X,XS)) -> mark#(X) -> mark#(head(X)) -> a__head#(mark(X)) a__take#(s(N),cons(X,XS)) -> mark#(X) -> mark#(2nd(X)) -> mark#(X) a__take#(s(N),cons(X,XS)) -> mark#(X) -> mark#(2nd(X)) -> a__2nd#(mark(X)) a__take#(s(N),cons(X,XS)) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X2) a__take#(s(N),cons(X,XS)) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X1) a__take#(s(N),cons(X,XS)) -> mark#(X) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) a__take#(s(N),cons(X,XS)) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X2) a__take#(s(N),cons(X,XS)) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X1) a__take#(s(N),cons(X,XS)) -> mark#(X) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) a__take#(s(N),cons(X,XS)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) a__take#(s(N),cons(X,XS)) -> mark#(X) -> mark#(s(X)) -> mark#(X) a__2nd#(cons(X,XS)) -> a__head#(mark(XS)) -> a__head#(cons(X,XS)) -> mark#(X) a__2nd#(cons(X,XS)) -> mark#(XS) -> mark#(from(X)) -> mark#(X) a__2nd#(cons(X,XS)) -> mark#(XS) -> mark#(from(X)) -> a__from#(mark(X)) a__2nd#(cons(X,XS)) -> mark#(XS) -> mark#(head(X)) -> mark#(X) a__2nd#(cons(X,XS)) -> mark#(XS) -> mark#(head(X)) -> a__head#(mark(X)) a__2nd#(cons(X,XS)) -> mark#(XS) -> mark#(2nd(X)) -> mark#(X) a__2nd#(cons(X,XS)) -> mark#(XS) -> mark#(2nd(X)) -> a__2nd#(mark(X)) a__2nd#(cons(X,XS)) -> mark#(XS) -> mark#(take(X1,X2)) -> mark#(X2) a__2nd#(cons(X,XS)) -> mark#(XS) -> mark#(take(X1,X2)) -> mark#(X1) a__2nd#(cons(X,XS)) -> mark#(XS) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) a__2nd#(cons(X,XS)) -> mark#(XS) -> mark#(sel(X1,X2)) -> mark#(X2) a__2nd#(cons(X,XS)) -> mark#(XS) -> mark#(sel(X1,X2)) -> mark#(X1) a__2nd#(cons(X,XS)) -> mark#(XS) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) a__2nd#(cons(X,XS)) -> mark#(XS) -> mark#(cons(X1,X2)) -> mark#(X1) a__2nd#(cons(X,XS)) -> mark#(XS) -> mark#(s(X)) -> mark#(X) a__head#(cons(X,XS)) -> mark#(X) -> mark#(from(X)) -> mark#(X) a__head#(cons(X,XS)) -> mark#(X) -> mark#(from(X)) -> a__from#(mark(X)) a__head#(cons(X,XS)) -> mark#(X) -> mark#(head(X)) -> mark#(X) a__head#(cons(X,XS)) -> mark#(X) -> mark#(head(X)) -> a__head#(mark(X)) a__head#(cons(X,XS)) -> mark#(X) -> mark#(2nd(X)) -> mark#(X) a__head#(cons(X,XS)) -> mark#(X) -> mark#(2nd(X)) -> a__2nd#(mark(X)) a__head#(cons(X,XS)) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X2) a__head#(cons(X,XS)) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X1) a__head#(cons(X,XS)) -> mark#(X) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) a__head#(cons(X,XS)) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X2) a__head#(cons(X,XS)) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X1) a__head#(cons(X,XS)) -> mark#(X) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) a__head#(cons(X,XS)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) a__head#(cons(X,XS)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) -> a__sel#(0(),cons(X,XS)) -> mark#(X) mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) -> a__sel#(s(N),cons(X,XS)) -> mark#(XS) mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) -> a__sel#(s(N),cons(X,XS)) -> mark#(N) mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) -> a__sel#(s(N),cons(X,XS)) -> a__sel#(mark(N),mark(XS)) mark#(sel(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> mark#(X) mark#(sel(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> a__from#(mark(X)) mark#(sel(X1,X2)) -> mark#(X2) -> mark#(head(X)) -> mark#(X) mark#(sel(X1,X2)) -> mark#(X2) -> mark#(head(X)) -> a__head#(mark(X)) mark#(sel(X1,X2)) -> mark#(X2) -> mark#(2nd(X)) -> mark#(X) mark#(sel(X1,X2)) -> mark#(X2) -> mark#(2nd(X)) -> a__2nd#(mark(X)) mark#(sel(X1,X2)) -> mark#(X2) -> mark#(take(X1,X2)) -> mark#(X2) mark#(sel(X1,X2)) -> mark#(X2) -> mark#(take(X1,X2)) -> mark#(X1) mark#(sel(X1,X2)) -> mark#(X2) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) mark#(sel(X1,X2)) -> mark#(X2) -> mark#(sel(X1,X2)) -> mark#(X2) mark#(sel(X1,X2)) -> mark#(X2) -> mark#(sel(X1,X2)) -> mark#(X1) mark#(sel(X1,X2)) -> mark#(X2) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) mark#(sel(X1,X2)) -> mark#(X2) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(sel(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> mark#(X) mark#(sel(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> mark#(X) mark#(sel(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> a__from#(mark(X)) mark#(sel(X1,X2)) -> mark#(X1) -> mark#(head(X)) -> mark#(X) mark#(sel(X1,X2)) -> mark#(X1) -> mark#(head(X)) -> a__head#(mark(X)) mark#(sel(X1,X2)) -> mark#(X1) -> mark#(2nd(X)) -> mark#(X) mark#(sel(X1,X2)) -> mark#(X1) -> mark#(2nd(X)) -> a__2nd#(mark(X)) mark#(sel(X1,X2)) -> mark#(X1) -> mark#(take(X1,X2)) -> mark#(X2) mark#(sel(X1,X2)) -> mark#(X1) -> mark#(take(X1,X2)) -> mark#(X1) mark#(sel(X1,X2)) -> mark#(X1) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) mark#(sel(X1,X2)) -> mark#(X1) -> mark#(sel(X1,X2)) -> mark#(X2) mark#(sel(X1,X2)) -> mark#(X1) -> mark#(sel(X1,X2)) -> mark#(X1) mark#(sel(X1,X2)) -> mark#(X1) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) mark#(sel(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(sel(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X) mark#(2nd(X)) -> a__2nd#(mark(X)) -> a__2nd#(cons(X,XS)) -> mark#(XS) mark#(2nd(X)) -> a__2nd#(mark(X)) -> a__2nd#(cons(X,XS)) -> a__head#(mark(XS)) mark#(2nd(X)) -> mark#(X) -> mark#(from(X)) -> mark#(X) mark#(2nd(X)) -> mark#(X) -> mark#(from(X)) -> a__from#(mark(X)) mark#(2nd(X)) -> mark#(X) -> mark#(head(X)) -> mark#(X) mark#(2nd(X)) -> mark#(X) -> mark#(head(X)) -> a__head#(mark(X)) mark#(2nd(X)) -> mark#(X) -> mark#(2nd(X)) -> mark#(X) mark#(2nd(X)) -> mark#(X) -> mark#(2nd(X)) -> a__2nd#(mark(X)) mark#(2nd(X)) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X2) mark#(2nd(X)) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X1) mark#(2nd(X)) -> mark#(X) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) mark#(2nd(X)) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X2) mark#(2nd(X)) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X1) mark#(2nd(X)) -> mark#(X) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) mark#(2nd(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(2nd(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(head(X)) -> a__head#(mark(X)) -> a__head#(cons(X,XS)) -> mark#(X) mark#(head(X)) -> mark#(X) -> mark#(from(X)) -> mark#(X) mark#(head(X)) -> mark#(X) -> mark#(from(X)) -> a__from#(mark(X)) mark#(head(X)) -> mark#(X) -> mark#(head(X)) -> mark#(X) mark#(head(X)) -> mark#(X) -> mark#(head(X)) -> a__head#(mark(X)) mark#(head(X)) -> mark#(X) -> mark#(2nd(X)) -> mark#(X) mark#(head(X)) -> mark#(X) -> mark#(2nd(X)) -> a__2nd#(mark(X)) mark#(head(X)) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X2) mark#(head(X)) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X1) mark#(head(X)) -> mark#(X) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) mark#(head(X)) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X2) mark#(head(X)) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X1) mark#(head(X)) -> mark#(X) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) mark#(head(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(head(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) -> a__take#(s(N),cons(X,XS)) -> mark#(X) mark#(take(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> mark#(X) mark#(take(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> a__from#(mark(X)) mark#(take(X1,X2)) -> mark#(X2) -> mark#(head(X)) -> mark#(X) mark#(take(X1,X2)) -> mark#(X2) -> mark#(head(X)) -> a__head#(mark(X)) mark#(take(X1,X2)) -> mark#(X2) -> mark#(2nd(X)) -> mark#(X) mark#(take(X1,X2)) -> mark#(X2) -> mark#(2nd(X)) -> a__2nd#(mark(X)) mark#(take(X1,X2)) -> mark#(X2) -> mark#(take(X1,X2)) -> mark#(X2) mark#(take(X1,X2)) -> mark#(X2) -> mark#(take(X1,X2)) -> mark#(X1) mark#(take(X1,X2)) -> mark#(X2) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) mark#(take(X1,X2)) -> mark#(X2) -> mark#(sel(X1,X2)) -> mark#(X2) mark#(take(X1,X2)) -> mark#(X2) -> mark#(sel(X1,X2)) -> mark#(X1) mark#(take(X1,X2)) -> mark#(X2) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) mark#(take(X1,X2)) -> mark#(X2) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(take(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> mark#(X) mark#(take(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> mark#(X) mark#(take(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> a__from#(mark(X)) mark#(take(X1,X2)) -> mark#(X1) -> mark#(head(X)) -> mark#(X) mark#(take(X1,X2)) -> mark#(X1) -> mark#(head(X)) -> a__head#(mark(X)) mark#(take(X1,X2)) -> mark#(X1) -> mark#(2nd(X)) -> mark#(X) mark#(take(X1,X2)) -> mark#(X1) -> mark#(2nd(X)) -> a__2nd#(mark(X)) mark#(take(X1,X2)) -> mark#(X1) -> mark#(take(X1,X2)) -> mark#(X2) mark#(take(X1,X2)) -> mark#(X1) -> mark#(take(X1,X2)) -> mark#(X1) mark#(take(X1,X2)) -> mark#(X1) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) mark#(take(X1,X2)) -> mark#(X1) -> mark#(sel(X1,X2)) -> mark#(X2) mark#(take(X1,X2)) -> mark#(X1) -> mark#(sel(X1,X2)) -> mark#(X1) mark#(take(X1,X2)) -> mark#(X1) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) mark#(take(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(take(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> a__from#(mark(X)) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(head(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(head(X)) -> a__head#(mark(X)) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(2nd(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(2nd(X)) -> a__2nd#(mark(X)) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(take(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(take(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(sel(X1,X2)) -> mark#(X2) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(sel(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X) mark#(from(X)) -> mark#(X) -> mark#(from(X)) -> mark#(X) mark#(from(X)) -> mark#(X) -> mark#(from(X)) -> a__from#(mark(X)) mark#(from(X)) -> mark#(X) -> mark#(head(X)) -> mark#(X) mark#(from(X)) -> mark#(X) -> mark#(head(X)) -> a__head#(mark(X)) mark#(from(X)) -> mark#(X) -> mark#(2nd(X)) -> mark#(X) mark#(from(X)) -> mark#(X) -> mark#(2nd(X)) -> a__2nd#(mark(X)) mark#(from(X)) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X2) mark#(from(X)) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X1) mark#(from(X)) -> mark#(X) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) mark#(from(X)) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X2) mark#(from(X)) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X1) mark#(from(X)) -> mark#(X) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) mark#(from(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(from(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(from(X)) -> a__from#(mark(X)) -> a__from#(X) -> mark#(X) mark#(s(X)) -> mark#(X) -> mark#(from(X)) -> mark#(X) mark#(s(X)) -> mark#(X) -> mark#(from(X)) -> a__from#(mark(X)) mark#(s(X)) -> mark#(X) -> mark#(head(X)) -> mark#(X) mark#(s(X)) -> mark#(X) -> mark#(head(X)) -> a__head#(mark(X)) mark#(s(X)) -> mark#(X) -> mark#(2nd(X)) -> mark#(X) mark#(s(X)) -> mark#(X) -> mark#(2nd(X)) -> a__2nd#(mark(X)) mark#(s(X)) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X2) mark#(s(X)) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) mark#(s(X)) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X2) mark#(s(X)) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) mark#(s(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) a__from#(X) -> mark#(X) -> mark#(from(X)) -> mark#(X) a__from#(X) -> mark#(X) -> mark#(from(X)) -> a__from#(mark(X)) a__from#(X) -> mark#(X) -> mark#(head(X)) -> mark#(X) a__from#(X) -> mark#(X) -> mark#(head(X)) -> a__head#(mark(X)) a__from#(X) -> mark#(X) -> mark#(2nd(X)) -> mark#(X) a__from#(X) -> mark#(X) -> mark#(2nd(X)) -> a__2nd#(mark(X)) a__from#(X) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X2) a__from#(X) -> mark#(X) -> mark#(take(X1,X2)) -> mark#(X1) a__from#(X) -> mark#(X) -> mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) a__from#(X) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X2) a__from#(X) -> mark#(X) -> mark#(sel(X1,X2)) -> mark#(X1) a__from#(X) -> mark#(X) -> mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) a__from#(X) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) a__from#(X) -> mark#(X) -> mark#(s(X)) -> mark#(X) Restore Modifier: DPs: a__from#(X) -> mark#(X) a__head#(cons(X,XS)) -> mark#(X) a__2nd#(cons(X,XS)) -> mark#(XS) a__2nd#(cons(X,XS)) -> a__head#(mark(XS)) a__take#(s(N),cons(X,XS)) -> mark#(X) a__sel#(0(),cons(X,XS)) -> mark#(X) a__sel#(s(N),cons(X,XS)) -> mark#(XS) a__sel#(s(N),cons(X,XS)) -> mark#(N) a__sel#(s(N),cons(X,XS)) -> a__sel#(mark(N),mark(XS)) mark#(from(X)) -> mark#(X) mark#(from(X)) -> a__from#(mark(X)) mark#(head(X)) -> mark#(X) mark#(head(X)) -> a__head#(mark(X)) mark#(2nd(X)) -> mark#(X) mark#(2nd(X)) -> a__2nd#(mark(X)) mark#(take(X1,X2)) -> mark#(X2) mark#(take(X1,X2)) -> mark#(X1) mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) mark#(sel(X1,X2)) -> mark#(X2) mark#(sel(X1,X2)) -> mark#(X1) mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) mark#(cons(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) TRS: a__from(X) -> cons(mark(X),from(s(X))) a__head(cons(X,XS)) -> mark(X) a__2nd(cons(X,XS)) -> a__head(mark(XS)) a__take(0(),XS) -> nil() a__take(s(N),cons(X,XS)) -> cons(mark(X),take(N,XS)) a__sel(0(),cons(X,XS)) -> mark(X) a__sel(s(N),cons(X,XS)) -> a__sel(mark(N),mark(XS)) mark(from(X)) -> a__from(mark(X)) mark(head(X)) -> a__head(mark(X)) mark(2nd(X)) -> a__2nd(mark(X)) mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) mark(sel(X1,X2)) -> a__sel(mark(X1),mark(X2)) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) mark(0()) -> 0() mark(nil()) -> nil() a__from(X) -> from(X) a__head(X) -> head(X) a__2nd(X) -> 2nd(X) a__take(X1,X2) -> take(X1,X2) a__sel(X1,X2) -> sel(X1,X2) SCC Processor: #sccs: 1 #rules: 23 #arcs: 238/529 DPs: a__sel#(0(),cons(X,XS)) -> mark#(X) mark#(s(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) mark#(sel(X1,X2)) -> a__sel#(mark(X1),mark(X2)) a__sel#(s(N),cons(X,XS)) -> a__sel#(mark(N),mark(XS)) a__sel#(s(N),cons(X,XS)) -> mark#(N) mark#(sel(X1,X2)) -> mark#(X1) mark#(sel(X1,X2)) -> mark#(X2) mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) a__take#(s(N),cons(X,XS)) -> mark#(X) mark#(take(X1,X2)) -> mark#(X1) mark#(take(X1,X2)) -> mark#(X2) mark#(2nd(X)) -> a__2nd#(mark(X)) a__2nd#(cons(X,XS)) -> a__head#(mark(XS)) a__head#(cons(X,XS)) -> mark#(X) mark#(2nd(X)) -> mark#(X) mark#(head(X)) -> a__head#(mark(X)) mark#(head(X)) -> mark#(X) mark#(from(X)) -> a__from#(mark(X)) a__from#(X) -> mark#(X) mark#(from(X)) -> mark#(X) a__2nd#(cons(X,XS)) -> mark#(XS) a__sel#(s(N),cons(X,XS)) -> mark#(XS) TRS: a__from(X) -> cons(mark(X),from(s(X))) a__head(cons(X,XS)) -> mark(X) a__2nd(cons(X,XS)) -> a__head(mark(XS)) a__take(0(),XS) -> nil() a__take(s(N),cons(X,XS)) -> cons(mark(X),take(N,XS)) a__sel(0(),cons(X,XS)) -> mark(X) a__sel(s(N),cons(X,XS)) -> a__sel(mark(N),mark(XS)) mark(from(X)) -> a__from(mark(X)) mark(head(X)) -> a__head(mark(X)) mark(2nd(X)) -> a__2nd(mark(X)) mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) mark(sel(X1,X2)) -> a__sel(mark(X1),mark(X2)) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) mark(0()) -> 0() mark(nil()) -> nil() a__from(X) -> from(X) a__head(X) -> head(X) a__2nd(X) -> 2nd(X) a__take(X1,X2) -> take(X1,X2) a__sel(X1,X2) -> sel(X1,X2) Open