Errata for the book: Computations in algebraic geometry with Macaulay 2

page 65, posted May 13, 2004: The routine blowUpIdeal was never intended to handle the blow-up of an arbitrary scheme along an arbitrary subscheme. It was designed to illustrate several of the classic blow-ups in Section IV.2 in Eisenbud and Harris [5]. As a result, it makes the following assumptions on the input: (1) The ideal "I" lives in a polynomial ring. The routine ignores any relations between the variables in the ring "S" of "I", so it will fail unless the ring is a polynomial ring. (2) It uses "t" as a global variable, so fails if the ideal "I" is in a ring already using "t" as an indeterminate. (3) It also uses the first "r" letters of the alphabet as global variables, where "r" is the number of generators of the ideal "I", so fails if the ideal is in a ring using any of those letters as variables. The input line i71 does not establish that the scheme X is nonsingular. To accomplish this, we should show that the singular locus, which is given by the appropriate minors of the Jacobian matrix, contains a power of the irrelevant ideal. This can be implement in Macaulay 2 as follows: ring J == saturate(J + minors(codim J, jacobian J), ideal(a,b,c))