MAYBE Problem: dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) dbls(nil()) -> nil() dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y)) sel(0(),cons(X,Y)) -> X sel(s(X),cons(Y,Z)) -> sel(X,Z) indx(nil(),X) -> nil() indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z)) from(X) -> cons(X,from(s(X))) dbl1(0()) -> 01() dbl1(s(X)) -> s1(s1(dbl1(X))) sel1(0(),cons(X,Y)) -> X sel1(s(X),cons(Y,Z)) -> sel1(X,Z) quote(0()) -> 01() quote(s(X)) -> s1(quote(X)) quote(dbl(X)) -> dbl1(X) quote(sel(X,Y)) -> sel1(X,Y) Proof: DP Processor: DPs: dbl#(s(X)) -> dbl#(X) dbls#(cons(X,Y)) -> dbls#(Y) dbls#(cons(X,Y)) -> dbl#(X) sel#(s(X),cons(Y,Z)) -> sel#(X,Z) indx#(cons(X,Y),Z) -> indx#(Y,Z) indx#(cons(X,Y),Z) -> sel#(X,Z) from#(X) -> from#(s(X)) dbl1#(s(X)) -> dbl1#(X) sel1#(s(X),cons(Y,Z)) -> sel1#(X,Z) quote#(s(X)) -> quote#(X) quote#(dbl(X)) -> dbl1#(X) quote#(sel(X,Y)) -> sel1#(X,Y) TRS: dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) dbls(nil()) -> nil() dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y)) sel(0(),cons(X,Y)) -> X sel(s(X),cons(Y,Z)) -> sel(X,Z) indx(nil(),X) -> nil() indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z)) from(X) -> cons(X,from(s(X))) dbl1(0()) -> 01() dbl1(s(X)) -> s1(s1(dbl1(X))) sel1(0(),cons(X,Y)) -> X sel1(s(X),cons(Y,Z)) -> sel1(X,Z) quote(0()) -> 01() quote(s(X)) -> s1(quote(X)) quote(dbl(X)) -> dbl1(X) quote(sel(X,Y)) -> sel1(X,Y) Usable Rule Processor: DPs: dbl#(s(X)) -> dbl#(X) dbls#(cons(X,Y)) -> dbls#(Y) dbls#(cons(X,Y)) -> dbl#(X) sel#(s(X),cons(Y,Z)) -> sel#(X,Z) indx#(cons(X,Y),Z) -> indx#(Y,Z) indx#(cons(X,Y),Z) -> sel#(X,Z) from#(X) -> from#(s(X)) dbl1#(s(X)) -> dbl1#(X) sel1#(s(X),cons(Y,Z)) -> sel1#(X,Z) quote#(s(X)) -> quote#(X) quote#(dbl(X)) -> dbl1#(X) quote#(sel(X,Y)) -> sel1#(X,Y) TRS: CDG Processor: DPs: dbl#(s(X)) -> dbl#(X) dbls#(cons(X,Y)) -> dbls#(Y) dbls#(cons(X,Y)) -> dbl#(X) sel#(s(X),cons(Y,Z)) -> sel#(X,Z) indx#(cons(X,Y),Z) -> indx#(Y,Z) indx#(cons(X,Y),Z) -> sel#(X,Z) from#(X) -> from#(s(X)) dbl1#(s(X)) -> dbl1#(X) sel1#(s(X),cons(Y,Z)) -> sel1#(X,Z) quote#(s(X)) -> quote#(X) quote#(dbl(X)) -> dbl1#(X) quote#(sel(X,Y)) -> sel1#(X,Y) TRS: graph: quote#(sel(X,Y)) -> sel1#(X,Y) -> sel1#(s(X),cons(Y,Z)) -> sel1#(X,Z) quote#(s(X)) -> quote#(X) -> quote#(s(X)) -> quote#(X) quote#(s(X)) -> quote#(X) -> quote#(dbl(X)) -> dbl1#(X) quote#(s(X)) -> quote#(X) -> quote#(sel(X,Y)) -> sel1#(X,Y) quote#(dbl(X)) -> dbl1#(X) -> dbl1#(s(X)) -> dbl1#(X) sel1#(s(X),cons(Y,Z)) -> sel1#(X,Z) -> sel1#(s(X),cons(Y,Z)) -> sel1#(X,Z) dbl1#(s(X)) -> dbl1#(X) -> dbl1#(s(X)) -> dbl1#(X) from#(X) -> from#(s(X)) -> from#(X) -> from#(s(X)) indx#(cons(X,Y),Z) -> indx#(Y,Z) -> indx#(cons(X,Y),Z) -> indx#(Y,Z) indx#(cons(X,Y),Z) -> indx#(Y,Z) -> indx#(cons(X,Y),Z) -> sel#(X,Z) indx#(cons(X,Y),Z) -> sel#(X,Z) -> sel#(s(X),cons(Y,Z)) -> sel#(X,Z) sel#(s(X),cons(Y,Z)) -> sel#(X,Z) -> sel#(s(X),cons(Y,Z)) -> sel#(X,Z) dbls#(cons(X,Y)) -> dbls#(Y) -> dbls#(cons(X,Y)) -> dbls#(Y) dbls#(cons(X,Y)) -> dbls#(Y) -> dbls#(cons(X,Y)) -> dbl#(X) dbls#(cons(X,Y)) -> dbl#(X) -> dbl#(s(X)) -> dbl#(X) dbl#(s(X)) -> dbl#(X) -> dbl#(s(X)) -> dbl#(X) Restore Modifier: DPs: dbl#(s(X)) -> dbl#(X) dbls#(cons(X,Y)) -> dbls#(Y) dbls#(cons(X,Y)) -> dbl#(X) sel#(s(X),cons(Y,Z)) -> sel#(X,Z) indx#(cons(X,Y),Z) -> indx#(Y,Z) indx#(cons(X,Y),Z) -> sel#(X,Z) from#(X) -> from#(s(X)) dbl1#(s(X)) -> dbl1#(X) sel1#(s(X),cons(Y,Z)) -> sel1#(X,Z) quote#(s(X)) -> quote#(X) quote#(dbl(X)) -> dbl1#(X) quote#(sel(X,Y)) -> sel1#(X,Y) TRS: dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) dbls(nil()) -> nil() dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y)) sel(0(),cons(X,Y)) -> X sel(s(X),cons(Y,Z)) -> sel(X,Z) indx(nil(),X) -> nil() indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z)) from(X) -> cons(X,from(s(X))) dbl1(0()) -> 01() dbl1(s(X)) -> s1(s1(dbl1(X))) sel1(0(),cons(X,Y)) -> X sel1(s(X),cons(Y,Z)) -> sel1(X,Z) quote(0()) -> 01() quote(s(X)) -> s1(quote(X)) quote(dbl(X)) -> dbl1(X) quote(sel(X,Y)) -> sel1(X,Y) SCC Processor: #sccs: 8 #rules: 8 #arcs: 16/144 DPs: dbls#(cons(X,Y)) -> dbls#(Y) TRS: dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) dbls(nil()) -> nil() dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y)) sel(0(),cons(X,Y)) -> X sel(s(X),cons(Y,Z)) -> sel(X,Z) indx(nil(),X) -> nil() indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z)) from(X) -> cons(X,from(s(X))) dbl1(0()) -> 01() dbl1(s(X)) -> s1(s1(dbl1(X))) sel1(0(),cons(X,Y)) -> X sel1(s(X),cons(Y,Z)) -> sel1(X,Z) quote(0()) -> 01() quote(s(X)) -> s1(quote(X)) quote(dbl(X)) -> dbl1(X) quote(sel(X,Y)) -> sel1(X,Y) Open DPs: dbl#(s(X)) -> dbl#(X) TRS: dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) dbls(nil()) -> nil() dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y)) sel(0(),cons(X,Y)) -> X sel(s(X),cons(Y,Z)) -> sel(X,Z) indx(nil(),X) -> nil() indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z)) from(X) -> cons(X,from(s(X))) dbl1(0()) -> 01() dbl1(s(X)) -> s1(s1(dbl1(X))) sel1(0(),cons(X,Y)) -> X sel1(s(X),cons(Y,Z)) -> sel1(X,Z) quote(0()) -> 01() quote(s(X)) -> s1(quote(X)) quote(dbl(X)) -> dbl1(X) quote(sel(X,Y)) -> sel1(X,Y) Open DPs: indx#(cons(X,Y),Z) -> indx#(Y,Z) TRS: dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) dbls(nil()) -> nil() dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y)) sel(0(),cons(X,Y)) -> X sel(s(X),cons(Y,Z)) -> sel(X,Z) indx(nil(),X) -> nil() indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z)) from(X) -> cons(X,from(s(X))) dbl1(0()) -> 01() dbl1(s(X)) -> s1(s1(dbl1(X))) sel1(0(),cons(X,Y)) -> X sel1(s(X),cons(Y,Z)) -> sel1(X,Z) quote(0()) -> 01() quote(s(X)) -> s1(quote(X)) quote(dbl(X)) -> dbl1(X) quote(sel(X,Y)) -> sel1(X,Y) Open DPs: sel#(s(X),cons(Y,Z)) -> sel#(X,Z) TRS: dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) dbls(nil()) -> nil() dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y)) sel(0(),cons(X,Y)) -> X sel(s(X),cons(Y,Z)) -> sel(X,Z) indx(nil(),X) -> nil() indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z)) from(X) -> cons(X,from(s(X))) dbl1(0()) -> 01() dbl1(s(X)) -> s1(s1(dbl1(X))) sel1(0(),cons(X,Y)) -> X sel1(s(X),cons(Y,Z)) -> sel1(X,Z) quote(0()) -> 01() quote(s(X)) -> s1(quote(X)) quote(dbl(X)) -> dbl1(X) quote(sel(X,Y)) -> sel1(X,Y) Open DPs: from#(X) -> from#(s(X)) TRS: dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) dbls(nil()) -> nil() dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y)) sel(0(),cons(X,Y)) -> X sel(s(X),cons(Y,Z)) -> sel(X,Z) indx(nil(),X) -> nil() indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z)) from(X) -> cons(X,from(s(X))) dbl1(0()) -> 01() dbl1(s(X)) -> s1(s1(dbl1(X))) sel1(0(),cons(X,Y)) -> X sel1(s(X),cons(Y,Z)) -> sel1(X,Z) quote(0()) -> 01() quote(s(X)) -> s1(quote(X)) quote(dbl(X)) -> dbl1(X) quote(sel(X,Y)) -> sel1(X,Y) Open DPs: quote#(s(X)) -> quote#(X) TRS: dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) dbls(nil()) -> nil() dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y)) sel(0(),cons(X,Y)) -> X sel(s(X),cons(Y,Z)) -> sel(X,Z) indx(nil(),X) -> nil() indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z)) from(X) -> cons(X,from(s(X))) dbl1(0()) -> 01() dbl1(s(X)) -> s1(s1(dbl1(X))) sel1(0(),cons(X,Y)) -> X sel1(s(X),cons(Y,Z)) -> sel1(X,Z) quote(0()) -> 01() quote(s(X)) -> s1(quote(X)) quote(dbl(X)) -> dbl1(X) quote(sel(X,Y)) -> sel1(X,Y) Open DPs: dbl1#(s(X)) -> dbl1#(X) TRS: dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) dbls(nil()) -> nil() dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y)) sel(0(),cons(X,Y)) -> X sel(s(X),cons(Y,Z)) -> sel(X,Z) indx(nil(),X) -> nil() indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z)) from(X) -> cons(X,from(s(X))) dbl1(0()) -> 01() dbl1(s(X)) -> s1(s1(dbl1(X))) sel1(0(),cons(X,Y)) -> X sel1(s(X),cons(Y,Z)) -> sel1(X,Z) quote(0()) -> 01() quote(s(X)) -> s1(quote(X)) quote(dbl(X)) -> dbl1(X) quote(sel(X,Y)) -> sel1(X,Y) Open DPs: sel1#(s(X),cons(Y,Z)) -> sel1#(X,Z) TRS: dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) dbls(nil()) -> nil() dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y)) sel(0(),cons(X,Y)) -> X sel(s(X),cons(Y,Z)) -> sel(X,Z) indx(nil(),X) -> nil() indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z)) from(X) -> cons(X,from(s(X))) dbl1(0()) -> 01() dbl1(s(X)) -> s1(s1(dbl1(X))) sel1(0(),cons(X,Y)) -> X sel1(s(X),cons(Y,Z)) -> sel1(X,Z) quote(0()) -> 01() quote(s(X)) -> s1(quote(X)) quote(dbl(X)) -> dbl1(X) quote(sel(X,Y)) -> sel1(X,Y) Open