YES TRS: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} DP: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> cons#(mark(X1), X2), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(recip(X)) -> mark#(X), mark#(recip(X)) -> recip#(mark(X)), mark#(recip(X)) -> active#(recip(mark(X))), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> sqr#(mark(X)), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(terms(X)) -> mark#(X), mark#(terms(X)) -> terms#(mark(X)), mark#(terms(X)) -> active#(terms(mark(X))), mark#(s(X)) -> active#(s(X)), mark#(0()) -> active#(0()), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2)), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(dbl(X)) -> dbl#(mark(X)), mark#(nil()) -> active#(nil()), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2)), 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), recip#(mark(X)) -> recip#(X), recip#(active(X)) -> recip#(X), sqr#(mark(X)) -> sqr#(X), sqr#(active(X)) -> sqr#(X), terms#(mark(X)) -> terms#(X), terms#(active(X)) -> terms#(X), s#(mark(X)) -> s#(X), s#(active(X)) -> s#(X), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(sqr(s(X))) -> sqr#(X), active#(sqr(s(X))) -> s#(add(sqr(X), dbl(X))), active#(sqr(s(X))) -> add#(sqr(X), dbl(X)), active#(sqr(s(X))) -> dbl#(X), active#(sqr(0())) -> mark#(0()), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), active#(terms(N)) -> cons#(recip(sqr(N)), terms(s(N))), active#(terms(N)) -> recip#(sqr(N)), active#(terms(N)) -> sqr#(N), active#(terms(N)) -> terms#(s(N)), active#(terms(N)) -> s#(N), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(add(s(X), Y)) -> s#(add(X, Y)), active#(add(s(X), Y)) -> add#(X, Y), active#(add(0(), X)) -> mark#(X), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(dbl(s(X))) -> s#(s(dbl(X))), active#(dbl(s(X))) -> s#(dbl(X)), active#(dbl(s(X))) -> dbl#(X), active#(dbl(0())) -> mark#(0()), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), active#(first(s(X), cons(Y, Z))) -> cons#(Y, first(X, Z)), active#(first(s(X), cons(Y, Z))) -> first#(X, Z), active#(first(0(), X)) -> mark#(nil()), add#(X1, mark(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2), add#(mark(X1), X2) -> add#(X1, X2), add#(active(X1), X2) -> add#(X1, X2), dbl#(mark(X)) -> dbl#(X), dbl#(active(X)) -> dbl#(X), first#(X1, mark(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2), first#(mark(X1), X2) -> first#(X1, X2), first#(active(X1), X2) -> first#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} EDG: { (mark#(first(X1, X2)) -> first#(mark(X1), mark(X2)), first#(active(X1), X2) -> first#(X1, X2)) (mark#(first(X1, X2)) -> first#(mark(X1), mark(X2)), first#(mark(X1), X2) -> first#(X1, X2)) (mark#(first(X1, X2)) -> first#(mark(X1), mark(X2)), first#(X1, active(X2)) -> first#(X1, X2)) (mark#(first(X1, X2)) -> first#(mark(X1), mark(X2)), first#(X1, mark(X2)) -> first#(X1, X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(nil()) -> active#(nil())) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> dbl#(mark(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(cons(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(terms(X)) -> terms#(mark(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(terms(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> sqr#(mark(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> active#(recip(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> recip#(mark(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2))) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(nil()) -> active#(nil())) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> dbl#(mark(X))) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2))) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(first(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(X))) (mark#(first(X1, X2)) -> mark#(X1), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(terms(X)) -> terms#(mark(X))) (mark#(first(X1, X2)) -> mark#(X1), mark#(terms(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> sqr#(mark(X))) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(recip(X)) -> active#(recip(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(recip(X)) -> recip#(mark(X))) (mark#(first(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(first(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (active#(dbl(0())) -> mark#(0()), mark#(0()) -> active#(0())) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X2)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> dbl#(mark(X))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> mark#(X2)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(s(X)) -> active#(s(X))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(terms(X)) -> terms#(mark(X))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(terms(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> sqr#(mark(X))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(recip(X)) -> active#(recip(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(recip(X)) -> recip#(mark(X))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(recip(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(terms(N)) -> s#(N), s#(active(X)) -> s#(X)) (active#(terms(N)) -> s#(N), s#(mark(X)) -> s#(X)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(first(0(), X)) -> mark#(nil())) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(first(s(X), cons(Y, Z))) -> first#(X, Z)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(first(s(X), cons(Y, Z))) -> cons#(Y, first(X, Z))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(dbl(0())) -> mark#(0())) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(dbl(s(X))) -> dbl#(X)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(dbl(s(X))) -> s#(dbl(X))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(dbl(s(X))) -> s#(s(dbl(X)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(add(0(), X)) -> mark#(X)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(add(s(X), Y)) -> add#(X, Y)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(add(s(X), Y)) -> s#(add(X, Y))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(terms(N)) -> s#(N)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(terms(N)) -> terms#(s(N))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(terms(N)) -> sqr#(N)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(terms(N)) -> recip#(sqr(N))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(terms(N)) -> cons#(recip(sqr(N)), terms(s(N)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N))))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(sqr(0())) -> mark#(0())) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(sqr(s(X))) -> dbl#(X)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(sqr(s(X))) -> add#(sqr(X), dbl(X))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(sqr(s(X))) -> s#(add(sqr(X), dbl(X)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(sqr(s(X))) -> sqr#(X)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(add(s(X), Y)) -> add#(X, Y), add#(active(X1), X2) -> add#(X1, X2)) (active#(add(s(X), Y)) -> add#(X, Y), add#(mark(X1), X2) -> add#(X1, X2)) (active#(add(s(X), Y)) -> add#(X, Y), add#(X1, active(X2)) -> add#(X1, X2)) (active#(add(s(X), Y)) -> add#(X, Y), add#(X1, mark(X2)) -> add#(X1, X2)) (mark#(sqr(X)) -> sqr#(mark(X)), sqr#(active(X)) -> sqr#(X)) (mark#(sqr(X)) -> sqr#(mark(X)), sqr#(mark(X)) -> sqr#(X)) (mark#(s(X)) -> active#(s(X)), active#(first(0(), X)) -> mark#(nil())) (mark#(s(X)) -> active#(s(X)), active#(first(s(X), cons(Y, Z))) -> first#(X, Z)) (mark#(s(X)) -> active#(s(X)), active#(first(s(X), cons(Y, Z))) -> cons#(Y, first(X, Z))) (mark#(s(X)) -> active#(s(X)), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(s(X)) -> active#(s(X)), active#(dbl(0())) -> mark#(0())) (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#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(s(X)) -> active#(s(X)), active#(add(0(), X)) -> mark#(X)) (mark#(s(X)) -> active#(s(X)), active#(add(s(X), Y)) -> add#(X, Y)) (mark#(s(X)) -> active#(s(X)), active#(add(s(X), Y)) -> s#(add(X, Y))) (mark#(s(X)) -> active#(s(X)), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(s(X)) -> active#(s(X)), active#(terms(N)) -> s#(N)) (mark#(s(X)) -> active#(s(X)), active#(terms(N)) -> terms#(s(N))) (mark#(s(X)) -> active#(s(X)), active#(terms(N)) -> sqr#(N)) (mark#(s(X)) -> active#(s(X)), active#(terms(N)) -> recip#(sqr(N))) (mark#(s(X)) -> active#(s(X)), active#(terms(N)) -> cons#(recip(sqr(N)), terms(s(N)))) (mark#(s(X)) -> active#(s(X)), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N))))) (mark#(s(X)) -> active#(s(X)), active#(sqr(0())) -> mark#(0())) (mark#(s(X)) -> active#(s(X)), active#(sqr(s(X))) -> dbl#(X)) (mark#(s(X)) -> active#(s(X)), active#(sqr(s(X))) -> add#(sqr(X), dbl(X))) (mark#(s(X)) -> active#(s(X)), active#(sqr(s(X))) -> s#(add(sqr(X), dbl(X)))) (mark#(s(X)) -> active#(s(X)), active#(sqr(s(X))) -> sqr#(X)) (mark#(s(X)) -> active#(s(X)), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(dbl(s(X))) -> s#(dbl(X)), s#(active(X)) -> s#(X)) (active#(dbl(s(X))) -> s#(dbl(X)), s#(mark(X)) -> s#(X)) (active#(terms(N)) -> terms#(s(N)), terms#(active(X)) -> terms#(X)) (active#(terms(N)) -> terms#(s(N)), terms#(mark(X)) -> terms#(X)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(first(0(), X)) -> mark#(nil())) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> first#(X, Z)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> cons#(Y, first(X, Z))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(dbl(0())) -> mark#(0())) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(dbl(s(X))) -> dbl#(X)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(dbl(s(X))) -> s#(dbl(X))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(dbl(s(X))) -> s#(s(dbl(X)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(add(0(), X)) -> mark#(X)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(add(s(X), Y)) -> add#(X, Y)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(add(s(X), Y)) -> s#(add(X, Y))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(terms(N)) -> s#(N)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(terms(N)) -> terms#(s(N))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(terms(N)) -> sqr#(N)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(terms(N)) -> recip#(sqr(N))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(terms(N)) -> cons#(recip(sqr(N)), terms(s(N)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(0())) -> mark#(0())) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> dbl#(X)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> add#(sqr(X), dbl(X))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> s#(add(sqr(X), dbl(X)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> sqr#(X)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(first(X1, X2)) -> mark#(X1)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(dbl(X)) -> dbl#(mark(X))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(dbl(X)) -> mark#(X)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(add(X1, X2)) -> mark#(X2)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(add(X1, X2)) -> mark#(X1)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(s(X)) -> active#(s(X))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(terms(X)) -> terms#(mark(X))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(terms(X)) -> mark#(X)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(sqr(X)) -> sqr#(mark(X))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(sqr(X)) -> mark#(X)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(recip(X)) -> active#(recip(mark(X)))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(recip(X)) -> recip#(mark(X))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(recip(X)) -> mark#(X)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> cons#(mark(X1), X2), cons#(active(X1), X2) -> cons#(X1, X2)) (mark#(cons(X1, X2)) -> cons#(mark(X1), X2), cons#(mark(X1), X2) -> cons#(X1, X2)) (mark#(cons(X1, X2)) -> cons#(mark(X1), X2), cons#(X1, active(X2)) -> cons#(X1, X2)) (mark#(cons(X1, X2)) -> cons#(mark(X1), X2), cons#(X1, mark(X2)) -> cons#(X1, X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2))) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(nil()) -> active#(nil())) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> dbl#(mark(X))) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2))) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(0()) -> active#(0())) (mark#(first(X1, X2)) -> mark#(X2), mark#(s(X)) -> active#(s(X))) (mark#(first(X1, X2)) -> mark#(X2), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(terms(X)) -> terms#(mark(X))) (mark#(first(X1, X2)) -> mark#(X2), mark#(terms(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> sqr#(mark(X))) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(recip(X)) -> active#(recip(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(recip(X)) -> recip#(mark(X))) (mark#(first(X1, X2)) -> mark#(X2), mark#(recip(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(first(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2))) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(recip(X)) -> mark#(X), mark#(nil()) -> active#(nil())) (mark#(recip(X)) -> mark#(X), mark#(dbl(X)) -> dbl#(mark(X))) (mark#(recip(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(recip(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2))) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(recip(X)) -> mark#(X), mark#(0()) -> active#(0())) (mark#(recip(X)) -> mark#(X), mark#(s(X)) -> active#(s(X))) (mark#(recip(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(recip(X)) -> mark#(X), mark#(terms(X)) -> terms#(mark(X))) (mark#(recip(X)) -> mark#(X), mark#(terms(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> sqr#(mark(X))) (mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(recip(X)) -> active#(recip(mark(X)))) (mark#(recip(X)) -> mark#(X), mark#(recip(X)) -> recip#(mark(X))) (mark#(recip(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(recip(X)) -> mark#(X), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(recip(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(terms(X)) -> mark#(X), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2))) (mark#(terms(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(terms(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(terms(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(terms(X)) -> mark#(X), mark#(nil()) -> active#(nil())) (mark#(terms(X)) -> mark#(X), mark#(dbl(X)) -> dbl#(mark(X))) (mark#(terms(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(terms(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(terms(X)) -> mark#(X), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2))) (mark#(terms(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(terms(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(terms(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(terms(X)) -> mark#(X), mark#(0()) -> active#(0())) (mark#(terms(X)) -> mark#(X), mark#(s(X)) -> active#(s(X))) (mark#(terms(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(terms(X)) -> mark#(X), mark#(terms(X)) -> terms#(mark(X))) (mark#(terms(X)) -> mark#(X), mark#(terms(X)) -> mark#(X)) (mark#(terms(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(terms(X)) -> mark#(X), mark#(sqr(X)) -> sqr#(mark(X))) (mark#(terms(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(terms(X)) -> mark#(X), mark#(recip(X)) -> active#(recip(mark(X)))) (mark#(terms(X)) -> mark#(X), mark#(recip(X)) -> recip#(mark(X))) (mark#(terms(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(terms(X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(terms(X)) -> mark#(X), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(terms(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (recip#(mark(X)) -> recip#(X), recip#(active(X)) -> recip#(X)) (recip#(mark(X)) -> recip#(X), recip#(mark(X)) -> recip#(X)) (sqr#(mark(X)) -> sqr#(X), sqr#(active(X)) -> sqr#(X)) (sqr#(mark(X)) -> sqr#(X), sqr#(mark(X)) -> sqr#(X)) (terms#(mark(X)) -> terms#(X), terms#(active(X)) -> terms#(X)) (terms#(mark(X)) -> terms#(X), terms#(mark(X)) -> terms#(X)) (s#(mark(X)) -> s#(X), s#(active(X)) -> s#(X)) (s#(mark(X)) -> s#(X), s#(mark(X)) -> s#(X)) (active#(sqr(s(X))) -> sqr#(X), sqr#(active(X)) -> sqr#(X)) (active#(sqr(s(X))) -> sqr#(X), sqr#(mark(X)) -> sqr#(X)) (active#(add(0(), X)) -> mark#(X), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2))) (active#(add(0(), X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(add(0(), X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (active#(add(0(), X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (active#(add(0(), X)) -> mark#(X), mark#(nil()) -> active#(nil())) (active#(add(0(), X)) -> mark#(X), mark#(dbl(X)) -> dbl#(mark(X))) (active#(add(0(), X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(add(0(), X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (active#(add(0(), X)) -> mark#(X), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2))) (active#(add(0(), X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(add(0(), X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (active#(add(0(), X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (active#(add(0(), X)) -> mark#(X), mark#(0()) -> active#(0())) (active#(add(0(), X)) -> mark#(X), mark#(s(X)) -> active#(s(X))) (active#(add(0(), X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(add(0(), X)) -> mark#(X), mark#(terms(X)) -> terms#(mark(X))) (active#(add(0(), X)) -> mark#(X), mark#(terms(X)) -> mark#(X)) (active#(add(0(), X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(add(0(), X)) -> mark#(X), mark#(sqr(X)) -> sqr#(mark(X))) (active#(add(0(), X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (active#(add(0(), X)) -> mark#(X), mark#(recip(X)) -> active#(recip(mark(X)))) (active#(add(0(), X)) -> mark#(X), mark#(recip(X)) -> recip#(mark(X))) (active#(add(0(), X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (active#(add(0(), X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(add(0(), X)) -> mark#(X), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(add(0(), X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (dbl#(mark(X)) -> dbl#(X), dbl#(active(X)) -> dbl#(X)) (dbl#(mark(X)) -> dbl#(X), dbl#(mark(X)) -> dbl#(X)) (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)) (add#(X1, mark(X2)) -> add#(X1, X2), add#(active(X1), X2) -> add#(X1, X2)) (add#(X1, mark(X2)) -> add#(X1, X2), add#(mark(X1), X2) -> add#(X1, X2)) (add#(X1, mark(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2)) (add#(X1, mark(X2)) -> add#(X1, X2), add#(X1, mark(X2)) -> add#(X1, X2)) (add#(mark(X1), X2) -> add#(X1, X2), add#(active(X1), X2) -> add#(X1, X2)) (add#(mark(X1), X2) -> add#(X1, X2), add#(mark(X1), X2) -> add#(X1, X2)) (add#(mark(X1), X2) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2)) (add#(mark(X1), X2) -> add#(X1, X2), add#(X1, mark(X2)) -> add#(X1, X2)) (first#(X1, mark(X2)) -> first#(X1, X2), first#(active(X1), X2) -> first#(X1, X2)) (first#(X1, mark(X2)) -> first#(X1, X2), first#(mark(X1), X2) -> first#(X1, X2)) (first#(X1, mark(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2)) (first#(X1, mark(X2)) -> first#(X1, X2), first#(X1, mark(X2)) -> first#(X1, X2)) (first#(mark(X1), X2) -> first#(X1, X2), first#(active(X1), X2) -> first#(X1, X2)) (first#(mark(X1), X2) -> first#(X1, X2), first#(mark(X1), X2) -> first#(X1, X2)) (first#(mark(X1), X2) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2)) (first#(mark(X1), X2) -> first#(X1, X2), first#(X1, mark(X2)) -> first#(X1, X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (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#(dbl(X)) -> active#(dbl(mark(X)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(dbl(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> mark#(X1)) (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#(terms(X)) -> active#(terms(mark(X)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(terms(X)) -> terms#(mark(X))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(terms(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> sqr#(mark(X))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(recip(X)) -> active#(recip(mark(X)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(recip(X)) -> recip#(mark(X))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(recip(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(first(0(), X)) -> mark#(nil())) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(first(s(X), cons(Y, Z))) -> first#(X, Z)) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(first(s(X), cons(Y, Z))) -> cons#(Y, first(X, Z))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(0())) -> mark#(0())) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(s(X))) -> dbl#(X)) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(s(X))) -> s#(dbl(X))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(s(X))) -> s#(s(dbl(X)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(add(0(), X)) -> mark#(X)) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(add(s(X), Y)) -> add#(X, Y)) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(add(s(X), Y)) -> s#(add(X, Y))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(terms(N)) -> s#(N)) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(terms(N)) -> terms#(s(N))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(terms(N)) -> sqr#(N)) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(terms(N)) -> recip#(sqr(N))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(terms(N)) -> cons#(recip(sqr(N)), terms(s(N)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(0())) -> mark#(0())) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> dbl#(X)) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> add#(sqr(X), dbl(X))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> s#(add(sqr(X), dbl(X)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> sqr#(X)) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(first(0(), X)) -> mark#(nil())) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(first(s(X), cons(Y, Z))) -> first#(X, Z)) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(first(s(X), cons(Y, Z))) -> cons#(Y, first(X, Z))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(dbl(0())) -> mark#(0())) (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#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(add(0(), X)) -> mark#(X)) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(add(s(X), Y)) -> add#(X, Y)) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(add(s(X), Y)) -> s#(add(X, Y))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(terms(N)) -> s#(N)) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(terms(N)) -> terms#(s(N))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(terms(N)) -> sqr#(N)) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(terms(N)) -> recip#(sqr(N))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(terms(N)) -> cons#(recip(sqr(N)), terms(s(N)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(sqr(0())) -> mark#(0())) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(sqr(s(X))) -> dbl#(X)) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(sqr(s(X))) -> add#(sqr(X), dbl(X))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(sqr(s(X))) -> s#(add(sqr(X), dbl(X)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(sqr(s(X))) -> sqr#(X)) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> mark#(X2)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(dbl(X)) -> dbl#(mark(X))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(dbl(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> mark#(X2)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(s(X)) -> active#(s(X))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(terms(X)) -> terms#(mark(X))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(terms(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(sqr(X)) -> sqr#(mark(X))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(sqr(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(recip(X)) -> active#(recip(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(recip(X)) -> recip#(mark(X))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(recip(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> s#(s(dbl(X))), s#(mark(X)) -> s#(X)) (active#(dbl(s(X))) -> s#(s(dbl(X))), s#(active(X)) -> s#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(recip(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(recip(X)) -> recip#(mark(X))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(recip(X)) -> active#(recip(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> sqr#(mark(X))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(terms(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(terms(X)) -> terms#(mark(X))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(s(X)) -> active#(s(X))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> dbl#(mark(X))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(sqr(s(X))) -> sqr#(X)) (mark#(terms(X)) -> active#(terms(mark(X))), active#(sqr(s(X))) -> s#(add(sqr(X), dbl(X)))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(sqr(s(X))) -> add#(sqr(X), dbl(X))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(sqr(s(X))) -> dbl#(X)) (mark#(terms(X)) -> active#(terms(mark(X))), active#(sqr(0())) -> mark#(0())) (mark#(terms(X)) -> active#(terms(mark(X))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N))))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(terms(N)) -> cons#(recip(sqr(N)), terms(s(N)))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(terms(N)) -> recip#(sqr(N))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(terms(N)) -> sqr#(N)) (mark#(terms(X)) -> active#(terms(mark(X))), active#(terms(N)) -> terms#(s(N))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(terms(N)) -> s#(N)) (mark#(terms(X)) -> active#(terms(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(add(s(X), Y)) -> s#(add(X, Y))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(add(s(X), Y)) -> add#(X, Y)) (mark#(terms(X)) -> active#(terms(mark(X))), active#(add(0(), X)) -> mark#(X)) (mark#(terms(X)) -> active#(terms(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(dbl(s(X))) -> s#(s(dbl(X)))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(dbl(s(X))) -> s#(dbl(X))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(dbl(s(X))) -> dbl#(X)) (mark#(terms(X)) -> active#(terms(mark(X))), active#(dbl(0())) -> mark#(0())) (mark#(terms(X)) -> active#(terms(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(first(s(X), cons(Y, Z))) -> cons#(Y, first(X, Z))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(first(s(X), cons(Y, Z))) -> first#(X, Z)) (mark#(terms(X)) -> active#(terms(mark(X))), active#(first(0(), X)) -> mark#(nil())) (mark#(recip(X)) -> active#(recip(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(recip(X)) -> active#(recip(mark(X))), active#(sqr(s(X))) -> sqr#(X)) (mark#(recip(X)) -> active#(recip(mark(X))), active#(sqr(s(X))) -> s#(add(sqr(X), dbl(X)))) (mark#(recip(X)) -> active#(recip(mark(X))), active#(sqr(s(X))) -> add#(sqr(X), dbl(X))) (mark#(recip(X)) -> active#(recip(mark(X))), active#(sqr(s(X))) -> dbl#(X)) (mark#(recip(X)) -> active#(recip(mark(X))), active#(sqr(0())) -> mark#(0())) (mark#(recip(X)) -> active#(recip(mark(X))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N))))) (mark#(recip(X)) -> active#(recip(mark(X))), active#(terms(N)) -> cons#(recip(sqr(N)), terms(s(N)))) (mark#(recip(X)) -> active#(recip(mark(X))), active#(terms(N)) -> recip#(sqr(N))) (mark#(recip(X)) -> active#(recip(mark(X))), active#(terms(N)) -> sqr#(N)) (mark#(recip(X)) -> active#(recip(mark(X))), active#(terms(N)) -> terms#(s(N))) (mark#(recip(X)) -> active#(recip(mark(X))), active#(terms(N)) -> s#(N)) (mark#(recip(X)) -> active#(recip(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(recip(X)) -> active#(recip(mark(X))), active#(add(s(X), Y)) -> s#(add(X, Y))) (mark#(recip(X)) -> active#(recip(mark(X))), active#(add(s(X), Y)) -> add#(X, Y)) (mark#(recip(X)) -> active#(recip(mark(X))), active#(add(0(), X)) -> mark#(X)) (mark#(recip(X)) -> active#(recip(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(recip(X)) -> active#(recip(mark(X))), active#(dbl(s(X))) -> s#(s(dbl(X)))) (mark#(recip(X)) -> active#(recip(mark(X))), active#(dbl(s(X))) -> s#(dbl(X))) (mark#(recip(X)) -> active#(recip(mark(X))), active#(dbl(s(X))) -> dbl#(X)) (mark#(recip(X)) -> active#(recip(mark(X))), active#(dbl(0())) -> mark#(0())) (mark#(recip(X)) -> active#(recip(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(recip(X)) -> active#(recip(mark(X))), active#(first(s(X), cons(Y, Z))) -> cons#(Y, first(X, Z))) (mark#(recip(X)) -> active#(recip(mark(X))), active#(first(s(X), cons(Y, Z))) -> first#(X, Z)) (mark#(recip(X)) -> active#(recip(mark(X))), active#(first(0(), X)) -> mark#(nil())) (first#(active(X1), X2) -> first#(X1, X2), first#(X1, mark(X2)) -> first#(X1, X2)) (first#(active(X1), X2) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2)) (first#(active(X1), X2) -> first#(X1, X2), first#(mark(X1), X2) -> first#(X1, X2)) (first#(active(X1), X2) -> first#(X1, X2), first#(active(X1), X2) -> first#(X1, X2)) (first#(X1, active(X2)) -> first#(X1, X2), first#(X1, mark(X2)) -> first#(X1, X2)) (first#(X1, active(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2)) (first#(X1, active(X2)) -> first#(X1, X2), first#(mark(X1), X2) -> first#(X1, X2)) (first#(X1, active(X2)) -> first#(X1, X2), first#(active(X1), X2) -> first#(X1, X2)) (add#(active(X1), X2) -> add#(X1, X2), add#(X1, mark(X2)) -> add#(X1, X2)) (add#(active(X1), X2) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2)) (add#(active(X1), X2) -> add#(X1, X2), add#(mark(X1), X2) -> add#(X1, X2)) (add#(active(X1), X2) -> add#(X1, X2), add#(active(X1), X2) -> add#(X1, X2)) (add#(X1, active(X2)) -> add#(X1, X2), add#(X1, mark(X2)) -> add#(X1, X2)) (add#(X1, active(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2)) (add#(X1, active(X2)) -> add#(X1, X2), add#(mark(X1), X2) -> add#(X1, X2)) (add#(X1, active(X2)) -> add#(X1, X2), add#(active(X1), X2) -> add#(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)) (dbl#(active(X)) -> dbl#(X), dbl#(mark(X)) -> dbl#(X)) (dbl#(active(X)) -> dbl#(X), dbl#(active(X)) -> dbl#(X)) (active#(dbl(s(X))) -> dbl#(X), dbl#(mark(X)) -> dbl#(X)) (active#(dbl(s(X))) -> dbl#(X), dbl#(active(X)) -> dbl#(X)) (active#(sqr(s(X))) -> dbl#(X), dbl#(mark(X)) -> dbl#(X)) (active#(sqr(s(X))) -> dbl#(X), dbl#(active(X)) -> dbl#(X)) (s#(active(X)) -> s#(X), s#(mark(X)) -> s#(X)) (s#(active(X)) -> s#(X), s#(active(X)) -> s#(X)) (terms#(active(X)) -> terms#(X), terms#(mark(X)) -> terms#(X)) (terms#(active(X)) -> terms#(X), terms#(active(X)) -> terms#(X)) (sqr#(active(X)) -> sqr#(X), sqr#(mark(X)) -> sqr#(X)) (sqr#(active(X)) -> sqr#(X), sqr#(active(X)) -> sqr#(X)) (recip#(active(X)) -> recip#(X), recip#(mark(X)) -> recip#(X)) (recip#(active(X)) -> recip#(X), recip#(active(X)) -> recip#(X)) (mark#(dbl(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(dbl(X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(dbl(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(recip(X)) -> recip#(mark(X))) (mark#(dbl(X)) -> mark#(X), mark#(recip(X)) -> active#(recip(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> sqr#(mark(X))) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(terms(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(terms(X)) -> terms#(mark(X))) (mark#(dbl(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(s(X)) -> active#(s(X))) (mark#(dbl(X)) -> mark#(X), mark#(0()) -> active#(0())) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2))) (mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> dbl#(mark(X))) (mark#(dbl(X)) -> mark#(X), mark#(nil()) -> active#(nil())) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2))) (mark#(sqr(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(sqr(X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(sqr(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(recip(X)) -> recip#(mark(X))) (mark#(sqr(X)) -> mark#(X), mark#(recip(X)) -> active#(recip(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> sqr#(mark(X))) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(terms(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(terms(X)) -> terms#(mark(X))) (mark#(sqr(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(s(X)) -> active#(s(X))) (mark#(sqr(X)) -> mark#(X), mark#(0()) -> active#(0())) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2))) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> dbl#(mark(X))) (mark#(sqr(X)) -> mark#(X), mark#(nil()) -> active#(nil())) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2))) (active#(first(s(X), cons(Y, Z))) -> first#(X, Z), first#(X1, mark(X2)) -> first#(X1, X2)) (active#(first(s(X), cons(Y, Z))) -> first#(X, Z), first#(X1, active(X2)) -> first#(X1, X2)) (active#(first(s(X), cons(Y, Z))) -> first#(X, Z), first#(mark(X1), X2) -> first#(X1, X2)) (active#(first(s(X), cons(Y, Z))) -> first#(X, Z), first#(active(X1), X2) -> first#(X1, X2)) (mark#(add(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(add(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(add(X1, X2)) -> mark#(X2), mark#(recip(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(recip(X)) -> recip#(mark(X))) (mark#(add(X1, X2)) -> mark#(X2), mark#(recip(X)) -> active#(recip(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> sqr#(mark(X))) (mark#(add(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(terms(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(terms(X)) -> terms#(mark(X))) (mark#(add(X1, X2)) -> mark#(X2), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(s(X)) -> active#(s(X))) (mark#(add(X1, X2)) -> mark#(X2), mark#(0()) -> active#(0())) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2))) (mark#(add(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> dbl#(mark(X))) (mark#(add(X1, X2)) -> mark#(X2), mark#(nil()) -> active#(nil())) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2))) (active#(first(s(X), cons(Y, Z))) -> cons#(Y, first(X, Z)), cons#(X1, mark(X2)) -> cons#(X1, X2)) (active#(first(s(X), cons(Y, Z))) -> cons#(Y, first(X, Z)), cons#(X1, active(X2)) -> cons#(X1, X2)) (active#(first(s(X), cons(Y, Z))) -> cons#(Y, first(X, Z)), cons#(mark(X1), X2) -> cons#(X1, X2)) (active#(first(s(X), cons(Y, Z))) -> cons#(Y, first(X, Z)), cons#(active(X1), X2) -> cons#(X1, X2)) (active#(sqr(s(X))) -> s#(add(sqr(X), dbl(X))), s#(mark(X)) -> s#(X)) (active#(sqr(s(X))) -> s#(add(sqr(X), dbl(X))), s#(active(X)) -> s#(X)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(sqr(s(X))) -> sqr#(X)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(sqr(s(X))) -> s#(add(sqr(X), dbl(X)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(sqr(s(X))) -> add#(sqr(X), dbl(X))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(sqr(s(X))) -> dbl#(X)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(sqr(0())) -> mark#(0())) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N))))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(terms(N)) -> cons#(recip(sqr(N)), terms(s(N)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(terms(N)) -> recip#(sqr(N))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(terms(N)) -> sqr#(N)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(terms(N)) -> terms#(s(N))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(terms(N)) -> s#(N)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(add(s(X), Y)) -> s#(add(X, Y))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(add(s(X), Y)) -> add#(X, Y)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(add(0(), X)) -> mark#(X)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(dbl(s(X))) -> s#(s(dbl(X)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(dbl(s(X))) -> s#(dbl(X))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(dbl(s(X))) -> dbl#(X)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(dbl(0())) -> mark#(0())) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> cons#(Y, first(X, Z))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> first#(X, Z)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(first(0(), X)) -> mark#(nil())) (active#(terms(N)) -> recip#(sqr(N)), recip#(mark(X)) -> recip#(X)) (active#(terms(N)) -> recip#(sqr(N)), recip#(active(X)) -> recip#(X)) (mark#(dbl(X)) -> dbl#(mark(X)), dbl#(mark(X)) -> dbl#(X)) (mark#(dbl(X)) -> dbl#(mark(X)), dbl#(active(X)) -> dbl#(X)) (mark#(terms(X)) -> terms#(mark(X)), terms#(mark(X)) -> terms#(X)) (mark#(terms(X)) -> terms#(mark(X)), terms#(active(X)) -> terms#(X)) (mark#(recip(X)) -> recip#(mark(X)), recip#(mark(X)) -> recip#(X)) (mark#(recip(X)) -> recip#(mark(X)), recip#(active(X)) -> recip#(X)) (active#(add(s(X), Y)) -> s#(add(X, Y)), s#(mark(X)) -> s#(X)) (active#(add(s(X), Y)) -> s#(add(X, Y)), s#(active(X)) -> s#(X)) (active#(terms(N)) -> cons#(recip(sqr(N)), terms(s(N))), cons#(X1, mark(X2)) -> cons#(X1, X2)) (active#(terms(N)) -> cons#(recip(sqr(N)), terms(s(N))), cons#(X1, active(X2)) -> cons#(X1, X2)) (active#(terms(N)) -> cons#(recip(sqr(N)), terms(s(N))), cons#(mark(X1), X2) -> cons#(X1, X2)) (active#(terms(N)) -> cons#(recip(sqr(N)), terms(s(N))), cons#(active(X1), X2) -> cons#(X1, X2)) (active#(terms(N)) -> sqr#(N), sqr#(mark(X)) -> sqr#(X)) (active#(terms(N)) -> sqr#(N), sqr#(active(X)) -> sqr#(X)) (active#(first(0(), X)) -> mark#(nil()), mark#(nil()) -> active#(nil())) (active#(sqr(0())) -> mark#(0()), mark#(0()) -> active#(0())) (mark#(add(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(add(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(add(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(recip(X)) -> recip#(mark(X))) (mark#(add(X1, X2)) -> mark#(X1), mark#(recip(X)) -> active#(recip(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> sqr#(mark(X))) (mark#(add(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(terms(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(terms(X)) -> terms#(mark(X))) (mark#(add(X1, X2)) -> mark#(X1), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(X))) (mark#(add(X1, X2)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> add#(mark(X1), mark(X2))) (mark#(add(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> dbl#(mark(X))) (mark#(add(X1, X2)) -> mark#(X1), mark#(nil()) -> active#(nil())) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> first#(mark(X1), mark(X2))) (active#(sqr(s(X))) -> add#(sqr(X), dbl(X)), add#(X1, mark(X2)) -> add#(X1, X2)) (active#(sqr(s(X))) -> add#(sqr(X), dbl(X)), add#(X1, active(X2)) -> add#(X1, X2)) (active#(sqr(s(X))) -> add#(sqr(X), dbl(X)), add#(mark(X1), X2) -> add#(X1, X2)) (active#(sqr(s(X))) -> add#(sqr(X), dbl(X)), add#(active(X1), X2) -> add#(X1, X2)) (mark#(add(X1, X2)) -> add#(mark(X1), mark(X2)), add#(X1, mark(X2)) -> add#(X1, X2)) (mark#(add(X1, X2)) -> add#(mark(X1), mark(X2)), add#(X1, active(X2)) -> add#(X1, X2)) (mark#(add(X1, X2)) -> add#(mark(X1), mark(X2)), add#(mark(X1), X2) -> add#(X1, X2)) (mark#(add(X1, X2)) -> add#(mark(X1), mark(X2)), add#(active(X1), X2) -> add#(X1, X2)) } SCCS: Scc: { first#(X1, mark(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2), first#(mark(X1), X2) -> first#(X1, X2), first#(active(X1), X2) -> first#(X1, X2)} Scc: { dbl#(mark(X)) -> dbl#(X), dbl#(active(X)) -> dbl#(X)} Scc: { add#(X1, mark(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2), add#(mark(X1), X2) -> add#(X1, X2), add#(active(X1), X2) -> add#(X1, X2)} Scc: { s#(mark(X)) -> s#(X), s#(active(X)) -> s#(X)} Scc: { terms#(mark(X)) -> terms#(X), terms#(active(X)) -> terms#(X)} Scc: { sqr#(mark(X)) -> sqr#(X), sqr#(active(X)) -> sqr#(X)} Scc: { recip#(mark(X)) -> recip#(X), recip#(active(X)) -> recip#(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: { mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(recip(X)) -> mark#(X), mark#(recip(X)) -> active#(recip(mark(X))), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(terms(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X))), mark#(s(X)) -> active#(s(X)), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(add(0(), X)) -> mark#(X), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} SCC: Strict: { first#(X1, mark(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2), first#(mark(X1), X2) -> first#(X1, X2), first#(active(X1), X2) -> first#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(first#) = 0 Strict: { first#(X1, mark(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2), first#(mark(X1), X2) -> first#(X1, X2)} EDG: {(first#(X1, active(X2)) -> first#(X1, X2), first#(mark(X1), X2) -> first#(X1, X2)) (first#(X1, active(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2)) (first#(X1, active(X2)) -> first#(X1, X2), first#(X1, mark(X2)) -> first#(X1, X2)) (first#(mark(X1), X2) -> first#(X1, X2), first#(X1, mark(X2)) -> first#(X1, X2)) (first#(mark(X1), X2) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2)) (first#(mark(X1), X2) -> first#(X1, X2), first#(mark(X1), X2) -> first#(X1, X2)) (first#(X1, mark(X2)) -> first#(X1, X2), first#(X1, mark(X2)) -> first#(X1, X2)) (first#(X1, mark(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2)) (first#(X1, mark(X2)) -> first#(X1, X2), first#(mark(X1), X2) -> first#(X1, X2))} SCCS: Scc: { first#(X1, mark(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2), first#(mark(X1), X2) -> first#(X1, X2)} SCC: Strict: { first#(X1, mark(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2), first#(mark(X1), X2) -> first#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(first#) = 0 Strict: { first#(X1, mark(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2)} EDG: {(first#(X1, active(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2)) (first#(X1, active(X2)) -> first#(X1, X2), first#(X1, mark(X2)) -> first#(X1, X2)) (first#(X1, mark(X2)) -> first#(X1, X2), first#(X1, mark(X2)) -> first#(X1, X2)) (first#(X1, mark(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2))} SCCS: Scc: { first#(X1, mark(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2)} SCC: Strict: { first#(X1, mark(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(first#) = 1 Strict: {first#(X1, active(X2)) -> first#(X1, X2)} EDG: {(first#(X1, active(X2)) -> first#(X1, X2), first#(X1, active(X2)) -> first#(X1, X2))} SCCS: Scc: {first#(X1, active(X2)) -> first#(X1, X2)} SCC: Strict: {first#(X1, active(X2)) -> first#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(first#) = 1 Strict: {} Qed SCC: Strict: { dbl#(mark(X)) -> dbl#(X), dbl#(active(X)) -> dbl#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(dbl#) = 0 Strict: {dbl#(active(X)) -> dbl#(X)} EDG: {(dbl#(active(X)) -> dbl#(X), dbl#(active(X)) -> dbl#(X))} SCCS: Scc: {dbl#(active(X)) -> dbl#(X)} SCC: Strict: {dbl#(active(X)) -> dbl#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(dbl#) = 0 Strict: {} Qed SCC: Strict: { add#(X1, mark(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2), add#(mark(X1), X2) -> add#(X1, X2), add#(active(X1), X2) -> add#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(add#) = 0 Strict: { add#(X1, mark(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2), add#(mark(X1), X2) -> add#(X1, X2)} EDG: {(add#(X1, active(X2)) -> add#(X1, X2), add#(mark(X1), X2) -> add#(X1, X2)) (add#(X1, active(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2)) (add#(X1, active(X2)) -> add#(X1, X2), add#(X1, mark(X2)) -> add#(X1, X2)) (add#(mark(X1), X2) -> add#(X1, X2), add#(X1, mark(X2)) -> add#(X1, X2)) (add#(mark(X1), X2) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2)) (add#(mark(X1), X2) -> add#(X1, X2), add#(mark(X1), X2) -> add#(X1, X2)) (add#(X1, mark(X2)) -> add#(X1, X2), add#(X1, mark(X2)) -> add#(X1, X2)) (add#(X1, mark(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2)) (add#(X1, mark(X2)) -> add#(X1, X2), add#(mark(X1), X2) -> add#(X1, X2))} SCCS: Scc: { add#(X1, mark(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2), add#(mark(X1), X2) -> add#(X1, X2)} SCC: Strict: { add#(X1, mark(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2), add#(mark(X1), X2) -> add#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(add#) = 0 Strict: { add#(X1, mark(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2)} EDG: {(add#(X1, active(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2)) (add#(X1, active(X2)) -> add#(X1, X2), add#(X1, mark(X2)) -> add#(X1, X2)) (add#(X1, mark(X2)) -> add#(X1, X2), add#(X1, mark(X2)) -> add#(X1, X2)) (add#(X1, mark(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2))} SCCS: Scc: { add#(X1, mark(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2)} SCC: Strict: { add#(X1, mark(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(add#) = 1 Strict: {add#(X1, active(X2)) -> add#(X1, X2)} EDG: {(add#(X1, active(X2)) -> add#(X1, X2), add#(X1, active(X2)) -> add#(X1, X2))} SCCS: Scc: {add#(X1, active(X2)) -> add#(X1, X2)} SCC: Strict: {add#(X1, active(X2)) -> add#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(add#) = 1 Strict: {} Qed SCC: Strict: { s#(mark(X)) -> s#(X), s#(active(X)) -> s#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(s#) = 0 Strict: {s#(mark(X)) -> s#(X)} EDG: {(s#(mark(X)) -> s#(X), s#(mark(X)) -> s#(X))} SCCS: Scc: {s#(mark(X)) -> s#(X)} SCC: Strict: {s#(mark(X)) -> s#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(s#) = 0 Strict: {} Qed SCC: Strict: { terms#(mark(X)) -> terms#(X), terms#(active(X)) -> terms#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(terms#) = 0 Strict: {terms#(active(X)) -> terms#(X)} EDG: {(terms#(active(X)) -> terms#(X), terms#(active(X)) -> terms#(X))} SCCS: Scc: {terms#(active(X)) -> terms#(X)} SCC: Strict: {terms#(active(X)) -> terms#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(terms#) = 0 Strict: {} Qed SCC: Strict: { sqr#(mark(X)) -> sqr#(X), sqr#(active(X)) -> sqr#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(sqr#) = 0 Strict: {sqr#(active(X)) -> sqr#(X)} EDG: {(sqr#(active(X)) -> sqr#(X), sqr#(active(X)) -> sqr#(X))} SCCS: Scc: {sqr#(active(X)) -> sqr#(X)} SCC: Strict: {sqr#(active(X)) -> sqr#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(sqr#) = 0 Strict: {} Qed SCC: Strict: { recip#(mark(X)) -> recip#(X), recip#(active(X)) -> recip#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(recip#) = 0 Strict: {recip#(active(X)) -> recip#(X)} EDG: {(recip#(active(X)) -> recip#(X), recip#(active(X)) -> recip#(X))} SCCS: Scc: {recip#(active(X)) -> recip#(X)} SCC: Strict: {recip#(active(X)) -> recip#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(recip#) = 0 Strict: {} Qed SCC: 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(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(cons#) = 0 Strict: { cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2), cons#(mark(X1), X2) -> cons#(X1, X2)} EDG: {(cons#(X1, active(X2)) -> cons#(X1, X2), cons#(mark(X1), 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#(X1, mark(X2)) -> cons#(X1, X2)) (cons#(mark(X1), X2) -> cons#(X1, X2), cons#(X1, mark(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#(mark(X1), X2) -> cons#(X1, X2)) (cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, mark(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#(mark(X1), X2) -> cons#(X1, X2))} SCCS: Scc: { cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2), cons#(mark(X1), X2) -> cons#(X1, X2)} SCC: Strict: { cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2), cons#(mark(X1), X2) -> cons#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(cons#) = 0 Strict: { cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2)} EDG: {(cons#(X1, active(X2)) -> cons#(X1, X2), cons#(X1, active(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#(X1, mark(X2)) -> cons#(X1, X2)) (cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2))} SCCS: Scc: { cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2)} SCC: Strict: { cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(cons#) = 1 Strict: {cons#(X1, active(X2)) -> cons#(X1, X2)} EDG: {(cons#(X1, active(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2))} SCCS: Scc: {cons#(X1, active(X2)) -> cons#(X1, X2)} SCC: Strict: {cons#(X1, active(X2)) -> cons#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} SPSC: Simple Projection: pi(cons#) = 1 Strict: {} Qed SCC: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(recip(X)) -> mark#(X), mark#(recip(X)) -> active#(recip(mark(X))), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(terms(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X))), mark#(s(X)) -> active#(s(X)), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(add(0(), X)) -> mark#(X), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} POLY: Argument Filtering: pi(first) = [], pi(nil) = [], pi(dbl) = [], pi(add) = [], pi(0) = [], pi(active#) = 0, pi(active) = [], pi(s) = [], pi(terms) = [], pi(sqr) = [], pi(recip) = [], pi(cons) = [], pi(mark#) = [], pi(mark) = [] Usable Rules: {} Interpretation: [mark#] = 1, [first] = 1, [add] = 1, [cons] = 0, [dbl] = 1, [s] = 0, [terms] = 1, [sqr] = 1, [recip] = 0 Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(terms(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X))), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(add(0(), X)) -> mark#(X), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} EDG: { (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (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)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(terms(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(recip(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(terms(X)) -> active#(terms(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(add(0(), X)) -> mark#(X)) (mark#(terms(X)) -> active#(terms(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N))))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(terms(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(recip(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(recip(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(recip(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(recip(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(recip(X)) -> mark#(X), mark#(terms(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(terms(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(terms(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(terms(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(terms(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(terms(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(terms(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(terms(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(terms(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(terms(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(terms(X)) -> mark#(X), mark#(terms(X)) -> mark#(X)) (mark#(terms(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(terms(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(terms(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(terms(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (active#(add(0(), X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(add(0(), X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (active#(add(0(), X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (active#(add(0(), X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(add(0(), X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (active#(add(0(), X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(add(0(), X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (active#(add(0(), X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (active#(add(0(), X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(add(0(), X)) -> mark#(X), mark#(terms(X)) -> mark#(X)) (active#(add(0(), X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(add(0(), X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (active#(add(0(), X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (active#(add(0(), X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(terms(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(terms(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(recip(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(add(0(), X)) -> mark#(X)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N))))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(first(X1, X2)) -> mark#(X1)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(dbl(X)) -> mark#(X)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(add(X1, X2)) -> mark#(X2)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(add(X1, X2)) -> mark#(X1)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(terms(X)) -> mark#(X)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(sqr(X)) -> mark#(X)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(recip(X)) -> mark#(X)) (active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(add(0(), X)) -> mark#(X)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(recip(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(terms(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(terms(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(terms(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(dbl(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(terms(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(terms(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(recip(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(sqr(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(terms(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> mark#(X2)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(dbl(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> mark#(X2)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(add(0(), X)) -> mark#(X)) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(add(0(), X)) -> mark#(X)) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(recip(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(terms(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> mark#(X2)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X2)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) } SCCS: Scc: { mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(terms(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X))), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(add(0(), X)) -> mark#(X), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} SCC: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(terms(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X))), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(terms(N)) -> mark#(cons(recip(sqr(N)), terms(s(N)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(add(0(), X)) -> mark#(X), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} POLY: Argument Filtering: pi(first) = [0,1], pi(nil) = [], pi(dbl) = 0, pi(add) = [0,1], pi(0) = [], pi(active#) = 0, pi(active) = 0, pi(s) = [], pi(terms) = [0], pi(sqr) = 0, pi(recip) = 0, pi(cons) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [first](x0, x1) = x0 + x1, [add](x0, x1) = x0 + x1, [s] = 0, [terms](x0) = x0 + 1, [0] = 0 Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(terms(X)) -> active#(terms(mark(X))), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(add(0(), X)) -> mark#(X), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} EDG: { (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(add(0(), X)) -> mark#(X)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(recip(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(recip(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(recip(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (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#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (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)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(recip(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(terms(X)) -> active#(terms(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(add(0(), X)) -> mark#(X)) (mark#(terms(X)) -> active#(terms(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(terms(X)) -> active#(terms(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(recip(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(recip(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X2)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> mark#(X2)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(recip(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(recip(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(recip(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(sqr(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> mark#(X2)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(dbl(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> mark#(X2)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(add(0(), X)) -> mark#(X)) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(add(0(), X)) -> mark#(X)) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (active#(add(0(), X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (active#(add(0(), X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (active#(add(0(), X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (active#(add(0(), X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(add(0(), X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X)))) (active#(add(0(), X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (active#(add(0(), X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (active#(add(0(), X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(add(0(), X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (active#(add(0(), X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(add(0(), X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (active#(add(0(), X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (active#(add(0(), X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(add(0(), X)) -> mark#(X)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(terms(X)) -> active#(terms(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) } SCCS: Scc: { mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(terms(X)) -> active#(terms(mark(X))), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(add(0(), X)) -> mark#(X), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} SCC: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(terms(X)) -> active#(terms(mark(X))), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(add(0(), X)) -> mark#(X), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} POLY: Argument Filtering: pi(first) = [], pi(nil) = [], pi(dbl) = [], pi(add) = [], pi(0) = [], pi(active#) = 0, pi(active) = [], pi(s) = [], pi(terms) = [], pi(sqr) = [], pi(recip) = [], pi(cons) = [], pi(mark#) = [], pi(mark) = [] Usable Rules: {} Interpretation: [mark#] = 1, [first] = 1, [add] = 1, [dbl] = 1, [terms] = 0, [sqr] = 1 Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(add(0(), X)) -> mark#(X), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} EDG: { (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(add(0(), X)) -> mark#(X)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(recip(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(recip(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(recip(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (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#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (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)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(recip(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(add(0(), X)) -> mark#(X)) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> mark#(X2)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(dbl(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> mark#(X2)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(sqr(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(recip(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(recip(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> mark#(X2)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X2)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(recip(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(add(0(), X)) -> mark#(X)) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (active#(add(0(), X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (active#(add(0(), X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (active#(add(0(), X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (active#(add(0(), X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(add(0(), X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (active#(add(0(), X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (active#(add(0(), X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(add(0(), X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (active#(add(0(), X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(add(0(), X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (active#(add(0(), X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (active#(add(0(), X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(recip(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(add(0(), X)) -> mark#(X)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) } SCCS: Scc: { mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(add(0(), X)) -> mark#(X), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} SCC: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(add(0(), X)) -> mark#(X), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} POLY: Argument Filtering: pi(first) = [0,1], pi(nil) = [], pi(dbl) = 0, pi(add) = [0,1], pi(0) = [], pi(active#) = 0, pi(active) = 0, pi(s) = [], pi(terms) = 0, pi(sqr) = 0, pi(recip) = 0, pi(cons) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [first](x0, x1) = x0 + x1, [add](x0, x1) = x0 + x1, [s] = 0, [0] = 1 Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} EDG: { (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(recip(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(recip(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(recip(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(recip(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(recip(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (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#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(recip(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(recip(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X2)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> mark#(X2)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(recip(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(recip(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(sqr(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> mark#(X2)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(dbl(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> mark#(X2)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(recip(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (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#(first(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(recip(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(recip(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) } SCCS: Scc: { mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} SCC: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(recip(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} POLY: Argument Filtering: pi(first) = [0,1], pi(nil) = [], pi(dbl) = 0, pi(add) = [0,1], pi(0) = [], pi(active#) = 0, pi(active) = 0, pi(s) = [], pi(terms) = [0], pi(sqr) = 0, pi(recip) = [0], pi(cons) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [first](x0, x1) = x0 + x1, [add](x0, x1) = x0 + x1, [s] = 0, [recip](x0) = x0 + 1 Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} EDG: { (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> mark#(X2)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X2)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(dbl(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(sqr(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> mark#(X2)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(dbl(X)) -> mark#(X)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> mark#(X1)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> mark#(X2)) (active#(add(s(X), Y)) -> mark#(s(add(X, Y))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(add(s(X), Y)) -> mark#(s(add(X, Y)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (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#(first(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(add(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(add(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) } SCCS: Scc: { mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} SCC: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(add(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(add(s(X), Y)) -> mark#(s(add(X, Y))), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} POLY: Argument Filtering: pi(first) = [0,1], pi(nil) = [], pi(dbl) = 0, pi(add) = [0,1], pi(0) = [], pi(active#) = 0, pi(active) = 0, pi(s) = [], pi(terms) = [], pi(sqr) = 0, pi(recip) = [], pi(cons) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [first](x0, x1) = x0 + x1, [add](x0, x1) = x0 + x1 + 1, [s] = 0 Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} EDG: {(mark#(sqr(X)) -> active#(sqr(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X2)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (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)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))))} SCCS: Scc: { mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} SCC: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(add(X1, X2)) -> active#(add(mark(X1), mark(X2))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} POLY: Argument Filtering: pi(first) = [], pi(nil) = [], pi(dbl) = [], pi(add) = [], pi(0) = [], pi(active#) = 0, pi(active) = [], pi(s) = [], pi(terms) = [], pi(sqr) = [], pi(recip) = [], pi(cons) = [], pi(mark#) = [], pi(mark) = [] Usable Rules: {} Interpretation: [mark#] = 1, [first] = 1, [add] = 0, [dbl] = 1, [sqr] = 1 Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} EDG: {(mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (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#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> mark#(X)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X1)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> mark#(X2)) (active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (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#(first(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))))} SCCS: Scc: { mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} SCC: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), active#(first(s(X), cons(Y, Z))) -> mark#(cons(Y, first(X, Z)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} POLY: Argument Filtering: pi(first) = [0,1], pi(nil) = [], pi(dbl) = 0, pi(add) = [0,1], pi(0) = [], pi(active#) = 0, pi(active) = 0, pi(s) = [], pi(terms) = [], pi(sqr) = 0, pi(recip) = [], pi(cons) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [first](x0, x1) = x0 + x1, [s] = 1 Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} EDG: {(mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (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#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (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#(first(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))))} SCCS: Scc: { mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))} SCC: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} POLY: Argument Filtering: pi(first) = [0,1], pi(nil) = [], pi(dbl) = 0, pi(add) = [], pi(0) = [], pi(active#) = [], pi(active) = [], pi(s) = [], pi(terms) = [], pi(sqr) = 0, pi(recip) = [], pi(cons) = [0], pi(mark#) = 0, pi(mark) = [] Usable Rules: {} Interpretation: [active#] = 0, [first](x0, x1) = x0 + x1, [cons](x0) = x0 + 1, [s] = 0 Strict: { mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} EDG: {(mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (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)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> mark#(X)) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(dbl(X)) -> active#(dbl(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> active#(dbl(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(dbl(X)) -> mark#(X)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> mark#(X)) (mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(dbl(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(dbl(X)) -> active#(dbl(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))))} SCCS: Scc: { mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))} SCC: Strict: { mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(dbl(X)) -> mark#(X), mark#(dbl(X)) -> active#(dbl(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} POLY: Argument Filtering: pi(first) = [0,1], pi(nil) = [], pi(dbl) = [0], pi(add) = [], pi(0) = [], pi(active#) = [], pi(active) = [], pi(s) = [], pi(terms) = [], pi(sqr) = 0, pi(recip) = [], pi(cons) = [], pi(mark#) = 0, pi(mark) = [] Usable Rules: {} Interpretation: [active#] = 0, [first](x0, x1) = x0 + x1, [dbl](x0) = x0 + 1, [s] = 0 Strict: { mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} EDG: {(active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X1), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))) (mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X1)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> mark#(X2)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X1)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> mark#(X2)) (mark#(sqr(X)) -> mark#(X), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> mark#(X)) (mark#(first(X1, X2)) -> mark#(X2), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X1)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> mark#(X2)) (mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))))} SCCS: Scc: { mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))} SCC: Strict: { mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), mark#(first(X1, X2)) -> mark#(X1), mark#(first(X1, X2)) -> mark#(X2), mark#(first(X1, X2)) -> active#(first(mark(X1), mark(X2))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} POLY: Argument Filtering: pi(first) = [0,1], pi(nil) = [], pi(dbl) = [], pi(add) = [], pi(0) = [], pi(active#) = [], pi(active) = [], pi(s) = [], pi(terms) = [], pi(sqr) = 0, pi(recip) = [], pi(cons) = [], pi(mark#) = 0, pi(mark) = [] Usable Rules: {} Interpretation: [active#] = 0, [first](x0, x1) = x0 + x1 + 1, [s] = 0 Strict: { mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} EDG: {(active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> mark#(X)) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(dbl(s(X))) -> mark#(s(s(dbl(X)))), mark#(sqr(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(dbl(s(X))) -> mark#(s(s(dbl(X)))))} SCCS: Scc: { mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))} SCC: Strict: { mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), active#(dbl(s(X))) -> mark#(s(s(dbl(X))))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} POLY: Argument Filtering: pi(first) = [], pi(nil) = [], pi(dbl) = 0, pi(add) = [], pi(0) = [], pi(active#) = 0, pi(active) = [], pi(s) = [0], pi(terms) = [], pi(sqr) = [], pi(recip) = [], pi(cons) = [], pi(mark#) = [], pi(mark) = [] Usable Rules: {} Interpretation: [mark#] = 0, [s](x0) = x0 + 1, [sqr] = 0 Strict: { mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} EDG: {(active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> active#(sqr(mark(X)))) (active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))), mark#(sqr(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> mark#(X)) (mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X)))) (mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X)))))} SCCS: Scc: { mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))} SCC: Strict: { mark#(sqr(X)) -> mark#(X), mark#(sqr(X)) -> active#(sqr(mark(X))), active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} POLY: Argument Filtering: pi(first) = [], pi(nil) = [], pi(dbl) = [], pi(add) = [], pi(0) = [], pi(active#) = [], pi(active) = [], pi(s) = [], pi(terms) = [], pi(sqr) = [0], pi(recip) = [], pi(cons) = [], pi(mark#) = 0, pi(mark) = [] Usable Rules: {} Interpretation: [active#] = 0, [s] = 0, [sqr](x0) = x0 + 1 Strict: {active#(sqr(s(X))) -> mark#(s(add(sqr(X), dbl(X))))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(recip(X)) -> active(recip(mark(X))), mark(sqr(X)) -> active(sqr(mark(X))), mark(terms(X)) -> active(terms(mark(X))), mark(s(X)) -> active(s(X)), mark(0()) -> active(0()), mark(add(X1, X2)) -> active(add(mark(X1), mark(X2))), mark(dbl(X)) -> active(dbl(mark(X))), mark(nil()) -> active(nil()), mark(first(X1, X2)) -> active(first(mark(X1), mark(X2))), 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), recip(mark(X)) -> recip(X), recip(active(X)) -> recip(X), sqr(mark(X)) -> sqr(X), sqr(active(X)) -> sqr(X), terms(mark(X)) -> terms(X), terms(active(X)) -> terms(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))), active(sqr(0())) -> mark(0()), active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))), active(add(s(X), Y)) -> mark(s(add(X, Y))), active(add(0(), X)) -> mark(X), active(dbl(s(X))) -> mark(s(s(dbl(X)))), active(dbl(0())) -> mark(0()), active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))), active(first(0(), X)) -> mark(nil()), add(X1, mark(X2)) -> add(X1, X2), add(X1, active(X2)) -> add(X1, X2), add(mark(X1), X2) -> add(X1, X2), add(active(X1), X2) -> add(X1, X2), dbl(mark(X)) -> dbl(X), dbl(active(X)) -> dbl(X), first(X1, mark(X2)) -> first(X1, X2), first(X1, active(X2)) -> first(X1, X2), first(mark(X1), X2) -> first(X1, X2), first(active(X1), X2) -> first(X1, X2)} EDG: {} SCCS: Qed