MAYBE Time: 3.918178 TRS: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} DP: DP: { mark# 0() -> active# 0(), mark# dbl X -> mark# X, mark# dbl X -> active# dbl mark X, mark# dbl X -> dbl# mark X, mark# s X -> active# s X, mark# nil() -> active# nil(), mark# dbls X -> mark# X, mark# dbls X -> active# dbls mark X, mark# dbls X -> dbls# mark X, mark# cons(X1, X2) -> active# cons(X1, X2), mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> active# sel(mark X1, mark X2), mark# sel(X1, X2) -> sel#(mark X1, mark X2), mark# indx(X1, X2) -> mark# X1, mark# indx(X1, X2) -> active# indx(mark X1, X2), mark# indx(X1, X2) -> indx#(mark X1, X2), mark# from X -> active# from X, mark# 01() -> active# 01(), mark# dbl1 X -> mark# X, mark# dbl1 X -> active# dbl1 mark X, mark# dbl1 X -> dbl1# mark X, mark# s1 X -> mark# X, mark# s1 X -> active# s1 mark X, mark# s1 X -> s1# mark X, mark# sel1(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2), mark# quote X -> mark# X, mark# quote X -> active# quote mark X, mark# quote X -> quote# mark X, active# dbl 0() -> mark# 0(), active# dbl s X -> mark# s s dbl X, active# dbl s X -> dbl# X, active# dbl s X -> s# dbl X, active# dbl s X -> s# s dbl X, active# dbls nil() -> mark# nil(), active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), active# dbls cons(X, Y) -> dbl# X, active# dbls cons(X, Y) -> dbls# Y, active# dbls cons(X, Y) -> cons#(dbl X, dbls Y), active# sel(0(), cons(X, Y)) -> mark# X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), active# sel(s X, cons(Y, Z)) -> sel#(X, Z), active# indx(nil(), X) -> mark# nil(), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z)), active# indx(cons(X, Y), Z) -> sel#(X, Z), active# indx(cons(X, Y), Z) -> indx#(Y, Z), active# from X -> mark# cons(X, from s X), active# from X -> s# X, active# from X -> cons#(X, from s X), active# from X -> from# s X, active# dbl1 0() -> mark# 01(), active# dbl1 s X -> mark# s1 s1 dbl1 X, active# dbl1 s X -> dbl1# X, active# dbl1 s X -> s1# dbl1 X, active# dbl1 s X -> s1# s1 dbl1 X, active# sel1(0(), cons(X, Y)) -> mark# X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z), active# quote 0() -> mark# 01(), active# quote dbl X -> mark# dbl1 X, active# quote dbl X -> dbl1# X, active# quote s X -> mark# s1 quote X, active# quote s X -> s1# quote X, active# quote s X -> quote# X, active# quote sel(X, Y) -> mark# sel1(X, Y), active# quote sel(X, Y) -> sel1#(X, Y), dbl# mark X -> dbl# X, dbl# active X -> dbl# X, s# mark X -> s# X, s# active X -> s# X, dbls# mark X -> dbls# X, dbls# active X -> dbls# X, cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2), sel#(X1, mark X2) -> sel#(X1, X2), sel#(X1, active X2) -> sel#(X1, X2), sel#(mark X1, X2) -> sel#(X1, X2), sel#(active X1, X2) -> sel#(X1, X2), indx#(X1, mark X2) -> indx#(X1, X2), indx#(X1, active X2) -> indx#(X1, X2), indx#(mark X1, X2) -> indx#(X1, X2), indx#(active X1, X2) -> indx#(X1, X2), from# mark X -> from# X, from# active X -> from# X, dbl1# mark X -> dbl1# X, dbl1# active X -> dbl1# X, s1# mark X -> s1# X, s1# active X -> s1# X, sel1#(X1, mark X2) -> sel1#(X1, X2), sel1#(X1, active X2) -> sel1#(X1, X2), sel1#(mark X1, X2) -> sel1#(X1, X2), sel1#(active X1, X2) -> sel1#(X1, X2), quote# mark X -> quote# X, quote# active X -> quote# X} TRS: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} EDG: { (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# quote X -> quote# mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# quote X -> active# quote mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# quote X -> mark# X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel1(X1, X2) -> mark# X2) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel1(X1, X2) -> mark# X1) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# s1 X -> s1# mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# s1 X -> active# s1 mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# s1 X -> mark# X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbl1 X -> dbl1# mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbl1 X -> active# dbl1 mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbl1 X -> mark# X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# 01() -> active# 01()) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# from X -> active# from X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# indx(X1, X2) -> mark# X1) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel(X1, X2) -> mark# X2) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel(X1, X2) -> mark# X1) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# cons(X1, X2) -> active# cons(X1, X2)) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbls X -> dbls# mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbls X -> active# dbls mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbls X -> mark# X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# nil() -> active# nil()) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# s X -> active# s X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbl X -> dbl# mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbl X -> active# dbl mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbl X -> mark# X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# 0() -> active# 0()) (mark# dbls X -> active# dbls mark X, active# quote sel(X, Y) -> sel1#(X, Y)) (mark# dbls X -> active# dbls mark X, active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# dbls X -> active# dbls mark X, active# quote s X -> quote# X) (mark# dbls X -> active# dbls mark X, active# quote s X -> s1# quote X) (mark# dbls X -> active# dbls mark X, active# quote s X -> mark# s1 quote X) (mark# dbls X -> active# dbls mark X, active# quote dbl X -> dbl1# X) (mark# dbls X -> active# dbls mark X, active# quote dbl X -> mark# dbl1 X) (mark# dbls X -> active# dbls mark X, active# quote 0() -> mark# 01()) (mark# dbls X -> active# dbls mark X, active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# dbls X -> active# dbls mark X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# dbls X -> active# dbls mark X, active# sel1(0(), cons(X, Y)) -> mark# X) (mark# dbls X -> active# dbls mark X, active# dbl1 s X -> s1# s1 dbl1 X) (mark# dbls X -> active# dbls mark X, active# dbl1 s X -> s1# dbl1 X) (mark# dbls X -> active# dbls mark X, active# dbl1 s X -> dbl1# X) (mark# dbls X -> active# dbls mark X, active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# dbls X -> active# dbls mark X, active# dbl1 0() -> mark# 01()) (mark# dbls X -> active# dbls mark X, active# from X -> from# s X) (mark# dbls X -> active# dbls mark X, active# from X -> cons#(X, from s X)) (mark# dbls X -> active# dbls mark X, active# from X -> s# X) (mark# dbls X -> active# dbls mark X, active# from X -> mark# cons(X, from s X)) (mark# dbls X -> active# dbls mark X, active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# dbls X -> active# dbls mark X, active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# dbls X -> active# dbls mark X, active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# dbls X -> active# dbls mark X, active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# dbls X -> active# dbls mark X, active# indx(nil(), X) -> mark# nil()) (mark# dbls X -> active# dbls mark X, active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# dbls X -> active# dbls mark X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# dbls X -> active# dbls mark X, active# sel(0(), cons(X, Y)) -> mark# X) (mark# dbls X -> active# dbls mark X, active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# dbls X -> active# dbls mark X, active# dbls cons(X, Y) -> dbls# Y) (mark# dbls X -> active# dbls mark X, active# dbls cons(X, Y) -> dbl# X) (mark# dbls X -> active# dbls mark X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# dbls X -> active# dbls mark X, active# dbls nil() -> mark# nil()) (mark# dbls X -> active# dbls mark X, active# dbl s X -> s# s dbl X) (mark# dbls X -> active# dbls mark X, active# dbl s X -> s# dbl X) (mark# dbls X -> active# dbls mark X, active# dbl s X -> dbl# X) (mark# dbls X -> active# dbls mark X, active# dbl s X -> mark# s s dbl X) (mark# dbls X -> active# dbls mark X, active# dbl 0() -> mark# 0()) (mark# s1 X -> active# s1 mark X, active# quote sel(X, Y) -> sel1#(X, Y)) (mark# s1 X -> active# s1 mark X, active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# s1 X -> active# s1 mark X, active# quote s X -> quote# X) (mark# s1 X -> active# s1 mark X, active# quote s X -> s1# quote X) (mark# s1 X -> active# s1 mark X, active# quote s X -> mark# s1 quote X) (mark# s1 X -> active# s1 mark X, active# quote dbl X -> dbl1# X) (mark# s1 X -> active# s1 mark X, active# quote dbl X -> mark# dbl1 X) (mark# s1 X -> active# s1 mark X, active# quote 0() -> mark# 01()) (mark# s1 X -> active# s1 mark X, active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# s1 X -> active# s1 mark X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# s1 X -> active# s1 mark X, active# sel1(0(), cons(X, Y)) -> mark# X) (mark# s1 X -> active# s1 mark X, active# dbl1 s X -> s1# s1 dbl1 X) (mark# s1 X -> active# s1 mark X, active# dbl1 s X -> s1# dbl1 X) (mark# s1 X -> active# s1 mark X, active# dbl1 s X -> dbl1# X) (mark# s1 X -> active# s1 mark X, active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# s1 X -> active# s1 mark X, active# dbl1 0() -> mark# 01()) (mark# s1 X -> active# s1 mark X, active# from X -> from# s X) (mark# s1 X -> active# s1 mark X, active# from X -> cons#(X, from s X)) (mark# s1 X -> active# s1 mark X, active# from X -> s# X) (mark# s1 X -> active# s1 mark X, active# from X -> mark# cons(X, from s X)) (mark# s1 X -> active# s1 mark X, active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# s1 X -> active# s1 mark X, active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# s1 X -> active# s1 mark X, active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# s1 X -> active# s1 mark X, active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# s1 X -> active# s1 mark X, active# indx(nil(), X) -> mark# nil()) (mark# s1 X -> active# s1 mark X, active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# s1 X -> active# s1 mark X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# s1 X -> active# s1 mark X, active# sel(0(), cons(X, Y)) -> mark# X) (mark# s1 X -> active# s1 mark X, active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# s1 X -> active# s1 mark X, active# dbls cons(X, Y) -> dbls# Y) (mark# s1 X -> active# s1 mark X, active# dbls cons(X, Y) -> dbl# X) (mark# s1 X -> active# s1 mark X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# s1 X -> active# s1 mark X, active# dbls nil() -> mark# nil()) (mark# s1 X -> active# s1 mark X, active# dbl s X -> s# s dbl X) (mark# s1 X -> active# s1 mark X, active# dbl s X -> s# dbl X) (mark# s1 X -> active# s1 mark X, active# dbl s X -> dbl# X) (mark# s1 X -> active# s1 mark X, active# dbl s X -> mark# s s dbl X) (mark# s1 X -> active# s1 mark X, active# dbl 0() -> mark# 0()) (active# dbl s X -> s# s dbl X, s# active X -> s# X) (active# dbl s X -> s# s dbl X, s# mark X -> s# X) (active# quote s X -> mark# s1 quote X, mark# quote X -> quote# mark X) (active# quote s X -> mark# s1 quote X, mark# quote X -> active# quote mark X) (active# quote s X -> mark# s1 quote X, mark# quote X -> mark# X) (active# quote s X -> mark# s1 quote X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# quote s X -> mark# s1 quote X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# quote s X -> mark# s1 quote X, mark# sel1(X1, X2) -> mark# X2) (active# quote s X -> mark# s1 quote X, mark# sel1(X1, X2) -> mark# X1) (active# quote s X -> mark# s1 quote X, mark# s1 X -> s1# mark X) (active# quote s X -> mark# s1 quote X, mark# s1 X -> active# s1 mark X) (active# quote s X -> mark# s1 quote X, mark# s1 X -> mark# X) (active# quote s X -> mark# s1 quote X, mark# dbl1 X -> dbl1# mark X) (active# quote s X -> mark# s1 quote X, mark# dbl1 X -> active# dbl1 mark X) (active# quote s X -> mark# s1 quote X, mark# dbl1 X -> mark# X) (active# quote s X -> mark# s1 quote X, mark# 01() -> active# 01()) (active# quote s X -> mark# s1 quote X, mark# from X -> active# from X) (active# quote s X -> mark# s1 quote X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# quote s X -> mark# s1 quote X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# quote s X -> mark# s1 quote X, mark# indx(X1, X2) -> mark# X1) (active# quote s X -> mark# s1 quote X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# quote s X -> mark# s1 quote X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# quote s X -> mark# s1 quote X, mark# sel(X1, X2) -> mark# X2) (active# quote s X -> mark# s1 quote X, mark# sel(X1, X2) -> mark# X1) (active# quote s X -> mark# s1 quote X, mark# cons(X1, X2) -> active# cons(X1, X2)) (active# quote s X -> mark# s1 quote X, mark# dbls X -> dbls# mark X) (active# quote s X -> mark# s1 quote X, mark# dbls X -> active# dbls mark X) (active# quote s X -> mark# s1 quote X, mark# dbls X -> mark# X) (active# quote s X -> mark# s1 quote X, mark# nil() -> active# nil()) (active# quote s X -> mark# s1 quote X, mark# s X -> active# s X) (active# quote s X -> mark# s1 quote X, mark# dbl X -> dbl# mark X) (active# quote s X -> mark# s1 quote X, mark# dbl X -> active# dbl mark X) (active# quote s X -> mark# s1 quote X, mark# dbl X -> mark# X) (active# quote s X -> mark# s1 quote X, mark# 0() -> active# 0()) (active# sel(s X, cons(Y, Z)) -> sel#(X, Z), sel#(active X1, X2) -> sel#(X1, X2)) (active# sel(s X, cons(Y, Z)) -> sel#(X, Z), sel#(mark X1, X2) -> sel#(X1, X2)) (active# sel(s X, cons(Y, Z)) -> sel#(X, Z), sel#(X1, active X2) -> sel#(X1, X2)) (active# sel(s X, cons(Y, Z)) -> sel#(X, Z), sel#(X1, mark X2) -> sel#(X1, X2)) (active# indx(cons(X, Y), Z) -> indx#(Y, Z), indx#(active X1, X2) -> indx#(X1, X2)) (active# indx(cons(X, Y), Z) -> indx#(Y, Z), indx#(mark X1, X2) -> indx#(X1, X2)) (active# indx(cons(X, Y), Z) -> indx#(Y, Z), indx#(X1, active X2) -> indx#(X1, X2)) (active# indx(cons(X, Y), Z) -> indx#(Y, Z), indx#(X1, mark X2) -> indx#(X1, X2)) (mark# dbl X -> dbl# mark X, dbl# active X -> dbl# X) (mark# dbl X -> dbl# mark X, dbl# mark X -> dbl# X) (mark# dbls X -> dbls# mark X, dbls# active X -> dbls# X) (mark# dbls X -> dbls# mark X, dbls# mark X -> dbls# X) (mark# dbl1 X -> dbl1# mark X, dbl1# active X -> dbl1# X) (mark# dbl1 X -> dbl1# mark X, dbl1# mark X -> dbl1# X) (mark# quote X -> quote# mark X, quote# active X -> quote# X) (mark# quote X -> quote# mark X, quote# mark X -> quote# X) (active# from X -> from# s X, from# active X -> from# X) (active# from X -> from# s X, from# mark X -> from# X) (active# quote dbl X -> mark# dbl1 X, mark# quote X -> quote# mark X) (active# quote dbl X -> mark# dbl1 X, mark# quote X -> active# quote mark X) (active# quote dbl X -> mark# dbl1 X, mark# quote X -> mark# X) (active# quote dbl X -> mark# dbl1 X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# quote dbl X -> mark# dbl1 X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# quote dbl X -> mark# dbl1 X, mark# sel1(X1, X2) -> mark# X2) (active# quote dbl X -> mark# dbl1 X, mark# sel1(X1, X2) -> mark# X1) (active# quote dbl X -> mark# dbl1 X, mark# s1 X -> s1# mark X) (active# quote dbl X -> mark# dbl1 X, mark# s1 X -> active# s1 mark X) (active# quote dbl X -> mark# dbl1 X, mark# s1 X -> mark# X) (active# quote dbl X -> mark# dbl1 X, mark# dbl1 X -> dbl1# mark X) (active# quote dbl X -> mark# dbl1 X, mark# dbl1 X -> active# dbl1 mark X) (active# quote dbl X -> mark# dbl1 X, mark# dbl1 X -> mark# X) (active# quote dbl X -> mark# dbl1 X, mark# 01() -> active# 01()) (active# quote dbl X -> mark# dbl1 X, mark# from X -> active# from X) (active# quote dbl X -> mark# dbl1 X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# quote dbl X -> mark# dbl1 X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# quote dbl X -> mark# dbl1 X, mark# indx(X1, X2) -> mark# X1) (active# quote dbl X -> mark# dbl1 X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# quote dbl X -> mark# dbl1 X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# quote dbl X -> mark# dbl1 X, mark# sel(X1, X2) -> mark# X2) (active# quote dbl X -> mark# dbl1 X, mark# sel(X1, X2) -> mark# X1) (active# quote dbl X -> mark# dbl1 X, mark# cons(X1, X2) -> active# cons(X1, X2)) (active# quote dbl X -> mark# dbl1 X, mark# dbls X -> dbls# mark X) (active# quote dbl X -> mark# dbl1 X, mark# dbls X -> active# dbls mark X) (active# quote dbl X -> mark# dbl1 X, mark# dbls X -> mark# X) (active# quote dbl X -> mark# dbl1 X, mark# nil() -> active# nil()) (active# quote dbl X -> mark# dbl1 X, mark# s X -> active# s X) (active# quote dbl X -> mark# dbl1 X, mark# dbl X -> dbl# mark X) (active# quote dbl X -> mark# dbl1 X, mark# dbl X -> active# dbl mark X) (active# quote dbl X -> mark# dbl1 X, mark# dbl X -> mark# X) (active# quote dbl X -> mark# dbl1 X, mark# 0() -> active# 0()) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# quote X -> quote# mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# quote X -> active# quote mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# quote X -> mark# X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel1(X1, X2) -> mark# X2) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel1(X1, X2) -> mark# X1) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# s1 X -> s1# mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# s1 X -> active# s1 mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# s1 X -> mark# X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbl1 X -> dbl1# mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbl1 X -> active# dbl1 mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbl1 X -> mark# X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# 01() -> active# 01()) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# from X -> active# from X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# indx(X1, X2) -> mark# X1) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel(X1, X2) -> mark# X2) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel(X1, X2) -> mark# X1) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbls X -> dbls# mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbls X -> active# dbls mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbls X -> mark# X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# nil() -> active# nil()) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# s X -> active# s X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbl X -> dbl# mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbl X -> active# dbl mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbl X -> mark# X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# 0() -> active# 0()) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote sel(X, Y) -> sel1#(X, Y)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote s X -> quote# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote s X -> s1# quote X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote s X -> mark# s1 quote X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote dbl X -> dbl1# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote dbl X -> mark# dbl1 X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote 0() -> mark# 01()) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# sel1(0(), cons(X, Y)) -> mark# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl1 s X -> s1# s1 dbl1 X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl1 s X -> s1# dbl1 X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl1 s X -> dbl1# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl1 0() -> mark# 01()) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# from X -> from# s X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# from X -> cons#(X, from s X)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# from X -> s# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# from X -> mark# cons(X, from s X)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# indx(nil(), X) -> mark# nil()) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# sel(0(), cons(X, Y)) -> mark# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbls cons(X, Y) -> dbls# Y) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbls cons(X, Y) -> dbl# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbls nil() -> mark# nil()) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl s X -> s# s dbl X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl s X -> s# dbl X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl s X -> dbl# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl s X -> mark# s s dbl X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl 0() -> mark# 0()) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# quote X -> quote# mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# quote X -> active# quote mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# quote X -> mark# X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel1(X1, X2) -> mark# X2) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel1(X1, X2) -> mark# X1) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# s1 X -> s1# mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# s1 X -> active# s1 mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# s1 X -> mark# X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbl1 X -> dbl1# mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbl1 X -> active# dbl1 mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbl1 X -> mark# X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# 01() -> active# 01()) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# from X -> active# from X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# indx(X1, X2) -> mark# X1) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel(X1, X2) -> mark# X2) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel(X1, X2) -> mark# X1) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbls X -> dbls# mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbls X -> active# dbls mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbls X -> mark# X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# nil() -> active# nil()) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# s X -> active# s X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbl X -> dbl# mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbl X -> active# dbl mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbl X -> mark# X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# 0() -> active# 0()) (mark# dbl X -> mark# X, mark# quote X -> quote# mark X) (mark# dbl X -> mark# X, mark# quote X -> active# quote mark X) (mark# dbl X -> mark# X, mark# quote X -> mark# X) (mark# dbl X -> mark# X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# dbl X -> mark# X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# dbl X -> mark# X, mark# sel1(X1, X2) -> mark# X2) (mark# dbl X -> mark# X, mark# sel1(X1, X2) -> mark# X1) (mark# dbl X -> mark# X, mark# s1 X -> s1# mark X) (mark# dbl X -> mark# X, mark# s1 X -> active# s1 mark X) (mark# dbl X -> mark# X, mark# s1 X -> mark# X) (mark# dbl X -> mark# X, mark# dbl1 X -> dbl1# mark X) (mark# dbl X -> mark# X, mark# dbl1 X -> active# dbl1 mark X) (mark# dbl X -> mark# X, mark# dbl1 X -> mark# X) (mark# dbl X -> mark# X, mark# 01() -> active# 01()) (mark# dbl X -> mark# X, mark# from X -> active# from X) (mark# dbl X -> mark# X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# dbl X -> mark# X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# dbl X -> mark# X, mark# indx(X1, X2) -> mark# X1) (mark# dbl X -> mark# X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# dbl X -> mark# X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# dbl X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# dbl X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# dbl X -> mark# X, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# dbl X -> mark# X, mark# dbls X -> dbls# mark X) (mark# dbl X -> mark# X, mark# dbls X -> active# dbls mark X) (mark# dbl X -> mark# X, mark# dbls X -> mark# X) (mark# dbl X -> mark# X, mark# nil() -> active# nil()) (mark# dbl X -> mark# X, mark# s X -> active# s X) (mark# dbl X -> mark# X, mark# dbl X -> dbl# mark X) (mark# dbl X -> mark# X, mark# dbl X -> active# dbl mark X) (mark# dbl X -> mark# X, mark# dbl X -> mark# X) (mark# dbl X -> mark# X, mark# 0() -> active# 0()) (mark# dbl1 X -> mark# X, mark# quote X -> quote# mark X) (mark# dbl1 X -> mark# X, mark# quote X -> active# quote mark X) (mark# dbl1 X -> mark# X, mark# quote X -> mark# X) (mark# dbl1 X -> mark# X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# dbl1 X -> mark# X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# dbl1 X -> mark# X, mark# sel1(X1, X2) -> mark# X2) (mark# dbl1 X -> mark# X, mark# sel1(X1, X2) -> mark# X1) (mark# dbl1 X -> mark# X, mark# s1 X -> s1# mark X) (mark# dbl1 X -> mark# X, mark# s1 X -> active# s1 mark X) (mark# dbl1 X -> mark# X, mark# s1 X -> mark# X) (mark# dbl1 X -> mark# X, mark# dbl1 X -> dbl1# mark X) (mark# dbl1 X -> mark# X, mark# dbl1 X -> active# dbl1 mark X) (mark# dbl1 X -> mark# X, mark# dbl1 X -> mark# X) (mark# dbl1 X -> mark# X, mark# 01() -> active# 01()) (mark# dbl1 X -> mark# X, mark# from X -> active# from X) (mark# dbl1 X -> mark# X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# dbl1 X -> mark# X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# dbl1 X -> mark# X, mark# indx(X1, X2) -> mark# X1) (mark# dbl1 X -> mark# X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# dbl1 X -> mark# X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# dbl1 X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# dbl1 X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# dbl1 X -> mark# X, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# dbl1 X -> mark# X, mark# dbls X -> dbls# mark X) (mark# dbl1 X -> mark# X, mark# dbls X -> active# dbls mark X) (mark# dbl1 X -> mark# X, mark# dbls X -> mark# X) (mark# dbl1 X -> mark# X, mark# nil() -> active# nil()) (mark# dbl1 X -> mark# X, mark# s X -> active# s X) (mark# dbl1 X -> mark# X, mark# dbl X -> dbl# mark X) (mark# dbl1 X -> mark# X, mark# dbl X -> active# dbl mark X) (mark# dbl1 X -> mark# X, mark# dbl X -> mark# X) (mark# dbl1 X -> mark# X, mark# 0() -> active# 0()) (mark# quote X -> mark# X, mark# quote X -> quote# mark X) (mark# quote X -> mark# X, mark# quote X -> active# quote mark X) (mark# quote X -> mark# X, mark# quote X -> mark# X) (mark# quote X -> mark# X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# quote X -> mark# X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# quote X -> mark# X, mark# sel1(X1, X2) -> mark# X2) (mark# quote X -> mark# X, mark# sel1(X1, X2) -> mark# X1) (mark# quote X -> mark# X, mark# s1 X -> s1# mark X) (mark# quote X -> mark# X, mark# s1 X -> active# s1 mark X) (mark# quote X -> mark# X, mark# s1 X -> mark# X) (mark# quote X -> mark# X, mark# dbl1 X -> dbl1# mark X) (mark# quote X -> mark# X, mark# dbl1 X -> active# dbl1 mark X) (mark# quote X -> mark# X, mark# dbl1 X -> mark# X) (mark# quote X -> mark# X, mark# 01() -> active# 01()) (mark# quote X -> mark# X, mark# from X -> active# from X) (mark# quote X -> mark# X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# quote X -> mark# X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# quote X -> mark# X, mark# indx(X1, X2) -> mark# X1) (mark# quote X -> mark# X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# quote X -> mark# X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# quote X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# quote X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# quote X -> mark# X, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# quote X -> mark# X, mark# dbls X -> dbls# mark X) (mark# quote X -> mark# X, mark# dbls X -> active# dbls mark X) (mark# quote X -> mark# X, mark# dbls X -> mark# X) (mark# quote X -> mark# X, mark# nil() -> active# nil()) (mark# quote X -> mark# X, mark# s X -> active# s X) (mark# quote X -> mark# X, mark# dbl X -> dbl# mark X) (mark# quote X -> mark# X, mark# dbl X -> active# dbl mark X) (mark# quote X -> mark# X, mark# dbl X -> mark# X) (mark# quote X -> mark# X, mark# 0() -> active# 0()) (active# dbls cons(X, Y) -> dbl# X, dbl# active X -> dbl# X) (active# dbls cons(X, Y) -> dbl# X, dbl# mark X -> dbl# X) (active# from X -> s# X, s# active X -> s# X) (active# from X -> s# X, s# mark X -> s# X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# quote X -> quote# mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# quote X -> active# quote mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# quote X -> mark# X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> mark# X2) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> mark# X1) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# s1 X -> s1# mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# s1 X -> active# s1 mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# s1 X -> mark# X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbl1 X -> dbl1# mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbl1 X -> active# dbl1 mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbl1 X -> mark# X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# 01() -> active# 01()) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# from X -> active# from X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# indx(X1, X2) -> mark# X1) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> mark# X2) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> mark# X1) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# cons(X1, X2) -> active# cons(X1, X2)) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbls X -> dbls# mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbls X -> active# dbls mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbls X -> mark# X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# nil() -> active# nil()) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# s X -> active# s X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbl X -> dbl# mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbl X -> active# dbl mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbl X -> mark# X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# 0() -> active# 0()) (active# quote s X -> quote# X, quote# active X -> quote# X) (active# quote s X -> quote# X, quote# mark X -> quote# X) (dbl# active X -> dbl# X, dbl# active X -> dbl# X) (dbl# active X -> dbl# X, dbl# mark X -> dbl# X) (s# active X -> s# X, s# active X -> s# X) (s# active X -> s# X, s# mark X -> s# X) (dbls# active X -> dbls# X, dbls# active X -> dbls# X) (dbls# active X -> dbls# X, dbls# mark X -> dbls# X) (from# active X -> from# X, from# active X -> from# X) (from# active X -> from# X, from# mark X -> from# X) (dbl1# active X -> dbl1# X, dbl1# active X -> dbl1# X) (dbl1# active X -> dbl1# X, dbl1# mark X -> dbl1# X) (s1# active X -> s1# X, s1# active X -> s1# X) (s1# active X -> s1# X, s1# mark X -> s1# X) (quote# active X -> quote# X, quote# active X -> quote# X) (quote# active X -> quote# X, quote# mark X -> quote# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote sel(X, Y) -> sel1#(X, Y)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote s X -> quote# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote s X -> s1# quote X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote s X -> mark# s1 quote X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote dbl X -> dbl1# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote dbl X -> mark# dbl1 X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote 0() -> mark# 01()) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# sel1(0(), cons(X, Y)) -> mark# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl1 s X -> s1# s1 dbl1 X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl1 s X -> s1# dbl1 X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl1 s X -> dbl1# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl1 0() -> mark# 01()) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# from X -> from# s X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# from X -> cons#(X, from s X)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# from X -> s# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# from X -> mark# cons(X, from s X)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# indx(nil(), X) -> mark# nil()) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# sel(0(), cons(X, Y)) -> mark# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbls cons(X, Y) -> dbls# Y) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbls cons(X, Y) -> dbl# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbls nil() -> mark# nil()) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl s X -> s# s dbl X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl s X -> s# dbl X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl s X -> dbl# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl s X -> mark# s s dbl X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl 0() -> mark# 0()) (active# from X -> mark# cons(X, from s X), mark# quote X -> quote# mark X) (active# from X -> mark# cons(X, from s X), mark# quote X -> active# quote mark X) (active# from X -> mark# cons(X, from s X), mark# quote X -> mark# X) (active# from X -> mark# cons(X, from s X), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# sel1(X1, X2) -> mark# X2) (active# from X -> mark# cons(X, from s X), mark# sel1(X1, X2) -> mark# X1) (active# from X -> mark# cons(X, from s X), mark# s1 X -> s1# mark X) (active# from X -> mark# cons(X, from s X), mark# s1 X -> active# s1 mark X) (active# from X -> mark# cons(X, from s X), mark# s1 X -> mark# X) (active# from X -> mark# cons(X, from s X), mark# dbl1 X -> dbl1# mark X) (active# from X -> mark# cons(X, from s X), mark# dbl1 X -> active# dbl1 mark X) (active# from X -> mark# cons(X, from s X), mark# dbl1 X -> mark# X) (active# from X -> mark# cons(X, from s X), mark# 01() -> active# 01()) (active# from X -> mark# cons(X, from s X), mark# from X -> active# from X) (active# from X -> mark# cons(X, from s X), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# from X -> mark# cons(X, from s X), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# from X -> mark# cons(X, from s X), mark# indx(X1, X2) -> mark# X1) (active# from X -> mark# cons(X, from s X), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# sel(X1, X2) -> mark# X2) (active# from X -> mark# cons(X, from s X), mark# sel(X1, X2) -> mark# X1) (active# from X -> mark# cons(X, from s X), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# from X -> mark# cons(X, from s X), mark# dbls X -> dbls# mark X) (active# from X -> mark# cons(X, from s X), mark# dbls X -> active# dbls mark X) (active# from X -> mark# cons(X, from s X), mark# dbls X -> mark# X) (active# from X -> mark# cons(X, from s X), mark# nil() -> active# nil()) (active# from X -> mark# cons(X, from s X), mark# s X -> active# s X) (active# from X -> mark# cons(X, from s X), mark# dbl X -> dbl# mark X) (active# from X -> mark# cons(X, from s X), mark# dbl X -> active# dbl mark X) (active# from X -> mark# cons(X, from s X), mark# dbl X -> mark# X) (active# from X -> mark# cons(X, from s X), mark# 0() -> active# 0()) (mark# 0() -> active# 0(), active# quote sel(X, Y) -> sel1#(X, Y)) (mark# 0() -> active# 0(), active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# 0() -> active# 0(), active# quote s X -> quote# X) (mark# 0() -> active# 0(), active# quote s X -> s1# quote X) (mark# 0() -> active# 0(), active# quote s X -> mark# s1 quote X) (mark# 0() -> active# 0(), active# quote dbl X -> dbl1# X) (mark# 0() -> active# 0(), active# quote dbl X -> mark# dbl1 X) (mark# 0() -> active# 0(), active# quote 0() -> mark# 01()) (mark# 0() -> active# 0(), active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# 0() -> active# 0(), active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# 0() -> active# 0(), active# sel1(0(), cons(X, Y)) -> mark# X) (mark# 0() -> active# 0(), active# dbl1 s X -> s1# s1 dbl1 X) (mark# 0() -> active# 0(), active# dbl1 s X -> s1# dbl1 X) (mark# 0() -> active# 0(), active# dbl1 s X -> dbl1# X) (mark# 0() -> active# 0(), active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# 0() -> active# 0(), active# dbl1 0() -> mark# 01()) (mark# 0() -> active# 0(), active# from X -> from# s X) (mark# 0() -> active# 0(), active# from X -> cons#(X, from s X)) (mark# 0() -> active# 0(), active# from X -> s# X) (mark# 0() -> active# 0(), active# from X -> mark# cons(X, from s X)) (mark# 0() -> active# 0(), active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# 0() -> active# 0(), active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# 0() -> active# 0(), active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# 0() -> active# 0(), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# 0() -> active# 0(), active# indx(nil(), X) -> mark# nil()) (mark# 0() -> active# 0(), active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# 0() -> active# 0(), active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# 0() -> active# 0(), active# sel(0(), cons(X, Y)) -> mark# X) (mark# 0() -> active# 0(), active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# 0() -> active# 0(), active# dbls cons(X, Y) -> dbls# Y) (mark# 0() -> active# 0(), active# dbls cons(X, Y) -> dbl# X) (mark# 0() -> active# 0(), active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# 0() -> active# 0(), active# dbls nil() -> mark# nil()) (mark# 0() -> active# 0(), active# dbl s X -> s# s dbl X) (mark# 0() -> active# 0(), active# dbl s X -> s# dbl X) (mark# 0() -> active# 0(), active# dbl s X -> dbl# X) (mark# 0() -> active# 0(), active# dbl s X -> mark# s s dbl X) (mark# 0() -> active# 0(), active# dbl 0() -> mark# 0()) (mark# 01() -> active# 01(), active# quote sel(X, Y) -> sel1#(X, Y)) (mark# 01() -> active# 01(), active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# 01() -> active# 01(), active# quote s X -> quote# X) (mark# 01() -> active# 01(), active# quote s X -> s1# quote X) (mark# 01() -> active# 01(), active# quote s X -> mark# s1 quote X) (mark# 01() -> active# 01(), active# quote dbl X -> dbl1# X) (mark# 01() -> active# 01(), active# quote dbl X -> mark# dbl1 X) (mark# 01() -> active# 01(), active# quote 0() -> mark# 01()) (mark# 01() -> active# 01(), active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# 01() -> active# 01(), active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# 01() -> active# 01(), active# sel1(0(), cons(X, Y)) -> mark# X) (mark# 01() -> active# 01(), active# dbl1 s X -> s1# s1 dbl1 X) (mark# 01() -> active# 01(), active# dbl1 s X -> s1# dbl1 X) (mark# 01() -> active# 01(), active# dbl1 s X -> dbl1# X) (mark# 01() -> active# 01(), active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# 01() -> active# 01(), active# dbl1 0() -> mark# 01()) (mark# 01() -> active# 01(), active# from X -> from# s X) (mark# 01() -> active# 01(), active# from X -> cons#(X, from s X)) (mark# 01() -> active# 01(), active# from X -> s# X) (mark# 01() -> active# 01(), active# from X -> mark# cons(X, from s X)) (mark# 01() -> active# 01(), active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# 01() -> active# 01(), active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# 01() -> active# 01(), active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# 01() -> active# 01(), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# 01() -> active# 01(), active# indx(nil(), X) -> mark# nil()) (mark# 01() -> active# 01(), active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# 01() -> active# 01(), active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# 01() -> active# 01(), active# sel(0(), cons(X, Y)) -> mark# X) (mark# 01() -> active# 01(), active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# 01() -> active# 01(), active# dbls cons(X, Y) -> dbls# Y) (mark# 01() -> active# 01(), active# dbls cons(X, Y) -> dbl# X) (mark# 01() -> active# 01(), active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# 01() -> active# 01(), active# dbls nil() -> mark# nil()) (mark# 01() -> active# 01(), active# dbl s X -> s# s dbl X) (mark# 01() -> active# 01(), active# dbl s X -> s# dbl X) (mark# 01() -> active# 01(), active# dbl s X -> dbl# X) (mark# 01() -> active# 01(), active# dbl s X -> mark# s s dbl X) (mark# 01() -> active# 01(), active# dbl 0() -> mark# 0()) (active# dbls nil() -> mark# nil(), mark# quote X -> quote# mark X) (active# dbls nil() -> mark# nil(), mark# quote X -> active# quote mark X) (active# dbls nil() -> mark# nil(), mark# quote X -> mark# X) (active# dbls nil() -> mark# nil(), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# dbls nil() -> mark# nil(), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# dbls nil() -> mark# nil(), mark# sel1(X1, X2) -> mark# X2) (active# dbls nil() -> mark# nil(), mark# sel1(X1, X2) -> mark# X1) (active# dbls nil() -> mark# nil(), mark# s1 X -> s1# mark X) (active# dbls nil() -> mark# nil(), mark# s1 X -> active# s1 mark X) (active# dbls nil() -> mark# nil(), mark# s1 X -> mark# X) (active# dbls nil() -> mark# nil(), mark# dbl1 X -> dbl1# mark X) (active# dbls nil() -> mark# nil(), mark# dbl1 X -> active# dbl1 mark X) (active# dbls nil() -> mark# nil(), mark# dbl1 X -> mark# X) (active# dbls nil() -> mark# nil(), mark# 01() -> active# 01()) (active# dbls nil() -> mark# nil(), mark# from X -> active# from X) (active# dbls nil() -> mark# nil(), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# dbls nil() -> mark# nil(), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# dbls nil() -> mark# nil(), mark# indx(X1, X2) -> mark# X1) (active# dbls nil() -> mark# nil(), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# dbls nil() -> mark# nil(), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# dbls nil() -> mark# nil(), mark# sel(X1, X2) -> mark# X2) (active# dbls nil() -> mark# nil(), mark# sel(X1, X2) -> mark# X1) (active# dbls nil() -> mark# nil(), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# dbls nil() -> mark# nil(), mark# dbls X -> dbls# mark X) (active# dbls nil() -> mark# nil(), mark# dbls X -> active# dbls mark X) (active# dbls nil() -> mark# nil(), mark# dbls X -> mark# X) (active# dbls nil() -> mark# nil(), mark# nil() -> active# nil()) (active# dbls nil() -> mark# nil(), mark# s X -> active# s X) (active# dbls nil() -> mark# nil(), mark# dbl X -> dbl# mark X) (active# dbls nil() -> mark# nil(), mark# dbl X -> active# dbl mark X) (active# dbls nil() -> mark# nil(), mark# dbl X -> mark# X) (active# dbls nil() -> mark# nil(), mark# 0() -> active# 0()) (active# dbl1 0() -> mark# 01(), mark# quote X -> quote# mark X) (active# dbl1 0() -> mark# 01(), mark# quote X -> active# quote mark X) (active# dbl1 0() -> mark# 01(), mark# quote X -> mark# X) (active# dbl1 0() -> mark# 01(), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# dbl1 0() -> mark# 01(), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# dbl1 0() -> mark# 01(), mark# sel1(X1, X2) -> mark# X2) (active# dbl1 0() -> mark# 01(), mark# sel1(X1, X2) -> mark# X1) (active# dbl1 0() -> mark# 01(), mark# s1 X -> s1# mark X) (active# dbl1 0() -> mark# 01(), mark# s1 X -> active# s1 mark X) (active# dbl1 0() -> mark# 01(), mark# s1 X -> mark# X) (active# dbl1 0() -> mark# 01(), mark# dbl1 X -> dbl1# mark X) (active# dbl1 0() -> mark# 01(), mark# dbl1 X -> active# dbl1 mark X) (active# dbl1 0() -> mark# 01(), mark# dbl1 X -> mark# X) (active# dbl1 0() -> mark# 01(), mark# 01() -> active# 01()) (active# dbl1 0() -> mark# 01(), mark# from X -> active# from X) (active# dbl1 0() -> mark# 01(), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# dbl1 0() -> mark# 01(), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# dbl1 0() -> mark# 01(), mark# indx(X1, X2) -> mark# X1) (active# dbl1 0() -> mark# 01(), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# dbl1 0() -> mark# 01(), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# dbl1 0() -> mark# 01(), mark# sel(X1, X2) -> mark# X2) (active# dbl1 0() -> mark# 01(), mark# sel(X1, X2) -> mark# X1) (active# dbl1 0() -> mark# 01(), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# dbl1 0() -> mark# 01(), mark# dbls X -> dbls# mark X) (active# dbl1 0() -> mark# 01(), mark# dbls X -> active# dbls mark X) (active# dbl1 0() -> mark# 01(), mark# dbls X -> mark# X) (active# dbl1 0() -> mark# 01(), mark# nil() -> active# nil()) (active# dbl1 0() -> mark# 01(), mark# s X -> active# s X) (active# dbl1 0() -> mark# 01(), mark# dbl X -> dbl# mark X) (active# dbl1 0() -> mark# 01(), mark# dbl X -> active# dbl mark X) (active# dbl1 0() -> mark# 01(), mark# dbl X -> mark# X) (active# dbl1 0() -> mark# 01(), mark# 0() -> active# 0()) (mark# sel(X1, X2) -> mark# X2, mark# quote X -> quote# mark X) (mark# sel(X1, X2) -> mark# X2, mark# quote X -> active# quote mark X) (mark# sel(X1, X2) -> mark# X2, mark# quote X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> mark# X2) (mark# sel(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X2, mark# s1 X -> s1# mark X) (mark# sel(X1, X2) -> mark# X2, mark# s1 X -> active# s1 mark X) (mark# sel(X1, X2) -> mark# X2, mark# s1 X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# dbl1 X -> dbl1# mark X) (mark# sel(X1, X2) -> mark# X2, mark# dbl1 X -> active# dbl1 mark X) (mark# sel(X1, X2) -> mark# X2, mark# dbl1 X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# 01() -> active# 01()) (mark# sel(X1, X2) -> mark# X2, mark# from X -> active# from X) (mark# sel(X1, X2) -> mark# X2, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# sel(X1, X2) -> mark# X2, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# sel(X1, X2) -> mark# X2, mark# indx(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> active# sel(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# cons(X1, X2) -> active# cons(X1, X2)) (mark# sel(X1, X2) -> mark# X2, mark# dbls X -> dbls# mark X) (mark# sel(X1, X2) -> mark# X2, mark# dbls X -> active# dbls mark X) (mark# sel(X1, X2) -> mark# X2, mark# dbls X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# nil() -> active# nil()) (mark# sel(X1, X2) -> mark# X2, mark# s X -> active# s X) (mark# sel(X1, X2) -> mark# X2, mark# dbl X -> dbl# mark X) (mark# sel(X1, X2) -> mark# X2, mark# dbl X -> active# dbl mark X) (mark# sel(X1, X2) -> mark# X2, mark# dbl X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# 0() -> active# 0()) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (sel#(X1, mark X2) -> sel#(X1, X2), sel#(active X1, X2) -> sel#(X1, X2)) (sel#(X1, mark X2) -> sel#(X1, X2), sel#(mark X1, X2) -> sel#(X1, X2)) (sel#(X1, mark X2) -> sel#(X1, X2), sel#(X1, active X2) -> sel#(X1, X2)) (sel#(X1, mark X2) -> sel#(X1, X2), sel#(X1, mark X2) -> sel#(X1, X2)) (sel#(mark X1, X2) -> sel#(X1, X2), sel#(active X1, X2) -> sel#(X1, X2)) (sel#(mark X1, X2) -> sel#(X1, X2), sel#(mark X1, X2) -> sel#(X1, X2)) (sel#(mark X1, X2) -> sel#(X1, X2), sel#(X1, active X2) -> sel#(X1, X2)) (sel#(mark X1, X2) -> sel#(X1, X2), sel#(X1, mark X2) -> sel#(X1, X2)) (indx#(X1, mark X2) -> indx#(X1, X2), indx#(active X1, X2) -> indx#(X1, X2)) (indx#(X1, mark X2) -> indx#(X1, X2), indx#(mark X1, X2) -> indx#(X1, X2)) (indx#(X1, mark X2) -> indx#(X1, X2), indx#(X1, active X2) -> indx#(X1, X2)) (indx#(X1, mark X2) -> indx#(X1, X2), indx#(X1, mark X2) -> indx#(X1, X2)) (indx#(mark X1, X2) -> indx#(X1, X2), indx#(active X1, X2) -> indx#(X1, X2)) (indx#(mark X1, X2) -> indx#(X1, X2), indx#(mark X1, X2) -> indx#(X1, X2)) (indx#(mark X1, X2) -> indx#(X1, X2), indx#(X1, active X2) -> indx#(X1, X2)) (indx#(mark X1, X2) -> indx#(X1, X2), indx#(X1, mark X2) -> indx#(X1, X2)) (sel1#(X1, mark X2) -> sel1#(X1, X2), sel1#(active X1, X2) -> sel1#(X1, X2)) (sel1#(X1, mark X2) -> sel1#(X1, X2), sel1#(mark X1, X2) -> sel1#(X1, X2)) (sel1#(X1, mark X2) -> sel1#(X1, X2), sel1#(X1, active X2) -> sel1#(X1, X2)) (sel1#(X1, mark X2) -> sel1#(X1, X2), sel1#(X1, mark X2) -> sel1#(X1, X2)) (sel1#(mark X1, X2) -> sel1#(X1, X2), sel1#(active X1, X2) -> sel1#(X1, X2)) (sel1#(mark X1, X2) -> sel1#(X1, X2), sel1#(mark X1, X2) -> sel1#(X1, X2)) (sel1#(mark X1, X2) -> sel1#(X1, X2), sel1#(X1, active X2) -> sel1#(X1, X2)) (sel1#(mark X1, X2) -> sel1#(X1, X2), sel1#(X1, mark X2) -> sel1#(X1, X2)) (mark# sel(X1, X2) -> mark# X1, mark# quote X -> quote# mark X) (mark# sel(X1, X2) -> mark# X1, mark# quote X -> active# quote mark X) (mark# sel(X1, X2) -> mark# X1, mark# quote X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X2) (mark# sel(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X1, mark# s1 X -> s1# mark X) (mark# sel(X1, X2) -> mark# X1, mark# s1 X -> active# s1 mark X) (mark# sel(X1, X2) -> mark# X1, mark# s1 X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# dbl1 X -> dbl1# mark X) (mark# sel(X1, X2) -> mark# X1, mark# dbl1 X -> active# dbl1 mark X) (mark# sel(X1, X2) -> mark# X1, mark# dbl1 X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# 01() -> active# 01()) (mark# sel(X1, X2) -> mark# X1, mark# from X -> active# from X) (mark# sel(X1, X2) -> mark# X1, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# sel(X1, X2) -> mark# X1, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# sel(X1, X2) -> mark# X1, mark# indx(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> active# sel(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# cons(X1, X2) -> active# cons(X1, X2)) (mark# sel(X1, X2) -> mark# X1, mark# dbls X -> dbls# mark X) (mark# sel(X1, X2) -> mark# X1, mark# dbls X -> active# dbls mark X) (mark# sel(X1, X2) -> mark# X1, mark# dbls X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# nil() -> active# nil()) (mark# sel(X1, X2) -> mark# X1, mark# s X -> active# s X) (mark# sel(X1, X2) -> mark# X1, mark# dbl X -> dbl# mark X) (mark# sel(X1, X2) -> mark# X1, mark# dbl X -> active# dbl mark X) (mark# sel(X1, X2) -> mark# X1, mark# dbl X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# sel1(X1, X2) -> mark# X1, mark# quote X -> quote# mark X) (mark# sel1(X1, X2) -> mark# X1, mark# quote X -> active# quote mark X) (mark# sel1(X1, X2) -> mark# X1, mark# quote X -> mark# X) (mark# sel1(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X2) (mark# sel1(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X1) (mark# sel1(X1, X2) -> mark# X1, mark# s1 X -> s1# mark X) (mark# sel1(X1, X2) -> mark# X1, mark# s1 X -> active# s1 mark X) (mark# sel1(X1, X2) -> mark# X1, mark# s1 X -> mark# X) (mark# sel1(X1, X2) -> mark# X1, mark# dbl1 X -> dbl1# mark X) (mark# sel1(X1, X2) -> mark# X1, mark# dbl1 X -> active# dbl1 mark X) (mark# sel1(X1, X2) -> mark# X1, mark# dbl1 X -> mark# X) (mark# sel1(X1, X2) -> mark# X1, mark# 01() -> active# 01()) (mark# sel1(X1, X2) -> mark# X1, mark# from X -> active# from X) (mark# sel1(X1, X2) -> mark# X1, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# sel1(X1, X2) -> mark# X1, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# sel1(X1, X2) -> mark# X1, mark# indx(X1, X2) -> mark# X1) (mark# sel1(X1, X2) -> mark# X1, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X1, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2) (mark# sel1(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X1) (mark# sel1(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# sel1(X1, X2) -> mark# X1, mark# dbls X -> dbls# mark X) (mark# sel1(X1, X2) -> mark# X1, mark# dbls X -> active# dbls mark X) (mark# sel1(X1, X2) -> mark# X1, mark# dbls X -> mark# X) (mark# sel1(X1, X2) -> mark# X1, mark# nil() -> active# nil()) (mark# sel1(X1, X2) -> mark# X1, mark# s X -> active# s X) (mark# sel1(X1, X2) -> mark# X1, mark# dbl X -> dbl# mark X) (mark# sel1(X1, X2) -> mark# X1, mark# dbl X -> active# dbl mark X) (mark# sel1(X1, X2) -> mark# X1, mark# dbl X -> mark# X) (mark# sel1(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# sel1(X1, X2) -> sel1#(mark X1, mark X2), sel1#(active X1, X2) -> sel1#(X1, X2)) (mark# sel1(X1, X2) -> sel1#(mark X1, mark X2), sel1#(mark X1, X2) -> sel1#(X1, X2)) (mark# sel1(X1, X2) -> sel1#(mark X1, mark X2), sel1#(X1, active X2) -> sel1#(X1, X2)) (mark# sel1(X1, X2) -> sel1#(mark X1, mark X2), sel1#(X1, mark X2) -> sel1#(X1, X2)) (active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z)), cons#(active X1, X2) -> cons#(X1, X2)) (active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z)), cons#(mark X1, X2) -> cons#(X1, X2)) (active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z)), cons#(X1, active X2) -> cons#(X1, X2)) (active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z)), cons#(X1, mark X2) -> cons#(X1, X2)) (active# quote sel(X, Y) -> sel1#(X, Y), sel1#(active X1, X2) -> sel1#(X1, X2)) (active# quote sel(X, Y) -> sel1#(X, Y), sel1#(mark X1, X2) -> sel1#(X1, X2)) (active# quote sel(X, Y) -> sel1#(X, Y), sel1#(X1, active X2) -> sel1#(X1, X2)) (active# quote sel(X, Y) -> sel1#(X, Y), sel1#(X1, mark X2) -> sel1#(X1, X2)) (active# from X -> cons#(X, from s X), cons#(X1, mark X2) -> cons#(X1, X2)) (active# from X -> cons#(X, from s X), cons#(X1, active X2) -> cons#(X1, X2)) (active# from X -> cons#(X, from s X), cons#(mark X1, X2) -> cons#(X1, X2)) (active# from X -> cons#(X, from s X), cons#(active X1, X2) -> cons#(X1, X2)) (active# dbls cons(X, Y) -> cons#(dbl X, dbls Y), cons#(X1, mark X2) -> cons#(X1, X2)) (active# dbls cons(X, Y) -> cons#(dbl X, dbls Y), cons#(X1, active X2) -> cons#(X1, X2)) (active# dbls cons(X, Y) -> cons#(dbl X, dbls Y), cons#(mark X1, X2) -> cons#(X1, X2)) (active# dbls cons(X, Y) -> cons#(dbl X, dbls Y), cons#(active X1, X2) -> cons#(X1, X2)) (mark# sel(X1, X2) -> sel#(mark X1, mark X2), sel#(X1, mark X2) -> sel#(X1, X2)) (mark# sel(X1, X2) -> sel#(mark X1, mark X2), sel#(X1, active X2) -> sel#(X1, X2)) (mark# sel(X1, X2) -> sel#(mark X1, mark X2), sel#(mark X1, X2) -> sel#(X1, X2)) (mark# sel(X1, X2) -> sel#(mark X1, mark X2), sel#(active X1, X2) -> sel#(X1, X2)) (mark# indx(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# indx(X1, X2) -> mark# X1, mark# dbl X -> mark# X) (mark# indx(X1, X2) -> mark# X1, mark# dbl X -> active# dbl mark X) (mark# indx(X1, X2) -> mark# X1, mark# dbl X -> dbl# mark X) (mark# indx(X1, X2) -> mark# X1, mark# s X -> active# s X) (mark# indx(X1, X2) -> mark# X1, mark# nil() -> active# nil()) (mark# indx(X1, X2) -> mark# X1, mark# dbls X -> mark# X) (mark# indx(X1, X2) -> mark# X1, mark# dbls X -> active# dbls mark X) (mark# indx(X1, X2) -> mark# X1, mark# dbls X -> dbls# mark X) (mark# indx(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# indx(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X1) (mark# indx(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2) (mark# indx(X1, X2) -> mark# X1, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# indx(X1, X2) -> mark# X1, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# indx(X1, X2) -> mark# X1, mark# indx(X1, X2) -> mark# X1) (mark# indx(X1, X2) -> mark# X1, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# indx(X1, X2) -> mark# X1, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# indx(X1, X2) -> mark# X1, mark# from X -> active# from X) (mark# indx(X1, X2) -> mark# X1, mark# 01() -> active# 01()) (mark# indx(X1, X2) -> mark# X1, mark# dbl1 X -> mark# X) (mark# indx(X1, X2) -> mark# X1, mark# dbl1 X -> active# dbl1 mark X) (mark# indx(X1, X2) -> mark# X1, mark# dbl1 X -> dbl1# mark X) (mark# indx(X1, X2) -> mark# X1, mark# s1 X -> mark# X) (mark# indx(X1, X2) -> mark# X1, mark# s1 X -> active# s1 mark X) (mark# indx(X1, X2) -> mark# X1, mark# s1 X -> s1# mark X) (mark# indx(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X1) (mark# indx(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X2) (mark# indx(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# indx(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# indx(X1, X2) -> mark# X1, mark# quote X -> mark# X) (mark# indx(X1, X2) -> mark# X1, mark# quote X -> active# quote mark X) (mark# indx(X1, X2) -> mark# X1, mark# quote X -> quote# mark X) (sel1#(active X1, X2) -> sel1#(X1, X2), sel1#(X1, mark X2) -> sel1#(X1, X2)) (sel1#(active X1, X2) -> sel1#(X1, X2), sel1#(X1, active X2) -> sel1#(X1, X2)) (sel1#(active X1, X2) -> sel1#(X1, X2), sel1#(mark X1, X2) -> sel1#(X1, X2)) (sel1#(active X1, X2) -> sel1#(X1, X2), sel1#(active X1, X2) -> sel1#(X1, X2)) (sel1#(X1, active X2) -> sel1#(X1, X2), sel1#(X1, mark X2) -> sel1#(X1, X2)) (sel1#(X1, active X2) -> sel1#(X1, X2), sel1#(X1, active X2) -> sel1#(X1, X2)) (sel1#(X1, active X2) -> sel1#(X1, X2), sel1#(mark X1, X2) -> sel1#(X1, X2)) (sel1#(X1, active X2) -> sel1#(X1, X2), sel1#(active X1, X2) -> sel1#(X1, X2)) (indx#(active X1, X2) -> indx#(X1, X2), indx#(X1, mark X2) -> indx#(X1, X2)) (indx#(active X1, X2) -> indx#(X1, X2), indx#(X1, active X2) -> indx#(X1, X2)) (indx#(active X1, X2) -> indx#(X1, X2), indx#(mark X1, X2) -> indx#(X1, X2)) (indx#(active X1, X2) -> indx#(X1, X2), indx#(active X1, X2) -> indx#(X1, X2)) (indx#(X1, active X2) -> indx#(X1, X2), indx#(X1, mark X2) -> indx#(X1, X2)) (indx#(X1, active X2) -> indx#(X1, X2), indx#(X1, active X2) -> indx#(X1, X2)) (indx#(X1, active X2) -> indx#(X1, X2), indx#(mark X1, X2) -> indx#(X1, X2)) (indx#(X1, active X2) -> indx#(X1, X2), indx#(active X1, X2) -> indx#(X1, X2)) (sel#(active X1, X2) -> sel#(X1, X2), sel#(X1, mark X2) -> sel#(X1, X2)) (sel#(active X1, X2) -> sel#(X1, X2), sel#(X1, active X2) -> sel#(X1, X2)) (sel#(active X1, X2) -> sel#(X1, X2), sel#(mark X1, X2) -> sel#(X1, X2)) (sel#(active X1, X2) -> sel#(X1, X2), sel#(active X1, X2) -> sel#(X1, X2)) (sel#(X1, active X2) -> sel#(X1, X2), sel#(X1, mark X2) -> sel#(X1, X2)) (sel#(X1, active X2) -> sel#(X1, X2), sel#(X1, active X2) -> sel#(X1, X2)) (sel#(X1, active X2) -> sel#(X1, X2), sel#(mark X1, X2) -> sel#(X1, X2)) (sel#(X1, active X2) -> sel#(X1, X2), sel#(active X1, X2) -> sel#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (cons#(X1, active X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (cons#(X1, active X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(X1, active X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (mark# sel1(X1, X2) -> mark# X2, mark# 0() -> active# 0()) (mark# sel1(X1, X2) -> mark# X2, mark# dbl X -> mark# X) (mark# sel1(X1, X2) -> mark# X2, mark# dbl X -> active# dbl mark X) (mark# sel1(X1, X2) -> mark# X2, mark# dbl X -> dbl# mark X) (mark# sel1(X1, X2) -> mark# X2, mark# s X -> active# s X) (mark# sel1(X1, X2) -> mark# X2, mark# nil() -> active# nil()) (mark# sel1(X1, X2) -> mark# X2, mark# dbls X -> mark# X) (mark# sel1(X1, X2) -> mark# X2, mark# dbls X -> active# dbls mark X) (mark# sel1(X1, X2) -> mark# X2, mark# dbls X -> dbls# mark X) (mark# sel1(X1, X2) -> mark# X2, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# sel1(X1, X2) -> mark# X2, mark# sel(X1, X2) -> mark# X1) (mark# sel1(X1, X2) -> mark# X2, mark# sel(X1, X2) -> mark# X2) (mark# sel1(X1, X2) -> mark# X2, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X2, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X2, mark# indx(X1, X2) -> mark# X1) (mark# sel1(X1, X2) -> mark# X2, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# sel1(X1, X2) -> mark# X2, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# sel1(X1, X2) -> mark# X2, mark# from X -> active# from X) (mark# sel1(X1, X2) -> mark# X2, mark# 01() -> active# 01()) (mark# sel1(X1, X2) -> mark# X2, mark# dbl1 X -> mark# X) (mark# sel1(X1, X2) -> mark# X2, mark# dbl1 X -> active# dbl1 mark X) (mark# sel1(X1, X2) -> mark# X2, mark# dbl1 X -> dbl1# mark X) (mark# sel1(X1, X2) -> mark# X2, mark# s1 X -> mark# X) (mark# sel1(X1, X2) -> mark# X2, mark# s1 X -> active# s1 mark X) (mark# sel1(X1, X2) -> mark# X2, mark# s1 X -> s1# mark X) (mark# sel1(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> mark# X1) (mark# sel1(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> mark# X2) (mark# sel1(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X2, mark# quote X -> mark# X) (mark# sel1(X1, X2) -> mark# X2, mark# quote X -> active# quote mark X) (mark# sel1(X1, X2) -> mark# X2, mark# quote X -> quote# mark X) (active# quote 0() -> mark# 01(), mark# 0() -> active# 0()) (active# quote 0() -> mark# 01(), mark# dbl X -> mark# X) (active# quote 0() -> mark# 01(), mark# dbl X -> active# dbl mark X) (active# quote 0() -> mark# 01(), mark# dbl X -> dbl# mark X) (active# quote 0() -> mark# 01(), mark# s X -> active# s X) (active# quote 0() -> mark# 01(), mark# nil() -> active# nil()) (active# quote 0() -> mark# 01(), mark# dbls X -> mark# X) (active# quote 0() -> mark# 01(), mark# dbls X -> active# dbls mark X) (active# quote 0() -> mark# 01(), mark# dbls X -> dbls# mark X) (active# quote 0() -> mark# 01(), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# quote 0() -> mark# 01(), mark# sel(X1, X2) -> mark# X1) (active# quote 0() -> mark# 01(), mark# sel(X1, X2) -> mark# X2) (active# quote 0() -> mark# 01(), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# quote 0() -> mark# 01(), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# quote 0() -> mark# 01(), mark# indx(X1, X2) -> mark# X1) (active# quote 0() -> mark# 01(), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# quote 0() -> mark# 01(), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# quote 0() -> mark# 01(), mark# from X -> active# from X) (active# quote 0() -> mark# 01(), mark# 01() -> active# 01()) (active# quote 0() -> mark# 01(), mark# dbl1 X -> mark# X) (active# quote 0() -> mark# 01(), mark# dbl1 X -> active# dbl1 mark X) (active# quote 0() -> mark# 01(), mark# dbl1 X -> dbl1# mark X) (active# quote 0() -> mark# 01(), mark# s1 X -> mark# X) (active# quote 0() -> mark# 01(), mark# s1 X -> active# s1 mark X) (active# quote 0() -> mark# 01(), mark# s1 X -> s1# mark X) (active# quote 0() -> mark# 01(), mark# sel1(X1, X2) -> mark# X1) (active# quote 0() -> mark# 01(), mark# sel1(X1, X2) -> mark# X2) (active# quote 0() -> mark# 01(), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# quote 0() -> mark# 01(), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# quote 0() -> mark# 01(), mark# quote X -> mark# X) (active# quote 0() -> mark# 01(), mark# quote X -> active# quote mark X) (active# quote 0() -> mark# 01(), mark# quote X -> quote# mark X) (active# indx(nil(), X) -> mark# nil(), mark# 0() -> active# 0()) (active# indx(nil(), X) -> mark# nil(), mark# dbl X -> mark# X) (active# indx(nil(), X) -> mark# nil(), mark# dbl X -> active# dbl mark X) (active# indx(nil(), X) -> mark# nil(), mark# dbl X -> dbl# mark X) (active# indx(nil(), X) -> mark# nil(), mark# s X -> active# s X) (active# indx(nil(), X) -> mark# nil(), mark# nil() -> active# nil()) (active# indx(nil(), X) -> mark# nil(), mark# dbls X -> mark# X) (active# indx(nil(), X) -> mark# nil(), mark# dbls X -> active# dbls mark X) (active# indx(nil(), X) -> mark# nil(), mark# dbls X -> dbls# mark X) (active# indx(nil(), X) -> mark# nil(), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# indx(nil(), X) -> mark# nil(), mark# sel(X1, X2) -> mark# X1) (active# indx(nil(), X) -> mark# nil(), mark# sel(X1, X2) -> mark# X2) (active# indx(nil(), X) -> mark# nil(), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# indx(nil(), X) -> mark# nil(), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# indx(nil(), X) -> mark# nil(), mark# indx(X1, X2) -> mark# X1) (active# indx(nil(), X) -> mark# nil(), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# indx(nil(), X) -> mark# nil(), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# indx(nil(), X) -> mark# nil(), mark# from X -> active# from X) (active# indx(nil(), X) -> mark# nil(), mark# 01() -> active# 01()) (active# indx(nil(), X) -> mark# nil(), mark# dbl1 X -> mark# X) (active# indx(nil(), X) -> mark# nil(), mark# dbl1 X -> active# dbl1 mark X) (active# indx(nil(), X) -> mark# nil(), mark# dbl1 X -> dbl1# mark X) (active# indx(nil(), X) -> mark# nil(), mark# s1 X -> mark# X) (active# indx(nil(), X) -> mark# nil(), mark# s1 X -> active# s1 mark X) (active# indx(nil(), X) -> mark# nil(), mark# s1 X -> s1# mark X) (active# indx(nil(), X) -> mark# nil(), mark# sel1(X1, X2) -> mark# X1) (active# indx(nil(), X) -> mark# nil(), mark# sel1(X1, X2) -> mark# X2) (active# indx(nil(), X) -> mark# nil(), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# indx(nil(), X) -> mark# nil(), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# indx(nil(), X) -> mark# nil(), mark# quote X -> mark# X) (active# indx(nil(), X) -> mark# nil(), mark# quote X -> active# quote mark X) (active# indx(nil(), X) -> mark# nil(), mark# quote X -> quote# mark X) (active# dbl 0() -> mark# 0(), mark# 0() -> active# 0()) (active# dbl 0() -> mark# 0(), mark# dbl X -> mark# X) (active# dbl 0() -> mark# 0(), mark# dbl X -> active# dbl mark X) (active# dbl 0() -> mark# 0(), mark# dbl X -> dbl# mark X) (active# dbl 0() -> mark# 0(), mark# s X -> active# s X) (active# dbl 0() -> mark# 0(), mark# nil() -> active# nil()) (active# dbl 0() -> mark# 0(), mark# dbls X -> mark# X) (active# dbl 0() -> mark# 0(), mark# dbls X -> active# dbls mark X) (active# dbl 0() -> mark# 0(), mark# dbls X -> dbls# mark X) (active# dbl 0() -> mark# 0(), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# dbl 0() -> mark# 0(), mark# sel(X1, X2) -> mark# X1) (active# dbl 0() -> mark# 0(), mark# sel(X1, X2) -> mark# X2) (active# dbl 0() -> mark# 0(), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# dbl 0() -> mark# 0(), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# dbl 0() -> mark# 0(), mark# indx(X1, X2) -> mark# X1) (active# dbl 0() -> mark# 0(), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# dbl 0() -> mark# 0(), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# dbl 0() -> mark# 0(), mark# from X -> active# from X) (active# dbl 0() -> mark# 0(), mark# 01() -> active# 01()) (active# dbl 0() -> mark# 0(), mark# dbl1 X -> mark# X) (active# dbl 0() -> mark# 0(), mark# dbl1 X -> active# dbl1 mark X) (active# dbl 0() -> mark# 0(), mark# dbl1 X -> dbl1# mark X) (active# dbl 0() -> mark# 0(), mark# s1 X -> mark# X) (active# dbl 0() -> mark# 0(), mark# s1 X -> active# s1 mark X) (active# dbl 0() -> mark# 0(), mark# s1 X -> s1# mark X) (active# dbl 0() -> mark# 0(), mark# sel1(X1, X2) -> mark# X1) (active# dbl 0() -> mark# 0(), mark# sel1(X1, X2) -> mark# X2) (active# dbl 0() -> mark# 0(), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# dbl 0() -> mark# 0(), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# dbl 0() -> mark# 0(), mark# quote X -> mark# X) (active# dbl 0() -> mark# 0(), mark# quote X -> active# quote mark X) (active# dbl 0() -> mark# 0(), mark# quote X -> quote# mark X) (mark# nil() -> active# nil(), active# dbl 0() -> mark# 0()) (mark# nil() -> active# nil(), active# dbl s X -> mark# s s dbl X) (mark# nil() -> active# nil(), active# dbl s X -> dbl# X) (mark# nil() -> active# nil(), active# dbl s X -> s# dbl X) (mark# nil() -> active# nil(), active# dbl s X -> s# s dbl X) (mark# nil() -> active# nil(), active# dbls nil() -> mark# nil()) (mark# nil() -> active# nil(), active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# nil() -> active# nil(), active# dbls cons(X, Y) -> dbl# X) (mark# nil() -> active# nil(), active# dbls cons(X, Y) -> dbls# Y) (mark# nil() -> active# nil(), active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# nil() -> active# nil(), active# sel(0(), cons(X, Y)) -> mark# X) (mark# nil() -> active# nil(), active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# nil() -> active# nil(), active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# nil() -> active# nil(), active# indx(nil(), X) -> mark# nil()) (mark# nil() -> active# nil(), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# nil() -> active# nil(), active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# nil() -> active# nil(), active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# nil() -> active# nil(), active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# nil() -> active# nil(), active# from X -> mark# cons(X, from s X)) (mark# nil() -> active# nil(), active# from X -> s# X) (mark# nil() -> active# nil(), active# from X -> cons#(X, from s X)) (mark# nil() -> active# nil(), active# from X -> from# s X) (mark# nil() -> active# nil(), active# dbl1 0() -> mark# 01()) (mark# nil() -> active# nil(), active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# nil() -> active# nil(), active# dbl1 s X -> dbl1# X) (mark# nil() -> active# nil(), active# dbl1 s X -> s1# dbl1 X) (mark# nil() -> active# nil(), active# dbl1 s X -> s1# s1 dbl1 X) (mark# nil() -> active# nil(), active# sel1(0(), cons(X, Y)) -> mark# X) (mark# nil() -> active# nil(), active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# nil() -> active# nil(), active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# nil() -> active# nil(), active# quote 0() -> mark# 01()) (mark# nil() -> active# nil(), active# quote dbl X -> mark# dbl1 X) (mark# nil() -> active# nil(), active# quote dbl X -> dbl1# X) (mark# nil() -> active# nil(), active# quote s X -> mark# s1 quote X) (mark# nil() -> active# nil(), active# quote s X -> s1# quote X) (mark# nil() -> active# nil(), active# quote s X -> quote# X) (mark# nil() -> active# nil(), active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# nil() -> active# nil(), active# quote sel(X, Y) -> sel1#(X, Y)) (mark# indx(X1, X2) -> indx#(mark X1, X2), indx#(X1, mark X2) -> indx#(X1, X2)) (mark# indx(X1, X2) -> indx#(mark X1, X2), indx#(X1, active X2) -> indx#(X1, X2)) (mark# indx(X1, X2) -> indx#(mark X1, X2), indx#(mark X1, X2) -> indx#(X1, X2)) (mark# indx(X1, X2) -> indx#(mark X1, X2), indx#(active X1, X2) -> indx#(X1, X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# 0() -> active# 0()) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbl X -> mark# X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbl X -> active# dbl mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbl X -> dbl# mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# s X -> active# s X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# nil() -> active# nil()) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbls X -> mark# X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbls X -> active# dbls mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbls X -> dbls# mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel(X1, X2) -> mark# X1) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel(X1, X2) -> mark# X2) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# indx(X1, X2) -> mark# X1) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# from X -> active# from X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# 01() -> active# 01()) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbl1 X -> mark# X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbl1 X -> active# dbl1 mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbl1 X -> dbl1# mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# s1 X -> mark# X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# s1 X -> active# s1 mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# s1 X -> s1# mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel1(X1, X2) -> mark# X1) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel1(X1, X2) -> mark# X2) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# quote X -> mark# X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# quote X -> active# quote mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# quote X -> quote# mark X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl 0() -> mark# 0()) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl s X -> mark# s s dbl X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl s X -> dbl# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl s X -> s# dbl X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl s X -> s# s dbl X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbls nil() -> mark# nil()) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbls cons(X, Y) -> dbl# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbls cons(X, Y) -> dbls# Y) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# sel(0(), cons(X, Y)) -> mark# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# indx(nil(), X) -> mark# nil()) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# from X -> mark# cons(X, from s X)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# from X -> s# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# from X -> cons#(X, from s X)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# from X -> from# s X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl1 0() -> mark# 01()) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl1 s X -> dbl1# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl1 s X -> s1# dbl1 X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl1 s X -> s1# s1 dbl1 X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# sel1(0(), cons(X, Y)) -> mark# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote 0() -> mark# 01()) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote dbl X -> mark# dbl1 X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote dbl X -> dbl1# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote s X -> mark# s1 quote X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote s X -> s1# quote X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote s X -> quote# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote sel(X, Y) -> sel1#(X, Y)) (quote# mark X -> quote# X, quote# mark X -> quote# X) (quote# mark X -> quote# X, quote# active X -> quote# X) (s1# mark X -> s1# X, s1# mark X -> s1# X) (s1# mark X -> s1# X, s1# active X -> s1# X) (dbl1# mark X -> dbl1# X, dbl1# mark X -> dbl1# X) (dbl1# mark X -> dbl1# X, dbl1# active X -> dbl1# X) (from# mark X -> from# X, from# mark X -> from# X) (from# mark X -> from# X, from# active X -> from# X) (dbls# mark X -> dbls# X, dbls# mark X -> dbls# X) (dbls# mark X -> dbls# X, dbls# active X -> dbls# X) (s# mark X -> s# X, s# mark X -> s# X) (s# mark X -> s# X, s# active X -> s# X) (dbl# mark X -> dbl# X, dbl# mark X -> dbl# X) (dbl# mark X -> dbl# X, dbl# active X -> dbl# X) (active# quote dbl X -> dbl1# X, dbl1# mark X -> dbl1# X) (active# quote dbl X -> dbl1# X, dbl1# active X -> dbl1# X) (active# dbl1 s X -> dbl1# X, dbl1# mark X -> dbl1# X) (active# dbl1 s X -> dbl1# X, dbl1# active X -> dbl1# X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# 0() -> active# 0()) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbl X -> mark# X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbl X -> active# dbl mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbl X -> dbl# mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# s X -> active# s X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# nil() -> active# nil()) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbls X -> mark# X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbls X -> active# dbls mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbls X -> dbls# mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# cons(X1, X2) -> active# cons(X1, X2)) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> mark# X1) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> mark# X2) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# sel(0(), cons(X, Y)) -> mark# X, mark# indx(X1, X2) -> mark# X1) (active# sel(0(), cons(X, Y)) -> mark# X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# sel(0(), cons(X, Y)) -> mark# X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# sel(0(), cons(X, Y)) -> mark# X, mark# from X -> active# from X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# 01() -> active# 01()) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbl1 X -> mark# X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbl1 X -> active# dbl1 mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbl1 X -> dbl1# mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# s1 X -> mark# X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# s1 X -> active# s1 mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# s1 X -> s1# mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> mark# X1) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> mark# X2) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# sel(0(), cons(X, Y)) -> mark# X, mark# quote X -> mark# X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# quote X -> active# quote mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# quote X -> quote# mark X) (active# dbl s X -> dbl# X, dbl# mark X -> dbl# X) (active# dbl s X -> dbl# X, dbl# active X -> dbl# X) (mark# s1 X -> mark# X, mark# 0() -> active# 0()) (mark# s1 X -> mark# X, mark# dbl X -> mark# X) (mark# s1 X -> mark# X, mark# dbl X -> active# dbl mark X) (mark# s1 X -> mark# X, mark# dbl X -> dbl# mark X) (mark# s1 X -> mark# X, mark# s X -> active# s X) (mark# s1 X -> mark# X, mark# nil() -> active# nil()) (mark# s1 X -> mark# X, mark# dbls X -> mark# X) (mark# s1 X -> mark# X, mark# dbls X -> active# dbls mark X) (mark# s1 X -> mark# X, mark# dbls X -> dbls# mark X) (mark# s1 X -> mark# X, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# s1 X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# s1 X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# s1 X -> mark# X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# s1 X -> mark# X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# s1 X -> mark# X, mark# indx(X1, X2) -> mark# X1) (mark# s1 X -> mark# X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# s1 X -> mark# X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# s1 X -> mark# X, mark# from X -> active# from X) (mark# s1 X -> mark# X, mark# 01() -> active# 01()) (mark# s1 X -> mark# X, mark# dbl1 X -> mark# X) (mark# s1 X -> mark# X, mark# dbl1 X -> active# dbl1 mark X) (mark# s1 X -> mark# X, mark# dbl1 X -> dbl1# mark X) (mark# s1 X -> mark# X, mark# s1 X -> mark# X) (mark# s1 X -> mark# X, mark# s1 X -> active# s1 mark X) (mark# s1 X -> mark# X, mark# s1 X -> s1# mark X) (mark# s1 X -> mark# X, mark# sel1(X1, X2) -> mark# X1) (mark# s1 X -> mark# X, mark# sel1(X1, X2) -> mark# X2) (mark# s1 X -> mark# X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# s1 X -> mark# X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# s1 X -> mark# X, mark# quote X -> mark# X) (mark# s1 X -> mark# X, mark# quote X -> active# quote mark X) (mark# s1 X -> mark# X, mark# quote X -> quote# mark X) (mark# dbls X -> mark# X, mark# 0() -> active# 0()) (mark# dbls X -> mark# X, mark# dbl X -> mark# X) (mark# dbls X -> mark# X, mark# dbl X -> active# dbl mark X) (mark# dbls X -> mark# X, mark# dbl X -> dbl# mark X) (mark# dbls X -> mark# X, mark# s X -> active# s X) (mark# dbls X -> mark# X, mark# nil() -> active# nil()) (mark# dbls X -> mark# X, mark# dbls X -> mark# X) (mark# dbls X -> mark# X, mark# dbls X -> active# dbls mark X) (mark# dbls X -> mark# X, mark# dbls X -> dbls# mark X) (mark# dbls X -> mark# X, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# dbls X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# dbls X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# dbls X -> mark# X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# dbls X -> mark# X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# dbls X -> mark# X, mark# indx(X1, X2) -> mark# X1) (mark# dbls X -> mark# X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# dbls X -> mark# X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# dbls X -> mark# X, mark# from X -> active# from X) (mark# dbls X -> mark# X, mark# 01() -> active# 01()) (mark# dbls X -> mark# X, mark# dbl1 X -> mark# X) (mark# dbls X -> mark# X, mark# dbl1 X -> active# dbl1 mark X) (mark# dbls X -> mark# X, mark# dbl1 X -> dbl1# mark X) (mark# dbls X -> mark# X, mark# s1 X -> mark# X) (mark# dbls X -> mark# X, mark# s1 X -> active# s1 mark X) (mark# dbls X -> mark# X, mark# s1 X -> s1# mark X) (mark# dbls X -> mark# X, mark# sel1(X1, X2) -> mark# X1) (mark# dbls X -> mark# X, mark# sel1(X1, X2) -> mark# X2) (mark# dbls X -> mark# X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# dbls X -> mark# X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# dbls X -> mark# X, mark# quote X -> mark# X) (mark# dbls X -> mark# X, mark# quote X -> active# quote mark X) (mark# dbls X -> mark# X, mark# quote X -> quote# mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# 0() -> active# 0()) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbl X -> mark# X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbl X -> active# dbl mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbl X -> dbl# mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# s X -> active# s X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# nil() -> active# nil()) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbls X -> mark# X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbls X -> active# dbls mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbls X -> dbls# mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel(X1, X2) -> mark# X1) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel(X1, X2) -> mark# X2) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# indx(X1, X2) -> mark# X1) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# from X -> active# from X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# 01() -> active# 01()) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbl1 X -> mark# X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbl1 X -> active# dbl1 mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbl1 X -> dbl1# mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# s1 X -> mark# X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# s1 X -> active# s1 mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# s1 X -> s1# mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel1(X1, X2) -> mark# X1) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel1(X1, X2) -> mark# X2) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# quote X -> mark# X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# quote X -> active# quote mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# quote X -> quote# mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# 0() -> active# 0()) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbl X -> mark# X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbl X -> active# dbl mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbl X -> dbl# mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# s X -> active# s X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# nil() -> active# nil()) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbls X -> mark# X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbls X -> active# dbls mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbls X -> dbls# mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel(X1, X2) -> mark# X1) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel(X1, X2) -> mark# X2) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# indx(X1, X2) -> mark# X1) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# from X -> active# from X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# 01() -> active# 01()) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbl1 X -> mark# X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbl1 X -> active# dbl1 mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbl1 X -> dbl1# mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# s1 X -> mark# X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# s1 X -> active# s1 mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# s1 X -> s1# mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel1(X1, X2) -> mark# X1) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel1(X1, X2) -> mark# X2) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# quote X -> mark# X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# quote X -> active# quote mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# quote X -> quote# mark X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl 0() -> mark# 0()) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl s X -> mark# s s dbl X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl s X -> dbl# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl s X -> s# dbl X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl s X -> s# s dbl X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbls nil() -> mark# nil()) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbls cons(X, Y) -> dbl# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbls cons(X, Y) -> dbls# Y) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# sel(0(), cons(X, Y)) -> mark# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# indx(nil(), X) -> mark# nil()) (mark# cons(X1, X2) -> active# cons(X1, X2), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# cons(X1, X2) -> active# cons(X1, X2), active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# cons(X1, X2) -> active# cons(X1, X2), active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# from X -> mark# cons(X, from s X)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# from X -> s# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# from X -> cons#(X, from s X)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# from X -> from# s X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl1 0() -> mark# 01()) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl1 s X -> dbl1# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl1 s X -> s1# dbl1 X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl1 s X -> s1# s1 dbl1 X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# sel1(0(), cons(X, Y)) -> mark# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote 0() -> mark# 01()) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote dbl X -> mark# dbl1 X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote dbl X -> dbl1# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote s X -> mark# s1 quote X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote s X -> s1# quote X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote s X -> quote# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote sel(X, Y) -> sel1#(X, Y)) (active# quote s X -> s1# quote X, s1# mark X -> s1# X) (active# quote s X -> s1# quote X, s1# active X -> s1# X) (active# dbl1 s X -> s1# dbl1 X, s1# mark X -> s1# X) (active# dbl1 s X -> s1# dbl1 X, s1# active X -> s1# X) (active# dbl s X -> s# dbl X, s# mark X -> s# X) (active# dbl s X -> s# dbl X, s# active X -> s# X) (mark# s1 X -> s1# mark X, s1# mark X -> s1# X) (mark# s1 X -> s1# mark X, s1# active X -> s1# X) (mark# from X -> active# from X, active# dbl 0() -> mark# 0()) (mark# from X -> active# from X, active# dbl s X -> mark# s s dbl X) (mark# from X -> active# from X, active# dbl s X -> dbl# X) (mark# from X -> active# from X, active# dbl s X -> s# dbl X) (mark# from X -> active# from X, active# dbl s X -> s# s dbl X) (mark# from X -> active# from X, active# dbls nil() -> mark# nil()) (mark# from X -> active# from X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# from X -> active# from X, active# dbls cons(X, Y) -> dbl# X) (mark# from X -> active# from X, active# dbls cons(X, Y) -> dbls# Y) (mark# from X -> active# from X, active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# from X -> active# from X, active# sel(0(), cons(X, Y)) -> mark# X) (mark# from X -> active# from X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# from X -> active# from X, active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# from X -> active# from X, active# indx(nil(), X) -> mark# nil()) (mark# from X -> active# from X, active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# from X -> active# from X, active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# from X -> active# from X, active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# from X -> active# from X, active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# from X -> active# from X, active# from X -> mark# cons(X, from s X)) (mark# from X -> active# from X, active# from X -> s# X) (mark# from X -> active# from X, active# from X -> cons#(X, from s X)) (mark# from X -> active# from X, active# from X -> from# s X) (mark# from X -> active# from X, active# dbl1 0() -> mark# 01()) (mark# from X -> active# from X, active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# from X -> active# from X, active# dbl1 s X -> dbl1# X) (mark# from X -> active# from X, active# dbl1 s X -> s1# dbl1 X) (mark# from X -> active# from X, active# dbl1 s X -> s1# s1 dbl1 X) (mark# from X -> active# from X, active# sel1(0(), cons(X, Y)) -> mark# X) (mark# from X -> active# from X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# from X -> active# from X, active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# from X -> active# from X, active# quote 0() -> mark# 01()) (mark# from X -> active# from X, active# quote dbl X -> mark# dbl1 X) (mark# from X -> active# from X, active# quote dbl X -> dbl1# X) (mark# from X -> active# from X, active# quote s X -> mark# s1 quote X) (mark# from X -> active# from X, active# quote s X -> s1# quote X) (mark# from X -> active# from X, active# quote s X -> quote# X) (mark# from X -> active# from X, active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# from X -> active# from X, active# quote sel(X, Y) -> sel1#(X, Y)) (mark# s X -> active# s X, active# dbl 0() -> mark# 0()) (mark# s X -> active# s X, active# dbl s X -> mark# s s dbl X) (mark# s X -> active# s X, active# dbl s X -> dbl# X) (mark# s X -> active# s X, active# dbl s X -> s# dbl X) (mark# s X -> active# s X, active# dbl s X -> s# s dbl X) (mark# s X -> active# s X, active# dbls nil() -> mark# nil()) (mark# s X -> active# s X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# s X -> active# s X, active# dbls cons(X, Y) -> dbl# X) (mark# s X -> active# s X, active# dbls cons(X, Y) -> dbls# Y) (mark# s X -> active# s X, active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# s X -> active# s X, active# sel(0(), cons(X, Y)) -> mark# X) (mark# s X -> active# s X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# s X -> active# s X, active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# s X -> active# s X, active# indx(nil(), X) -> mark# nil()) (mark# s X -> active# s X, active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# s X -> active# s X, active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# s X -> active# s X, active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# s X -> active# s X, active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# s X -> active# s X, active# from X -> mark# cons(X, from s X)) (mark# s X -> active# s X, active# from X -> s# X) (mark# s X -> active# s X, active# from X -> cons#(X, from s X)) (mark# s X -> active# s X, active# from X -> from# s X) (mark# s X -> active# s X, active# dbl1 0() -> mark# 01()) (mark# s X -> active# s X, active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# s X -> active# s X, active# dbl1 s X -> dbl1# X) (mark# s X -> active# s X, active# dbl1 s X -> s1# dbl1 X) (mark# s X -> active# s X, active# dbl1 s X -> s1# s1 dbl1 X) (mark# s X -> active# s X, active# sel1(0(), cons(X, Y)) -> mark# X) (mark# s X -> active# s X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# s X -> active# s X, active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# s X -> active# s X, active# quote 0() -> mark# 01()) (mark# s X -> active# s X, active# quote dbl X -> mark# dbl1 X) (mark# s X -> active# s X, active# quote dbl X -> dbl1# X) (mark# s X -> active# s X, active# quote s X -> mark# s1 quote X) (mark# s X -> active# s X, active# quote s X -> s1# quote X) (mark# s X -> active# s X, active# quote s X -> quote# X) (mark# s X -> active# s X, active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# s X -> active# s X, active# quote sel(X, Y) -> sel1#(X, Y)) (active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z), sel1#(X1, mark X2) -> sel1#(X1, X2)) (active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z), sel1#(X1, active X2) -> sel1#(X1, X2)) (active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z), sel1#(mark X1, X2) -> sel1#(X1, X2)) (active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z), sel1#(active X1, X2) -> sel1#(X1, X2)) (active# indx(cons(X, Y), Z) -> sel#(X, Z), sel#(X1, mark X2) -> sel#(X1, X2)) (active# indx(cons(X, Y), Z) -> sel#(X, Z), sel#(X1, active X2) -> sel#(X1, X2)) (active# indx(cons(X, Y), Z) -> sel#(X, Z), sel#(mark X1, X2) -> sel#(X1, X2)) (active# indx(cons(X, Y), Z) -> sel#(X, Z), sel#(active X1, X2) -> sel#(X1, X2)) (active# dbls cons(X, Y) -> dbls# Y, dbls# mark X -> dbls# X) (active# dbls cons(X, Y) -> dbls# Y, dbls# active X -> dbls# X) (active# dbl1 s X -> s1# s1 dbl1 X, s1# mark X -> s1# X) (active# dbl1 s X -> s1# s1 dbl1 X, s1# active X -> s1# X) (mark# quote X -> active# quote mark X, active# dbl 0() -> mark# 0()) (mark# quote X -> active# quote mark X, active# dbl s X -> mark# s s dbl X) (mark# quote X -> active# quote mark X, active# dbl s X -> dbl# X) (mark# quote X -> active# quote mark X, active# dbl s X -> s# dbl X) (mark# quote X -> active# quote mark X, active# dbl s X -> s# s dbl X) (mark# quote X -> active# quote mark X, active# dbls nil() -> mark# nil()) (mark# quote X -> active# quote mark X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# quote X -> active# quote mark X, active# dbls cons(X, Y) -> dbl# X) (mark# quote X -> active# quote mark X, active# dbls cons(X, Y) -> dbls# Y) (mark# quote X -> active# quote mark X, active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# quote X -> active# quote mark X, active# sel(0(), cons(X, Y)) -> mark# X) (mark# quote X -> active# quote mark X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# quote X -> active# quote mark X, active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# quote X -> active# quote mark X, active# indx(nil(), X) -> mark# nil()) (mark# quote X -> active# quote mark X, active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# quote X -> active# quote mark X, active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# quote X -> active# quote mark X, active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# quote X -> active# quote mark X, active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# quote X -> active# quote mark X, active# from X -> mark# cons(X, from s X)) (mark# quote X -> active# quote mark X, active# from X -> s# X) (mark# quote X -> active# quote mark X, active# from X -> cons#(X, from s X)) (mark# quote X -> active# quote mark X, active# from X -> from# s X) (mark# quote X -> active# quote mark X, active# dbl1 0() -> mark# 01()) (mark# quote X -> active# quote mark X, active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# quote X -> active# quote mark X, active# dbl1 s X -> dbl1# X) (mark# quote X -> active# quote mark X, active# dbl1 s X -> s1# dbl1 X) (mark# quote X -> active# quote mark X, active# dbl1 s X -> s1# s1 dbl1 X) (mark# quote X -> active# quote mark X, active# sel1(0(), cons(X, Y)) -> mark# X) (mark# quote X -> active# quote mark X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# quote X -> active# quote mark X, active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# quote X -> active# quote mark X, active# quote 0() -> mark# 01()) (mark# quote X -> active# quote mark X, active# quote dbl X -> mark# dbl1 X) (mark# quote X -> active# quote mark X, active# quote dbl X -> dbl1# X) (mark# quote X -> active# quote mark X, active# quote s X -> mark# s1 quote X) (mark# quote X -> active# quote mark X, active# quote s X -> s1# quote X) (mark# quote X -> active# quote mark X, active# quote s X -> quote# X) (mark# quote X -> active# quote mark X, active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# quote X -> active# quote mark X, active# quote sel(X, Y) -> sel1#(X, Y)) (mark# dbl1 X -> active# dbl1 mark X, active# dbl 0() -> mark# 0()) (mark# dbl1 X -> active# dbl1 mark X, active# dbl s X -> mark# s s dbl X) (mark# dbl1 X -> active# dbl1 mark X, active# dbl s X -> dbl# X) (mark# dbl1 X -> active# dbl1 mark X, active# dbl s X -> s# dbl X) (mark# dbl1 X -> active# dbl1 mark X, active# dbl s X -> s# s dbl X) (mark# dbl1 X -> active# dbl1 mark X, active# dbls nil() -> mark# nil()) (mark# dbl1 X -> active# dbl1 mark X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# dbl1 X -> active# dbl1 mark X, active# dbls cons(X, Y) -> dbl# X) (mark# dbl1 X -> active# dbl1 mark X, active# dbls cons(X, Y) -> dbls# Y) (mark# dbl1 X -> active# dbl1 mark X, active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# dbl1 X -> active# dbl1 mark X, active# sel(0(), cons(X, Y)) -> mark# X) (mark# dbl1 X -> active# dbl1 mark X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# dbl1 X -> active# dbl1 mark X, active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# dbl1 X -> active# dbl1 mark X, active# indx(nil(), X) -> mark# nil()) (mark# dbl1 X -> active# dbl1 mark X, active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# dbl1 X -> active# dbl1 mark X, active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# dbl1 X -> active# dbl1 mark X, active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# dbl1 X -> active# dbl1 mark X, active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# dbl1 X -> active# dbl1 mark X, active# from X -> mark# cons(X, from s X)) (mark# dbl1 X -> active# dbl1 mark X, active# from X -> s# X) (mark# dbl1 X -> active# dbl1 mark X, active# from X -> cons#(X, from s X)) (mark# dbl1 X -> active# dbl1 mark X, active# from X -> from# s X) (mark# dbl1 X -> active# dbl1 mark X, active# dbl1 0() -> mark# 01()) (mark# dbl1 X -> active# dbl1 mark X, active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# dbl1 X -> active# dbl1 mark X, active# dbl1 s X -> dbl1# X) (mark# dbl1 X -> active# dbl1 mark X, active# dbl1 s X -> s1# dbl1 X) (mark# dbl1 X -> active# dbl1 mark X, active# dbl1 s X -> s1# s1 dbl1 X) (mark# dbl1 X -> active# dbl1 mark X, active# sel1(0(), cons(X, Y)) -> mark# X) (mark# dbl1 X -> active# dbl1 mark X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# dbl1 X -> active# dbl1 mark X, active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# dbl1 X -> active# dbl1 mark X, active# quote 0() -> mark# 01()) (mark# dbl1 X -> active# dbl1 mark X, active# quote dbl X -> mark# dbl1 X) (mark# dbl1 X -> active# dbl1 mark X, active# quote dbl X -> dbl1# X) (mark# dbl1 X -> active# dbl1 mark X, active# quote s X -> mark# s1 quote X) (mark# dbl1 X -> active# dbl1 mark X, active# quote s X -> s1# quote X) (mark# dbl1 X -> active# dbl1 mark X, active# quote s X -> quote# X) (mark# dbl1 X -> active# dbl1 mark X, active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# dbl1 X -> active# dbl1 mark X, active# quote sel(X, Y) -> sel1#(X, Y)) (mark# dbl X -> active# dbl mark X, active# dbl 0() -> mark# 0()) (mark# dbl X -> active# dbl mark X, active# dbl s X -> mark# s s dbl X) (mark# dbl X -> active# dbl mark X, active# dbl s X -> dbl# X) (mark# dbl X -> active# dbl mark X, active# dbl s X -> s# dbl X) (mark# dbl X -> active# dbl mark X, active# dbl s X -> s# s dbl X) (mark# dbl X -> active# dbl mark X, active# dbls nil() -> mark# nil()) (mark# dbl X -> active# dbl mark X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# dbl X -> active# dbl mark X, active# dbls cons(X, Y) -> dbl# X) (mark# dbl X -> active# dbl mark X, active# dbls cons(X, Y) -> dbls# Y) (mark# dbl X -> active# dbl mark X, active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# dbl X -> active# dbl mark X, active# sel(0(), cons(X, Y)) -> mark# X) (mark# dbl X -> active# dbl mark X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# dbl X -> active# dbl mark X, active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# dbl X -> active# dbl mark X, active# indx(nil(), X) -> mark# nil()) (mark# dbl X -> active# dbl mark X, active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# dbl X -> active# dbl mark X, active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# dbl X -> active# dbl mark X, active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# dbl X -> active# dbl mark X, active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# dbl X -> active# dbl mark X, active# from X -> mark# cons(X, from s X)) (mark# dbl X -> active# dbl mark X, active# from X -> s# X) (mark# dbl X -> active# dbl mark X, active# from X -> cons#(X, from s X)) (mark# dbl X -> active# dbl mark X, active# from X -> from# s X) (mark# dbl X -> active# dbl mark X, active# dbl1 0() -> mark# 01()) (mark# dbl X -> active# dbl mark X, active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# dbl X -> active# dbl mark X, active# dbl1 s X -> dbl1# X) (mark# dbl X -> active# dbl mark X, active# dbl1 s X -> s1# dbl1 X) (mark# dbl X -> active# dbl mark X, active# dbl1 s X -> s1# s1 dbl1 X) (mark# dbl X -> active# dbl mark X, active# sel1(0(), cons(X, Y)) -> mark# X) (mark# dbl X -> active# dbl mark X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# dbl X -> active# dbl mark X, active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# dbl X -> active# dbl mark X, active# quote 0() -> mark# 01()) (mark# dbl X -> active# dbl mark X, active# quote dbl X -> mark# dbl1 X) (mark# dbl X -> active# dbl mark X, active# quote dbl X -> dbl1# X) (mark# dbl X -> active# dbl mark X, active# quote s X -> mark# s1 quote X) (mark# dbl X -> active# dbl mark X, active# quote s X -> s1# quote X) (mark# dbl X -> active# dbl mark X, active# quote s X -> quote# X) (mark# dbl X -> active# dbl mark X, active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# dbl X -> active# dbl mark X, active# quote sel(X, Y) -> sel1#(X, Y)) (active# dbl s X -> mark# s s dbl X, mark# 0() -> active# 0()) (active# dbl s X -> mark# s s dbl X, mark# dbl X -> mark# X) (active# dbl s X -> mark# s s dbl X, mark# dbl X -> active# dbl mark X) (active# dbl s X -> mark# s s dbl X, mark# dbl X -> dbl# mark X) (active# dbl s X -> mark# s s dbl X, mark# s X -> active# s X) (active# dbl s X -> mark# s s dbl X, mark# nil() -> active# nil()) (active# dbl s X -> mark# s s dbl X, mark# dbls X -> mark# X) (active# dbl s X -> mark# s s dbl X, mark# dbls X -> active# dbls mark X) (active# dbl s X -> mark# s s dbl X, mark# dbls X -> dbls# mark X) (active# dbl s X -> mark# s s dbl X, mark# cons(X1, X2) -> active# cons(X1, X2)) (active# dbl s X -> mark# s s dbl X, mark# sel(X1, X2) -> mark# X1) (active# dbl s X -> mark# s s dbl X, mark# sel(X1, X2) -> mark# X2) (active# dbl s X -> mark# s s dbl X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# dbl s X -> mark# s s dbl X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# dbl s X -> mark# s s dbl X, mark# indx(X1, X2) -> mark# X1) (active# dbl s X -> mark# s s dbl X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# dbl s X -> mark# s s dbl X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# dbl s X -> mark# s s dbl X, mark# from X -> active# from X) (active# dbl s X -> mark# s s dbl X, mark# 01() -> active# 01()) (active# dbl s X -> mark# s s dbl X, mark# dbl1 X -> mark# X) (active# dbl s X -> mark# s s dbl X, mark# dbl1 X -> active# dbl1 mark X) (active# dbl s X -> mark# s s dbl X, mark# dbl1 X -> dbl1# mark X) (active# dbl s X -> mark# s s dbl X, mark# s1 X -> mark# X) (active# dbl s X -> mark# s s dbl X, mark# s1 X -> active# s1 mark X) (active# dbl s X -> mark# s s dbl X, mark# s1 X -> s1# mark X) (active# dbl s X -> mark# s s dbl X, mark# sel1(X1, X2) -> mark# X1) (active# dbl s X -> mark# s s dbl X, mark# sel1(X1, X2) -> mark# X2) (active# dbl s X -> mark# s s dbl X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# dbl s X -> mark# s s dbl X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# dbl s X -> mark# s s dbl X, mark# quote X -> mark# X) (active# dbl s X -> mark# s s dbl X, mark# quote X -> active# quote mark X) (active# dbl s X -> mark# s s dbl X, mark# quote X -> quote# mark X) } EDG: { (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# quote X -> quote# mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# quote X -> active# quote mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# quote X -> mark# X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel1(X1, X2) -> mark# X2) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel1(X1, X2) -> mark# X1) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# s1 X -> s1# mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# s1 X -> active# s1 mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# s1 X -> mark# X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbl1 X -> dbl1# mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbl1 X -> active# dbl1 mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbl1 X -> mark# X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# from X -> active# from X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# indx(X1, X2) -> mark# X1) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel(X1, X2) -> mark# X2) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# sel(X1, X2) -> mark# X1) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# cons(X1, X2) -> active# cons(X1, X2)) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbls X -> dbls# mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbls X -> active# dbls mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbls X -> mark# X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# s X -> active# s X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbl X -> dbl# mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbl X -> active# dbl mark X) (active# dbl1 s X -> mark# s1 s1 dbl1 X, mark# dbl X -> mark# X) (mark# dbls X -> active# dbls mark X, active# quote sel(X, Y) -> sel1#(X, Y)) (mark# dbls X -> active# dbls mark X, active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# dbls X -> active# dbls mark X, active# quote s X -> quote# X) (mark# dbls X -> active# dbls mark X, active# quote s X -> s1# quote X) (mark# dbls X -> active# dbls mark X, active# quote s X -> mark# s1 quote X) (mark# dbls X -> active# dbls mark X, active# quote dbl X -> dbl1# X) (mark# dbls X -> active# dbls mark X, active# quote dbl X -> mark# dbl1 X) (mark# dbls X -> active# dbls mark X, active# quote 0() -> mark# 01()) (mark# dbls X -> active# dbls mark X, active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# dbls X -> active# dbls mark X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# dbls X -> active# dbls mark X, active# sel1(0(), cons(X, Y)) -> mark# X) (mark# dbls X -> active# dbls mark X, active# dbl1 s X -> s1# s1 dbl1 X) (mark# dbls X -> active# dbls mark X, active# dbl1 s X -> s1# dbl1 X) (mark# dbls X -> active# dbls mark X, active# dbl1 s X -> dbl1# X) (mark# dbls X -> active# dbls mark X, active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# dbls X -> active# dbls mark X, active# dbl1 0() -> mark# 01()) (mark# dbls X -> active# dbls mark X, active# from X -> from# s X) (mark# dbls X -> active# dbls mark X, active# from X -> cons#(X, from s X)) (mark# dbls X -> active# dbls mark X, active# from X -> s# X) (mark# dbls X -> active# dbls mark X, active# from X -> mark# cons(X, from s X)) (mark# dbls X -> active# dbls mark X, active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# dbls X -> active# dbls mark X, active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# dbls X -> active# dbls mark X, active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# dbls X -> active# dbls mark X, active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# dbls X -> active# dbls mark X, active# indx(nil(), X) -> mark# nil()) (mark# dbls X -> active# dbls mark X, active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# dbls X -> active# dbls mark X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# dbls X -> active# dbls mark X, active# sel(0(), cons(X, Y)) -> mark# X) (mark# dbls X -> active# dbls mark X, active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# dbls X -> active# dbls mark X, active# dbls cons(X, Y) -> dbls# Y) (mark# dbls X -> active# dbls mark X, active# dbls cons(X, Y) -> dbl# X) (mark# dbls X -> active# dbls mark X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# dbls X -> active# dbls mark X, active# dbls nil() -> mark# nil()) (mark# dbls X -> active# dbls mark X, active# dbl s X -> s# s dbl X) (mark# dbls X -> active# dbls mark X, active# dbl s X -> s# dbl X) (mark# dbls X -> active# dbls mark X, active# dbl s X -> dbl# X) (mark# dbls X -> active# dbls mark X, active# dbl s X -> mark# s s dbl X) (mark# dbls X -> active# dbls mark X, active# dbl 0() -> mark# 0()) (mark# s1 X -> active# s1 mark X, active# quote sel(X, Y) -> sel1#(X, Y)) (mark# s1 X -> active# s1 mark X, active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# s1 X -> active# s1 mark X, active# quote s X -> quote# X) (mark# s1 X -> active# s1 mark X, active# quote s X -> s1# quote X) (mark# s1 X -> active# s1 mark X, active# quote s X -> mark# s1 quote X) (mark# s1 X -> active# s1 mark X, active# quote dbl X -> dbl1# X) (mark# s1 X -> active# s1 mark X, active# quote dbl X -> mark# dbl1 X) (mark# s1 X -> active# s1 mark X, active# quote 0() -> mark# 01()) (mark# s1 X -> active# s1 mark X, active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# s1 X -> active# s1 mark X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# s1 X -> active# s1 mark X, active# sel1(0(), cons(X, Y)) -> mark# X) (mark# s1 X -> active# s1 mark X, active# dbl1 s X -> s1# s1 dbl1 X) (mark# s1 X -> active# s1 mark X, active# dbl1 s X -> s1# dbl1 X) (mark# s1 X -> active# s1 mark X, active# dbl1 s X -> dbl1# X) (mark# s1 X -> active# s1 mark X, active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# s1 X -> active# s1 mark X, active# dbl1 0() -> mark# 01()) (mark# s1 X -> active# s1 mark X, active# from X -> from# s X) (mark# s1 X -> active# s1 mark X, active# from X -> cons#(X, from s X)) (mark# s1 X -> active# s1 mark X, active# from X -> s# X) (mark# s1 X -> active# s1 mark X, active# from X -> mark# cons(X, from s X)) (mark# s1 X -> active# s1 mark X, active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# s1 X -> active# s1 mark X, active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# s1 X -> active# s1 mark X, active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# s1 X -> active# s1 mark X, active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# s1 X -> active# s1 mark X, active# indx(nil(), X) -> mark# nil()) (mark# s1 X -> active# s1 mark X, active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# s1 X -> active# s1 mark X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# s1 X -> active# s1 mark X, active# sel(0(), cons(X, Y)) -> mark# X) (mark# s1 X -> active# s1 mark X, active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# s1 X -> active# s1 mark X, active# dbls cons(X, Y) -> dbls# Y) (mark# s1 X -> active# s1 mark X, active# dbls cons(X, Y) -> dbl# X) (mark# s1 X -> active# s1 mark X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# s1 X -> active# s1 mark X, active# dbls nil() -> mark# nil()) (mark# s1 X -> active# s1 mark X, active# dbl s X -> s# s dbl X) (mark# s1 X -> active# s1 mark X, active# dbl s X -> s# dbl X) (mark# s1 X -> active# s1 mark X, active# dbl s X -> dbl# X) (mark# s1 X -> active# s1 mark X, active# dbl s X -> mark# s s dbl X) (mark# s1 X -> active# s1 mark X, active# dbl 0() -> mark# 0()) (active# dbl s X -> s# s dbl X, s# active X -> s# X) (active# dbl s X -> s# s dbl X, s# mark X -> s# X) (active# quote s X -> mark# s1 quote X, mark# quote X -> quote# mark X) (active# quote s X -> mark# s1 quote X, mark# quote X -> active# quote mark X) (active# quote s X -> mark# s1 quote X, mark# quote X -> mark# X) (active# quote s X -> mark# s1 quote X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# quote s X -> mark# s1 quote X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# quote s X -> mark# s1 quote X, mark# sel1(X1, X2) -> mark# X2) (active# quote s X -> mark# s1 quote X, mark# sel1(X1, X2) -> mark# X1) (active# quote s X -> mark# s1 quote X, mark# s1 X -> s1# mark X) (active# quote s X -> mark# s1 quote X, mark# s1 X -> active# s1 mark X) (active# quote s X -> mark# s1 quote X, mark# s1 X -> mark# X) (active# quote s X -> mark# s1 quote X, mark# dbl1 X -> dbl1# mark X) (active# quote s X -> mark# s1 quote X, mark# dbl1 X -> active# dbl1 mark X) (active# quote s X -> mark# s1 quote X, mark# dbl1 X -> mark# X) (active# quote s X -> mark# s1 quote X, mark# from X -> active# from X) (active# quote s X -> mark# s1 quote X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# quote s X -> mark# s1 quote X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# quote s X -> mark# s1 quote X, mark# indx(X1, X2) -> mark# X1) (active# quote s X -> mark# s1 quote X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# quote s X -> mark# s1 quote X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# quote s X -> mark# s1 quote X, mark# sel(X1, X2) -> mark# X2) (active# quote s X -> mark# s1 quote X, mark# sel(X1, X2) -> mark# X1) (active# quote s X -> mark# s1 quote X, mark# cons(X1, X2) -> active# cons(X1, X2)) (active# quote s X -> mark# s1 quote X, mark# dbls X -> dbls# mark X) (active# quote s X -> mark# s1 quote X, mark# dbls X -> active# dbls mark X) (active# quote s X -> mark# s1 quote X, mark# dbls X -> mark# X) (active# quote s X -> mark# s1 quote X, mark# s X -> active# s X) (active# quote s X -> mark# s1 quote X, mark# dbl X -> dbl# mark X) (active# quote s X -> mark# s1 quote X, mark# dbl X -> active# dbl mark X) (active# quote s X -> mark# s1 quote X, mark# dbl X -> mark# X) (mark# dbl X -> dbl# mark X, dbl# active X -> dbl# X) (mark# dbl X -> dbl# mark X, dbl# mark X -> dbl# X) (mark# dbls X -> dbls# mark X, dbls# active X -> dbls# X) (mark# dbls X -> dbls# mark X, dbls# mark X -> dbls# X) (mark# dbl1 X -> dbl1# mark X, dbl1# active X -> dbl1# X) (mark# dbl1 X -> dbl1# mark X, dbl1# mark X -> dbl1# X) (mark# quote X -> quote# mark X, quote# active X -> quote# X) (mark# quote X -> quote# mark X, quote# mark X -> quote# X) (active# from X -> from# s X, from# active X -> from# X) (active# from X -> from# s X, from# mark X -> from# X) (active# quote dbl X -> mark# dbl1 X, mark# quote X -> quote# mark X) (active# quote dbl X -> mark# dbl1 X, mark# quote X -> active# quote mark X) (active# quote dbl X -> mark# dbl1 X, mark# quote X -> mark# X) (active# quote dbl X -> mark# dbl1 X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# quote dbl X -> mark# dbl1 X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# quote dbl X -> mark# dbl1 X, mark# sel1(X1, X2) -> mark# X2) (active# quote dbl X -> mark# dbl1 X, mark# sel1(X1, X2) -> mark# X1) (active# quote dbl X -> mark# dbl1 X, mark# s1 X -> s1# mark X) (active# quote dbl X -> mark# dbl1 X, mark# s1 X -> active# s1 mark X) (active# quote dbl X -> mark# dbl1 X, mark# s1 X -> mark# X) (active# quote dbl X -> mark# dbl1 X, mark# dbl1 X -> dbl1# mark X) (active# quote dbl X -> mark# dbl1 X, mark# dbl1 X -> active# dbl1 mark X) (active# quote dbl X -> mark# dbl1 X, mark# dbl1 X -> mark# X) (active# quote dbl X -> mark# dbl1 X, mark# from X -> active# from X) (active# quote dbl X -> mark# dbl1 X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# quote dbl X -> mark# dbl1 X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# quote dbl X -> mark# dbl1 X, mark# indx(X1, X2) -> mark# X1) (active# quote dbl X -> mark# dbl1 X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# quote dbl X -> mark# dbl1 X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# quote dbl X -> mark# dbl1 X, mark# sel(X1, X2) -> mark# X2) (active# quote dbl X -> mark# dbl1 X, mark# sel(X1, X2) -> mark# X1) (active# quote dbl X -> mark# dbl1 X, mark# cons(X1, X2) -> active# cons(X1, X2)) (active# quote dbl X -> mark# dbl1 X, mark# dbls X -> dbls# mark X) (active# quote dbl X -> mark# dbl1 X, mark# dbls X -> active# dbls mark X) (active# quote dbl X -> mark# dbl1 X, mark# dbls X -> mark# X) (active# quote dbl X -> mark# dbl1 X, mark# s X -> active# s X) (active# quote dbl X -> mark# dbl1 X, mark# dbl X -> dbl# mark X) (active# quote dbl X -> mark# dbl1 X, mark# dbl X -> active# dbl mark X) (active# quote dbl X -> mark# dbl1 X, mark# dbl X -> mark# X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# quote X -> quote# mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# quote X -> active# quote mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# quote X -> mark# X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel1(X1, X2) -> mark# X2) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel1(X1, X2) -> mark# X1) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# s1 X -> s1# mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# s1 X -> active# s1 mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# s1 X -> mark# X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbl1 X -> dbl1# mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbl1 X -> active# dbl1 mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbl1 X -> mark# X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# from X -> active# from X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# indx(X1, X2) -> mark# X1) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel(X1, X2) -> mark# X2) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# sel(X1, X2) -> mark# X1) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbls X -> dbls# mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbls X -> active# dbls mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbls X -> mark# X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# s X -> active# s X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbl X -> dbl# mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbl X -> active# dbl mark X) (active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), mark# dbl X -> mark# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote sel(X, Y) -> sel1#(X, Y)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote s X -> quote# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote s X -> s1# quote X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote s X -> mark# s1 quote X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote dbl X -> dbl1# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote dbl X -> mark# dbl1 X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# quote 0() -> mark# 01()) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# sel1(0(), cons(X, Y)) -> mark# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl1 s X -> s1# s1 dbl1 X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl1 s X -> s1# dbl1 X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl1 s X -> dbl1# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl1 0() -> mark# 01()) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# from X -> from# s X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# from X -> cons#(X, from s X)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# from X -> s# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# from X -> mark# cons(X, from s X)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# indx(nil(), X) -> mark# nil()) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# sel(0(), cons(X, Y)) -> mark# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbls cons(X, Y) -> dbls# Y) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbls cons(X, Y) -> dbl# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbls nil() -> mark# nil()) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl s X -> s# s dbl X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl s X -> s# dbl X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl s X -> dbl# X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl s X -> mark# s s dbl X) (mark# indx(X1, X2) -> active# indx(mark X1, X2), active# dbl 0() -> mark# 0()) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# quote X -> quote# mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# quote X -> active# quote mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# quote X -> mark# X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel1(X1, X2) -> mark# X2) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel1(X1, X2) -> mark# X1) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# s1 X -> s1# mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# s1 X -> active# s1 mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# s1 X -> mark# X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbl1 X -> dbl1# mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbl1 X -> active# dbl1 mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbl1 X -> mark# X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# from X -> active# from X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# indx(X1, X2) -> mark# X1) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel(X1, X2) -> mark# X2) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# sel(X1, X2) -> mark# X1) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbls X -> dbls# mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbls X -> active# dbls mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbls X -> mark# X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# s X -> active# s X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbl X -> dbl# mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbl X -> active# dbl mark X) (active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), mark# dbl X -> mark# X) (mark# dbl X -> mark# X, mark# quote X -> quote# mark X) (mark# dbl X -> mark# X, mark# quote X -> active# quote mark X) (mark# dbl X -> mark# X, mark# quote X -> mark# X) (mark# dbl X -> mark# X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# dbl X -> mark# X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# dbl X -> mark# X, mark# sel1(X1, X2) -> mark# X2) (mark# dbl X -> mark# X, mark# sel1(X1, X2) -> mark# X1) (mark# dbl X -> mark# X, mark# s1 X -> s1# mark X) (mark# dbl X -> mark# X, mark# s1 X -> active# s1 mark X) (mark# dbl X -> mark# X, mark# s1 X -> mark# X) (mark# dbl X -> mark# X, mark# dbl1 X -> dbl1# mark X) (mark# dbl X -> mark# X, mark# dbl1 X -> active# dbl1 mark X) (mark# dbl X -> mark# X, mark# dbl1 X -> mark# X) (mark# dbl X -> mark# X, mark# 01() -> active# 01()) (mark# dbl X -> mark# X, mark# from X -> active# from X) (mark# dbl X -> mark# X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# dbl X -> mark# X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# dbl X -> mark# X, mark# indx(X1, X2) -> mark# X1) (mark# dbl X -> mark# X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# dbl X -> mark# X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# dbl X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# dbl X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# dbl X -> mark# X, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# dbl X -> mark# X, mark# dbls X -> dbls# mark X) (mark# dbl X -> mark# X, mark# dbls X -> active# dbls mark X) (mark# dbl X -> mark# X, mark# dbls X -> mark# X) (mark# dbl X -> mark# X, mark# nil() -> active# nil()) (mark# dbl X -> mark# X, mark# s X -> active# s X) (mark# dbl X -> mark# X, mark# dbl X -> dbl# mark X) (mark# dbl X -> mark# X, mark# dbl X -> active# dbl mark X) (mark# dbl X -> mark# X, mark# dbl X -> mark# X) (mark# dbl X -> mark# X, mark# 0() -> active# 0()) (mark# dbl1 X -> mark# X, mark# quote X -> quote# mark X) (mark# dbl1 X -> mark# X, mark# quote X -> active# quote mark X) (mark# dbl1 X -> mark# X, mark# quote X -> mark# X) (mark# dbl1 X -> mark# X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# dbl1 X -> mark# X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# dbl1 X -> mark# X, mark# sel1(X1, X2) -> mark# X2) (mark# dbl1 X -> mark# X, mark# sel1(X1, X2) -> mark# X1) (mark# dbl1 X -> mark# X, mark# s1 X -> s1# mark X) (mark# dbl1 X -> mark# X, mark# s1 X -> active# s1 mark X) (mark# dbl1 X -> mark# X, mark# s1 X -> mark# X) (mark# dbl1 X -> mark# X, mark# dbl1 X -> dbl1# mark X) (mark# dbl1 X -> mark# X, mark# dbl1 X -> active# dbl1 mark X) (mark# dbl1 X -> mark# X, mark# dbl1 X -> mark# X) (mark# dbl1 X -> mark# X, mark# 01() -> active# 01()) (mark# dbl1 X -> mark# X, mark# from X -> active# from X) (mark# dbl1 X -> mark# X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# dbl1 X -> mark# X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# dbl1 X -> mark# X, mark# indx(X1, X2) -> mark# X1) (mark# dbl1 X -> mark# X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# dbl1 X -> mark# X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# dbl1 X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# dbl1 X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# dbl1 X -> mark# X, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# dbl1 X -> mark# X, mark# dbls X -> dbls# mark X) (mark# dbl1 X -> mark# X, mark# dbls X -> active# dbls mark X) (mark# dbl1 X -> mark# X, mark# dbls X -> mark# X) (mark# dbl1 X -> mark# X, mark# nil() -> active# nil()) (mark# dbl1 X -> mark# X, mark# s X -> active# s X) (mark# dbl1 X -> mark# X, mark# dbl X -> dbl# mark X) (mark# dbl1 X -> mark# X, mark# dbl X -> active# dbl mark X) (mark# dbl1 X -> mark# X, mark# dbl X -> mark# X) (mark# dbl1 X -> mark# X, mark# 0() -> active# 0()) (mark# quote X -> mark# X, mark# quote X -> quote# mark X) (mark# quote X -> mark# X, mark# quote X -> active# quote mark X) (mark# quote X -> mark# X, mark# quote X -> mark# X) (mark# quote X -> mark# X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# quote X -> mark# X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# quote X -> mark# X, mark# sel1(X1, X2) -> mark# X2) (mark# quote X -> mark# X, mark# sel1(X1, X2) -> mark# X1) (mark# quote X -> mark# X, mark# s1 X -> s1# mark X) (mark# quote X -> mark# X, mark# s1 X -> active# s1 mark X) (mark# quote X -> mark# X, mark# s1 X -> mark# X) (mark# quote X -> mark# X, mark# dbl1 X -> dbl1# mark X) (mark# quote X -> mark# X, mark# dbl1 X -> active# dbl1 mark X) (mark# quote X -> mark# X, mark# dbl1 X -> mark# X) (mark# quote X -> mark# X, mark# 01() -> active# 01()) (mark# quote X -> mark# X, mark# from X -> active# from X) (mark# quote X -> mark# X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# quote X -> mark# X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# quote X -> mark# X, mark# indx(X1, X2) -> mark# X1) (mark# quote X -> mark# X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# quote X -> mark# X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# quote X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# quote X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# quote X -> mark# X, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# quote X -> mark# X, mark# dbls X -> dbls# mark X) (mark# quote X -> mark# X, mark# dbls X -> active# dbls mark X) (mark# quote X -> mark# X, mark# dbls X -> mark# X) (mark# quote X -> mark# X, mark# nil() -> active# nil()) (mark# quote X -> mark# X, mark# s X -> active# s X) (mark# quote X -> mark# X, mark# dbl X -> dbl# mark X) (mark# quote X -> mark# X, mark# dbl X -> active# dbl mark X) (mark# quote X -> mark# X, mark# dbl X -> mark# X) (mark# quote X -> mark# X, mark# 0() -> active# 0()) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# quote X -> quote# mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# quote X -> active# quote mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# quote X -> mark# X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> mark# X2) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> mark# X1) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# s1 X -> s1# mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# s1 X -> active# s1 mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# s1 X -> mark# X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbl1 X -> dbl1# mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbl1 X -> active# dbl1 mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbl1 X -> mark# X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# 01() -> active# 01()) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# from X -> active# from X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# indx(X1, X2) -> mark# X1) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> mark# X2) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> mark# X1) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# cons(X1, X2) -> active# cons(X1, X2)) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbls X -> dbls# mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbls X -> active# dbls mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbls X -> mark# X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# nil() -> active# nil()) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# s X -> active# s X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbl X -> dbl# mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbl X -> active# dbl mark X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# dbl X -> mark# X) (active# sel1(0(), cons(X, Y)) -> mark# X, mark# 0() -> active# 0()) (dbl# active X -> dbl# X, dbl# active X -> dbl# X) (dbl# active X -> dbl# X, dbl# mark X -> dbl# X) (s# active X -> s# X, s# active X -> s# X) (s# active X -> s# X, s# mark X -> s# X) (dbls# active X -> dbls# X, dbls# active X -> dbls# X) (dbls# active X -> dbls# X, dbls# mark X -> dbls# X) (from# active X -> from# X, from# active X -> from# X) (from# active X -> from# X, from# mark X -> from# X) (dbl1# active X -> dbl1# X, dbl1# active X -> dbl1# X) (dbl1# active X -> dbl1# X, dbl1# mark X -> dbl1# X) (s1# active X -> s1# X, s1# active X -> s1# X) (s1# active X -> s1# X, s1# mark X -> s1# X) (quote# active X -> quote# X, quote# active X -> quote# X) (quote# active X -> quote# X, quote# mark X -> quote# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote sel(X, Y) -> sel1#(X, Y)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote s X -> quote# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote s X -> s1# quote X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote s X -> mark# s1 quote X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote dbl X -> dbl1# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote dbl X -> mark# dbl1 X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# quote 0() -> mark# 01()) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# sel1(0(), cons(X, Y)) -> mark# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl1 s X -> s1# s1 dbl1 X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl1 s X -> s1# dbl1 X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl1 s X -> dbl1# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl1 0() -> mark# 01()) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# from X -> from# s X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# from X -> cons#(X, from s X)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# from X -> s# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# from X -> mark# cons(X, from s X)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# indx(nil(), X) -> mark# nil()) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# sel(0(), cons(X, Y)) -> mark# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbls cons(X, Y) -> dbls# Y) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbls cons(X, Y) -> dbl# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbls nil() -> mark# nil()) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl s X -> s# s dbl X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl s X -> s# dbl X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl s X -> dbl# X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl s X -> mark# s s dbl X) (mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), active# dbl 0() -> mark# 0()) (active# from X -> mark# cons(X, from s X), mark# quote X -> quote# mark X) (active# from X -> mark# cons(X, from s X), mark# quote X -> active# quote mark X) (active# from X -> mark# cons(X, from s X), mark# quote X -> mark# X) (active# from X -> mark# cons(X, from s X), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# sel1(X1, X2) -> mark# X2) (active# from X -> mark# cons(X, from s X), mark# sel1(X1, X2) -> mark# X1) (active# from X -> mark# cons(X, from s X), mark# s1 X -> s1# mark X) (active# from X -> mark# cons(X, from s X), mark# s1 X -> active# s1 mark X) (active# from X -> mark# cons(X, from s X), mark# s1 X -> mark# X) (active# from X -> mark# cons(X, from s X), mark# dbl1 X -> dbl1# mark X) (active# from X -> mark# cons(X, from s X), mark# dbl1 X -> active# dbl1 mark X) (active# from X -> mark# cons(X, from s X), mark# dbl1 X -> mark# X) (active# from X -> mark# cons(X, from s X), mark# from X -> active# from X) (active# from X -> mark# cons(X, from s X), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# from X -> mark# cons(X, from s X), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# from X -> mark# cons(X, from s X), mark# indx(X1, X2) -> mark# X1) (active# from X -> mark# cons(X, from s X), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# sel(X1, X2) -> mark# X2) (active# from X -> mark# cons(X, from s X), mark# sel(X1, X2) -> mark# X1) (active# from X -> mark# cons(X, from s X), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# from X -> mark# cons(X, from s X), mark# dbls X -> dbls# mark X) (active# from X -> mark# cons(X, from s X), mark# dbls X -> active# dbls mark X) (active# from X -> mark# cons(X, from s X), mark# dbls X -> mark# X) (active# from X -> mark# cons(X, from s X), mark# s X -> active# s X) (active# from X -> mark# cons(X, from s X), mark# dbl X -> dbl# mark X) (active# from X -> mark# cons(X, from s X), mark# dbl X -> active# dbl mark X) (active# from X -> mark# cons(X, from s X), mark# dbl X -> mark# X) (active# dbls nil() -> mark# nil(), mark# nil() -> active# nil()) (active# dbl1 0() -> mark# 01(), mark# 01() -> active# 01()) (mark# sel(X1, X2) -> mark# X2, mark# quote X -> quote# mark X) (mark# sel(X1, X2) -> mark# X2, mark# quote X -> active# quote mark X) (mark# sel(X1, X2) -> mark# X2, mark# quote X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> mark# X2) (mark# sel(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X2, mark# s1 X -> s1# mark X) (mark# sel(X1, X2) -> mark# X2, mark# s1 X -> active# s1 mark X) (mark# sel(X1, X2) -> mark# X2, mark# s1 X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# dbl1 X -> dbl1# mark X) (mark# sel(X1, X2) -> mark# X2, mark# dbl1 X -> active# dbl1 mark X) (mark# sel(X1, X2) -> mark# X2, mark# dbl1 X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# 01() -> active# 01()) (mark# sel(X1, X2) -> mark# X2, mark# from X -> active# from X) (mark# sel(X1, X2) -> mark# X2, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# sel(X1, X2) -> mark# X2, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# sel(X1, X2) -> mark# X2, mark# indx(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> active# sel(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# cons(X1, X2) -> active# cons(X1, X2)) (mark# sel(X1, X2) -> mark# X2, mark# dbls X -> dbls# mark X) (mark# sel(X1, X2) -> mark# X2, mark# dbls X -> active# dbls mark X) (mark# sel(X1, X2) -> mark# X2, mark# dbls X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# nil() -> active# nil()) (mark# sel(X1, X2) -> mark# X2, mark# s X -> active# s X) (mark# sel(X1, X2) -> mark# X2, mark# dbl X -> dbl# mark X) (mark# sel(X1, X2) -> mark# X2, mark# dbl X -> active# dbl mark X) (mark# sel(X1, X2) -> mark# X2, mark# dbl X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# 0() -> active# 0()) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (sel#(X1, mark X2) -> sel#(X1, X2), sel#(active X1, X2) -> sel#(X1, X2)) (sel#(X1, mark X2) -> sel#(X1, X2), sel#(mark X1, X2) -> sel#(X1, X2)) (sel#(X1, mark X2) -> sel#(X1, X2), sel#(X1, active X2) -> sel#(X1, X2)) (sel#(X1, mark X2) -> sel#(X1, X2), sel#(X1, mark X2) -> sel#(X1, X2)) (sel#(mark X1, X2) -> sel#(X1, X2), sel#(active X1, X2) -> sel#(X1, X2)) (sel#(mark X1, X2) -> sel#(X1, X2), sel#(mark X1, X2) -> sel#(X1, X2)) (sel#(mark X1, X2) -> sel#(X1, X2), sel#(X1, active X2) -> sel#(X1, X2)) (sel#(mark X1, X2) -> sel#(X1, X2), sel#(X1, mark X2) -> sel#(X1, X2)) (indx#(X1, mark X2) -> indx#(X1, X2), indx#(active X1, X2) -> indx#(X1, X2)) (indx#(X1, mark X2) -> indx#(X1, X2), indx#(mark X1, X2) -> indx#(X1, X2)) (indx#(X1, mark X2) -> indx#(X1, X2), indx#(X1, active X2) -> indx#(X1, X2)) (indx#(X1, mark X2) -> indx#(X1, X2), indx#(X1, mark X2) -> indx#(X1, X2)) (indx#(mark X1, X2) -> indx#(X1, X2), indx#(active X1, X2) -> indx#(X1, X2)) (indx#(mark X1, X2) -> indx#(X1, X2), indx#(mark X1, X2) -> indx#(X1, X2)) (indx#(mark X1, X2) -> indx#(X1, X2), indx#(X1, active X2) -> indx#(X1, X2)) (indx#(mark X1, X2) -> indx#(X1, X2), indx#(X1, mark X2) -> indx#(X1, X2)) (sel1#(X1, mark X2) -> sel1#(X1, X2), sel1#(active X1, X2) -> sel1#(X1, X2)) (sel1#(X1, mark X2) -> sel1#(X1, X2), sel1#(mark X1, X2) -> sel1#(X1, X2)) (sel1#(X1, mark X2) -> sel1#(X1, X2), sel1#(X1, active X2) -> sel1#(X1, X2)) (sel1#(X1, mark X2) -> sel1#(X1, X2), sel1#(X1, mark X2) -> sel1#(X1, X2)) (sel1#(mark X1, X2) -> sel1#(X1, X2), sel1#(active X1, X2) -> sel1#(X1, X2)) (sel1#(mark X1, X2) -> sel1#(X1, X2), sel1#(mark X1, X2) -> sel1#(X1, X2)) (sel1#(mark X1, X2) -> sel1#(X1, X2), sel1#(X1, active X2) -> sel1#(X1, X2)) (sel1#(mark X1, X2) -> sel1#(X1, X2), sel1#(X1, mark X2) -> sel1#(X1, X2)) (mark# sel(X1, X2) -> mark# X1, mark# quote X -> quote# mark X) (mark# sel(X1, X2) -> mark# X1, mark# quote X -> active# quote mark X) (mark# sel(X1, X2) -> mark# X1, mark# quote X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X2) (mark# sel(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X1, mark# s1 X -> s1# mark X) (mark# sel(X1, X2) -> mark# X1, mark# s1 X -> active# s1 mark X) (mark# sel(X1, X2) -> mark# X1, mark# s1 X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# dbl1 X -> dbl1# mark X) (mark# sel(X1, X2) -> mark# X1, mark# dbl1 X -> active# dbl1 mark X) (mark# sel(X1, X2) -> mark# X1, mark# dbl1 X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# 01() -> active# 01()) (mark# sel(X1, X2) -> mark# X1, mark# from X -> active# from X) (mark# sel(X1, X2) -> mark# X1, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# sel(X1, X2) -> mark# X1, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# sel(X1, X2) -> mark# X1, mark# indx(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> active# sel(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# cons(X1, X2) -> active# cons(X1, X2)) (mark# sel(X1, X2) -> mark# X1, mark# dbls X -> dbls# mark X) (mark# sel(X1, X2) -> mark# X1, mark# dbls X -> active# dbls mark X) (mark# sel(X1, X2) -> mark# X1, mark# dbls X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# nil() -> active# nil()) (mark# sel(X1, X2) -> mark# X1, mark# s X -> active# s X) (mark# sel(X1, X2) -> mark# X1, mark# dbl X -> dbl# mark X) (mark# sel(X1, X2) -> mark# X1, mark# dbl X -> active# dbl mark X) (mark# sel(X1, X2) -> mark# X1, mark# dbl X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# sel1(X1, X2) -> mark# X1, mark# quote X -> quote# mark X) (mark# sel1(X1, X2) -> mark# X1, mark# quote X -> active# quote mark X) (mark# sel1(X1, X2) -> mark# X1, mark# quote X -> mark# X) (mark# sel1(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X2) (mark# sel1(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X1) (mark# sel1(X1, X2) -> mark# X1, mark# s1 X -> s1# mark X) (mark# sel1(X1, X2) -> mark# X1, mark# s1 X -> active# s1 mark X) (mark# sel1(X1, X2) -> mark# X1, mark# s1 X -> mark# X) (mark# sel1(X1, X2) -> mark# X1, mark# dbl1 X -> dbl1# mark X) (mark# sel1(X1, X2) -> mark# X1, mark# dbl1 X -> active# dbl1 mark X) (mark# sel1(X1, X2) -> mark# X1, mark# dbl1 X -> mark# X) (mark# sel1(X1, X2) -> mark# X1, mark# 01() -> active# 01()) (mark# sel1(X1, X2) -> mark# X1, mark# from X -> active# from X) (mark# sel1(X1, X2) -> mark# X1, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# sel1(X1, X2) -> mark# X1, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# sel1(X1, X2) -> mark# X1, mark# indx(X1, X2) -> mark# X1) (mark# sel1(X1, X2) -> mark# X1, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X1, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2) (mark# sel1(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X1) (mark# sel1(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# sel1(X1, X2) -> mark# X1, mark# dbls X -> dbls# mark X) (mark# sel1(X1, X2) -> mark# X1, mark# dbls X -> active# dbls mark X) (mark# sel1(X1, X2) -> mark# X1, mark# dbls X -> mark# X) (mark# sel1(X1, X2) -> mark# X1, mark# nil() -> active# nil()) (mark# sel1(X1, X2) -> mark# X1, mark# s X -> active# s X) (mark# sel1(X1, X2) -> mark# X1, mark# dbl X -> dbl# mark X) (mark# sel1(X1, X2) -> mark# X1, mark# dbl X -> active# dbl mark X) (mark# sel1(X1, X2) -> mark# X1, mark# dbl X -> mark# X) (mark# sel1(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# sel1(X1, X2) -> sel1#(mark X1, mark X2), sel1#(active X1, X2) -> sel1#(X1, X2)) (mark# sel1(X1, X2) -> sel1#(mark X1, mark X2), sel1#(mark X1, X2) -> sel1#(X1, X2)) (mark# sel1(X1, X2) -> sel1#(mark X1, mark X2), sel1#(X1, active X2) -> sel1#(X1, X2)) (mark# sel1(X1, X2) -> sel1#(mark X1, mark X2), sel1#(X1, mark X2) -> sel1#(X1, X2)) (active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z)), cons#(active X1, X2) -> cons#(X1, X2)) (active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z)), cons#(mark X1, X2) -> cons#(X1, X2)) (active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z)), cons#(X1, active X2) -> cons#(X1, X2)) (active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z)), cons#(X1, mark X2) -> cons#(X1, X2)) (active# from X -> cons#(X, from s X), cons#(X1, mark X2) -> cons#(X1, X2)) (active# from X -> cons#(X, from s X), cons#(X1, active X2) -> cons#(X1, X2)) (active# dbls cons(X, Y) -> cons#(dbl X, dbls Y), cons#(X1, mark X2) -> cons#(X1, X2)) (active# dbls cons(X, Y) -> cons#(dbl X, dbls Y), cons#(X1, active X2) -> cons#(X1, X2)) (active# dbls cons(X, Y) -> cons#(dbl X, dbls Y), cons#(mark X1, X2) -> cons#(X1, X2)) (active# dbls cons(X, Y) -> cons#(dbl X, dbls Y), cons#(active X1, X2) -> cons#(X1, X2)) (mark# sel(X1, X2) -> sel#(mark X1, mark X2), sel#(X1, mark X2) -> sel#(X1, X2)) (mark# sel(X1, X2) -> sel#(mark X1, mark X2), sel#(X1, active X2) -> sel#(X1, X2)) (mark# sel(X1, X2) -> sel#(mark X1, mark X2), sel#(mark X1, X2) -> sel#(X1, X2)) (mark# sel(X1, X2) -> sel#(mark X1, mark X2), sel#(active X1, X2) -> sel#(X1, X2)) (mark# indx(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# indx(X1, X2) -> mark# X1, mark# dbl X -> mark# X) (mark# indx(X1, X2) -> mark# X1, mark# dbl X -> active# dbl mark X) (mark# indx(X1, X2) -> mark# X1, mark# dbl X -> dbl# mark X) (mark# indx(X1, X2) -> mark# X1, mark# s X -> active# s X) (mark# indx(X1, X2) -> mark# X1, mark# nil() -> active# nil()) (mark# indx(X1, X2) -> mark# X1, mark# dbls X -> mark# X) (mark# indx(X1, X2) -> mark# X1, mark# dbls X -> active# dbls mark X) (mark# indx(X1, X2) -> mark# X1, mark# dbls X -> dbls# mark X) (mark# indx(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# indx(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X1) (mark# indx(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2) (mark# indx(X1, X2) -> mark# X1, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# indx(X1, X2) -> mark# X1, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# indx(X1, X2) -> mark# X1, mark# indx(X1, X2) -> mark# X1) (mark# indx(X1, X2) -> mark# X1, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# indx(X1, X2) -> mark# X1, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# indx(X1, X2) -> mark# X1, mark# from X -> active# from X) (mark# indx(X1, X2) -> mark# X1, mark# 01() -> active# 01()) (mark# indx(X1, X2) -> mark# X1, mark# dbl1 X -> mark# X) (mark# indx(X1, X2) -> mark# X1, mark# dbl1 X -> active# dbl1 mark X) (mark# indx(X1, X2) -> mark# X1, mark# dbl1 X -> dbl1# mark X) (mark# indx(X1, X2) -> mark# X1, mark# s1 X -> mark# X) (mark# indx(X1, X2) -> mark# X1, mark# s1 X -> active# s1 mark X) (mark# indx(X1, X2) -> mark# X1, mark# s1 X -> s1# mark X) (mark# indx(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X1) (mark# indx(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X2) (mark# indx(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# indx(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# indx(X1, X2) -> mark# X1, mark# quote X -> mark# X) (mark# indx(X1, X2) -> mark# X1, mark# quote X -> active# quote mark X) (mark# indx(X1, X2) -> mark# X1, mark# quote X -> quote# mark X) (sel1#(active X1, X2) -> sel1#(X1, X2), sel1#(X1, mark X2) -> sel1#(X1, X2)) (sel1#(active X1, X2) -> sel1#(X1, X2), sel1#(X1, active X2) -> sel1#(X1, X2)) (sel1#(active X1, X2) -> sel1#(X1, X2), sel1#(mark X1, X2) -> sel1#(X1, X2)) (sel1#(active X1, X2) -> sel1#(X1, X2), sel1#(active X1, X2) -> sel1#(X1, X2)) (sel1#(X1, active X2) -> sel1#(X1, X2), sel1#(X1, mark X2) -> sel1#(X1, X2)) (sel1#(X1, active X2) -> sel1#(X1, X2), sel1#(X1, active X2) -> sel1#(X1, X2)) (sel1#(X1, active X2) -> sel1#(X1, X2), sel1#(mark X1, X2) -> sel1#(X1, X2)) (sel1#(X1, active X2) -> sel1#(X1, X2), sel1#(active X1, X2) -> sel1#(X1, X2)) (indx#(active X1, X2) -> indx#(X1, X2), indx#(X1, mark X2) -> indx#(X1, X2)) (indx#(active X1, X2) -> indx#(X1, X2), indx#(X1, active X2) -> indx#(X1, X2)) (indx#(active X1, X2) -> indx#(X1, X2), indx#(mark X1, X2) -> indx#(X1, X2)) (indx#(active X1, X2) -> indx#(X1, X2), indx#(active X1, X2) -> indx#(X1, X2)) (indx#(X1, active X2) -> indx#(X1, X2), indx#(X1, mark X2) -> indx#(X1, X2)) (indx#(X1, active X2) -> indx#(X1, X2), indx#(X1, active X2) -> indx#(X1, X2)) (indx#(X1, active X2) -> indx#(X1, X2), indx#(mark X1, X2) -> indx#(X1, X2)) (indx#(X1, active X2) -> indx#(X1, X2), indx#(active X1, X2) -> indx#(X1, X2)) (sel#(active X1, X2) -> sel#(X1, X2), sel#(X1, mark X2) -> sel#(X1, X2)) (sel#(active X1, X2) -> sel#(X1, X2), sel#(X1, active X2) -> sel#(X1, X2)) (sel#(active X1, X2) -> sel#(X1, X2), sel#(mark X1, X2) -> sel#(X1, X2)) (sel#(active X1, X2) -> sel#(X1, X2), sel#(active X1, X2) -> sel#(X1, X2)) (sel#(X1, active X2) -> sel#(X1, X2), sel#(X1, mark X2) -> sel#(X1, X2)) (sel#(X1, active X2) -> sel#(X1, X2), sel#(X1, active X2) -> sel#(X1, X2)) (sel#(X1, active X2) -> sel#(X1, X2), sel#(mark X1, X2) -> sel#(X1, X2)) (sel#(X1, active X2) -> sel#(X1, X2), sel#(active X1, X2) -> sel#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (cons#(X1, active X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (cons#(X1, active X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(X1, active X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (mark# sel1(X1, X2) -> mark# X2, mark# 0() -> active# 0()) (mark# sel1(X1, X2) -> mark# X2, mark# dbl X -> mark# X) (mark# sel1(X1, X2) -> mark# X2, mark# dbl X -> active# dbl mark X) (mark# sel1(X1, X2) -> mark# X2, mark# dbl X -> dbl# mark X) (mark# sel1(X1, X2) -> mark# X2, mark# s X -> active# s X) (mark# sel1(X1, X2) -> mark# X2, mark# nil() -> active# nil()) (mark# sel1(X1, X2) -> mark# X2, mark# dbls X -> mark# X) (mark# sel1(X1, X2) -> mark# X2, mark# dbls X -> active# dbls mark X) (mark# sel1(X1, X2) -> mark# X2, mark# dbls X -> dbls# mark X) (mark# sel1(X1, X2) -> mark# X2, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# sel1(X1, X2) -> mark# X2, mark# sel(X1, X2) -> mark# X1) (mark# sel1(X1, X2) -> mark# X2, mark# sel(X1, X2) -> mark# X2) (mark# sel1(X1, X2) -> mark# X2, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X2, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X2, mark# indx(X1, X2) -> mark# X1) (mark# sel1(X1, X2) -> mark# X2, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# sel1(X1, X2) -> mark# X2, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# sel1(X1, X2) -> mark# X2, mark# from X -> active# from X) (mark# sel1(X1, X2) -> mark# X2, mark# 01() -> active# 01()) (mark# sel1(X1, X2) -> mark# X2, mark# dbl1 X -> mark# X) (mark# sel1(X1, X2) -> mark# X2, mark# dbl1 X -> active# dbl1 mark X) (mark# sel1(X1, X2) -> mark# X2, mark# dbl1 X -> dbl1# mark X) (mark# sel1(X1, X2) -> mark# X2, mark# s1 X -> mark# X) (mark# sel1(X1, X2) -> mark# X2, mark# s1 X -> active# s1 mark X) (mark# sel1(X1, X2) -> mark# X2, mark# s1 X -> s1# mark X) (mark# sel1(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> mark# X1) (mark# sel1(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> mark# X2) (mark# sel1(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# sel1(X1, X2) -> mark# X2, mark# quote X -> mark# X) (mark# sel1(X1, X2) -> mark# X2, mark# quote X -> active# quote mark X) (mark# sel1(X1, X2) -> mark# X2, mark# quote X -> quote# mark X) (active# quote 0() -> mark# 01(), mark# 01() -> active# 01()) (active# indx(nil(), X) -> mark# nil(), mark# nil() -> active# nil()) (active# dbl 0() -> mark# 0(), mark# 0() -> active# 0()) (mark# indx(X1, X2) -> indx#(mark X1, X2), indx#(mark X1, X2) -> indx#(X1, X2)) (mark# indx(X1, X2) -> indx#(mark X1, X2), indx#(active X1, X2) -> indx#(X1, X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbl X -> mark# X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbl X -> active# dbl mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbl X -> dbl# mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# s X -> active# s X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbls X -> mark# X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbls X -> active# dbls mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbls X -> dbls# mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel(X1, X2) -> mark# X1) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel(X1, X2) -> mark# X2) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# indx(X1, X2) -> mark# X1) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# from X -> active# from X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbl1 X -> mark# X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbl1 X -> active# dbl1 mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# dbl1 X -> dbl1# mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# s1 X -> mark# X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# s1 X -> active# s1 mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# s1 X -> s1# mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel1(X1, X2) -> mark# X1) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel1(X1, X2) -> mark# X2) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# quote X -> mark# X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# quote X -> active# quote mark X) (active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), mark# quote X -> quote# mark X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl 0() -> mark# 0()) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl s X -> mark# s s dbl X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl s X -> dbl# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl s X -> s# dbl X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl s X -> s# s dbl X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbls nil() -> mark# nil()) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbls cons(X, Y) -> dbl# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbls cons(X, Y) -> dbls# Y) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# sel(0(), cons(X, Y)) -> mark# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# indx(nil(), X) -> mark# nil()) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# from X -> mark# cons(X, from s X)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# from X -> s# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# from X -> cons#(X, from s X)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# from X -> from# s X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl1 0() -> mark# 01()) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl1 s X -> dbl1# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl1 s X -> s1# dbl1 X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# dbl1 s X -> s1# s1 dbl1 X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# sel1(0(), cons(X, Y)) -> mark# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote 0() -> mark# 01()) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote dbl X -> mark# dbl1 X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote dbl X -> dbl1# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote s X -> mark# s1 quote X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote s X -> s1# quote X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote s X -> quote# X) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# sel(X1, X2) -> active# sel(mark X1, mark X2), active# quote sel(X, Y) -> sel1#(X, Y)) (quote# mark X -> quote# X, quote# mark X -> quote# X) (quote# mark X -> quote# X, quote# active X -> quote# X) (s1# mark X -> s1# X, s1# mark X -> s1# X) (s1# mark X -> s1# X, s1# active X -> s1# X) (dbl1# mark X -> dbl1# X, dbl1# mark X -> dbl1# X) (dbl1# mark X -> dbl1# X, dbl1# active X -> dbl1# X) (from# mark X -> from# X, from# mark X -> from# X) (from# mark X -> from# X, from# active X -> from# X) (dbls# mark X -> dbls# X, dbls# mark X -> dbls# X) (dbls# mark X -> dbls# X, dbls# active X -> dbls# X) (s# mark X -> s# X, s# mark X -> s# X) (s# mark X -> s# X, s# active X -> s# X) (dbl# mark X -> dbl# X, dbl# mark X -> dbl# X) (dbl# mark X -> dbl# X, dbl# active X -> dbl# X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# 0() -> active# 0()) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbl X -> mark# X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbl X -> active# dbl mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbl X -> dbl# mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# s X -> active# s X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# nil() -> active# nil()) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbls X -> mark# X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbls X -> active# dbls mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbls X -> dbls# mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# cons(X1, X2) -> active# cons(X1, X2)) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> mark# X1) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> mark# X2) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# sel(0(), cons(X, Y)) -> mark# X, mark# indx(X1, X2) -> mark# X1) (active# sel(0(), cons(X, Y)) -> mark# X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# sel(0(), cons(X, Y)) -> mark# X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# sel(0(), cons(X, Y)) -> mark# X, mark# from X -> active# from X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# 01() -> active# 01()) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbl1 X -> mark# X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbl1 X -> active# dbl1 mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# dbl1 X -> dbl1# mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# s1 X -> mark# X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# s1 X -> active# s1 mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# s1 X -> s1# mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> mark# X1) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> mark# X2) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# sel(0(), cons(X, Y)) -> mark# X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# sel(0(), cons(X, Y)) -> mark# X, mark# quote X -> mark# X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# quote X -> active# quote mark X) (active# sel(0(), cons(X, Y)) -> mark# X, mark# quote X -> quote# mark X) (mark# s1 X -> mark# X, mark# 0() -> active# 0()) (mark# s1 X -> mark# X, mark# dbl X -> mark# X) (mark# s1 X -> mark# X, mark# dbl X -> active# dbl mark X) (mark# s1 X -> mark# X, mark# dbl X -> dbl# mark X) (mark# s1 X -> mark# X, mark# s X -> active# s X) (mark# s1 X -> mark# X, mark# nil() -> active# nil()) (mark# s1 X -> mark# X, mark# dbls X -> mark# X) (mark# s1 X -> mark# X, mark# dbls X -> active# dbls mark X) (mark# s1 X -> mark# X, mark# dbls X -> dbls# mark X) (mark# s1 X -> mark# X, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# s1 X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# s1 X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# s1 X -> mark# X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# s1 X -> mark# X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# s1 X -> mark# X, mark# indx(X1, X2) -> mark# X1) (mark# s1 X -> mark# X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# s1 X -> mark# X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# s1 X -> mark# X, mark# from X -> active# from X) (mark# s1 X -> mark# X, mark# 01() -> active# 01()) (mark# s1 X -> mark# X, mark# dbl1 X -> mark# X) (mark# s1 X -> mark# X, mark# dbl1 X -> active# dbl1 mark X) (mark# s1 X -> mark# X, mark# dbl1 X -> dbl1# mark X) (mark# s1 X -> mark# X, mark# s1 X -> mark# X) (mark# s1 X -> mark# X, mark# s1 X -> active# s1 mark X) (mark# s1 X -> mark# X, mark# s1 X -> s1# mark X) (mark# s1 X -> mark# X, mark# sel1(X1, X2) -> mark# X1) (mark# s1 X -> mark# X, mark# sel1(X1, X2) -> mark# X2) (mark# s1 X -> mark# X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# s1 X -> mark# X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# s1 X -> mark# X, mark# quote X -> mark# X) (mark# s1 X -> mark# X, mark# quote X -> active# quote mark X) (mark# s1 X -> mark# X, mark# quote X -> quote# mark X) (mark# dbls X -> mark# X, mark# 0() -> active# 0()) (mark# dbls X -> mark# X, mark# dbl X -> mark# X) (mark# dbls X -> mark# X, mark# dbl X -> active# dbl mark X) (mark# dbls X -> mark# X, mark# dbl X -> dbl# mark X) (mark# dbls X -> mark# X, mark# s X -> active# s X) (mark# dbls X -> mark# X, mark# nil() -> active# nil()) (mark# dbls X -> mark# X, mark# dbls X -> mark# X) (mark# dbls X -> mark# X, mark# dbls X -> active# dbls mark X) (mark# dbls X -> mark# X, mark# dbls X -> dbls# mark X) (mark# dbls X -> mark# X, mark# cons(X1, X2) -> active# cons(X1, X2)) (mark# dbls X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# dbls X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# dbls X -> mark# X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (mark# dbls X -> mark# X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (mark# dbls X -> mark# X, mark# indx(X1, X2) -> mark# X1) (mark# dbls X -> mark# X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (mark# dbls X -> mark# X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (mark# dbls X -> mark# X, mark# from X -> active# from X) (mark# dbls X -> mark# X, mark# 01() -> active# 01()) (mark# dbls X -> mark# X, mark# dbl1 X -> mark# X) (mark# dbls X -> mark# X, mark# dbl1 X -> active# dbl1 mark X) (mark# dbls X -> mark# X, mark# dbl1 X -> dbl1# mark X) (mark# dbls X -> mark# X, mark# s1 X -> mark# X) (mark# dbls X -> mark# X, mark# s1 X -> active# s1 mark X) (mark# dbls X -> mark# X, mark# s1 X -> s1# mark X) (mark# dbls X -> mark# X, mark# sel1(X1, X2) -> mark# X1) (mark# dbls X -> mark# X, mark# sel1(X1, X2) -> mark# X2) (mark# dbls X -> mark# X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (mark# dbls X -> mark# X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (mark# dbls X -> mark# X, mark# quote X -> mark# X) (mark# dbls X -> mark# X, mark# quote X -> active# quote mark X) (mark# dbls X -> mark# X, mark# quote X -> quote# mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbl X -> mark# X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbl X -> active# dbl mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbl X -> dbl# mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# s X -> active# s X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbls X -> mark# X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbls X -> active# dbls mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbls X -> dbls# mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel(X1, X2) -> mark# X1) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel(X1, X2) -> mark# X2) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# indx(X1, X2) -> mark# X1) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# from X -> active# from X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbl1 X -> mark# X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbl1 X -> active# dbl1 mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# dbl1 X -> dbl1# mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# s1 X -> mark# X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# s1 X -> active# s1 mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# s1 X -> s1# mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel1(X1, X2) -> mark# X1) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel1(X1, X2) -> mark# X2) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# quote X -> mark# X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# quote X -> active# quote mark X) (active# quote sel(X, Y) -> mark# sel1(X, Y), mark# quote X -> quote# mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbl X -> mark# X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbl X -> active# dbl mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbl X -> dbl# mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# s X -> active# s X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbls X -> mark# X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbls X -> active# dbls mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbls X -> dbls# mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# cons(X1, X2) -> active# cons(X1, X2)) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel(X1, X2) -> mark# X1) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel(X1, X2) -> mark# X2) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# indx(X1, X2) -> mark# X1) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# from X -> active# from X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbl1 X -> mark# X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbl1 X -> active# dbl1 mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# dbl1 X -> dbl1# mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# s1 X -> mark# X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# s1 X -> active# s1 mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# s1 X -> s1# mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel1(X1, X2) -> mark# X1) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel1(X1, X2) -> mark# X2) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# quote X -> mark# X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# quote X -> active# quote mark X) (active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), mark# quote X -> quote# mark X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl 0() -> mark# 0()) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl s X -> mark# s s dbl X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl s X -> dbl# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl s X -> s# dbl X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl s X -> s# s dbl X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbls nil() -> mark# nil()) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbls cons(X, Y) -> dbl# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbls cons(X, Y) -> dbls# Y) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# sel(0(), cons(X, Y)) -> mark# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# indx(nil(), X) -> mark# nil()) (mark# cons(X1, X2) -> active# cons(X1, X2), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# cons(X1, X2) -> active# cons(X1, X2), active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# cons(X1, X2) -> active# cons(X1, X2), active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# from X -> mark# cons(X, from s X)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# from X -> s# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# from X -> cons#(X, from s X)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# from X -> from# s X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl1 0() -> mark# 01()) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl1 s X -> dbl1# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl1 s X -> s1# dbl1 X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# dbl1 s X -> s1# s1 dbl1 X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# sel1(0(), cons(X, Y)) -> mark# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote 0() -> mark# 01()) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote dbl X -> mark# dbl1 X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote dbl X -> dbl1# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote s X -> mark# s1 quote X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote s X -> s1# quote X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote s X -> quote# X) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# cons(X1, X2) -> active# cons(X1, X2), active# quote sel(X, Y) -> sel1#(X, Y)) (active# quote s X -> s1# quote X, s1# mark X -> s1# X) (active# quote s X -> s1# quote X, s1# active X -> s1# X) (active# dbl1 s X -> s1# dbl1 X, s1# mark X -> s1# X) (active# dbl1 s X -> s1# dbl1 X, s1# active X -> s1# X) (active# dbl s X -> s# dbl X, s# mark X -> s# X) (active# dbl s X -> s# dbl X, s# active X -> s# X) (mark# s1 X -> s1# mark X, s1# mark X -> s1# X) (mark# s1 X -> s1# mark X, s1# active X -> s1# X) (mark# from X -> active# from X, active# dbl 0() -> mark# 0()) (mark# from X -> active# from X, active# dbl s X -> mark# s s dbl X) (mark# from X -> active# from X, active# dbl s X -> dbl# X) (mark# from X -> active# from X, active# dbl s X -> s# dbl X) (mark# from X -> active# from X, active# dbl s X -> s# s dbl X) (mark# from X -> active# from X, active# dbls nil() -> mark# nil()) (mark# from X -> active# from X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# from X -> active# from X, active# dbls cons(X, Y) -> dbl# X) (mark# from X -> active# from X, active# dbls cons(X, Y) -> dbls# Y) (mark# from X -> active# from X, active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# from X -> active# from X, active# sel(0(), cons(X, Y)) -> mark# X) (mark# from X -> active# from X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# from X -> active# from X, active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# from X -> active# from X, active# indx(nil(), X) -> mark# nil()) (mark# from X -> active# from X, active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# from X -> active# from X, active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# from X -> active# from X, active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# from X -> active# from X, active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# from X -> active# from X, active# from X -> mark# cons(X, from s X)) (mark# from X -> active# from X, active# from X -> s# X) (mark# from X -> active# from X, active# from X -> cons#(X, from s X)) (mark# from X -> active# from X, active# from X -> from# s X) (mark# from X -> active# from X, active# dbl1 0() -> mark# 01()) (mark# from X -> active# from X, active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# from X -> active# from X, active# dbl1 s X -> dbl1# X) (mark# from X -> active# from X, active# dbl1 s X -> s1# dbl1 X) (mark# from X -> active# from X, active# dbl1 s X -> s1# s1 dbl1 X) (mark# from X -> active# from X, active# sel1(0(), cons(X, Y)) -> mark# X) (mark# from X -> active# from X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# from X -> active# from X, active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# from X -> active# from X, active# quote 0() -> mark# 01()) (mark# from X -> active# from X, active# quote dbl X -> mark# dbl1 X) (mark# from X -> active# from X, active# quote dbl X -> dbl1# X) (mark# from X -> active# from X, active# quote s X -> mark# s1 quote X) (mark# from X -> active# from X, active# quote s X -> s1# quote X) (mark# from X -> active# from X, active# quote s X -> quote# X) (mark# from X -> active# from X, active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# from X -> active# from X, active# quote sel(X, Y) -> sel1#(X, Y)) (mark# s X -> active# s X, active# dbl 0() -> mark# 0()) (mark# s X -> active# s X, active# dbl s X -> mark# s s dbl X) (mark# s X -> active# s X, active# dbl s X -> dbl# X) (mark# s X -> active# s X, active# dbl s X -> s# dbl X) (mark# s X -> active# s X, active# dbl s X -> s# s dbl X) (mark# s X -> active# s X, active# dbls nil() -> mark# nil()) (mark# s X -> active# s X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# s X -> active# s X, active# dbls cons(X, Y) -> dbl# X) (mark# s X -> active# s X, active# dbls cons(X, Y) -> dbls# Y) (mark# s X -> active# s X, active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# s X -> active# s X, active# sel(0(), cons(X, Y)) -> mark# X) (mark# s X -> active# s X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# s X -> active# s X, active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# s X -> active# s X, active# indx(nil(), X) -> mark# nil()) (mark# s X -> active# s X, active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# s X -> active# s X, active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# s X -> active# s X, active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# s X -> active# s X, active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# s X -> active# s X, active# from X -> mark# cons(X, from s X)) (mark# s X -> active# s X, active# from X -> s# X) (mark# s X -> active# s X, active# from X -> cons#(X, from s X)) (mark# s X -> active# s X, active# from X -> from# s X) (mark# s X -> active# s X, active# dbl1 0() -> mark# 01()) (mark# s X -> active# s X, active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# s X -> active# s X, active# dbl1 s X -> dbl1# X) (mark# s X -> active# s X, active# dbl1 s X -> s1# dbl1 X) (mark# s X -> active# s X, active# dbl1 s X -> s1# s1 dbl1 X) (mark# s X -> active# s X, active# sel1(0(), cons(X, Y)) -> mark# X) (mark# s X -> active# s X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# s X -> active# s X, active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# s X -> active# s X, active# quote 0() -> mark# 01()) (mark# s X -> active# s X, active# quote dbl X -> mark# dbl1 X) (mark# s X -> active# s X, active# quote dbl X -> dbl1# X) (mark# s X -> active# s X, active# quote s X -> mark# s1 quote X) (mark# s X -> active# s X, active# quote s X -> s1# quote X) (mark# s X -> active# s X, active# quote s X -> quote# X) (mark# s X -> active# s X, active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# s X -> active# s X, active# quote sel(X, Y) -> sel1#(X, Y)) (active# dbl1 s X -> s1# s1 dbl1 X, s1# mark X -> s1# X) (active# dbl1 s X -> s1# s1 dbl1 X, s1# active X -> s1# X) (mark# quote X -> active# quote mark X, active# dbl 0() -> mark# 0()) (mark# quote X -> active# quote mark X, active# dbl s X -> mark# s s dbl X) (mark# quote X -> active# quote mark X, active# dbl s X -> dbl# X) (mark# quote X -> active# quote mark X, active# dbl s X -> s# dbl X) (mark# quote X -> active# quote mark X, active# dbl s X -> s# s dbl X) (mark# quote X -> active# quote mark X, active# dbls nil() -> mark# nil()) (mark# quote X -> active# quote mark X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# quote X -> active# quote mark X, active# dbls cons(X, Y) -> dbl# X) (mark# quote X -> active# quote mark X, active# dbls cons(X, Y) -> dbls# Y) (mark# quote X -> active# quote mark X, active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# quote X -> active# quote mark X, active# sel(0(), cons(X, Y)) -> mark# X) (mark# quote X -> active# quote mark X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# quote X -> active# quote mark X, active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# quote X -> active# quote mark X, active# indx(nil(), X) -> mark# nil()) (mark# quote X -> active# quote mark X, active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# quote X -> active# quote mark X, active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# quote X -> active# quote mark X, active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# quote X -> active# quote mark X, active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# quote X -> active# quote mark X, active# from X -> mark# cons(X, from s X)) (mark# quote X -> active# quote mark X, active# from X -> s# X) (mark# quote X -> active# quote mark X, active# from X -> cons#(X, from s X)) (mark# quote X -> active# quote mark X, active# from X -> from# s X) (mark# quote X -> active# quote mark X, active# dbl1 0() -> mark# 01()) (mark# quote X -> active# quote mark X, active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# quote X -> active# quote mark X, active# dbl1 s X -> dbl1# X) (mark# quote X -> active# quote mark X, active# dbl1 s X -> s1# dbl1 X) (mark# quote X -> active# quote mark X, active# dbl1 s X -> s1# s1 dbl1 X) (mark# quote X -> active# quote mark X, active# sel1(0(), cons(X, Y)) -> mark# X) (mark# quote X -> active# quote mark X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# quote X -> active# quote mark X, active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# quote X -> active# quote mark X, active# quote 0() -> mark# 01()) (mark# quote X -> active# quote mark X, active# quote dbl X -> mark# dbl1 X) (mark# quote X -> active# quote mark X, active# quote dbl X -> dbl1# X) (mark# quote X -> active# quote mark X, active# quote s X -> mark# s1 quote X) (mark# quote X -> active# quote mark X, active# quote s X -> s1# quote X) (mark# quote X -> active# quote mark X, active# quote s X -> quote# X) (mark# quote X -> active# quote mark X, active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# quote X -> active# quote mark X, active# quote sel(X, Y) -> sel1#(X, Y)) (mark# dbl1 X -> active# dbl1 mark X, active# dbl 0() -> mark# 0()) (mark# dbl1 X -> active# dbl1 mark X, active# dbl s X -> mark# s s dbl X) (mark# dbl1 X -> active# dbl1 mark X, active# dbl s X -> dbl# X) (mark# dbl1 X -> active# dbl1 mark X, active# dbl s X -> s# dbl X) (mark# dbl1 X -> active# dbl1 mark X, active# dbl s X -> s# s dbl X) (mark# dbl1 X -> active# dbl1 mark X, active# dbls nil() -> mark# nil()) (mark# dbl1 X -> active# dbl1 mark X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# dbl1 X -> active# dbl1 mark X, active# dbls cons(X, Y) -> dbl# X) (mark# dbl1 X -> active# dbl1 mark X, active# dbls cons(X, Y) -> dbls# Y) (mark# dbl1 X -> active# dbl1 mark X, active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# dbl1 X -> active# dbl1 mark X, active# sel(0(), cons(X, Y)) -> mark# X) (mark# dbl1 X -> active# dbl1 mark X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# dbl1 X -> active# dbl1 mark X, active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# dbl1 X -> active# dbl1 mark X, active# indx(nil(), X) -> mark# nil()) (mark# dbl1 X -> active# dbl1 mark X, active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# dbl1 X -> active# dbl1 mark X, active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# dbl1 X -> active# dbl1 mark X, active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# dbl1 X -> active# dbl1 mark X, active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# dbl1 X -> active# dbl1 mark X, active# from X -> mark# cons(X, from s X)) (mark# dbl1 X -> active# dbl1 mark X, active# from X -> s# X) (mark# dbl1 X -> active# dbl1 mark X, active# from X -> cons#(X, from s X)) (mark# dbl1 X -> active# dbl1 mark X, active# from X -> from# s X) (mark# dbl1 X -> active# dbl1 mark X, active# dbl1 0() -> mark# 01()) (mark# dbl1 X -> active# dbl1 mark X, active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# dbl1 X -> active# dbl1 mark X, active# dbl1 s X -> dbl1# X) (mark# dbl1 X -> active# dbl1 mark X, active# dbl1 s X -> s1# dbl1 X) (mark# dbl1 X -> active# dbl1 mark X, active# dbl1 s X -> s1# s1 dbl1 X) (mark# dbl1 X -> active# dbl1 mark X, active# sel1(0(), cons(X, Y)) -> mark# X) (mark# dbl1 X -> active# dbl1 mark X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# dbl1 X -> active# dbl1 mark X, active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# dbl1 X -> active# dbl1 mark X, active# quote 0() -> mark# 01()) (mark# dbl1 X -> active# dbl1 mark X, active# quote dbl X -> mark# dbl1 X) (mark# dbl1 X -> active# dbl1 mark X, active# quote dbl X -> dbl1# X) (mark# dbl1 X -> active# dbl1 mark X, active# quote s X -> mark# s1 quote X) (mark# dbl1 X -> active# dbl1 mark X, active# quote s X -> s1# quote X) (mark# dbl1 X -> active# dbl1 mark X, active# quote s X -> quote# X) (mark# dbl1 X -> active# dbl1 mark X, active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# dbl1 X -> active# dbl1 mark X, active# quote sel(X, Y) -> sel1#(X, Y)) (mark# dbl X -> active# dbl mark X, active# dbl 0() -> mark# 0()) (mark# dbl X -> active# dbl mark X, active# dbl s X -> mark# s s dbl X) (mark# dbl X -> active# dbl mark X, active# dbl s X -> dbl# X) (mark# dbl X -> active# dbl mark X, active# dbl s X -> s# dbl X) (mark# dbl X -> active# dbl mark X, active# dbl s X -> s# s dbl X) (mark# dbl X -> active# dbl mark X, active# dbls nil() -> mark# nil()) (mark# dbl X -> active# dbl mark X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y)) (mark# dbl X -> active# dbl mark X, active# dbls cons(X, Y) -> dbl# X) (mark# dbl X -> active# dbl mark X, active# dbls cons(X, Y) -> dbls# Y) (mark# dbl X -> active# dbl mark X, active# dbls cons(X, Y) -> cons#(dbl X, dbls Y)) (mark# dbl X -> active# dbl mark X, active# sel(0(), cons(X, Y)) -> mark# X) (mark# dbl X -> active# dbl mark X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z)) (mark# dbl X -> active# dbl mark X, active# sel(s X, cons(Y, Z)) -> sel#(X, Z)) (mark# dbl X -> active# dbl mark X, active# indx(nil(), X) -> mark# nil()) (mark# dbl X -> active# dbl mark X, active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z))) (mark# dbl X -> active# dbl mark X, active# indx(cons(X, Y), Z) -> cons#(sel(X, Z), indx(Y, Z))) (mark# dbl X -> active# dbl mark X, active# indx(cons(X, Y), Z) -> sel#(X, Z)) (mark# dbl X -> active# dbl mark X, active# indx(cons(X, Y), Z) -> indx#(Y, Z)) (mark# dbl X -> active# dbl mark X, active# from X -> mark# cons(X, from s X)) (mark# dbl X -> active# dbl mark X, active# from X -> s# X) (mark# dbl X -> active# dbl mark X, active# from X -> cons#(X, from s X)) (mark# dbl X -> active# dbl mark X, active# from X -> from# s X) (mark# dbl X -> active# dbl mark X, active# dbl1 0() -> mark# 01()) (mark# dbl X -> active# dbl mark X, active# dbl1 s X -> mark# s1 s1 dbl1 X) (mark# dbl X -> active# dbl mark X, active# dbl1 s X -> dbl1# X) (mark# dbl X -> active# dbl mark X, active# dbl1 s X -> s1# dbl1 X) (mark# dbl X -> active# dbl mark X, active# dbl1 s X -> s1# s1 dbl1 X) (mark# dbl X -> active# dbl mark X, active# sel1(0(), cons(X, Y)) -> mark# X) (mark# dbl X -> active# dbl mark X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z)) (mark# dbl X -> active# dbl mark X, active# sel1(s X, cons(Y, Z)) -> sel1#(X, Z)) (mark# dbl X -> active# dbl mark X, active# quote 0() -> mark# 01()) (mark# dbl X -> active# dbl mark X, active# quote dbl X -> mark# dbl1 X) (mark# dbl X -> active# dbl mark X, active# quote dbl X -> dbl1# X) (mark# dbl X -> active# dbl mark X, active# quote s X -> mark# s1 quote X) (mark# dbl X -> active# dbl mark X, active# quote s X -> s1# quote X) (mark# dbl X -> active# dbl mark X, active# quote s X -> quote# X) (mark# dbl X -> active# dbl mark X, active# quote sel(X, Y) -> mark# sel1(X, Y)) (mark# dbl X -> active# dbl mark X, active# quote sel(X, Y) -> sel1#(X, Y)) (active# dbl s X -> mark# s s dbl X, mark# dbl X -> mark# X) (active# dbl s X -> mark# s s dbl X, mark# dbl X -> active# dbl mark X) (active# dbl s X -> mark# s s dbl X, mark# dbl X -> dbl# mark X) (active# dbl s X -> mark# s s dbl X, mark# s X -> active# s X) (active# dbl s X -> mark# s s dbl X, mark# dbls X -> mark# X) (active# dbl s X -> mark# s s dbl X, mark# dbls X -> active# dbls mark X) (active# dbl s X -> mark# s s dbl X, mark# dbls X -> dbls# mark X) (active# dbl s X -> mark# s s dbl X, mark# cons(X1, X2) -> active# cons(X1, X2)) (active# dbl s X -> mark# s s dbl X, mark# sel(X1, X2) -> mark# X1) (active# dbl s X -> mark# s s dbl X, mark# sel(X1, X2) -> mark# X2) (active# dbl s X -> mark# s s dbl X, mark# sel(X1, X2) -> active# sel(mark X1, mark X2)) (active# dbl s X -> mark# s s dbl X, mark# sel(X1, X2) -> sel#(mark X1, mark X2)) (active# dbl s X -> mark# s s dbl X, mark# indx(X1, X2) -> mark# X1) (active# dbl s X -> mark# s s dbl X, mark# indx(X1, X2) -> active# indx(mark X1, X2)) (active# dbl s X -> mark# s s dbl X, mark# indx(X1, X2) -> indx#(mark X1, X2)) (active# dbl s X -> mark# s s dbl X, mark# from X -> active# from X) (active# dbl s X -> mark# s s dbl X, mark# dbl1 X -> mark# X) (active# dbl s X -> mark# s s dbl X, mark# dbl1 X -> active# dbl1 mark X) (active# dbl s X -> mark# s s dbl X, mark# dbl1 X -> dbl1# mark X) (active# dbl s X -> mark# s s dbl X, mark# s1 X -> mark# X) (active# dbl s X -> mark# s s dbl X, mark# s1 X -> active# s1 mark X) (active# dbl s X -> mark# s s dbl X, mark# s1 X -> s1# mark X) (active# dbl s X -> mark# s s dbl X, mark# sel1(X1, X2) -> mark# X1) (active# dbl s X -> mark# s s dbl X, mark# sel1(X1, X2) -> mark# X2) (active# dbl s X -> mark# s s dbl X, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2)) (active# dbl s X -> mark# s s dbl X, mark# sel1(X1, X2) -> sel1#(mark X1, mark X2)) (active# dbl s X -> mark# s s dbl X, mark# quote X -> mark# X) (active# dbl s X -> mark# s s dbl X, mark# quote X -> active# quote mark X) (active# dbl s X -> mark# s s dbl X, mark# quote X -> quote# mark X) } STATUS: arrows: 0.876900 SCCS (12): Scc: { mark# dbl X -> mark# X, mark# dbl X -> active# dbl mark X, mark# s X -> active# s X, mark# dbls X -> mark# X, mark# dbls X -> active# dbls mark X, mark# cons(X1, X2) -> active# cons(X1, X2), mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> active# sel(mark X1, mark X2), mark# indx(X1, X2) -> mark# X1, mark# indx(X1, X2) -> active# indx(mark X1, X2), mark# from X -> active# from X, mark# dbl1 X -> mark# X, mark# dbl1 X -> active# dbl1 mark X, mark# s1 X -> mark# X, mark# s1 X -> active# s1 mark X, mark# sel1(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), mark# quote X -> mark# X, mark# quote X -> active# quote mark X, active# dbl s X -> mark# s s dbl X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), active# sel(0(), cons(X, Y)) -> mark# X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), active# from X -> mark# cons(X, from s X), active# dbl1 s X -> mark# s1 s1 dbl1 X, active# sel1(0(), cons(X, Y)) -> mark# X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), active# quote dbl X -> mark# dbl1 X, active# quote s X -> mark# s1 quote X, active# quote sel(X, Y) -> mark# sel1(X, Y)} Scc: { quote# mark X -> quote# X, quote# active X -> quote# X} Scc: { sel1#(X1, mark X2) -> sel1#(X1, X2), sel1#(X1, active X2) -> sel1#(X1, X2), sel1#(mark X1, X2) -> sel1#(X1, X2), sel1#(active X1, X2) -> sel1#(X1, X2)} Scc: { dbl1# mark X -> dbl1# X, dbl1# active X -> dbl1# X} Scc: { s1# mark X -> s1# X, s1# active X -> s1# X} Scc: { indx#(X1, mark X2) -> indx#(X1, X2), indx#(X1, active X2) -> indx#(X1, X2), indx#(mark X1, X2) -> indx#(X1, X2), indx#(active X1, X2) -> indx#(X1, X2)} Scc: { from# mark X -> from# X, from# active X -> from# X} Scc: { sel#(X1, mark X2) -> sel#(X1, X2), sel#(X1, active X2) -> sel#(X1, X2), sel#(mark X1, X2) -> sel#(X1, X2), sel#(active X1, X2) -> sel#(X1, X2)} Scc: { dbls# mark X -> dbls# X, dbls# active X -> dbls# X} Scc: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)} Scc: { dbl# mark X -> dbl# X, dbl# active X -> dbl# X} Scc: { s# mark X -> s# X, s# active X -> s# X} SCC (33): Strict: { mark# dbl X -> mark# X, mark# dbl X -> active# dbl mark X, mark# s X -> active# s X, mark# dbls X -> mark# X, mark# dbls X -> active# dbls mark X, mark# cons(X1, X2) -> active# cons(X1, X2), mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> active# sel(mark X1, mark X2), mark# indx(X1, X2) -> mark# X1, mark# indx(X1, X2) -> active# indx(mark X1, X2), mark# from X -> active# from X, mark# dbl1 X -> mark# X, mark# dbl1 X -> active# dbl1 mark X, mark# s1 X -> mark# X, mark# s1 X -> active# s1 mark X, mark# sel1(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), mark# quote X -> mark# X, mark# quote X -> active# quote mark X, active# dbl s X -> mark# s s dbl X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), active# sel(0(), cons(X, Y)) -> mark# X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), active# from X -> mark# cons(X, from s X), active# dbl1 s X -> mark# s1 s1 dbl1 X, active# sel1(0(), cons(X, Y)) -> mark# X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), active# quote dbl X -> mark# dbl1 X, active# quote s X -> mark# s1 quote X, active# quote sel(X, Y) -> mark# sel1(X, Y)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 1, [indx](x0, x1) = 1, [sel1](x0, x1) = 1, [mark](x0) = 0, [active](x0) = 0, [dbl](x0) = 1, [s](x0) = 1, [dbls](x0) = 1, [from](x0) = 1, [dbl1](x0) = 1, [s1](x0) = 1, [quote](x0) = 1, [0] = 0, [nil] = 0, [01] = 0, [mark#](x0) = 1, [active#](x0) = x0 Strict: active# quote sel(X, Y) -> mark# sel1(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active# quote s X -> mark# s1 quote X 1 + 0X >= 1 + 0X active# quote dbl X -> mark# dbl1 X 1 + 0X >= 1 + 0X active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active# sel1(0(), cons(X, Y)) -> mark# X 1 + 0X + 0Y >= 1 + 0X active# dbl1 s X -> mark# s1 s1 dbl1 X 1 + 0X >= 1 + 0X active# from X -> mark# cons(X, from s X) 1 + 0X >= 1 + 0X active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Y + 0Z active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active# sel(0(), cons(X, Y)) -> mark# X 1 + 0X + 0Y >= 1 + 0X active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active# dbl s X -> mark# s s dbl X 1 + 0X >= 1 + 0X mark# quote X -> active# quote mark X 1 + 0X >= 1 + 0X mark# quote X -> mark# X 1 + 0X >= 1 + 0X mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# sel1(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# sel1(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# s1 X -> active# s1 mark X 1 + 0X >= 1 + 0X mark# s1 X -> mark# X 1 + 0X >= 1 + 0X mark# dbl1 X -> active# dbl1 mark X 1 + 0X >= 1 + 0X mark# dbl1 X -> mark# X 1 + 0X >= 1 + 0X mark# from X -> active# from X 1 + 0X >= 1 + 0X mark# indx(X1, X2) -> active# indx(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# indx(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# sel(X1, X2) -> active# sel(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# sel(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# sel(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# cons(X1, X2) -> active# cons(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# dbls X -> active# dbls mark X 1 + 0X >= 1 + 0X mark# dbls X -> mark# X 1 + 0X >= 1 + 0X mark# s X -> active# s X 1 + 0X >= 1 + 0X mark# dbl X -> active# dbl mark X 1 + 0X >= 1 + 0X mark# dbl X -> mark# X 1 + 0X >= 1 + 0X Weak: quote active X -> quote X 1 + 0X >= 1 + 0X quote mark X -> quote X 1 + 0X >= 1 + 0X sel1(active X1, X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s1 active X -> s1 X 1 + 0X >= 1 + 0X s1 mark X -> s1 X 1 + 0X >= 1 + 0X dbl1 active X -> dbl1 X 1 + 0X >= 1 + 0X dbl1 mark X -> dbl1 X 1 + 0X >= 1 + 0X from active X -> from X 1 + 0X >= 1 + 0X from mark X -> from X 1 + 0X >= 1 + 0X indx(active X1, X2) -> indx(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 1 + 0X >= 1 + 0X dbls mark X -> dbls X 1 + 0X >= 1 + 0X s active X -> s X 1 + 0X >= 1 + 0X s mark X -> s X 1 + 0X >= 1 + 0X dbl active X -> dbl X 1 + 0X >= 1 + 0X dbl mark X -> dbl X 1 + 0X >= 1 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 0 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 0 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 0 + 0X >= 0 + 0X active quote 0() -> mark 01() 0 >= 0 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 0 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 0 + 0X + 0Y >= 0 + 0X active dbl1 s X -> mark s1 s1 dbl1 X 0 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 0 >= 0 active from X -> mark cons(X, from s X) 0 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 0 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 0 + 0X >= 0 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 0 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 0 + 0X + 0Y >= 0 + 0X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 0 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 0 >= 0 active dbl s X -> mark s s dbl X 0 + 0X >= 0 + 0X active dbl 0() -> mark 0() 0 >= 0 mark quote X -> active quote mark X 0 + 0X >= 0 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 0 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 0 + 0X mark 01() -> active 01() 0 >= 0 mark from X -> active from X 0 + 0X >= 0 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 0 + 0X mark nil() -> active nil() 0 >= 0 mark s X -> active s X 0 + 0X >= 0 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 0 + 0X mark 0() -> active 0() 0 >= 0 SCCS (1): Scc: { mark# dbl X -> mark# X, mark# dbl X -> active# dbl mark X, mark# s X -> active# s X, mark# dbls X -> mark# X, mark# dbls X -> active# dbls mark X, mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> active# sel(mark X1, mark X2), mark# indx(X1, X2) -> mark# X1, mark# indx(X1, X2) -> active# indx(mark X1, X2), mark# from X -> active# from X, mark# dbl1 X -> mark# X, mark# dbl1 X -> active# dbl1 mark X, mark# s1 X -> mark# X, mark# s1 X -> active# s1 mark X, mark# sel1(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), mark# quote X -> mark# X, mark# quote X -> active# quote mark X, active# dbl s X -> mark# s s dbl X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), active# sel(0(), cons(X, Y)) -> mark# X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), active# from X -> mark# cons(X, from s X), active# dbl1 s X -> mark# s1 s1 dbl1 X, active# sel1(0(), cons(X, Y)) -> mark# X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), active# quote dbl X -> mark# dbl1 X, active# quote s X -> mark# s1 quote X, active# quote sel(X, Y) -> mark# sel1(X, Y)} SCC (32): Strict: { mark# dbl X -> mark# X, mark# dbl X -> active# dbl mark X, mark# s X -> active# s X, mark# dbls X -> mark# X, mark# dbls X -> active# dbls mark X, mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> active# sel(mark X1, mark X2), mark# indx(X1, X2) -> mark# X1, mark# indx(X1, X2) -> active# indx(mark X1, X2), mark# from X -> active# from X, mark# dbl1 X -> mark# X, mark# dbl1 X -> active# dbl1 mark X, mark# s1 X -> mark# X, mark# s1 X -> active# s1 mark X, mark# sel1(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), mark# quote X -> mark# X, mark# quote X -> active# quote mark X, active# dbl s X -> mark# s s dbl X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), active# sel(0(), cons(X, Y)) -> mark# X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), active# from X -> mark# cons(X, from s X), active# dbl1 s X -> mark# s1 s1 dbl1 X, active# sel1(0(), cons(X, Y)) -> mark# X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), active# quote dbl X -> mark# dbl1 X, active# quote s X -> mark# s1 quote X, active# quote sel(X, Y) -> mark# sel1(X, Y)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = 1, [sel1](x0, x1) = 1, [mark](x0) = 0, [active](x0) = 1, [dbl](x0) = 1, [s](x0) = 0, [dbls](x0) = 1, [from](x0) = 1, [dbl1](x0) = 1, [s1](x0) = 0, [quote](x0) = 1, [0] = 0, [nil] = 0, [01] = 0, [mark#](x0) = 1, [active#](x0) = x0 Strict: active# quote sel(X, Y) -> mark# sel1(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active# quote s X -> mark# s1 quote X 1 + 0X >= 1 + 0X active# quote dbl X -> mark# dbl1 X 1 + 0X >= 1 + 0X active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active# sel1(0(), cons(X, Y)) -> mark# X 1 + 0X + 0Y >= 1 + 0X active# dbl1 s X -> mark# s1 s1 dbl1 X 1 + 0X >= 1 + 0X active# from X -> mark# cons(X, from s X) 1 + 0X >= 1 + 0X active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Y + 0Z active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active# sel(0(), cons(X, Y)) -> mark# X 1 + 0X + 0Y >= 1 + 0X active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active# dbl s X -> mark# s s dbl X 1 + 0X >= 1 + 0X mark# quote X -> active# quote mark X 1 + 0X >= 1 + 0X mark# quote X -> mark# X 1 + 0X >= 1 + 0X mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# sel1(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# sel1(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# s1 X -> active# s1 mark X 1 + 0X >= 0 + 0X mark# s1 X -> mark# X 1 + 0X >= 1 + 0X mark# dbl1 X -> active# dbl1 mark X 1 + 0X >= 1 + 0X mark# dbl1 X -> mark# X 1 + 0X >= 1 + 0X mark# from X -> active# from X 1 + 0X >= 1 + 0X mark# indx(X1, X2) -> active# indx(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# indx(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# sel(X1, X2) -> active# sel(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# sel(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# sel(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# dbls X -> active# dbls mark X 1 + 0X >= 1 + 0X mark# dbls X -> mark# X 1 + 0X >= 1 + 0X mark# s X -> active# s X 1 + 0X >= 0 + 0X mark# dbl X -> active# dbl mark X 1 + 0X >= 1 + 0X mark# dbl X -> mark# X 1 + 0X >= 1 + 0X Weak: quote active X -> quote X 1 + 0X >= 1 + 0X quote mark X -> quote X 1 + 0X >= 1 + 0X sel1(active X1, X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 1 + 0X >= 1 + 0X dbl1 mark X -> dbl1 X 1 + 0X >= 1 + 0X from active X -> from X 1 + 0X >= 1 + 0X from mark X -> from X 1 + 0X >= 1 + 0X indx(active X1, X2) -> indx(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 dbls active X -> dbls X 1 + 0X >= 1 + 0X dbls mark X -> dbls X 1 + 0X >= 1 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 1 + 0X >= 1 + 0X dbl mark X -> dbl X 1 + 0X >= 1 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 1 >= 0 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 0X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 0 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 0 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 0X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 0 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 0 mark quote X -> active quote mark X 0 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 0 >= 1 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 0 >= 1 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 SCCS (1): Scc: { mark# dbl X -> mark# X, mark# dbl X -> active# dbl mark X, mark# dbls X -> mark# X, mark# dbls X -> active# dbls mark X, mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> active# sel(mark X1, mark X2), mark# indx(X1, X2) -> mark# X1, mark# indx(X1, X2) -> active# indx(mark X1, X2), mark# from X -> active# from X, mark# dbl1 X -> mark# X, mark# dbl1 X -> active# dbl1 mark X, mark# s1 X -> mark# X, mark# sel1(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), mark# quote X -> mark# X, mark# quote X -> active# quote mark X, active# dbl s X -> mark# s s dbl X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), active# sel(0(), cons(X, Y)) -> mark# X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), active# from X -> mark# cons(X, from s X), active# dbl1 s X -> mark# s1 s1 dbl1 X, active# sel1(0(), cons(X, Y)) -> mark# X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), active# quote dbl X -> mark# dbl1 X, active# quote s X -> mark# s1 quote X, active# quote sel(X, Y) -> mark# sel1(X, Y)} SCC (30): Strict: { mark# dbl X -> mark# X, mark# dbl X -> active# dbl mark X, mark# dbls X -> mark# X, mark# dbls X -> active# dbls mark X, mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> active# sel(mark X1, mark X2), mark# indx(X1, X2) -> mark# X1, mark# indx(X1, X2) -> active# indx(mark X1, X2), mark# from X -> active# from X, mark# dbl1 X -> mark# X, mark# dbl1 X -> active# dbl1 mark X, mark# s1 X -> mark# X, mark# sel1(X1, X2) -> mark# X1, mark# sel1(X1, X2) -> mark# X2, mark# sel1(X1, X2) -> active# sel1(mark X1, mark X2), mark# quote X -> mark# X, mark# quote X -> active# quote mark X, active# dbl s X -> mark# s s dbl X, active# dbls cons(X, Y) -> mark# cons(dbl X, dbls Y), active# sel(0(), cons(X, Y)) -> mark# X, active# sel(s X, cons(Y, Z)) -> mark# sel(X, Z), active# indx(cons(X, Y), Z) -> mark# cons(sel(X, Z), indx(Y, Z)), active# from X -> mark# cons(X, from s X), active# dbl1 s X -> mark# s1 s1 dbl1 X, active# sel1(0(), cons(X, Y)) -> mark# X, active# sel1(s X, cons(Y, Z)) -> mark# sel1(X, Z), active# quote dbl X -> mark# dbl1 X, active# quote s X -> mark# s1 quote X, active# quote sel(X, Y) -> mark# sel1(X, Y)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} Fail SCC (2): Strict: { quote# mark X -> quote# X, quote# active X -> quote# X} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 0, [indx](x0, x1) = 0, [sel1](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [dbl](x0) = 0, [s](x0) = 0, [dbls](x0) = 0, [from](x0) = 0, [dbl1](x0) = 0, [s1](x0) = 0, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 1, [quote#](x0) = x0 Strict: quote# active X -> quote# X 1 + 1X >= 0 + 1X quote# mark X -> quote# X 0 + 1X >= 0 + 1X Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 0 + 0X >= 0 + 0X dbl1 mark X -> dbl1 X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X indx(active X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 0 + 0X >= 0 + 0X dbls mark X -> dbls X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 0 + 0X >= 0 + 0X dbl mark X -> dbl X 0 + 0X >= 0 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 1 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 1 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 1 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 1 mark quote X -> active quote mark X 0 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 1 >= 2 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 1 >= 2 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 1 >= 2 SCCS (1): Scc: {quote# mark X -> quote# X} SCC (1): Strict: {quote# mark X -> quote# X} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = x0 + x1 + 1, [sel1](x0, x1) = 0, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [dbl](x0) = x0 + 1, [s](x0) = x0 + 1, [dbls](x0) = x0, [from](x0) = x0 + 1, [dbl1](x0) = 1, [s1](x0) = x0 + 1, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 0, [quote#](x0) = x0 Strict: quote# mark X -> quote# X 1 + 1X >= 0 + 1X Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 2 + 1X >= 1 + 1X s1 mark X -> s1 X 2 + 1X >= 1 + 1X dbl1 active X -> dbl1 X 1 + 0X >= 1 + 0X dbl1 mark X -> dbl1 X 1 + 0X >= 1 + 0X from active X -> from X 2 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X indx(active X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(mark X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, active X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, mark X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 dbls active X -> dbls X 1 + 1X >= 0 + 1X dbls mark X -> dbls X 1 + 1X >= 0 + 1X s active X -> s X 2 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X dbl active X -> dbl X 2 + 1X >= 1 + 1X dbl mark X -> dbl X 2 + 1X >= 1 + 1X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 2 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 2 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 1 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 2 + 0X >= 4 + 0X active dbl1 0() -> mark 01() 2 >= 1 active from X -> mark cons(X, from s X) 2 + 1X >= 2 + 1X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 3 + 1X + 0Y + 1Z >= 3 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 3 + 1X >= 2 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 2 + 1X + 0Y >= 3 + 1X + 0Y active dbls nil() -> mark nil() 2 >= 2 active dbl s X -> mark s s dbl X 3 + 1X >= 4 + 1X active dbl 0() -> mark 0() 3 >= 2 mark quote X -> active quote mark X 1 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 2 + 1X >= 3 + 1X mark dbl1 X -> active dbl1 mark X 2 + 0X >= 2 + 0X mark 01() -> active 01() 1 >= 1 mark from X -> active from X 2 + 1X >= 2 + 1X mark indx(X1, X2) -> active indx(mark X1, X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark dbls X -> active dbls mark X 1 + 1X >= 2 + 1X mark nil() -> active nil() 2 >= 2 mark s X -> active s X 2 + 1X >= 2 + 1X mark dbl X -> active dbl mark X 2 + 1X >= 3 + 1X mark 0() -> active 0() 2 >= 2 Qed SCC (4): Strict: { sel1#(X1, mark X2) -> sel1#(X1, X2), sel1#(X1, active X2) -> sel1#(X1, X2), sel1#(mark X1, X2) -> sel1#(X1, X2), sel1#(active X1, X2) -> sel1#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 1, [indx](x0, x1) = 0, [sel1](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [dbl](x0) = 0, [s](x0) = 0, [dbls](x0) = 0, [from](x0) = 0, [dbl1](x0) = 0, [s1](x0) = 0, [quote](x0) = x0, [0] = 1, [nil] = 1, [01] = 1, [sel1#](x0, x1) = x0 Strict: sel1#(active X1, X2) -> sel1#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 sel1#(mark X1, X2) -> sel1#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 sel1#(X1, active X2) -> sel1#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 sel1#(X1, mark X2) -> sel1#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: quote active X -> quote X 1 + 1X >= 0 + 1X quote mark X -> quote X 0 + 1X >= 0 + 1X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 0 + 0X >= 0 + 0X dbl1 mark X -> dbl1 X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X indx(active X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 0 + 0X >= 0 + 0X dbls mark X -> dbls X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 0 + 0X >= 0 + 0X dbl mark X -> dbl X 0 + 0X >= 0 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 2 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 2 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 1 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 1 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 0 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 1 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 1 mark quote X -> active quote mark X 0 + 1X >= 1 + 1X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 1 >= 2 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 1 >= 2 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 1 >= 2 SCCS (1): Scc: { sel1#(X1, mark X2) -> sel1#(X1, X2), sel1#(X1, active X2) -> sel1#(X1, X2), sel1#(mark X1, X2) -> sel1#(X1, X2)} SCC (3): Strict: { sel1#(X1, mark X2) -> sel1#(X1, X2), sel1#(X1, active X2) -> sel1#(X1, X2), sel1#(mark X1, X2) -> sel1#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + x1 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = x0 + 1, [sel1](x0, x1) = 1, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [dbl](x0) = x0 + 1, [s](x0) = x0 + 1, [dbls](x0) = x0, [from](x0) = 1, [dbl1](x0) = x0 + 1, [s1](x0) = x0 + 1, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 0, [sel1#](x0, x1) = x0 Strict: sel1#(mark X1, X2) -> sel1#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 sel1#(X1, active X2) -> sel1#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 sel1#(X1, mark X2) -> sel1#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s1 active X -> s1 X 2 + 1X >= 1 + 1X s1 mark X -> s1 X 2 + 1X >= 1 + 1X dbl1 active X -> dbl1 X 2 + 1X >= 1 + 1X dbl1 mark X -> dbl1 X 2 + 1X >= 1 + 1X from active X -> from X 1 + 0X >= 1 + 0X from mark X -> from X 1 + 0X >= 1 + 0X indx(active X1, X2) -> indx(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 dbls active X -> dbls X 1 + 1X >= 0 + 1X dbls mark X -> dbls X 1 + 1X >= 0 + 1X s active X -> s X 2 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X dbl active X -> dbl X 2 + 1X >= 1 + 1X dbl mark X -> dbl X 2 + 1X >= 1 + 1X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 2 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 2 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 2 + 1X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 3 + 1X >= 4 + 1X active dbl1 0() -> mark 01() 3 >= 1 active from X -> mark cons(X, from s X) 2 + 0X >= 3 + 1X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 3 + 1X + 1Y + 0Z >= 4 + 0X + 1Y + 0Z active indx(nil(), X) -> mark nil() 3 + 0X >= 2 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 2 + 1X + 1Y >= 3 + 1X + 1Y active dbls nil() -> mark nil() 2 >= 2 active dbl s X -> mark s s dbl X 3 + 1X >= 4 + 1X active dbl 0() -> mark 0() 3 >= 2 mark quote X -> active quote mark X 1 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark s1 X -> active s1 mark X 2 + 1X >= 3 + 1X mark dbl1 X -> active dbl1 mark X 2 + 1X >= 3 + 1X mark 01() -> active 01() 1 >= 1 mark from X -> active from X 2 + 0X >= 2 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 2 + 1X1 + 0X2 >= 3 + 1X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark dbls X -> active dbls mark X 1 + 1X >= 2 + 1X mark nil() -> active nil() 2 >= 2 mark s X -> active s X 2 + 1X >= 2 + 1X mark dbl X -> active dbl mark X 2 + 1X >= 3 + 1X mark 0() -> active 0() 2 >= 2 SCCS (1): Scc: { sel1#(X1, mark X2) -> sel1#(X1, X2), sel1#(X1, active X2) -> sel1#(X1, X2)} SCC (2): Strict: { sel1#(X1, mark X2) -> sel1#(X1, X2), sel1#(X1, active X2) -> sel1#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 0, [indx](x0, x1) = 0, [sel1](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [dbl](x0) = 0, [s](x0) = 0, [dbls](x0) = 0, [from](x0) = 0, [dbl1](x0) = 0, [s1](x0) = 0, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 1, [sel1#](x0, x1) = x0 Strict: sel1#(X1, active X2) -> sel1#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 sel1#(X1, mark X2) -> sel1#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 0 + 0X >= 0 + 0X dbl1 mark X -> dbl1 X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X indx(active X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 0 + 0X >= 0 + 0X dbls mark X -> dbls X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 0 + 0X >= 0 + 0X dbl mark X -> dbl X 0 + 0X >= 0 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 1 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 1 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 1 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 1 mark quote X -> active quote mark X 0 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 1 >= 2 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 1 >= 2 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 1 >= 2 SCCS (1): Scc: {sel1#(X1, mark X2) -> sel1#(X1, X2)} SCC (1): Strict: {sel1#(X1, mark X2) -> sel1#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = x0 + x1 + 1, [sel1](x0, x1) = 0, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [dbl](x0) = x0 + 1, [s](x0) = x0 + 1, [dbls](x0) = x0, [from](x0) = x0 + 1, [dbl1](x0) = 1, [s1](x0) = x0 + 1, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 0, [sel1#](x0, x1) = x0 Strict: sel1#(X1, mark X2) -> sel1#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 2 + 1X >= 1 + 1X s1 mark X -> s1 X 2 + 1X >= 1 + 1X dbl1 active X -> dbl1 X 1 + 0X >= 1 + 0X dbl1 mark X -> dbl1 X 1 + 0X >= 1 + 0X from active X -> from X 2 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X indx(active X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(mark X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, active X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, mark X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 dbls active X -> dbls X 1 + 1X >= 0 + 1X dbls mark X -> dbls X 1 + 1X >= 0 + 1X s active X -> s X 2 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X dbl active X -> dbl X 2 + 1X >= 1 + 1X dbl mark X -> dbl X 2 + 1X >= 1 + 1X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 2 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 2 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 1 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 2 + 0X >= 4 + 0X active dbl1 0() -> mark 01() 2 >= 1 active from X -> mark cons(X, from s X) 2 + 1X >= 2 + 1X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 3 + 1X + 0Y + 1Z >= 3 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 3 + 1X >= 2 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 2 + 1X + 0Y >= 3 + 1X + 0Y active dbls nil() -> mark nil() 2 >= 2 active dbl s X -> mark s s dbl X 3 + 1X >= 4 + 1X active dbl 0() -> mark 0() 3 >= 2 mark quote X -> active quote mark X 1 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 2 + 1X >= 3 + 1X mark dbl1 X -> active dbl1 mark X 2 + 0X >= 2 + 0X mark 01() -> active 01() 1 >= 1 mark from X -> active from X 2 + 1X >= 2 + 1X mark indx(X1, X2) -> active indx(mark X1, X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark dbls X -> active dbls mark X 1 + 1X >= 2 + 1X mark nil() -> active nil() 2 >= 2 mark s X -> active s X 2 + 1X >= 2 + 1X mark dbl X -> active dbl mark X 2 + 1X >= 3 + 1X mark 0() -> active 0() 2 >= 2 Qed SCC (2): Strict: { dbl1# mark X -> dbl1# X, dbl1# active X -> dbl1# X} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 0, [indx](x0, x1) = 0, [sel1](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [dbl](x0) = 0, [s](x0) = 0, [dbls](x0) = 0, [from](x0) = 0, [dbl1](x0) = 0, [s1](x0) = 0, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 1, [dbl1#](x0) = x0 Strict: dbl1# active X -> dbl1# X 1 + 1X >= 0 + 1X dbl1# mark X -> dbl1# X 0 + 1X >= 0 + 1X Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 0 + 0X >= 0 + 0X dbl1 mark X -> dbl1 X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X indx(active X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 0 + 0X >= 0 + 0X dbls mark X -> dbls X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 0 + 0X >= 0 + 0X dbl mark X -> dbl X 0 + 0X >= 0 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 1 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 1 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 1 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 1 mark quote X -> active quote mark X 0 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 1 >= 2 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 1 >= 2 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 1 >= 2 SCCS (1): Scc: {dbl1# mark X -> dbl1# X} SCC (1): Strict: {dbl1# mark X -> dbl1# X} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = x0 + x1 + 1, [sel1](x0, x1) = 0, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [dbl](x0) = x0 + 1, [s](x0) = x0 + 1, [dbls](x0) = x0, [from](x0) = x0 + 1, [dbl1](x0) = 1, [s1](x0) = x0 + 1, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 0, [dbl1#](x0) = x0 Strict: dbl1# mark X -> dbl1# X 1 + 1X >= 0 + 1X Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 2 + 1X >= 1 + 1X s1 mark X -> s1 X 2 + 1X >= 1 + 1X dbl1 active X -> dbl1 X 1 + 0X >= 1 + 0X dbl1 mark X -> dbl1 X 1 + 0X >= 1 + 0X from active X -> from X 2 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X indx(active X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(mark X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, active X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, mark X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 dbls active X -> dbls X 1 + 1X >= 0 + 1X dbls mark X -> dbls X 1 + 1X >= 0 + 1X s active X -> s X 2 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X dbl active X -> dbl X 2 + 1X >= 1 + 1X dbl mark X -> dbl X 2 + 1X >= 1 + 1X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 2 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 2 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 1 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 2 + 0X >= 4 + 0X active dbl1 0() -> mark 01() 2 >= 1 active from X -> mark cons(X, from s X) 2 + 1X >= 2 + 1X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 3 + 1X + 0Y + 1Z >= 3 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 3 + 1X >= 2 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 2 + 1X + 0Y >= 3 + 1X + 0Y active dbls nil() -> mark nil() 2 >= 2 active dbl s X -> mark s s dbl X 3 + 1X >= 4 + 1X active dbl 0() -> mark 0() 3 >= 2 mark quote X -> active quote mark X 1 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 2 + 1X >= 3 + 1X mark dbl1 X -> active dbl1 mark X 2 + 0X >= 2 + 0X mark 01() -> active 01() 1 >= 1 mark from X -> active from X 2 + 1X >= 2 + 1X mark indx(X1, X2) -> active indx(mark X1, X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark dbls X -> active dbls mark X 1 + 1X >= 2 + 1X mark nil() -> active nil() 2 >= 2 mark s X -> active s X 2 + 1X >= 2 + 1X mark dbl X -> active dbl mark X 2 + 1X >= 3 + 1X mark 0() -> active 0() 2 >= 2 Qed SCC (2): Strict: { s1# mark X -> s1# X, s1# active X -> s1# X} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 0, [indx](x0, x1) = 0, [sel1](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [dbl](x0) = 0, [s](x0) = 0, [dbls](x0) = 0, [from](x0) = 0, [dbl1](x0) = 0, [s1](x0) = 0, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 1, [s1#](x0) = x0 Strict: s1# active X -> s1# X 1 + 1X >= 0 + 1X s1# mark X -> s1# X 0 + 1X >= 0 + 1X Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 0 + 0X >= 0 + 0X dbl1 mark X -> dbl1 X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X indx(active X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 0 + 0X >= 0 + 0X dbls mark X -> dbls X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 0 + 0X >= 0 + 0X dbl mark X -> dbl X 0 + 0X >= 0 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 1 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 1 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 1 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 1 mark quote X -> active quote mark X 0 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 1 >= 2 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 1 >= 2 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 1 >= 2 SCCS (1): Scc: {s1# mark X -> s1# X} SCC (1): Strict: {s1# mark X -> s1# X} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = x0 + x1 + 1, [sel1](x0, x1) = 0, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [dbl](x0) = x0 + 1, [s](x0) = x0 + 1, [dbls](x0) = x0, [from](x0) = x0 + 1, [dbl1](x0) = 1, [s1](x0) = x0 + 1, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 0, [s1#](x0) = x0 Strict: s1# mark X -> s1# X 1 + 1X >= 0 + 1X Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 2 + 1X >= 1 + 1X s1 mark X -> s1 X 2 + 1X >= 1 + 1X dbl1 active X -> dbl1 X 1 + 0X >= 1 + 0X dbl1 mark X -> dbl1 X 1 + 0X >= 1 + 0X from active X -> from X 2 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X indx(active X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(mark X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, active X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, mark X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 dbls active X -> dbls X 1 + 1X >= 0 + 1X dbls mark X -> dbls X 1 + 1X >= 0 + 1X s active X -> s X 2 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X dbl active X -> dbl X 2 + 1X >= 1 + 1X dbl mark X -> dbl X 2 + 1X >= 1 + 1X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 2 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 2 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 1 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 2 + 0X >= 4 + 0X active dbl1 0() -> mark 01() 2 >= 1 active from X -> mark cons(X, from s X) 2 + 1X >= 2 + 1X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 3 + 1X + 0Y + 1Z >= 3 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 3 + 1X >= 2 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 2 + 1X + 0Y >= 3 + 1X + 0Y active dbls nil() -> mark nil() 2 >= 2 active dbl s X -> mark s s dbl X 3 + 1X >= 4 + 1X active dbl 0() -> mark 0() 3 >= 2 mark quote X -> active quote mark X 1 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 2 + 1X >= 3 + 1X mark dbl1 X -> active dbl1 mark X 2 + 0X >= 2 + 0X mark 01() -> active 01() 1 >= 1 mark from X -> active from X 2 + 1X >= 2 + 1X mark indx(X1, X2) -> active indx(mark X1, X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark dbls X -> active dbls mark X 1 + 1X >= 2 + 1X mark nil() -> active nil() 2 >= 2 mark s X -> active s X 2 + 1X >= 2 + 1X mark dbl X -> active dbl mark X 2 + 1X >= 3 + 1X mark 0() -> active 0() 2 >= 2 Qed SCC (4): Strict: { indx#(X1, mark X2) -> indx#(X1, X2), indx#(X1, active X2) -> indx#(X1, X2), indx#(mark X1, X2) -> indx#(X1, X2), indx#(active X1, X2) -> indx#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 1, [indx](x0, x1) = 0, [sel1](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [dbl](x0) = 0, [s](x0) = 0, [dbls](x0) = 0, [from](x0) = 0, [dbl1](x0) = 0, [s1](x0) = 0, [quote](x0) = x0, [0] = 1, [nil] = 1, [01] = 1, [indx#](x0, x1) = x0 Strict: indx#(active X1, X2) -> indx#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 indx#(mark X1, X2) -> indx#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 indx#(X1, active X2) -> indx#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 indx#(X1, mark X2) -> indx#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: quote active X -> quote X 1 + 1X >= 0 + 1X quote mark X -> quote X 0 + 1X >= 0 + 1X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 0 + 0X >= 0 + 0X dbl1 mark X -> dbl1 X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X indx(active X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 0 + 0X >= 0 + 0X dbls mark X -> dbls X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 0 + 0X >= 0 + 0X dbl mark X -> dbl X 0 + 0X >= 0 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 2 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 2 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 1 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 1 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 0 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 1 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 1 mark quote X -> active quote mark X 0 + 1X >= 1 + 1X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 1 >= 2 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 1 >= 2 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 1 >= 2 SCCS (1): Scc: { indx#(X1, mark X2) -> indx#(X1, X2), indx#(X1, active X2) -> indx#(X1, X2), indx#(mark X1, X2) -> indx#(X1, X2)} SCC (3): Strict: { indx#(X1, mark X2) -> indx#(X1, X2), indx#(X1, active X2) -> indx#(X1, X2), indx#(mark X1, X2) -> indx#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + x1 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = x0 + 1, [sel1](x0, x1) = 1, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [dbl](x0) = x0 + 1, [s](x0) = x0 + 1, [dbls](x0) = x0, [from](x0) = 1, [dbl1](x0) = x0 + 1, [s1](x0) = x0 + 1, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 0, [indx#](x0, x1) = x0 Strict: indx#(mark X1, X2) -> indx#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 indx#(X1, active X2) -> indx#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 indx#(X1, mark X2) -> indx#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s1 active X -> s1 X 2 + 1X >= 1 + 1X s1 mark X -> s1 X 2 + 1X >= 1 + 1X dbl1 active X -> dbl1 X 2 + 1X >= 1 + 1X dbl1 mark X -> dbl1 X 2 + 1X >= 1 + 1X from active X -> from X 1 + 0X >= 1 + 0X from mark X -> from X 1 + 0X >= 1 + 0X indx(active X1, X2) -> indx(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 dbls active X -> dbls X 1 + 1X >= 0 + 1X dbls mark X -> dbls X 1 + 1X >= 0 + 1X s active X -> s X 2 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X dbl active X -> dbl X 2 + 1X >= 1 + 1X dbl mark X -> dbl X 2 + 1X >= 1 + 1X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 2 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 2 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 2 + 1X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 3 + 1X >= 4 + 1X active dbl1 0() -> mark 01() 3 >= 1 active from X -> mark cons(X, from s X) 2 + 0X >= 3 + 1X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 3 + 1X + 1Y + 0Z >= 4 + 0X + 1Y + 0Z active indx(nil(), X) -> mark nil() 3 + 0X >= 2 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 2 + 1X + 1Y >= 3 + 1X + 1Y active dbls nil() -> mark nil() 2 >= 2 active dbl s X -> mark s s dbl X 3 + 1X >= 4 + 1X active dbl 0() -> mark 0() 3 >= 2 mark quote X -> active quote mark X 1 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark s1 X -> active s1 mark X 2 + 1X >= 3 + 1X mark dbl1 X -> active dbl1 mark X 2 + 1X >= 3 + 1X mark 01() -> active 01() 1 >= 1 mark from X -> active from X 2 + 0X >= 2 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 2 + 1X1 + 0X2 >= 3 + 1X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark dbls X -> active dbls mark X 1 + 1X >= 2 + 1X mark nil() -> active nil() 2 >= 2 mark s X -> active s X 2 + 1X >= 2 + 1X mark dbl X -> active dbl mark X 2 + 1X >= 3 + 1X mark 0() -> active 0() 2 >= 2 SCCS (1): Scc: { indx#(X1, mark X2) -> indx#(X1, X2), indx#(X1, active X2) -> indx#(X1, X2)} SCC (2): Strict: { indx#(X1, mark X2) -> indx#(X1, X2), indx#(X1, active X2) -> indx#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 0, [indx](x0, x1) = 0, [sel1](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [dbl](x0) = 0, [s](x0) = 0, [dbls](x0) = 0, [from](x0) = 0, [dbl1](x0) = 0, [s1](x0) = 0, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 1, [indx#](x0, x1) = x0 Strict: indx#(X1, active X2) -> indx#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 indx#(X1, mark X2) -> indx#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 0 + 0X >= 0 + 0X dbl1 mark X -> dbl1 X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X indx(active X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 0 + 0X >= 0 + 0X dbls mark X -> dbls X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 0 + 0X >= 0 + 0X dbl mark X -> dbl X 0 + 0X >= 0 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 1 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 1 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 1 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 1 mark quote X -> active quote mark X 0 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 1 >= 2 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 1 >= 2 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 1 >= 2 SCCS (1): Scc: {indx#(X1, mark X2) -> indx#(X1, X2)} SCC (1): Strict: {indx#(X1, mark X2) -> indx#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = x0 + x1 + 1, [sel1](x0, x1) = 0, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [dbl](x0) = x0 + 1, [s](x0) = x0 + 1, [dbls](x0) = x0, [from](x0) = x0 + 1, [dbl1](x0) = 1, [s1](x0) = x0 + 1, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 0, [indx#](x0, x1) = x0 Strict: indx#(X1, mark X2) -> indx#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 2 + 1X >= 1 + 1X s1 mark X -> s1 X 2 + 1X >= 1 + 1X dbl1 active X -> dbl1 X 1 + 0X >= 1 + 0X dbl1 mark X -> dbl1 X 1 + 0X >= 1 + 0X from active X -> from X 2 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X indx(active X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(mark X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, active X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, mark X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 dbls active X -> dbls X 1 + 1X >= 0 + 1X dbls mark X -> dbls X 1 + 1X >= 0 + 1X s active X -> s X 2 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X dbl active X -> dbl X 2 + 1X >= 1 + 1X dbl mark X -> dbl X 2 + 1X >= 1 + 1X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 2 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 2 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 1 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 2 + 0X >= 4 + 0X active dbl1 0() -> mark 01() 2 >= 1 active from X -> mark cons(X, from s X) 2 + 1X >= 2 + 1X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 3 + 1X + 0Y + 1Z >= 3 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 3 + 1X >= 2 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 2 + 1X + 0Y >= 3 + 1X + 0Y active dbls nil() -> mark nil() 2 >= 2 active dbl s X -> mark s s dbl X 3 + 1X >= 4 + 1X active dbl 0() -> mark 0() 3 >= 2 mark quote X -> active quote mark X 1 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 2 + 1X >= 3 + 1X mark dbl1 X -> active dbl1 mark X 2 + 0X >= 2 + 0X mark 01() -> active 01() 1 >= 1 mark from X -> active from X 2 + 1X >= 2 + 1X mark indx(X1, X2) -> active indx(mark X1, X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark dbls X -> active dbls mark X 1 + 1X >= 2 + 1X mark nil() -> active nil() 2 >= 2 mark s X -> active s X 2 + 1X >= 2 + 1X mark dbl X -> active dbl mark X 2 + 1X >= 3 + 1X mark 0() -> active 0() 2 >= 2 Qed SCC (2): Strict: { from# mark X -> from# X, from# active X -> from# X} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 0, [indx](x0, x1) = 0, [sel1](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [dbl](x0) = 0, [s](x0) = 0, [dbls](x0) = 0, [from](x0) = 0, [dbl1](x0) = 0, [s1](x0) = 0, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 1, [from#](x0) = x0 Strict: from# active X -> from# X 1 + 1X >= 0 + 1X from# mark X -> from# X 0 + 1X >= 0 + 1X Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 0 + 0X >= 0 + 0X dbl1 mark X -> dbl1 X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X indx(active X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 0 + 0X >= 0 + 0X dbls mark X -> dbls X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 0 + 0X >= 0 + 0X dbl mark X -> dbl X 0 + 0X >= 0 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 1 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 1 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 1 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 1 mark quote X -> active quote mark X 0 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 1 >= 2 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 1 >= 2 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 1 >= 2 SCCS (1): Scc: {from# mark X -> from# X} SCC (1): Strict: {from# mark X -> from# X} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = x0 + x1 + 1, [sel1](x0, x1) = 0, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [dbl](x0) = x0 + 1, [s](x0) = x0 + 1, [dbls](x0) = x0, [from](x0) = x0 + 1, [dbl1](x0) = 1, [s1](x0) = x0 + 1, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 0, [from#](x0) = x0 Strict: from# mark X -> from# X 1 + 1X >= 0 + 1X Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 2 + 1X >= 1 + 1X s1 mark X -> s1 X 2 + 1X >= 1 + 1X dbl1 active X -> dbl1 X 1 + 0X >= 1 + 0X dbl1 mark X -> dbl1 X 1 + 0X >= 1 + 0X from active X -> from X 2 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X indx(active X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(mark X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, active X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, mark X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 dbls active X -> dbls X 1 + 1X >= 0 + 1X dbls mark X -> dbls X 1 + 1X >= 0 + 1X s active X -> s X 2 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X dbl active X -> dbl X 2 + 1X >= 1 + 1X dbl mark X -> dbl X 2 + 1X >= 1 + 1X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 2 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 2 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 1 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 2 + 0X >= 4 + 0X active dbl1 0() -> mark 01() 2 >= 1 active from X -> mark cons(X, from s X) 2 + 1X >= 2 + 1X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 3 + 1X + 0Y + 1Z >= 3 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 3 + 1X >= 2 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 2 + 1X + 0Y >= 3 + 1X + 0Y active dbls nil() -> mark nil() 2 >= 2 active dbl s X -> mark s s dbl X 3 + 1X >= 4 + 1X active dbl 0() -> mark 0() 3 >= 2 mark quote X -> active quote mark X 1 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 2 + 1X >= 3 + 1X mark dbl1 X -> active dbl1 mark X 2 + 0X >= 2 + 0X mark 01() -> active 01() 1 >= 1 mark from X -> active from X 2 + 1X >= 2 + 1X mark indx(X1, X2) -> active indx(mark X1, X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark dbls X -> active dbls mark X 1 + 1X >= 2 + 1X mark nil() -> active nil() 2 >= 2 mark s X -> active s X 2 + 1X >= 2 + 1X mark dbl X -> active dbl mark X 2 + 1X >= 3 + 1X mark 0() -> active 0() 2 >= 2 Qed SCC (4): Strict: { sel#(X1, mark X2) -> sel#(X1, X2), sel#(X1, active X2) -> sel#(X1, X2), sel#(mark X1, X2) -> sel#(X1, X2), sel#(active X1, X2) -> sel#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 1, [indx](x0, x1) = 0, [sel1](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [dbl](x0) = 0, [s](x0) = 0, [dbls](x0) = 0, [from](x0) = 0, [dbl1](x0) = 0, [s1](x0) = 0, [quote](x0) = x0, [0] = 1, [nil] = 1, [01] = 1, [sel#](x0, x1) = x0 Strict: sel#(active X1, X2) -> sel#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 sel#(mark X1, X2) -> sel#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 sel#(X1, active X2) -> sel#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 sel#(X1, mark X2) -> sel#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: quote active X -> quote X 1 + 1X >= 0 + 1X quote mark X -> quote X 0 + 1X >= 0 + 1X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 0 + 0X >= 0 + 0X dbl1 mark X -> dbl1 X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X indx(active X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 0 + 0X >= 0 + 0X dbls mark X -> dbls X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 0 + 0X >= 0 + 0X dbl mark X -> dbl X 0 + 0X >= 0 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 2 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 2 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 1 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 1 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 0 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 1 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 1 mark quote X -> active quote mark X 0 + 1X >= 1 + 1X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 1 >= 2 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 1 >= 2 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 1 >= 2 SCCS (1): Scc: { sel#(X1, mark X2) -> sel#(X1, X2), sel#(X1, active X2) -> sel#(X1, X2), sel#(mark X1, X2) -> sel#(X1, X2)} SCC (3): Strict: { sel#(X1, mark X2) -> sel#(X1, X2), sel#(X1, active X2) -> sel#(X1, X2), sel#(mark X1, X2) -> sel#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + x1 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = x0 + 1, [sel1](x0, x1) = 1, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [dbl](x0) = x0 + 1, [s](x0) = x0 + 1, [dbls](x0) = x0, [from](x0) = 1, [dbl1](x0) = x0 + 1, [s1](x0) = x0 + 1, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 0, [sel#](x0, x1) = x0 Strict: sel#(mark X1, X2) -> sel#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 sel#(X1, active X2) -> sel#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 sel#(X1, mark X2) -> sel#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s1 active X -> s1 X 2 + 1X >= 1 + 1X s1 mark X -> s1 X 2 + 1X >= 1 + 1X dbl1 active X -> dbl1 X 2 + 1X >= 1 + 1X dbl1 mark X -> dbl1 X 2 + 1X >= 1 + 1X from active X -> from X 1 + 0X >= 1 + 0X from mark X -> from X 1 + 0X >= 1 + 0X indx(active X1, X2) -> indx(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 dbls active X -> dbls X 1 + 1X >= 0 + 1X dbls mark X -> dbls X 1 + 1X >= 0 + 1X s active X -> s X 2 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X dbl active X -> dbl X 2 + 1X >= 1 + 1X dbl mark X -> dbl X 2 + 1X >= 1 + 1X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 2 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 2 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 2 + 1X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 3 + 1X >= 4 + 1X active dbl1 0() -> mark 01() 3 >= 1 active from X -> mark cons(X, from s X) 2 + 0X >= 3 + 1X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 3 + 1X + 1Y + 0Z >= 4 + 0X + 1Y + 0Z active indx(nil(), X) -> mark nil() 3 + 0X >= 2 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 2 + 1X + 1Y >= 3 + 1X + 1Y active dbls nil() -> mark nil() 2 >= 2 active dbl s X -> mark s s dbl X 3 + 1X >= 4 + 1X active dbl 0() -> mark 0() 3 >= 2 mark quote X -> active quote mark X 1 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark s1 X -> active s1 mark X 2 + 1X >= 3 + 1X mark dbl1 X -> active dbl1 mark X 2 + 1X >= 3 + 1X mark 01() -> active 01() 1 >= 1 mark from X -> active from X 2 + 0X >= 2 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 2 + 1X1 + 0X2 >= 3 + 1X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark dbls X -> active dbls mark X 1 + 1X >= 2 + 1X mark nil() -> active nil() 2 >= 2 mark s X -> active s X 2 + 1X >= 2 + 1X mark dbl X -> active dbl mark X 2 + 1X >= 3 + 1X mark 0() -> active 0() 2 >= 2 SCCS (1): Scc: { sel#(X1, mark X2) -> sel#(X1, X2), sel#(X1, active X2) -> sel#(X1, X2)} SCC (2): Strict: { sel#(X1, mark X2) -> sel#(X1, X2), sel#(X1, active X2) -> sel#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 0, [indx](x0, x1) = 0, [sel1](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [dbl](x0) = 0, [s](x0) = 0, [dbls](x0) = 0, [from](x0) = 0, [dbl1](x0) = 0, [s1](x0) = 0, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 1, [sel#](x0, x1) = x0 Strict: sel#(X1, active X2) -> sel#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 sel#(X1, mark X2) -> sel#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 0 + 0X >= 0 + 0X dbl1 mark X -> dbl1 X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X indx(active X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 0 + 0X >= 0 + 0X dbls mark X -> dbls X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 0 + 0X >= 0 + 0X dbl mark X -> dbl X 0 + 0X >= 0 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 1 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 1 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 1 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 1 mark quote X -> active quote mark X 0 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 1 >= 2 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 1 >= 2 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 1 >= 2 SCCS (1): Scc: {sel#(X1, mark X2) -> sel#(X1, X2)} SCC (1): Strict: {sel#(X1, mark X2) -> sel#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = x0 + x1 + 1, [sel1](x0, x1) = 0, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [dbl](x0) = x0 + 1, [s](x0) = x0 + 1, [dbls](x0) = x0, [from](x0) = x0 + 1, [dbl1](x0) = 1, [s1](x0) = x0 + 1, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 0, [sel#](x0, x1) = x0 Strict: sel#(X1, mark X2) -> sel#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 2 + 1X >= 1 + 1X s1 mark X -> s1 X 2 + 1X >= 1 + 1X dbl1 active X -> dbl1 X 1 + 0X >= 1 + 0X dbl1 mark X -> dbl1 X 1 + 0X >= 1 + 0X from active X -> from X 2 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X indx(active X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(mark X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, active X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, mark X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 dbls active X -> dbls X 1 + 1X >= 0 + 1X dbls mark X -> dbls X 1 + 1X >= 0 + 1X s active X -> s X 2 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X dbl active X -> dbl X 2 + 1X >= 1 + 1X dbl mark X -> dbl X 2 + 1X >= 1 + 1X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 2 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 2 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 1 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 2 + 0X >= 4 + 0X active dbl1 0() -> mark 01() 2 >= 1 active from X -> mark cons(X, from s X) 2 + 1X >= 2 + 1X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 3 + 1X + 0Y + 1Z >= 3 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 3 + 1X >= 2 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 2 + 1X + 0Y >= 3 + 1X + 0Y active dbls nil() -> mark nil() 2 >= 2 active dbl s X -> mark s s dbl X 3 + 1X >= 4 + 1X active dbl 0() -> mark 0() 3 >= 2 mark quote X -> active quote mark X 1 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 2 + 1X >= 3 + 1X mark dbl1 X -> active dbl1 mark X 2 + 0X >= 2 + 0X mark 01() -> active 01() 1 >= 1 mark from X -> active from X 2 + 1X >= 2 + 1X mark indx(X1, X2) -> active indx(mark X1, X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark dbls X -> active dbls mark X 1 + 1X >= 2 + 1X mark nil() -> active nil() 2 >= 2 mark s X -> active s X 2 + 1X >= 2 + 1X mark dbl X -> active dbl mark X 2 + 1X >= 3 + 1X mark 0() -> active 0() 2 >= 2 Qed SCC (2): Strict: { dbls# mark X -> dbls# X, dbls# active X -> dbls# X} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 0, [indx](x0, x1) = 0, [sel1](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [dbl](x0) = 0, [s](x0) = 0, [dbls](x0) = 0, [from](x0) = 0, [dbl1](x0) = 0, [s1](x0) = 0, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 1, [dbls#](x0) = x0 Strict: dbls# active X -> dbls# X 1 + 1X >= 0 + 1X dbls# mark X -> dbls# X 0 + 1X >= 0 + 1X Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 0 + 0X >= 0 + 0X dbl1 mark X -> dbl1 X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X indx(active X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 0 + 0X >= 0 + 0X dbls mark X -> dbls X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 0 + 0X >= 0 + 0X dbl mark X -> dbl X 0 + 0X >= 0 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 1 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 1 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 1 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 1 mark quote X -> active quote mark X 0 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 1 >= 2 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 1 >= 2 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 1 >= 2 SCCS (1): Scc: {dbls# mark X -> dbls# X} SCC (1): Strict: {dbls# mark X -> dbls# X} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = x0 + x1 + 1, [sel1](x0, x1) = 0, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [dbl](x0) = x0 + 1, [s](x0) = x0 + 1, [dbls](x0) = x0, [from](x0) = x0 + 1, [dbl1](x0) = 1, [s1](x0) = x0 + 1, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 0, [dbls#](x0) = x0 Strict: dbls# mark X -> dbls# X 1 + 1X >= 0 + 1X Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 2 + 1X >= 1 + 1X s1 mark X -> s1 X 2 + 1X >= 1 + 1X dbl1 active X -> dbl1 X 1 + 0X >= 1 + 0X dbl1 mark X -> dbl1 X 1 + 0X >= 1 + 0X from active X -> from X 2 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X indx(active X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(mark X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, active X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, mark X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 dbls active X -> dbls X 1 + 1X >= 0 + 1X dbls mark X -> dbls X 1 + 1X >= 0 + 1X s active X -> s X 2 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X dbl active X -> dbl X 2 + 1X >= 1 + 1X dbl mark X -> dbl X 2 + 1X >= 1 + 1X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 2 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 2 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 1 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 2 + 0X >= 4 + 0X active dbl1 0() -> mark 01() 2 >= 1 active from X -> mark cons(X, from s X) 2 + 1X >= 2 + 1X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 3 + 1X + 0Y + 1Z >= 3 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 3 + 1X >= 2 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 2 + 1X + 0Y >= 3 + 1X + 0Y active dbls nil() -> mark nil() 2 >= 2 active dbl s X -> mark s s dbl X 3 + 1X >= 4 + 1X active dbl 0() -> mark 0() 3 >= 2 mark quote X -> active quote mark X 1 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 2 + 1X >= 3 + 1X mark dbl1 X -> active dbl1 mark X 2 + 0X >= 2 + 0X mark 01() -> active 01() 1 >= 1 mark from X -> active from X 2 + 1X >= 2 + 1X mark indx(X1, X2) -> active indx(mark X1, X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark dbls X -> active dbls mark X 1 + 1X >= 2 + 1X mark nil() -> active nil() 2 >= 2 mark s X -> active s X 2 + 1X >= 2 + 1X mark dbl X -> active dbl mark X 2 + 1X >= 3 + 1X mark 0() -> active 0() 2 >= 2 Qed SCC (4): Strict: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 1, [indx](x0, x1) = 0, [sel1](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [dbl](x0) = 0, [s](x0) = 0, [dbls](x0) = 0, [from](x0) = 0, [dbl1](x0) = 0, [s1](x0) = 0, [quote](x0) = x0, [0] = 1, [nil] = 1, [01] = 1, [cons#](x0, x1) = x0 Strict: cons#(active X1, X2) -> cons#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons#(mark X1, X2) -> cons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons#(X1, active X2) -> cons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons#(X1, mark X2) -> cons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: quote active X -> quote X 1 + 1X >= 0 + 1X quote mark X -> quote X 0 + 1X >= 0 + 1X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 0 + 0X >= 0 + 0X dbl1 mark X -> dbl1 X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X indx(active X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 0 + 0X >= 0 + 0X dbls mark X -> dbls X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 0 + 0X >= 0 + 0X dbl mark X -> dbl X 0 + 0X >= 0 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 2 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 2 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 1 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 1 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 0 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 1 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 1 mark quote X -> active quote mark X 0 + 1X >= 1 + 1X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 1 >= 2 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 1 >= 2 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 1 >= 2 SCCS (1): Scc: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)} SCC (3): Strict: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + x1 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = x0 + 1, [sel1](x0, x1) = 1, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [dbl](x0) = x0 + 1, [s](x0) = x0 + 1, [dbls](x0) = x0, [from](x0) = 1, [dbl1](x0) = x0 + 1, [s1](x0) = x0 + 1, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 0, [cons#](x0, x1) = x0 Strict: cons#(mark X1, X2) -> cons#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons#(X1, active X2) -> cons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons#(X1, mark X2) -> cons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s1 active X -> s1 X 2 + 1X >= 1 + 1X s1 mark X -> s1 X 2 + 1X >= 1 + 1X dbl1 active X -> dbl1 X 2 + 1X >= 1 + 1X dbl1 mark X -> dbl1 X 2 + 1X >= 1 + 1X from active X -> from X 1 + 0X >= 1 + 0X from mark X -> from X 1 + 0X >= 1 + 0X indx(active X1, X2) -> indx(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 dbls active X -> dbls X 1 + 1X >= 0 + 1X dbls mark X -> dbls X 1 + 1X >= 0 + 1X s active X -> s X 2 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X dbl active X -> dbl X 2 + 1X >= 1 + 1X dbl mark X -> dbl X 2 + 1X >= 1 + 1X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 2 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 2 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 2 + 1X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 3 + 1X >= 4 + 1X active dbl1 0() -> mark 01() 3 >= 1 active from X -> mark cons(X, from s X) 2 + 0X >= 3 + 1X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 3 + 1X + 1Y + 0Z >= 4 + 0X + 1Y + 0Z active indx(nil(), X) -> mark nil() 3 + 0X >= 2 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 2 + 1X + 1Y >= 3 + 1X + 1Y active dbls nil() -> mark nil() 2 >= 2 active dbl s X -> mark s s dbl X 3 + 1X >= 4 + 1X active dbl 0() -> mark 0() 3 >= 2 mark quote X -> active quote mark X 1 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark s1 X -> active s1 mark X 2 + 1X >= 3 + 1X mark dbl1 X -> active dbl1 mark X 2 + 1X >= 3 + 1X mark 01() -> active 01() 1 >= 1 mark from X -> active from X 2 + 0X >= 2 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 2 + 1X1 + 0X2 >= 3 + 1X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark dbls X -> active dbls mark X 1 + 1X >= 2 + 1X mark nil() -> active nil() 2 >= 2 mark s X -> active s X 2 + 1X >= 2 + 1X mark dbl X -> active dbl mark X 2 + 1X >= 3 + 1X mark 0() -> active 0() 2 >= 2 SCCS (1): Scc: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)} SCC (2): Strict: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 0, [indx](x0, x1) = 0, [sel1](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [dbl](x0) = 0, [s](x0) = 0, [dbls](x0) = 0, [from](x0) = 0, [dbl1](x0) = 0, [s1](x0) = 0, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 1, [cons#](x0, x1) = x0 Strict: cons#(X1, active X2) -> cons#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 cons#(X1, mark X2) -> cons#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 0 + 0X >= 0 + 0X dbl1 mark X -> dbl1 X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X indx(active X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 0 + 0X >= 0 + 0X dbls mark X -> dbls X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 0 + 0X >= 0 + 0X dbl mark X -> dbl X 0 + 0X >= 0 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 1 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 1 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 1 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 1 mark quote X -> active quote mark X 0 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 1 >= 2 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 1 >= 2 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 1 >= 2 SCCS (1): Scc: {cons#(X1, mark X2) -> cons#(X1, X2)} SCC (1): Strict: {cons#(X1, mark X2) -> cons#(X1, X2)} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = x0 + x1 + 1, [sel1](x0, x1) = 0, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [dbl](x0) = x0 + 1, [s](x0) = x0 + 1, [dbls](x0) = x0, [from](x0) = x0 + 1, [dbl1](x0) = 1, [s1](x0) = x0 + 1, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 0, [cons#](x0, x1) = x0 Strict: cons#(X1, mark X2) -> cons#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 2 + 1X >= 1 + 1X s1 mark X -> s1 X 2 + 1X >= 1 + 1X dbl1 active X -> dbl1 X 1 + 0X >= 1 + 0X dbl1 mark X -> dbl1 X 1 + 0X >= 1 + 0X from active X -> from X 2 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X indx(active X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(mark X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, active X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, mark X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 dbls active X -> dbls X 1 + 1X >= 0 + 1X dbls mark X -> dbls X 1 + 1X >= 0 + 1X s active X -> s X 2 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X dbl active X -> dbl X 2 + 1X >= 1 + 1X dbl mark X -> dbl X 2 + 1X >= 1 + 1X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 2 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 2 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 1 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 2 + 0X >= 4 + 0X active dbl1 0() -> mark 01() 2 >= 1 active from X -> mark cons(X, from s X) 2 + 1X >= 2 + 1X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 3 + 1X + 0Y + 1Z >= 3 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 3 + 1X >= 2 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 2 + 1X + 0Y >= 3 + 1X + 0Y active dbls nil() -> mark nil() 2 >= 2 active dbl s X -> mark s s dbl X 3 + 1X >= 4 + 1X active dbl 0() -> mark 0() 3 >= 2 mark quote X -> active quote mark X 1 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 2 + 1X >= 3 + 1X mark dbl1 X -> active dbl1 mark X 2 + 0X >= 2 + 0X mark 01() -> active 01() 1 >= 1 mark from X -> active from X 2 + 1X >= 2 + 1X mark indx(X1, X2) -> active indx(mark X1, X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark dbls X -> active dbls mark X 1 + 1X >= 2 + 1X mark nil() -> active nil() 2 >= 2 mark s X -> active s X 2 + 1X >= 2 + 1X mark dbl X -> active dbl mark X 2 + 1X >= 3 + 1X mark 0() -> active 0() 2 >= 2 Qed SCC (2): Strict: { dbl# mark X -> dbl# X, dbl# active X -> dbl# X} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 0, [indx](x0, x1) = 0, [sel1](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [dbl](x0) = 0, [s](x0) = 0, [dbls](x0) = 0, [from](x0) = 0, [dbl1](x0) = 0, [s1](x0) = 0, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 1, [dbl#](x0) = x0 Strict: dbl# active X -> dbl# X 1 + 1X >= 0 + 1X dbl# mark X -> dbl# X 0 + 1X >= 0 + 1X Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 0 + 0X >= 0 + 0X dbl1 mark X -> dbl1 X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X indx(active X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 0 + 0X >= 0 + 0X dbls mark X -> dbls X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 0 + 0X >= 0 + 0X dbl mark X -> dbl X 0 + 0X >= 0 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 1 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 1 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 1 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 1 mark quote X -> active quote mark X 0 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 1 >= 2 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 1 >= 2 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 1 >= 2 SCCS (1): Scc: {dbl# mark X -> dbl# X} SCC (1): Strict: {dbl# mark X -> dbl# X} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = x0 + x1 + 1, [sel1](x0, x1) = 0, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [dbl](x0) = x0 + 1, [s](x0) = x0 + 1, [dbls](x0) = x0, [from](x0) = x0 + 1, [dbl1](x0) = 1, [s1](x0) = x0 + 1, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 0, [dbl#](x0) = x0 Strict: dbl# mark X -> dbl# X 1 + 1X >= 0 + 1X Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 2 + 1X >= 1 + 1X s1 mark X -> s1 X 2 + 1X >= 1 + 1X dbl1 active X -> dbl1 X 1 + 0X >= 1 + 0X dbl1 mark X -> dbl1 X 1 + 0X >= 1 + 0X from active X -> from X 2 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X indx(active X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(mark X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, active X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, mark X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 dbls active X -> dbls X 1 + 1X >= 0 + 1X dbls mark X -> dbls X 1 + 1X >= 0 + 1X s active X -> s X 2 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X dbl active X -> dbl X 2 + 1X >= 1 + 1X dbl mark X -> dbl X 2 + 1X >= 1 + 1X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 2 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 2 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 1 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 2 + 0X >= 4 + 0X active dbl1 0() -> mark 01() 2 >= 1 active from X -> mark cons(X, from s X) 2 + 1X >= 2 + 1X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 3 + 1X + 0Y + 1Z >= 3 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 3 + 1X >= 2 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 2 + 1X + 0Y >= 3 + 1X + 0Y active dbls nil() -> mark nil() 2 >= 2 active dbl s X -> mark s s dbl X 3 + 1X >= 4 + 1X active dbl 0() -> mark 0() 3 >= 2 mark quote X -> active quote mark X 1 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 2 + 1X >= 3 + 1X mark dbl1 X -> active dbl1 mark X 2 + 0X >= 2 + 0X mark 01() -> active 01() 1 >= 1 mark from X -> active from X 2 + 1X >= 2 + 1X mark indx(X1, X2) -> active indx(mark X1, X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark dbls X -> active dbls mark X 1 + 1X >= 2 + 1X mark nil() -> active nil() 2 >= 2 mark s X -> active s X 2 + 1X >= 2 + 1X mark dbl X -> active dbl mark X 2 + 1X >= 3 + 1X mark 0() -> active 0() 2 >= 2 Qed SCC (2): Strict: { s# mark X -> s# X, s# active X -> s# X} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [sel](x0, x1) = 0, [indx](x0, x1) = 0, [sel1](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [dbl](x0) = 0, [s](x0) = 0, [dbls](x0) = 0, [from](x0) = 0, [dbl1](x0) = 0, [s1](x0) = 0, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 1, [s#](x0) = x0 Strict: s# active X -> s# X 1 + 1X >= 0 + 1X s# mark X -> s# X 0 + 1X >= 0 + 1X Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 0 + 0X >= 0 + 0X s1 mark X -> s1 X 0 + 0X >= 0 + 0X dbl1 active X -> dbl1 X 0 + 0X >= 0 + 0X dbl1 mark X -> dbl1 X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X indx(active X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(mark X1, X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, active X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 indx(X1, mark X2) -> indx(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(active X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 dbls active X -> dbls X 0 + 0X >= 0 + 0X dbls mark X -> dbls X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X dbl active X -> dbl X 0 + 0X >= 0 + 0X dbl mark X -> dbl X 0 + 0X >= 0 + 0X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 0 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 0 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 1 + 0X >= 0 + 0X active dbl1 0() -> mark 01() 1 >= 1 active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 1 + 0X >= 1 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 1 + 0X + 0Y + 0Z >= 0 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 0 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active dbls nil() -> mark nil() 1 >= 1 active dbl s X -> mark s s dbl X 1 + 0X >= 0 + 0X active dbl 0() -> mark 0() 1 >= 1 mark quote X -> active quote mark X 0 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 0 + 0X >= 1 + 0X mark dbl1 X -> active dbl1 mark X 0 + 0X >= 1 + 0X mark 01() -> active 01() 1 >= 2 mark from X -> active from X 0 + 0X >= 1 + 0X mark indx(X1, X2) -> active indx(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark dbls X -> active dbls mark X 0 + 0X >= 1 + 0X mark nil() -> active nil() 1 >= 2 mark s X -> active s X 0 + 0X >= 1 + 0X mark dbl X -> active dbl mark X 0 + 0X >= 1 + 0X mark 0() -> active 0() 1 >= 2 SCCS (1): Scc: {s# mark X -> s# X} SCC (1): Strict: {s# mark X -> s# X} Weak: { mark 0() -> active 0(), mark dbl X -> active dbl mark X, mark s X -> active s X, mark nil() -> active nil(), mark dbls X -> active dbls mark X, mark cons(X1, X2) -> active cons(X1, X2), mark sel(X1, X2) -> active sel(mark X1, mark X2), mark indx(X1, X2) -> active indx(mark X1, X2), mark from X -> active from X, mark 01() -> active 01(), mark dbl1 X -> active dbl1 mark X, mark s1 X -> active s1 mark X, mark sel1(X1, X2) -> active sel1(mark X1, mark X2), mark quote X -> active quote mark X, active dbl 0() -> mark 0(), active dbl s X -> mark s s dbl X, active dbls nil() -> mark nil(), active dbls cons(X, Y) -> mark cons(dbl X, dbls Y), active sel(0(), cons(X, Y)) -> mark X, active sel(s X, cons(Y, Z)) -> mark sel(X, Z), active indx(nil(), X) -> mark nil(), active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)), active from X -> mark cons(X, from s X), active dbl1 0() -> mark 01(), active dbl1 s X -> mark s1 s1 dbl1 X, active sel1(0(), cons(X, Y)) -> mark X, active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z), active quote 0() -> mark 01(), active quote dbl X -> mark dbl1 X, active quote s X -> mark s1 quote X, active quote sel(X, Y) -> mark sel1(X, Y), dbl mark X -> dbl X, dbl active X -> dbl X, s mark X -> s X, s active X -> s X, dbls mark X -> dbls X, dbls active X -> dbls X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), sel(X1, mark X2) -> sel(X1, X2), sel(X1, active X2) -> sel(X1, X2), sel(mark X1, X2) -> sel(X1, X2), sel(active X1, X2) -> sel(X1, X2), indx(X1, mark X2) -> indx(X1, X2), indx(X1, active X2) -> indx(X1, X2), indx(mark X1, X2) -> indx(X1, X2), indx(active X1, X2) -> indx(X1, X2), from mark X -> from X, from active X -> from X, dbl1 mark X -> dbl1 X, dbl1 active X -> dbl1 X, s1 mark X -> s1 X, s1 active X -> s1 X, sel1(X1, mark X2) -> sel1(X1, X2), sel1(X1, active X2) -> sel1(X1, X2), sel1(mark X1, X2) -> sel1(X1, X2), sel1(active X1, X2) -> sel1(X1, X2), quote mark X -> quote X, quote active X -> quote X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [sel](x0, x1) = 1, [indx](x0, x1) = x0 + x1 + 1, [sel1](x0, x1) = 0, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [dbl](x0) = x0 + 1, [s](x0) = x0 + 1, [dbls](x0) = x0, [from](x0) = x0 + 1, [dbl1](x0) = 1, [s1](x0) = x0 + 1, [quote](x0) = 0, [0] = 1, [nil] = 1, [01] = 0, [s#](x0) = x0 Strict: s# mark X -> s# X 1 + 1X >= 0 + 1X Weak: quote active X -> quote X 0 + 0X >= 0 + 0X quote mark X -> quote X 0 + 0X >= 0 + 0X sel1(active X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(mark X1, X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, active X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 sel1(X1, mark X2) -> sel1(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s1 active X -> s1 X 2 + 1X >= 1 + 1X s1 mark X -> s1 X 2 + 1X >= 1 + 1X dbl1 active X -> dbl1 X 1 + 0X >= 1 + 0X dbl1 mark X -> dbl1 X 1 + 0X >= 1 + 0X from active X -> from X 2 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X indx(active X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(mark X1, X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, active X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 indx(X1, mark X2) -> indx(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 sel(active X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(mark X1, X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, active X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 sel(X1, mark X2) -> sel(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 dbls active X -> dbls X 1 + 1X >= 0 + 1X dbls mark X -> dbls X 1 + 1X >= 0 + 1X s active X -> s X 2 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X dbl active X -> dbl X 2 + 1X >= 1 + 1X dbl mark X -> dbl X 2 + 1X >= 1 + 1X active quote sel(X, Y) -> mark sel1(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active quote s X -> mark s1 quote X 1 + 0X >= 2 + 0X active quote dbl X -> mark dbl1 X 1 + 0X >= 2 + 0X active quote 0() -> mark 01() 1 >= 1 active sel1(s X, cons(Y, Z)) -> mark sel1(X, Z) 1 + 0X + 0Y + 0Z >= 1 + 0X + 0Z active sel1(0(), cons(X, Y)) -> mark X 1 + 0X + 0Y >= 1 + 1X active dbl1 s X -> mark s1 s1 dbl1 X 2 + 0X >= 4 + 0X active dbl1 0() -> mark 01() 2 >= 1 active from X -> mark cons(X, from s X) 2 + 1X >= 2 + 1X active indx(cons(X, Y), Z) -> mark cons(sel(X, Z), indx(Y, Z)) 3 + 1X + 0Y + 1Z >= 3 + 0X + 0Y + 0Z active indx(nil(), X) -> mark nil() 3 + 1X >= 2 active sel(s X, cons(Y, Z)) -> mark sel(X, Z) 2 + 0X + 0Y + 0Z >= 2 + 0X + 0Z active sel(0(), cons(X, Y)) -> mark X 2 + 0X + 0Y >= 1 + 1X active dbls cons(X, Y) -> mark cons(dbl X, dbls Y) 2 + 1X + 0Y >= 3 + 1X + 0Y active dbls nil() -> mark nil() 2 >= 2 active dbl s X -> mark s s dbl X 3 + 1X >= 4 + 1X active dbl 0() -> mark 0() 3 >= 2 mark quote X -> active quote mark X 1 + 0X >= 1 + 0X mark sel1(X1, X2) -> active sel1(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s1 X -> active s1 mark X 2 + 1X >= 3 + 1X mark dbl1 X -> active dbl1 mark X 2 + 0X >= 2 + 0X mark 01() -> active 01() 1 >= 1 mark from X -> active from X 2 + 1X >= 2 + 1X mark indx(X1, X2) -> active indx(mark X1, X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 mark sel(X1, X2) -> active sel(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark cons(X1, X2) -> active cons(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark dbls X -> active dbls mark X 1 + 1X >= 2 + 1X mark nil() -> active nil() 2 >= 2 mark s X -> active s X 2 + 1X >= 2 + 1X mark dbl X -> active dbl mark X 2 + 1X >= 3 + 1X mark 0() -> active 0() 2 >= 2 Qed