## Easiest way to determine the singular locus of projective variety & resolution of singularities

### Remember to vote up questions/answers you find interesting or helpful (requires 15 reputation points)

For an affine variety, I know how to compute the set of singular points by simply looking at the points where the Jacobian matrix for the set of defining equations has too small a rank.

But what is the corresponding method for a variety that is a projective variety,and also a variety is a subset of a product of some projective space and affine space? The way I can think of is covering it by sets that are affine, and doing it for each affine set in this open cover - but that seems tedious for practical purposes (but fine for theoretical definitions & theoretical properties).

Also for resolution of singularities, what is a simple method that is guaranteed to work? The way suggested in the definitions in Hartshorne and other books, is to blow up along the singular locus, then look at the singular locus of the blow-up, and blow up again, and so on - is that guaranteed to terminate? What are some more efficient methods? I have looked at the reference "Resolution of Singularities", a book by someone - that's what he also seems to suggest (though his proof is very general, and I didn't read all of it).

-

## 4 Answers

The Jacobian condition for smoothness is valid also for projective varieties as well as affine varieties: you just take a homogeneous defining ideal and compute the rank of the Jacobian matrix at the point p, see e.g. p. 4 of

http://www.ma.utexas.edu/users/gfarkas/teaching/alggeom/march4.pdf

For a general variety: yes, I think the most computationally effective way to do it is to cover it by affine opens and apply the Jacobian condition on each one separately.

About your question on resolution of singularities: this is tricky in high dimension! As I understand it, you can indeed resolve singularities just by a combination of blowups and normalizations (at least in characteristic 0), but starting in dimension 3 you have to be somewhat clever about where in and what order you perform your blowups. It is not the case that if you just keep picking a closed subvariety and blowing it up (and then normalizing) that you will necessarily terminate with a smooth variety.

For more details presented in a user-friendly way, I recommend Herwig Hauser's article

http://homepage.univie.ac.at/herwig.hauser/Publications/The%20Hironaka%20Theorem%20on%20resolution%20of%20singularities/The%20Hironaka%20Theorem%20on%20resolution%20of%20singularities.pdf

-

In the scheme-theoretic setting, the Jacobian criterion only works for closed points, right? How to do it for non-closed points, can we still find the singular non-closed points using the Jacobian criterion?  – Wanderer Mar 2 2010 at 1:46
The set of non-closed points that are in a set is determined by the set of closed points that are in it.  If the ideal generated by the appropriately-sized minors is contained in a prime ideal $p$, then $p$ is singular. – Will Sawin Sep 30 2011 at 4:53

### You can accept an answer to one of your own questions by clicking the check mark next to it. This awards 15 reputation points to the person who answered and 2 reputation points to you.

The other answers are already very good. A few additional notes:

(1) As others have explained, the Jacobian ideal method works for projective space. It also works for other toric varieties. Any smooth toric variety can be written as $(\mathbb{C}^n \setminus \Sigma)/(\mathbb{C}^{*})^k$ where $\Sigma$ is an arrangement of linear spaces and $(\mathbb{C}^{*})^k$ acts on $\mathbb{C}^n$ by some linear representation. For example, $\mathbb{P}^n = (\mathbb{C}^{n+1} \setminus \{ 0 \} )/\mathbb{C}^*$. So you can use Greg's trick of unquotienting, using the ordinary Jacobi criterion, and ignoring singularities on $\Sigma$. See David Cox's notes for how to write a toric variety in this manner.

(2) For varieties of dimension greater than $1$, resolution of singularities is very computationally intensive. It has been implemented in Macaulay 2, but it tends to tax the memory resources of the system.

-

Thanks much for this answer.  Even though I had seen all pieces of this, I somehow never grokked the unquotienting trick for a general toric variety.  – Greg Kuperberg Dec 13 2009 at 1:48
You're welcome! Note that I added the word "smooth" to the above. I think there is some sense in which unquotienting works for non-smooth toric varieties, but I realized I don't understand it well enough to say how the Jacobi criterion will be transformed by it. – David Speyer Dec 13 2009 at 14:19

For many questions, the easiest way to see the nuts and bolts of a projective variety $V \subseteq P^n$ is to look at its cone $CV \subseteq A^{n+1}$. After all, the graded ring whose Proj is $V$ is the same as the ungraded ring whose Spec is $CV$. Obviously, there is almost always a singularity at the origin; but if you ignore that point, the other singular points all correspond between $V$ and $CV$. You can also think of the grading as geometrically represented by multiplication by $k^*$, if you are working over an algebraically closed field $k$. (Because the homogeneous polynomials are then eigenvectors of that group action.) You can think of $V$ as obtained from $CV$ by and then dividing by scalar multiplication.

The atlas-of-charts analysis of a projective variety is certainly important, but to some extent it is meant as an introduction to intrinsic algebraic geometry rather than as the best computational tool.

Your second question is reviewed in Wikipedia. As Wikipedia explains, Hironaka's big theorem was that it is possible to resolve all singularities of a variety by iterated blowups along subvarieties. I do not know a lot about this theory, but if so many capable mathematicians went to so much trouble to find a method, then surely there is no simple method.

On the other hand for curves, there is a stunning method that I learned about (or maybe relearned) just recently. Again according to Wikipedia, taking the integral closure of the coordinate ring of an affine curve, or the graded coordinate ring of a projective curve, solves everything. The claim is that it always removes the singularities of codimension 1, which are the only kind that a curve has.

-

The statement for curves comes down to the usual Galois antiequivalence between smooth curves over a field and their fields of functions. – S. Carnahan♦ Dec 12 2009 at 5:45
I should have inserted the word "projective" between "smooth" and "curves". – S. Carnahan♦ Dec 12 2009 at 5:47
I'd say it rather comes down to the fact that an integrally closed local ring of dimension one is regular, so that the normalization of the curve is smooth at each of its points. – Mariano Suárez-Alvarez Dec 12 2009 at 6:02
There are several ways to argue why it works for curves.  In any case, it works.  – Greg Kuperberg Dec 12 2009 at 7:11

About resolutions: yes, that is essentially the algorithm, and it does terminate, but you have to be careful about what you blow up (you have to blow up smooth subvarieties, for example, to be sure this converges, &c) and in what order.

Two very nice textbooks on resolution with plenty of both examples and details are Kollár's book and Cutkosky's book. There is also a (more recent?) nice one by O. Villamayor.

-
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 19, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.953665554523468, "perplexity_flag": "head"}