Abstract
We describe a new algorithm for computing Whitney stratifications of complex projective varieties. The main ingredients are (a) an algebraic criterion, due to Lê and Teissier, which reformulates Whitney regularity in terms of conormal spaces and maps, and (b) a new interpretation of this conormal criterion via ideal saturations, which can be practically implemented on a computer. We show that this algorithm improves upon the existing state of the art by several orders of magnitude, even for relatively small input varieties. En route, we introduce related algorithms for efficiently stratifying affine varieties, flags on a given variety, and algebraic maps.
Similar content being viewed by others
Avoid common mistakes on your manuscript.
1 Introduction
The quest to define and study singular spaces counts among the most spectacular success stories of twentieth century mathematics. Much of the underlying motivation arose from algebraic geometry, where the spaces of interest—namely, the vanishing loci of polynomials—contain singular points even in the simplest of cases. Without the benefit of hindsight, it remains a Herculean task to construct good models of singular spaces that are simultaneously broad enough to include all analytic varieties and narrow enough to exclude various pathological spaces which arise as zero sets of arbitrary smooth functions. The standard solution to this conundrum, which we describe below, was first proposed by Whitney [50] and subsequently refined by Thom [43, 44], Mather [33], GoreskyMacPherson [21,22,23], LêTeissier [31], Fulton [17], CappellShaneson [7], Weinberger [49] and others.
1.1 Whitney’s Condition (B)
As a natural starting point, one can at least require each candidate space X under consideration to embed in some Euclidean space \(\mathbb {R}^n\) and to admit a partition into smooth submanifolds, say
with \(\dim M_i = i\). An entirely reasonable first attempt at constructing such \(M_i\) from X might proceed as follows. For each dimension \(0 \le i \le n\) and subset \(Y \subset \mathbb {R}^n\), let \(\mathscr {E}_i(Y)\) denote the set of points p in Y which admit an open neighborhood \(U_p \subset Y\) homeomorphic to \(\mathbb {R}^i\). Then, recursively define
where \(M_{>i}\) denotes the union \(\bigcup _{j>i}M_j\). Unfortunately, this recursive strategy does not produce a desirable partition. Perhaps the simplest way to see the underlying problem is to try constructing these \(M_i\) by hand when \(X \subset \mathbb {R}^3\) is the singular surface depicted in Fig. 1.
Since \(M_3\) is empty, one identifies \(M_2 \subset X\) as the set of points with twodimensional Euclidean neighborhoods; and upon removing these, only the xaxis remains. This axis must therefore equal \(M_1\), and we obtain a partition of X into one and twodimensional smooth manifolds. The issue here is that the origin has a singularity type which is different from all other points lying on \(M_1\)—a small neighborhood in X around the origin is not homeomorphic to a small neighborhood around any other point lying on the xaxis. More precisely, let G be the group of homeomorphisms \(f:X \rightarrow X\) so that f is isotopic to the identity and its restriction to each \(M_i\) is a diffeomorphism. It turns out that G acts transitively on the two connected components of \(M_1{\left\{ {0}\right\} }\) while fixing 0 itself. Thus, our recursive strategy must be amended so that the \(M_i\) are Gequisingular in this sense, which would automatically separate 0 from \(M_1\) into a separate stratum.
Whitney’s ingenious approach from [50] was to consider the behavior of limiting tangent spaces as one approaches a point in some \(Y := M_i\) in two different ways: one in a tangential direction along Y itself, and another in a normal direction along some other \(X := M_j\) for \(j > i\). Let \({\left\{ {x_i}\right\} }\) and \({\left\{ {y_i}\right\} }\) be sequences of points in X and Y, respectively, which both converge to the same y in Y. Write \(T_i\) for the tangent space of X at \(x_i\) and \(\ell _i\) for the secant line \([x_i,y_i]\) joining each \(x_i\) to the corresponding \(y_i\) in the ambient \(\mathbb {R}^n\). The pair (X, Y) is said to satisfy Whitney’s Condition (B) if the limiting tangent space \(T = \lim T_i\) contains the limiting secant line \(\ell = \lim \ell _i\) whenever both limits exist. In our example, one can find sequences of points in \(X := M_2\) and \(Y := M_1\), both limiting to the problematic point 0, for which \(\ell \not \subset T\)—these are illustrated in Fig. 2.
It is a foundational result in stratification theory that equisingularity is satisfied by any decomposition \(X = \coprod _i M_i\) for which all pairs \((M_j,M_i)\) satisfy Whitney’s Condition (B)—see [33] or [23, Part I Ch 1.5]. Since their very inception, such Whitney stratifications have been used to define and compute myriad important algebraictopological invariants of singular spaces and related structures, even in cases where the invariants do not ultimately depend on the chosen stratification. Prominent examples include intersection homology groups [21, 22], stratified vector fields [6], characteristic varieties [18], Euler obstructions [20, 42] and Chern classes [32], to name but a few.
1.2 Conormal Spaces
Given a kdimensional projective variety \(X \subset \mathbb {P}^n\), let \(X_\text {reg}\) be the smooth locus of X and note that there is a welldefined tangent space \(T_xX_\text {reg}\) at each point x in \(X_\text {reg}\). This tangent space naturally resides in the Grassmannian \(\mathbf {Gr}(k,n+1)\) of kdimensional subspaces of \(\mathbb {C}^{n+1}\); let us consider the map
that sends each x to the pair \((x,T_xX_\text {reg})\). Thus, \(\tau \)’s image is the graph of the Gauss map of X; taking the closure of this image creates a new (usually singular) space \(\mathbf{N}(X)\), called the Nash blowup of X (see [50, Sec 16] or [32]). The fiber over each point \(x \in X\) of the evident projection map \(\mathbf{N}(X) \twoheadrightarrow X\) catalogues all the limiting tangent spaces at x; two such fibers are illustrated in Fig. 3.
From the perspective of analyzing limiting tangent spaces, the Nash blowup is an optimal object. However, the geometry of the Grassmannian is rather intricate, and this makes it difficult to explicitly compute defining equations of \(\mathbf{N}(X)\) from those of X. One remedy is to systematically replace \(\mathbf {Gr}(k,n+1)\) with the dual projective space \((\mathbb {P}^n)^*\) in the construction described above. With this modification in place, we consider the set of all hyperplanes in \(\mathbb {P}^{n}\)—or equivalently, points in the dual projective space \((\mathbb {P}^n)^*\)—that contain the tangent space at each x in \(X_\text {reg}\). Passing to the closure in \(X \times (\mathbb {P}^n)^*\) produces the conormal space \(\mathbf {Con}(X)\) of X, and the natural projection \(\kappa _X:\mathbf {Con}(X) \twoheadrightarrow X\) is called the conormal map. The conormal space retains essential information about limiting tangents; and crucially, \(\mathbf {Con}(X)\) is also a projective variety whose defining equations can be easily extracted from those of X.
1.3 This Paper
Here, we introduce an algorithm for building Whitney stratifications of complex projective varieties. The main reason for restricting our focus to such varieties rather than the far more general class of real semialgebraic sets (which are equally easy to represent on a computer) is that the ingredients required to implement our algorithm are only available in the complex algebraic setting. In any event, the immediate obstacle is that it appears hopeless to try verifying Condition (B) directly for a pair of smooth quasiprojective varieties, since this would require computation of limiting tangent planes and secant lines over arbitrary pairs of infinite sequences. Attempting to bypass this problem by constructing the Nash blowup also appears to be a daunting task. Thus, we turn to the conormal space \(\mathbf {Con}(X)\) of the given input variety X.
The good news comes in the form of a result by Lê and Teissier, which provides a complete characterisation of Condition (B) for projective varieties in terms of their conormal spaces [31, Proposition 1.3.8]. This criterion asserts that for any projective variety \(X \subset \mathbb {P}^n\) and smooth quasiprojective subvariety \(Y \subset X\), the pair \((X_\text {reg},Y)\) satisfies Condition (B) if and only if the ideal sheaf of \(\mathbf {Con}(X) \cap \mathbf {Con}(Y)\) lies in the integral closure of the ideal sheaf of \(\kappa _X^{1}(Y)\). There are now two caveats to consider—first, as remarked above, we are not aware of any analogous criterion for pairs of smooth real (semi)algebraic sets. Second, and more serious from our perspective, is the fact that even the most basic algorithmic tasks involving integral closures are computationally prohibitive [46, Sec 9.3]. Our main result circumvents the latter issue by making use of ideal saturations. (In its statement below, \(I_Z\) indicates the defining homogeneous ideal of a given projective variety Z.)
Theorem
Let \(X \subset \mathbb {P}^n\) be a puredimensional projective variety and \(Y \subset X\) a nonempty irreducible subvariety of its singular locus \(X_\mathrm{sing}\). Let J be defined as the ideal saturation
and write \(\mathbf {V}(J)\) for the corresponding projective variety. Then, the difference
is dense in Y, and moreover, the pair \((X_\text {reg},Y')\) satisfies Condition (B).
Computing ideal saturations (such as J from the statement above) reduces to a standard Gröbner basis calculation [10, Chapter 4.4, Theorem 14], so this result directly leads to our recursive algorithm for stratifying complex projective varieties. Before describing the details, we highlight three relevant features. First, given a kdimensional input variety \(X \subset \mathbb {P}^n\), the output Whitney stratification is produced in the form of (defining equations for) a nested sequence \(X_\bullet \) of subvarieties
so that the desired manifold partition \(X = \coprod _i M_i\) is given by \(M_i := X_i  X_{i1}\). Second, this algorithm can easily be used to produce Whitney stratifications of affine complex varieties as well—first pass to the projective closure X, build its Whitney stratification \(X_\bullet \), then dehomogenize the resulting \(X_i\)’s. And third, given any flag \(\mathbf {F}_\bullet \) of projective subvarieties:
our algorithm can be adapted so that its output is subordinate to this flag. In other words, we can guarantee that each connected component of a given \(M_i\) lies in a single successive difference \(\mathbf {F}_jX  \mathbf {F}_{j1}X\) (see Sect. 6). As a consequence, we are also able in Sect. 7 to stratify generic morphisms of projective varieties by availing of their ThomBoardman flags [5, 43].
1.4 Related Work
The current state of the art in this area appears to be the recent work of Ðinh and Jelonek [30]. To the best of our knowledge, given a complex algebraic variety X embedded in ndimensional affine or projective space, all prior stratification methods (such as [37, 40] for instance) require quantifier elimination in approximately 4n real variables. While critical pointsbased algorithms for quantifier elimination, such as that of Grigoriev and Vorobjov [25], have existed in the theoretical literature for many years, these remain unimplemented (see the discussion in Sect. 8.3). Therefore, quantifier elimination is generally accomplished using some version of the cylindrical algebraic decomposition algorithm of Collins [1, 4, 9], which is known to be extremely difficult in practice. For stratifications of real varieties given by unions of transversely intersecting smooth subvarieties, the theoretical complexity of quantifier elimination can be somewhat improved [47]. As far as we are aware, no implementation of any such quantifier eliminationbased Whitney stratification algorithms has ever been produced.
The work of Ɖinh and Jelonek [30] improves upon such cylindrical algebraic decomposition (CAD) approaches by requiring only Gröbner basis (GB) computations in approximately 4n complex variables. The advantage enjoyed by GB methods over their CAD counterparts in practice has been welldocumented [14, 51]. In fact, it is remarked in [14, III.D] that
“Although like CAD the calculation of GB is doubly exponential in the worst case, GB computation is now mostly trivial for any problem on which CAD construction is tractable".
In fairness, it should be noted that cylindrical algebraic decompositions apply to a much wider class of singular spaces (i.e., real semialgebraic sets), where Gröbner basis methods are entirely unavailable.
Our algorithm further reduces the Whitney stratification problem to Gröbner basistype computations in approximately 2n complex variables, and additionally, is able to preserve the sparsity structure of the input in ways that make a significant difference to realworld performance. By contrast, the algorithm of [30] requires various choices of generic linear forms, which end up removing a lot of sparsity from the systems being considered. As an added bonus our algorithm is deterministic, while the algorithm of [30] is probabilistic. We have implemented both algorithms, and provide a performance comparison in the final Section of this paper.
1.5 Outline
In Sects. 2 and 3, we briefly review conormal spaces and Whitney stratifications, respectively, with a view toward describing the LêTeissier criterion for Whitney’s Condition (B). Section 4, which is focused on the ideal saturation approach to this criterion, forms the technical heart of this paper and contains a proof of our main result. We describe our recursive algorithm for constructing Whitney stratifications of complex projective varieties in Sect. 5 and verify its correctness. In Sect. 6, we modify this algorithm to produce flagsubordinate stratifications, which are then used to stratify projective morphisms in Sect. 7. Finally, Sect. 8 provides both complexity estimates and empirical evidence that the algorithm described here readily outperforms the existing state of the art.
2 Conormal Spaces
For each pair of positive integers n and k with \(n+1 \ge k\), let \(\mathbf {Gr}(k,n+1)\) denote the complex Grassmannian whose points correspond to all the kdimensional linear subspaces of \((n+1)\)dimensional affine space \(\mathbb {C}^{n+1}\). The usual projective space \(\mathbb {P}^n\) equals \(\mathbf {Gr}(1,n+1)\) while its dual \((\mathbb {P}^n)^*\) is \(\mathbf {Gr}(n,n+1)\). Let \(X \subset \mathbb {P}^n\) be a connected kdimensional complex analytic space whose regular and singular loci will be written \(X_\text {reg}\) and \(X_\text {sing} := (X  X_\text {reg})\) respectively. Recall that the tangent space to the smooth manifold \(X_\text {reg}\) at a given point x is a subspace \(T_xX_\text {reg}\) in \(\mathbf {Gr}(k,n+1)\).
Definition 2.1
The conormal space of X is the subset of \(\mathbb {P}^n \times (\mathbb {P}^n)^*\) determined by the closure
Thus, a point \((x,\xi )\) in \(\mathbb {P}^n \times (\mathbb {P}^n)^*\) lies in \(\mathbf {Con}(X)\) if and only if there exists a sequence of points \({\left\{ {x_i}\right\} } \subset X_\text {reg}\) which converge to x in \(\mathbb {P}^n\) and a sequence of hyperplanes \({\left\{ {\xi _i}\right\} } \subset (\mathbb {P}^n)^*\) which converge to \(\xi \) in \((\mathbb {P}^n)^*\) so that \(T_{x_i}X_\text {reg} \subset \xi _i\) holds for all \(i \gg 1\).
The map \(\kappa _X:\mathbf {Con}(X) \rightarrow X\) induced by the evident projection \((x,\xi ) \mapsto x\) is called the conormal map of X; the fiber \(\kappa _X^{1}(x)\) of \(\kappa _X\) over a point x in X is the set of all hyperplanes in \((\mathbb {P}^n)^*\) which contain a limiting tangent space at x. Conormal spaces and maps are wellstudied classical objects of substantial interest in complex geometry, with deep connections to polar varieties, Nash blowups, microlocal analysis and beyond [16]. Here, we will be interested exclusively in conormal maps of complex projective subvarieties \(X \subset \mathbb {P}^n\)—in this special case, \(\mathbf {Con}(X)\) is an ndimensional complex subvariety of \(X \times (\mathbb {P}^n)^*\), the conormal map \(\kappa _X\) is algebraic, and the dimension of each fiber \(\kappa _X^{1}(x)\) is no larger than n (see [16, Proposition 2.9] and references therein).
Proposition 2.2
Let \(X \subset \mathbb {P}^n\) be a pure dimensional complex variety. If \(X' \subset X\) is any Zariskidense subset, then \(\mathbf {Con}(X)=\mathbf {Con}(X')\).
Proof
Since \(X'\) is dense in the closed connected algebraic subspace \(X \subset \mathbb {P}^n\), for any point \((x,\xi )\in \mathbf {Con}(X)\), there exists a sequence of points \(\{x_i\}\) in \(X'_\text {reg}\) converging to x and an induced sequence of hyperplanes \(\xi _i\) containing \(T_{x_i}X'_\text {reg}\) which converge to \(\xi \). Since \(\mathbf {Con}(X)\) is closed by definition, we have \(\mathbf {Con}(X)=\mathbf {Con}(X')\). \(\square \)
3 Whitney Stratifications
Let \(X, Y \subset \mathbb {C}^{n+1}\) be smooth complex manifolds with \(\dim (Y)<\dim (X)\). A point p in Y is said to satisfy Whitney’s Condition (B) with respect to X if the following property [50, Sec 19] holds:
for any sequences of points \({\left\{ {x_i}\right\} } \subset X\) and \({\left\{ {y_i}\right\} } \subset Y\) both converging to p, if the secant lines \(\ell _i = [x_i,y_i]\) converge to some limiting line \(\ell \) in \(\mathbb {P}^n\) and if the tangent spaces \(T_{x_i}X\) converge to some limiting plane T in the Grassmannian \(\mathbf {Gr}(\dim X,n+1)\), then \(\ell \subset T\).
More generally, we say that the pair (X, Y) satisfies Condition (B) if the above property holds for every point p in Y. Note that (X, Y) vacuously satisfies Condition (B) if the closures \(\overline{X}\) and \(\overline{Y}\) do not intersect in \(\mathbb {C}^{n+1}\). The result below is also elementary, and we have only highlighted it here since we appeal to it rather frequently.
Proposition 3.1
Assume that a pair (X, Y) of smooth complex manifolds satisfies Condition (B). If \(X' \subset X\) is a dense submanifold of X and \(Y' \subset Y\) an arbitrary submanifold of Y, then \((X',Y')\) also satisfies Condition (B).
Proof
Since \(X' \subset X\) and \(Y' \subset Y\), every sequence \(({\left\{ {x_i}\right\} },{\left\{ {y_i}\right\} }) \subset X' \times Y'\) is automatically a sequence in \(X \times Y\). And since \(X'\) is dense in X, we have an equality \(T_{x_i}X' = T_{x_i}X\) of tangent planes in the appropriate Grassmannian. Thus, \((X',Y')\) satisfies Condition (B) because (X, Y) does. \(\square \)
Condition (B) serves as a regularity axiom which can be used to induce a particularly wellbehaved and useful class of decompositions of analytic spaces into submanifolds.
Definition 3.2
A (kdimensional) Whitney stratification of a complex analytic subspace \(W \subset \mathbb {C}^{n+1}\) is a filtration \(W_\bullet \) by closed subsets
where each difference \(M_i := W_iW_{i1}\) is a complex analytic idimensional manifold subject to the following conditions. The connected components of \(M_i\), called the idimensional strata, must obey the following axioms:

(1)
local finiteness: every point p in W admits an open neighborhood which intersects only finitely many strata;

(2)
frontier: for each stratum \(S \subset X\), the difference \((\overline{S}S)\) is a finite union of lowerdimensional strata; and finally,

(3)
condition (B): each pair of strata (regardless of dimension) satisfies Condition (B).
Whitney showed in [50, Sect. 19] that every variety X admits a Whitney stratification \(X_\bullet \) for which each constituent \(X_i \subset X\) is a subvariety. His original definition from that paper contains an additional Condition (A), which is now known by Mather’s work to be superfluous [33, Proposition 2.4]. In fact, even the frontier axiom follows from Condition (B) for locally finite stratifications [33, Corollary 10.5], so Condition (B) will remain our sole focus in this paper. The inherent difficulty here is that verifying Condition (B) involves testing the behavior of limiting tangent spaces and secant lines over arbitrary families of infinite sequences. Fortunately, there is a beautiful alternate characterization in terms of conormal maps due to Lê and Teissier [31, Proposition 1.3.8], which we describe below. The following notation has been employed in its statement: for each (open or closed) subscheme Z of \(\mathbb {P}^n\), the defining sheaf of ideals is written \(\mathscr {I}[Z]\).
Proposition 3.3
Let \(X \subset \mathbb {P}^n\) be a projective variety and \(Y \subset X\) a smooth quasiprojective variety. Let \(\kappa _X:\mathbf {Con}(X) \rightarrow X\) be the conormal map of X and \(\overline{\mathscr {I}}[\kappa ^{1}(Y)]\) be the integral closure of the ideal sheaf \(\mathscr {I}[\kappa ^{1}(Y)]\). The pair \((X_\text {reg},Y)\) satisfies Whitney’s Condition (B) if and only if we have a containment
We recall for the reader’s convenience that the integral closure of an ideal I in a commutative ring R is the ideal \(\overline{I}\) consisting of all r in R which happen to be roots of monic polynomials with coefficients in I. In general, if we are only given access to a set of generating elements for I, then various algorithmic operations involving \(\overline{I}\) become computationally prohibitive even in the relatively benign case \(R = \mathbb {C}[x_0,\ldots ,x_n]\). These hard tasks include, for instance, extracting a list of defining polynomials for \(\overline{I}\) and testing whether a given \(r \in R\) lies inside \(\overline{I}\) (see [45, Sects. 6.6 and 6.7] or [46, Sect. 9.3]). Thus, its considerable aesthetic appeal notwithstanding, Proposition 3.3 does not furnish an efficient algorithmic mechanism for verifying Condition (B). We are therefore compelled to employ a Corollary of this Proposition, where the integral closure has been replaced by a far more tractable object.
Remark 3.4
Before proceeding to the promised Corollary in the next section, it may be helpful to keep the following facts in mind regarding the ideals which have appeared in Proposition 3.3. Since Y is a (smooth) subspace of X by assumption, at each point y of Y, the tangent space \(T_yY\) is a \((\dim Y)\)dimensional subspace of some (in fact, every) limiting tangent space \(T = \lim _i (T_{x_i}X_\text {reg})\) associated with a given sequence \(\{x_i\} \subset X_\text {reg}\) converging to y. Thus, any hyperplane containing T automatically contains \(T_yY\) and we have a containment of fibers \(\kappa _X^{1}(y) \subset \kappa _Y^{1}(y)\) whenever y lies in \(Y \subset X\). Consequently, the intersection \(\mathbf {Con}(X) \cap \mathbf {Con}(Y)\) lies in the inverse image \(\kappa _X^{1}(Y)\), which forces the contravariant containment
of the associated ideal sheaves. It follows from Proposition 3.3 that the pair \((X_\text {reg},Y)\) satisfies Condition (B) whenever \(\mathscr {I}[\mathbf {Con}(X) \cap \mathbf {Con}(Y)]\) is sandwiched between \(\mathscr {I}[\kappa _X^{1}(Y)]\) and its integral closure.
4 Saturations
Our quest to render Proposition 3.3 algorithmically effective begins with a reminder that if I and J are any two homogeneous ideals of a commutative ring R, then the saturation of I with respect to J, written \(I:J^\infty \), is defined to be
This saturation [10, Chapter 4, Definition 8] is itself a homogeneous ideal of \(\mathbb {C}[x_0,\ldots ,x_n]\), and satisfies the following crucial property—writing \(\mathscr {V}(I) \subset \mathbb {P}^n\) for the subscheme defined by the ideal \(I \lhd \mathbb {C}[x_0,\ldots ,x_n]\) and so forth, we have
see [10, Chapter 4, Theorem 10] for details. We will reserve the notation \(\mathbf {V}(I)\) for the projective variety (the zero set rather than the scheme) corresponding to an ideal I; equivalently \(\mathbf {V}(I)\) is the reduced scheme associated with the radical \(\sqrt{I}\), i.e., \(\mathbf {V}(I)=\mathscr {V}(I)_\mathrm{red}\). Also note that all varieties will be assumed to be reduced, but not necessarily irreducible.
We now return to the setting of Proposition 3.3, where \(X \subset \mathbb {P}^n\) is a projective variety with \(Y \subset X\) a smooth quasiprojective subvariety, and \(\kappa _X: \mathbf {Con}(X) \rightarrow X\) is the conormal map of X. Throughout the remainder of this section, we will write coordinates of \(\mathbb {P}^n\) as \({\left\{ {x_0, \ldots , x_n}\right\} }\) and denote this choice as \(\mathbb {P}^n_x\). Similarly, the choice of coordinates for \((\mathbb {P}^n)^*\) will be \({\left\{ {\xi _0, \cdots , \xi _n}\right\} }\) and we denote this by writing \((\mathbb {P}^n)_\xi ^*\). We denote the coordinate ring of the product \(\mathbb {P}^n_x \times (\mathbb {P}^n)^*_\xi \) by
and examine some of its relevant ideals. When \(Y \subset X\) is a subvariety defined by some ideal
then \(I_Y\) is canonically identified with an ideal \(\langle f_1, \dots , f_r\rangle \) of \(\mathbb {C}[x,\xi ]\) because the \(f_i\) are also polynomials in \(\mathbb {C}[x,\xi ]\); in a mild abuse of notation, we will also refer to this ideal in \(\mathbb {C}[x,\xi ]\) as \(I_Y\). Note that both \(\kappa _X^{1}(Y)\) and \(\mathbf {Con}(X) \cap \mathbf {Con}(Y)\) are also defined by ideals of \(\mathbb {C}[x,\xi ]\)—the next result provides a convenient relation between these three ideals.
Proposition 4.1
Let \(X \subset \mathbb {P}^n_x\) be a projective variety with conormal map \(\kappa _X:\mathbf {Con}(X) \rightarrow X\). For any subvariety \(Y=\mathbf {V}(f_1, \dots , f_r) \subset X\), we have
in the polynomial ring \(\mathbb {C}[x,\xi ]\).
Proof
The polynomials \({\left\{ {f_1,\ldots ,f_r}\right\} }\) in \(\mathbb {C}[x]\) are also polynomials in the ring \(\mathbb {C}[x,\xi ]\); set \(K=\langle f_1,\ldots ,f_r \rangle \subset \mathbb {C}[x,\xi ]\). Let \(\pi :\mathbb {P}^n_x \times (\mathbb {P}^n)^*_\xi \rightarrow \mathbb {P}^n_x\) be the standard coordinate projection onto the first factor. We have an equality of schemes
and we also have \(\mathbf {V}(K)=\pi ^{1}(Y)\) by definition. Consequently, there is an equality
of schemes; the desired conclusion now follows since the scheme on the right hand side is defined by \(I_{\mathbf {Con}(X)} +K\). \(\square \)
Our next goal, given a candidate stratumclosure Y inside a projective variety X, is to identify all those points of Y (if any) which fail to satisfy Condition (B) with respect to \(X_\mathrm{reg}\). The next result constructs an ideal J in \(\mathbb {C}[x,\xi ]\) and shows that that these offending points must lie within \(\overline{\kappa _X(\mathbf {V}(J))}\); and moreover, removing these points leaves us with a Zariski dense (and hence nonempty) subset \(Y'\) of Y. Here, we restrict to the case where the variety X is puredimensional, meaning that all of its irreducible components must have the same dimension.
Lemma 4.2
Let \(X\subset \mathbb {P}_x^n\) be a pure dimensional projective variety and Y a nonempty irreducible subvariety of its singular locus \(X_\mathrm{sing}\). If \(J \lhd \mathbb {C}[x,\xi ]\) is the saturation
and \(\mathbf {V}(J) \subset \mathbb {P}^n_x \times (\mathbb {P}^n)^*_\xi \) the corresponding variety, then, the set \(Y' := Y_\text {reg}  \overline{\kappa _X(\mathbf {V}(J))}\) is Zariski dense in Y.
Proof
We seek to show that the Zariski closure of \(Y'\) equals Y; and since Y is irreducible, it is enough to establish that \(Y  \overline{\kappa _X(\mathbf {V}(J))}\) is nonempty. To this end, let \(i > j\) be the dimensions of X and Y, respectively, and impose a Whitney stratification on X:
so that the jstratum \(Z = X_{j}  X_{j  1}\) intersects Y in a dense subset \(Z \cap Y\). This density has three immediate but important consequences:

(i)
by Proposition 2.2, we know that \(\mathbf {Con}(Z \cap Y) = \mathbf {Con}(Y)\); also,

(ii)
since \(Y \ne \varnothing \) by assumption, \(\mathbf {Con}(Z \cap Y) \cap \mathbf {Con}(X)=\mathbf {Con}(Y)\cap \mathbf {Con}(X)\) is also nonempty; and finally,

(iii)
since \(\kappa _X\) is a projection map, we have \(\dim (\kappa _X^{1}(Z\cap Y))=\dim (\kappa _X^{1}(Y))\).
Moreover, since \(Z \subset X\) is a Whitney stratum, the pair \((X_\text {reg},Y \cap Z)\) satisfies Condition (B); so by (1) and (2) we have containments
of ideal sheaves. Let us write \(\mathscr {S}\) and \(\mathscr {S}^+\) to indicate the schemes associated to \({\mathscr {I}}[\kappa _X^{1}(Y)]\) and \(\overline{\mathscr {I}}[\kappa _X^{1}(Y\cap Z)]\), respectively. As noted in consequence (iii) above, \(\dim (\kappa _X^{1}(Z\cap Y))\) equals \(\dim (\kappa _X^{1}(Y))\). Since an ideal sheaf and its integral closure have the same support (see [29, Remark 1.1.3] for instance), the containments in (4) guarantee
Since by (4) the scheme \(\mathscr {S}\) contains \(\mathbf {Con}(X) \cap \mathbf {Con}(Y)\) and these schemes have the same dimension, they must agree in at least one irreducible component of maximal dimension; choose some \((x,\xi ) \) in this component, so \((x,\xi )\) does not lie in \(\mathbf {V}(J)\). Finally, since J is defined as a saturation, we know from (3) that
whence x lies in \(Y  \overline{\kappa _X(\mathbf {V}(J))}\) as desired. \(\square \)
We now arrive at our main result, which establishes that the variety \(Y'\) constructed in Lemma 4.2 satisfies Condition (B) with respect to \(X_\mathrm{reg}\).
Theorem 4.3
Let \(Y \subset X \subset \mathbb {P}^n_x\) and \(J \lhd \mathbb {C}[x,\xi ]\) be defined as in the statement of Lemma 4.2; writing \(Y'\) for the difference \({Y}_{\mathrm {reg}} \overline{\kappa _X(\mathbf {V}(J))}\), the pair \((X_\mathrm{reg},Y ')\) satisfies Condition (B).
Proof
By (3) and the definition of \(Y'\), we have the containment
as subschemes of \(\mathbb {P}^n_x \times (\mathbb {P}^n)^*_\xi \). By Lemma 4.2 we know that \(Y'\) is dense in Y, and therefore \(\mathbf {Con}(Y')=\mathbf {Con}(Y)\) by Proposition 2.2. We will show that \(\kappa _X^{1}(Y')\) and \(\mathbf {Con}(X) \cap \mathbf {Con}(Y)\) are equal. By (2) and Proposition 2.2, we immediately have the containment
For the reverse inclusion, note by (3) that \(\overline{\mathscr {V}(I_Y+I_{\mathbf {Con}(X)})\mathscr {V}({J})}\) equals
which is evidently a subset of \(\mathbf {Con}(X)\cap \mathbf {Con}(Y)\). Therefore, we have
as schemes. Hence, the conclusion follows by Proposition 3.3 since an ideal is always contained in its integral closure. \(\square \)
In particular all points in \(Y_\mathrm{reg}\) at which Condition (B) fails with respect to \(X_\text { reg}\) are forced to lie in the closure \(\overline{\kappa _X(\mathbf {V}({J}))}\). Algebraically, one computes this closure via elimination, i.e., since \(\overline{\kappa _X(\mathbf {V}({J}))} =\mathbf {V}({J}\cap \mathbb {C}[x])\).
5 Stratifying Projective Varieties
In this section, we describe a recursive algorithm which uses Theorem 4.3 to compute Whitney stratifications of puredimensional projective varieties. Since each irreducible component of an arbitrary projective variety can be stratified separately, this is by no means a severe restriction. And since various intermediate varieties which get constructed in our algorithm will not satisfy this purity criterion, it will be convenient to let \(\text { Pure}_d(Z)\) denote the set of all the pure ddimensional irreducible components of a given projective variety Z. These components can be algorithmically extracted by computing the minimal associated primes of the defining ideal \(I_Z\), and the main cost is a Gröbner basis computation—see [12].
5.1 Computing Conormal Ideals
In light of Theorem 4.3, we will often be required to compute (the equations which define) the conormal space \(\mathbf {Con}(Z)\) of a given projective variety \(Z \subset \mathbb {P}^n\). The ideal \(I_{\mathbf {Con}(Z)} \lhd \mathbb {C}[x,\xi ]\) is extracted in practice as follows. First, we let \(I_Z = \langle f_1, \ldots , f_r\rangle \) be any defining ideal of Z, and let c be its codimension \(n  \dim (Z)\). One computes the Jacobian ideal \(\mathbf{Jac} _Z\) of Z which is generated by all the \(c\times c\) minors of the matrix of partial derivatives
see [35, pg. 27–28]. The singular set \(Z_\text {sing} \subset Z\) is (by definition) the zero locus of the Jacobian ideal, namely:
Now if we let \(\mathbf{Jac} ^\xi _Z\) be the ideal generated by the \((c+1)\times (c+1)\) minors of the \(\xi _i\)augmented Jacobian matrix:
then \( I_{\mathbf {Con}(Z)}\) is given by the saturation \((I_Z+\mathbf{Jac} ^\xi _Z):(\mathbf{Jac} _Z)^\infty \), see [13, Eq. (5.1)] or [28, §2] for instance. Algorithms for computing ideal sums and saturations are standard fare across computational algebraic geometry, and may be found in [10] for instance.
5.2 The Saturation Subroutine
For any pair of projective varieties \(X,Y \subset \mathbb {P}^n\) with \(Y \subset X_\text {sing}\), the following subroutine, called Decompose, implements the saturationbased constructions of Lemma 4.2. Although we present the inputs and outputs of all our algorithms as projective varieties, in practice, these must be represented on a machine by some choice of generating polynomials of their defining ideals.
Decompose(Y, X)  

Input: Projective varieties \(Y \subset X\) in \(\mathbb {P}^n\), with \(d:=\dim Y\).  
Output: A list of subvarieties \(Y_\bullet \) of Y.  
1  Set \(Y_\bullet := (Y_d,Y_{d1},\ldots ,Y_0) := (Y,\varnothing ,\ldots ,\varnothing )\) 
2  For each irreducible component Z of Y 
3  Set \(J:=(I_{\mathbf {Con}(X)}+I_{Z}):(I_{\mathbf {Con}(X)}+I_{\mathbf {Con}(Z)})^\infty \subset \mathbb {C}[x,\xi ]\) 
4  Set \(K := {J}\cap \mathbb {C}[x]\) 
5  Set \(W := Z \cap \mathbf {V}(K)\) 
6  For each irreducible component V of W 
7  Add V to \(Y_{ \ge \dim (V)}\) 
8  Return \(Y_\bullet \) 
The notation in Line 7 is meant to indicate that V is added to \(Y_i\) for all \(i \ge \dim V\). This subroutine terminates because the For loops in lines 2 and 6 are indexed over irreducible components of projective varieties, of which there can only be finitely many. The following result is a consequence of Lemma 4.2 and Theorem 4.3.
Proposition 5.1
Let \(Y \subset X\) be a pair of projective varieties in \(\mathbb {P}^n\) so that \(Y \subset X_\mathrm{sing}\) and \(\dim Y = d\). If Decompose is called with input (Y, X), then:

(1)
for all \(i \in {\left\{ {0,\ldots , d1}\right\} }\), its output varieties satisfy \(Y_i \subset Y_{i+1}\); also,

(2)
\(Y_{d1}\) is a (possibly empty) subvariety of Y with \(\dim Y_{d1} < \dim Y\); and finally,

(3)
all points of \(Y_\mathrm{reg}\) where Condition (B) fails with respect to \(X_\mathrm{reg}\) lie in \(Y_{d1}\), so the pair \((X_\text {reg},Y_\text {reg}Y_{d1})\) satisfies Condition (B).
Proof
The first assertion holds because of Line 7: whenever an irreducible Z is added to \(Y_{\dim Z}\), it is also added to all the subsequent \(Y_i\) with \(i > \dim Z\). For each irreducible \(Z \subset Y\), the variety W from Line 5 is precisely \(\overline{\kappa _X(\mathbf {V}(J))}\), where
(As before, \(\kappa _X\) is the conormal map of X.) Since Y equals the union \(\bigcup _Z Z\) as Z ranges over its irreducible components, the second assertion follows from Lemma 4.2. Finally, by Theorem 4.3, this variety W contains all those points of \(Z_\text {reg}\) where Condition (B) fails to hold with respect to \(X_\text {reg}\). Thus, the third assertion follows from the containment \(Y_\text {reg}\subseteq \bigcup _Z Z_\text {reg}\). \(\square \)
The output \(Y_\bullet \) of Decompose described above need not constitute a Whitney stratification of the input variety Y—Proposition 5.1 does not guarantee that Condition (B) holds among successive differences of the form \(Y_i  Y_{i1}\).
5.3 The Main Algorithm
Let \(X\subset \mathbb {P}^n\) be a pure kdimensional complex projective variety defined by a radical homogeneous ideal \(I_X\). The algorithm WhitStrat, described below, takes in X as input and returns a nested sequence of its subvarieties \(X_\bullet \). An essential part of this algorithm is a Merge statement, which accepts two nested sequences of varieties \(V_\bullet \) and \(W_\bullet \) of lengths k and d, with \(k > d\). To Merge \(V_\bullet \) with \(W_\bullet \), one updates the longer sequence \(V_\bullet \) via the following rule:
The property \(V_i \subset V_{i+1}\) continues to hold after such an operation. The following algorithm WhitStrat uses Decompose in order to construct Whitney stratifications of puredimensional projective varieties.
WhitStrat(X)  

Input: A pure kdimensional variety \(X\subset \mathbb {P}^n\).  
Output: A list of subvarieties \(X_\bullet \) of X.  
1  Set \(X_\bullet := (X_k,X_{k1},\ldots ,X_0) := (X,\varnothing ,\ldots ,\varnothing )\) 
2  Compute \(X_\mathrm{sing}\) and \(\mu := \dim (X_\mathrm{sing})\) 
3  For each irreducible component Z of \(X_\text {sing}\) 
4  Add Z to \(X_{\ge \dim Z}\) 
5  For each d in \((\mu , \mu 1,\ldots ,1,0)\) 
6  Merge \(X_\bullet \) with \(\mathbf{Decompose}(\text { Pure}_d(X_d),X)\) 
7  Merge \(X_\bullet \) with \(\mathbf{WhitStrat}(\text { Pure}_d({X_d}))\) 
8  Return \(X_\bullet \) 
To verify that this algorithm terminates, we note that the For loop on Line 3 runs once per irreducible component of \(X_\text {sing}\), of which there can only be finitely many. And the For loop on Line 5 will terminate provided that the recursive call on Line 7 terminates; but the dimension of the variety \(X_d\) is bounded above by \(\mu < k\), i.e., it is strictly less than the dimension of the input variety. Thus, the recursion terminates after finitely many steps and produces a nested sequence \(X_\bullet \) of subvarieties of X. Our goal in the next section is to establish that \(X_\bullet \) constitutes a valid Whitney stratification of X.
5.4 Correctness
Let \(X_\bullet (d)\) denote the nested sequence of varieties \(X_\bullet \) as they stand at the end of the dth iteration of For loop (in Line 5 of WhitStrat) where \(d = (\mu , \mu 1, \ldots , 1,0)\). These \(X_i(d)\) fit into a \((\mu +1) \times (k+1)\) grid of projective varieties and inclusion maps:
The vertical inclusion maps arise since each \(X_\bullet (d)\) is obtained from the previous \(X_\bullet (d+1)\) by performing two Merge operations (in Lines 6 and 7, respectively). Note that each iteration of the For loop in Line 5 moves us from one row to the next, until at last the bottom row (corresponding to index \(d = 0\)) contains the output.
Remark 5.2
Before entering the For loop of Line 5, the sequence \(X_\bullet \) contains the input variety X in the top dimension (i.e., \(X_k = X\)) and irreducible components of \(X_\text {sing}\) in lower dimensions. It follows that the columns of our grid (5) come in three flavours, depending on the index i:

(1)
the leftmost column (with index \(i=k\)) identically equals X, i.e., \(X_k(d) = X\) regardless of the row index d in \({\left\{ {0,\ldots ,k}\right\} }\);

(2)
the next few columns (with index \(k > i \ge \mu \)) are also constant—independent of the row index d, each \(X_i(d)\) in this range equals \(X_\text {sing}\); and finally,

(3)
the ith column for \(\mu > i \ge 0\) stabilizes below its \((i+1)\)indexed entry:
$$\begin{aligned} X_i(d) = X_i(i+1) \quad \text { for all } \quad 0 \le d \le i < \mu . \end{aligned}$$(6)
These three assertions follow from the observation that during the dindexed iteration of the For loop in Line 5, the two Merge operations (from Lines 6 and 7) which produce the row \(X_\bullet (d)\) are only allowed to merge subvarieties of \(X_d(d+1)\) to the preceding row \(X_\bullet (d+1)\).
Define the successive differences across the rows of the grid (5), i.e.,
It follows from Lines 2–4 of WhitStrat that we have the containment
whence \(S_i(d)\) is a smooth manifold whenever \(d \le i\). Therefore, \(S_i(0)\) is smooth for all i. In the remainder of this Section, we will now show that \(S_i(0)\) constitutes the istrata of a Whitney stratification \(X_\bullet (0)\) of the input variety X. Here is a first step in this direction.
Proposition 5.3
The pair \((S_k(i),S_{d}(i))\) satisfies Condition (B) for all \(0 \le i\le d \le k\). In other words, \(X_{d1}(i)\) contains all points of \(X_d(i)_\text { reg}\) where Condition (B) fails with respect to \(S_k(i)\).
Proof
By Remark 5.2, we may safely restrict to the case \(0 \le i\le d \le \mu \), since we have
for all d by Remark 5.2(2). Let \(V_\bullet \) denote the output of Decompose obtained (in Line 6) during the dth iteration of the For loop in Line 5. It follows from Proposition 5.1(3) that the pair
satisfies Condition (B). By Proposition 5.1(2), we know that \(V_d\) is a subvariety of \(X_d(d+1)\) of dimension strictly smaller than d. Since \(V_\bullet \) is merged with \(X_\bullet (d+1)\) in Line 6 en route to producing \(X_\bullet (d)\), we know that \(V_d\) must in fact be a subvariety of \(X_{d1}(d)\). Now note that
Since \(\dim X_{k1}(d) < k\), we know that \(S_k(d)\) is dense in \(X_\text {reg}\). Moreover, since \(V_d\) is entirely contained in \(X_{d1}(d)\), we may apply Proposition 3.1 to the pair P above and conclude that the new pair
also satisfies Condition (B). Now let \(W_\bullet \) be the output of the recursive call to WhitStrat in Line 7 during the dth iteration of the For loop in Line 5. From Lines 2–4, we deduce that \(X_d(d+1)_\text {sing} \subset W_{d1}\), and after the Merge operation of Line 7 we are also guaranteed \(W_{d1} \subset X_{d1}(d)\). Putting these containments together gives
By (6), we have \(X_d(d+1) = X_d(d)\), whence \(X_d(d)_\text {sing} \subset X_{d1}(d)\). Therefore, the difference \(S_d(d) := X_d(d)  X_{d1}(d)\) in fact equals \(X_d(d+1)_\text {reg}X_{d1}(d)\). Using this in the pair \(P'\) guarantees that the pair \((S_k(d),S_{d}(d))\) satisfies Condition (B). Finally, the conclusion for the pair \((S_k(i),S_{d}(i))\) follows since subsequent iterations of the the For loop (corresponding to lower d values) do not alter \(X_{\ge d}\). \(\square \)
Next, we will establish that Condition (B) is satisfied by arbitrary pairs of successive differences in (5) for sufficiently small row index.
Proposition 5.4
The pair \((S_j(i),S_i(i))\) satisfies Condition (B) for all \(0 \le i < j \le k\).
Proof
From Remark 5.2, we have \(S_j(i)=S_j(j)\) since \(i < j\). Let \(W_\bullet \) be the output of the recursive call in Line 7 of WhitStrat during the \(d = j\) iteration of the For loop in Line 5, so we have \(W_j = \text { Pure}_j(X_j(j))\). Recall by (7) that \(S_j(i) = X_j(i)  X_j(i1)\); now any irreducible component \(Y \subset X_j(i)\) with \(\dim Y < j\) must also lie in \(X_{j1}(i)\), whence
Now, \(W_{j1}\) lies in \(X_{j1}(j)\) because of the Merge operation in Line 7 of WhitStrat, and in turn, \(X_{j1}(j)\) is a subvariety of \(X_{j1}(i)\) as described in (5). Since both varieties \(W_{j1} \subset X_{j1}(i)\) have dimension strictly smaller than j, we have that \(S_j(i)\) is dense in \(W_jW_{j1}\). Thus, it suffices to show that all points in \(W_j \cap X_i(i)\) where Condition (B) fails with respect to \(S_j(i)\) lie within \(W_j\cap X_{i1}(i)\). To confirm this, note that by construction, \(X_i(i)\) is a union of the form \(W_i \cup Z\), where the subvariety \(Z \subset X_i(i)\) has \(\dim (Z) \le i\). First, we consider the case where Z is empty; in this case, we know from Proposition 5.4 that the pair
satisfies Condition (B), so the desired result follows immediately from Proposition 3.1. On the other hand, if Z is nonempty, we can assume without loss of generality that Z is not contained in \(W_i\). Now any point of \(W_j \cap (X_i(i)W_i)= W_j\cap (ZW_i)\) where Condition (B) fails with respect to \(W_j\) must lie in \(W_{j1}\) by Proposition 5.3. Thus, no such point lies in \(S_j(i)\), and it remains to show that all points in \(W_i\cap X_i(i)=W_i\) where Condition (B) fails with respect to \(S_j(i)\) are contained in \(X_{i1}(i)\). But since \(W_{i1}\subset X_{i1}(i)\) due to the Merge operation, this follows immediately from Proposition 5.3. \(\square \)
We can now confirm that the output of WhitStrat constitutes a valid Whitney stratification of X.
Theorem 5.5
When called on a pure kdimensional complex projective variety \(X\subset \mathbb {P}^n\), the output \(X_\bullet \) of WhitStrat forms a Whitney stratification of X.
Proof
As remarked after (7), each \(S_i(d)\) is smooth for \(d \le i\). The conclusion follows immediately from Proposition 5.4 since for any pair \((S_j(i),S_i(i))\) with \(0\le i \le j \le k\) we have \(S_i(i)=S_i(0)\) and \(S_j(i)=S_j(0)\) by Remark 5.2. Thus, Condition (B) holds for every pair \((S_j(0),S_i(0))\) with \(i \le j \le k\). \(\square \)
This algorithm can also be used to stratify affine complex varieties via the following dictionary: for each affine complex variety \(X \subset \mathbb {C}^n\), we write \(PX \subset \mathbb {P}^n\) for its projective closure [35, Proposition 2.8], which is constructed as follows. Let \({\left\{ {f_1, \ldots , f_r}\right\} }\) be a Gröbner basis for the defining ideal \(I_X \lhd \mathbb {C}[x_1,\ldots ,x_n]\). For each i in \({\left\{ {1,\ldots ,r}\right\} }\), write \(F_i\) for the homogenisation of \(f_i\) in \(\mathbb {C}[x_0,x_1,\ldots ,x_n]\). Then, the projective closure \(PX \subset \mathbb {P}^n\) is the complex projective variety given by \(\mathbf {V}(F_1,\ldots ,F_r)\). Conversely, one can recover X from PX by dehomogenizing, i.e., by setting \(x_0 = 1\) in each defining polynomial \(F_i\).
Corollary 5.6
Let \(X\subset \mathbb {C}^n\) be a pure kdimensional affine complex variety and let \(PX \subset \mathbb {P}^n\) be its projective closure. If \(PX_\bullet \) is the output of WhitStrat(PX), then a valid Whitney stratification of X is given by \(X_\bullet \), where each \(X_i\) is the dehomogenization of \(PX_i\).
Proof
Since \(PX_\bullet \) defines a Whitney stratification of PX, it follows from Proposition 3.1 that intersecting each \(PX_i\) with a dense subset \(D \subset PX\) constitutes a Whitney stratification of D. The conclusion follows by considering \(D = PX  \mathbf {V}(x_0)\). \(\square \)
It should be noted that the stratifications produced by WhitStrat may not be minimal; and moreover, the stratification of X described in the preceding Corollary may not be minimal even if the output stratification of PX is minimal.
6 FlagSubordinate Stratifications
By a flag \(\mathbf {F}_\bullet \) on a variety X, we mean any finite nested set of subvarieties of the form
If X is projective, we implicitly require each \(\mathbf {F}_iX\) to also be projective. We call \(\ell \) the length of the flag \(\mathbf {F}_\bullet \). Aside from these containments, there are no restrictions on the dimensions of the individual \(\mathbf {F}_iX\); and in particular, we do not require successive differences \(\mathbf {F}_iX  \mathbf {F}_{i1}X\) to be smooth manifolds, let alone satisfy Condition (B).
Definition 6.1
Let \(X \subset \mathbb {P}^n\) be a projective variety and \(\mathbf {F}_\bullet \) a flag on X of length \(\ell \). A Whitney stratification \(X_\bullet \) of X is subordinate to \(\mathbf {F}_\bullet \) if for each stratum \(S \subset X\) of \(X_\bullet \), there exists some \(j = j(S)\) in \({\left\{ {0,\ldots ,\ell }\right\} }\) satisfying \(S \subset (\mathbf {F}_jX  \mathbf {F}_{j1}X)\).
It is crucial to note that the number j(S) from the preceding Definition need not equal \(\dim S\), and that one does not require \(j(S) = j(S')\) whenever \(\dim S = \dim S'\).
Fix a puredimensional complex projective variety \(X \subset \mathbb {P}^n\) as well as a flag \(\mathbf {F}_\bullet \) on X of length \(\ell < \infty \). The following subroutine accepts as input any (not necessarily pure dimensional) subvariety \(W \subset X\) along with the flag \(\mathbf {F}_\bullet \), and constructs the induced flag \(\mathbf {F}'_\bullet \) on W defined by
for all j in \({\left\{ {0,1,\ldots ,\ell }\right\} }\).
InducedFlag\((W,\mathbf {F}_\bullet )\)  

Input: A subvariety \(W \subset X\) and a flag \(\mathbf {F}_\bullet \) on X of length \(\ell \).  
Output: A flag \(\mathbf {F}'_\bullet \) on W of length \(\ell \).  
1  Set \(\mathbf {F}'_\bullet W := (\mathbf {F}'_\ell W, \ldots , \mathbf {F}'_0W) := (\varnothing ,\ldots ,\varnothing )\) 
2  For each irreducible component V of W 
3  Add V to \(\mathbf {F}'_{i}W\) for all \(\mathbf {F}'_{i}\) where \(V\subset \mathbf {F}'_{i}\) 
4  For each j with \(\dim (\mathbf {F}_jX \cap V) < \dim V\) 
5  Add \(V_j := (\mathbf {F}_jX \cap V)\) to \(\mathbf {F}'_{i} W\) for all \(\mathbf {F}'_{i}\) where \(V_j\subset \mathbf {F}'_{i}\) 
6  Return \(\mathbf {F}'_\bullet W\) 
The strategy for producing an \(\mathbf {F}_\bullet \)subordinate stratification of X is to modify the algorithms of Sect. 5 as follows: whenever one wishes to Add an irreducible idimensional subvariety \(W \subset X\) to the output sequence \(X_{\ge i}\), one Merges \(X_\bullet \) with InducedFlag\((W,\mathbf {F}_\bullet )\) instead. For completeness, we have written out the modified versions of both Decompose and WhitStrat. (The originals can be found in Sects. 5.2 and 5.3, respectively.)
6.1 FlagSubordinate Stratification Algorithms
Here is the flagsubordinate avatar of Decompose; as promised, it only differs from the original in Line 6: the statement which Added an irreducible variety to a sequence has now been replaced with a Merge.
DecomposeFlag\((Y,X,\mathbf {F}_\bullet )\)  

Input: Proj. varieties \(Y \subset X\) with \(d:=\dim Y\) and a flag \(\mathbf {F}_\bullet \) on X.  
Output: A list of subvarieties \(Y_\bullet \subset Y\).  
1  Set \(Y_\bullet := (Y_d,Y_{d1},\ldots ,Y_0) := (\varnothing ,\ldots ,\varnothing )\) 
2  For each irreducible component Z of Y 
3  Set \(J:=(I_{\mathbf {Con}(X)}+I_{Z}):(I_{\mathbf {Con}(X)}+I_{\mathbf {Con}(Z)})^\infty \subset \mathbb {C}[x,\xi ]\) 
4  Set \(K := {J}\cap \mathbb {C}[x]\) 
5  Set \(W := Z \cap \mathbf {V}(K)\) 
6  Merge \(Y_\bullet \) with InducedFlag\((W,\mathbf {F}_\bullet )\) 
7  Return \(Y_\bullet \) 
And here is the variant of WhitStrat which produces an \(\mathbf {F}_\bullet \)subordinate stratification of \(X \subset \mathbb {P}^n\). Again, the only difference occurs in Line 4.
WhitStratFlag\((X,\mathbf {F}_\bullet )\)  

Input: A pure kdimensional variety \(X\subset \mathbb {P}^n\) and a flag \(F_\bullet \) on X.  
Output: A list of subvarieties \(X_\bullet \subset X\).  
1  Set \(X_\bullet := (X_k,X_{k1},\ldots ,X_0) := (X,\varnothing ,\ldots ,\varnothing )\) 
2  Compute \(X_\mathrm{sing}\) and \(\mu := \dim (X_\mathrm{sing})\) 
3  Set \(X_d = X_\mathrm{sing}\) for all d in \({\left\{ {\mu ,\mu +1,\ldots ,k1}\right\} }\) 
4  Merge \(X_\bullet \) with InducedFlag\((X_\text {sing},\mathbf {F}_\bullet )\) 
5  For each d in \((\mu , \mu 1,\ldots ,1,0)\) 
6  Merge \(X_\bullet \) with \(\mathbf{DecomposeFlag}(X_d,X,\mathbf {F}_\bullet )\) 
7  Merge \(X_\bullet \) with \(\mathbf{WhitStratFlag}(X_d,\mathbf {F}_\bullet )\) 
8  Return \(X_\bullet \) 
6.2 Correctness
The following result confirms that WhitStratFlag produces valid flagsubordinate Whitney stratifications.
Theorem 6.2
Let \(X\subset \mathbb {P}^n\) be a pure dimensional complex projective variety and \(\mathbf {F}_\bullet \) a flag on X. When called with input \((X,\mathbf {F}_\bullet )\), the algorithm WhitStratFlag terminates and its output \(X_\bullet \) is an \(\mathbf {F}_\bullet \)subordinate Whitney stratification of X.
Proof
Termination follows for the same reasons as the ones used for WhitStrat, and since \(X_\bullet \) is a valid Whitney stratification follows from Theorem 5.5. Thus, it remains to show that each connected component S of \(X_iX_{i1}\) is contained entirely in a single \(\mathbf {F}_jX\mathbf {F}_{j1}X\). Any such S can be written as \(Y  X_{i1}\), where Y is an irreducible component of \(X_i\). Note that, in particular, this Y will appear as a V in Line 3 of the InducedFlag subroutine when it is called with first input \(X_i\). Let j be the smallest index of the flag \(\mathbf {F}_\bullet \) for which \(Y \subset \mathbf {F}_jX\) holds. Then, \(\dim (Y \cap \mathbf {F}_\ell X) < i\) for every \(\ell < j\), and so \(Y_\ell =Y \cap \mathbf {F}_\ell X\) is Added to \(X_\bullet \) via Line 5 of the InducedFlag subroutine, and hence \(Y_\ell \) is contained in \(X_m\) for some \(m < i\). Since \(X_m \subset X_i\), it follows that
But since \(S \subset \mathbf {F}_{j}X\) and Y is irreducible, we have \(Y \subset \mathbf {F}_{j}X\), whence \(Y\subset \mathbf {F}_{p}X\) for all \(p\ge j\). Thus, S also has empty intersections with \(\mathbf {F}_{p}X \mathbf {F}_{p1}X\) for \(p > j\), and the desired result follows. \(\square \)
We note in passing that the algorithms described in this Section can also be used to produce flagsubordinate stratifications of affine complex varieties. As before, we will write PX for the projective closure of each affine variety X; and given a flag \(\mathbf {F}_\bullet \) on X, we write \({\varvec{ P}}\mathbf {F}_\bullet \) for the flag on PX defined by
The following result forms a natural flagsubordinate counterpart to Corollary 5.6.
Corollary 6.3
Let \(X\subset \mathbb {C}^n\) be a complex variety and let \(\mathbf {F}_\bullet \) be a flag on X. Writing \(PX_\bullet \) for the output of WhitStratFlag when called with input \((PX,{\varvec{ P}}\mathbf {F}_\bullet )\), its dehomogenization \(X_\bullet \) constitutes an \(\mathbf {F}_\bullet \)subordinate Whitney stratification of \(X_\bullet \).
Proof
This follows immediately from Corollary 5.6 and Theorem 6.2 since the containment relations between varieties are preserved by both projective closures and dehomogenizations. \(\square \)
Our motivation for computing flagsubordinate Whitney stratifications stems from the desire to algorithmically stratify algebraic maps between projective varieties.
7 Stratifying Algebraic Maps
A continuous map between topological spaces is called proper if preimages of compact sets are compact. Reproduced below is the content of [6, Definition 3.5.1], which highlights a natural class of maps between Whitney stratified spaces; we recall for the reader’s convenience that the tangent space at each point p on a smooth manifold S is denoted \(T_pS\).
Definition 7.1
Let X and Y be Whitney stratified spaces. A proper map \(f:X \rightarrow Y\) is called a stratified map if for each stratum \(S \subset X\) there exists a a stratum \(R \subset Y\) so that

(1)
the image f(S) is wholly contained in R; and moreover,

(2)
at each point x in S, the Jacobian \(J_x(f_S):T_xS \rightarrow T_{f(x)}R\) is a surjection.
We refer to any pair \((X_\bullet ,Y_\bullet )\) of Whitney stratifications of X and Y which satisfy the above requirements as a stratification of f. It follows from Thom’s first isotopy lemma [33, Proposition 11.1] that if \(f:X \rightarrow Y\) is a stratified map in the sense of this definition, then for each stratum \(R \subset Y\), the restriction
has the structure of a fibration (with possibly singular fibers).
Our aim here is to algorithmically construct stratifications tailored to algebraic maps between projective varieties. We describe these maps in terms of the coordinate ring \(\mathbb {C}[x] := \mathbb {C}[x_0,\ldots ,x_n]\) of \(\mathbb {P}^n\).
Definition 7.2
A projective morphism \(f:X \rightarrow \mathbb {P}^m\) consists of an \((m+1)\)tuple of homogeneous polynomials \(f_i\) in \(\mathbb {C}[x]\), i.e.,
where \(d := \deg (f_i)\) is constant for all i and where \( X\cap \mathbf {V}(f_0, \dots , f_m)=\emptyset \).
Projective morphisms as defined above are always proper [27, Ch II, Thm 4.9], so at least that requirement of Definition 7.1 holds automatically. We will restrict to the case where X is pure dimensional; and for each projective morphism \(f:X \rightarrow \mathbb {P}^m\) as defined above, we can always consider some puredimensional projective variety \(Y \subset \mathbb {P}^m\) which contains the image f(X), whence f constitutes an algebraic map \(X \rightarrow Y\). We now seek to describe an algorithm which will produce a stratification \((X_\bullet ,Y_\bullet )\) for any generic triple (X, Y, f). Both the genericity condition and the algorithm itself make essential use of the ThomBoardman flag of f, which is described below.
7.1 The ThomBoardman Flag
Let \(f:X\rightarrow \mathbb {P}^m\) be a projective morphism and consider its Jacobian operator
This matrix of polynomials is not welldefined on \(\mathbb {P}^n\) in the sense that its evaluation \(J_xf\) need not equal \(J_yf\) for a pair of projectively equivalent points \(x \sim y\) in \(\mathbb {C}^{n+1}\). However, we always have \(\text {rank }J_xf = \text {rank }J_yf\) in this case. For each \(p \in \mathbb {P}^n\), we will denote by \(\text {rank }J_pf\) the rank of \(J_xf\) for any (necessarily nonzero) \(x \in \mathbb {C}^{n+1}\) which maps to p under the canonical surjection \((\mathbb {C}^{n+1}{\left\{ {0}\right\} }) \twoheadrightarrow \mathbb {P}^n\).
Let \(k \le \min (n+1,m+1)\) be the largest rank attained by \(J_pf\) as p ranges over \(\mathbb {P}^n\) and consider, for each i in \({\left\{ {0,\ldots ,k+1}\right\} }\), the homogeneous ideal \({\varvec{ Jac}}_i f\) of \(\mathbb {C}[x]\) generated by all \(i \times i\) minors of Jf. It follows by cofactor expansion that these ideals fit into a descending sequence, and so the corresponding projective varieties \(\mathbf {T}^+_i\mathbb {P}^n := \mathbf {V}({\varvec{ Jac}}_i f)\) form a flag of length \(k+1\) on \(\mathbb {P}^n\). By construction, we have
for \(0 \le i \le k+1\). We call \(\mathbf {T}^+_\bullet \) the the ThomBoardman flag [5, 43] of f on \(\mathbb {P}^n\). Our main focus here is not on the flag \(\mathbf {T}^+_\bullet \), but rather on the flag induced by \(\mathbf {T}^+_\bullet \) on the domain variety \(X \subset \mathbb {P}^n\). The desired genericity condition on f is described below.
Definition 7.3
The projective morphism \(f:X \rightarrow \mathbb {P}^m\) is generic if the varieties X and \(\mathbf {T}_i^+ \mathbb {P}^n\) intersect transversely in \(\mathbb {P}^n\) for each i in \({\left\{ {0, \ldots , k+1}\right\} }\).
Although we will not require this fact here, it is known that for a dense subset of algebraic morphisms, each \(\mathbf {T}^+_i\mathbb {P}^n\) is a subvariety of \(\mathbb {P}^n\) of dimension
with \(k' := \min (n+1,m+1)\). A complete derivation of this dimension formula along with other properties of ThomBoardman singularities can be found in [19, Chapter VI, Part I, §1].
Definition 7.4
The ThomBoardman flag of fon X, denoted \(\mathbf {T}_\bullet \), is defined for all \(0 \le i \le k+1\) via the intersection \({\mathbf {T}_i}X := \mathbf {T}^+_i\mathbb {P}^n \cap X\). Equivalently, \(\mathbf {T}_iX := \mathbf {V}(I_X + {\varvec{ Jac}}_i f)\), where \(I_X \lhd \mathbb {C}[x]\) is the defining ideal of X.
Applying f to the \(\mathbf {T}_\bullet \) produces a flag on f(X) which extends to a flag on Y.
Definition 7.5
Given the ThomBoardman flag \(\mathbf {T}_\bullet \) on X, its image is the flag \({\varvec{ B}}_\bullet \) of length \(k+2\) on Y defined by setting
(Note that by assumption \(\mathbf {B}_{k+1}Y := f(X)\) is a subvariety of \(\mathbf {B}_{k+2}Y := Y\).)
7.2 Computing Images and PreImages
To compute the flag \(\mathbf {B}_\bullet \) in practice, we require a mechanism for producing equations for \(f(X')\) where \(X' \subset X\) is a subvariety of X—note that this image \(f(X')\) is Zariski closed in \(\mathbb {P}^m\) because X is projective (see [35, Theorem 4.22]). This can be accomplished using elimination. To this end, consider the ideal
in the ring \(\mathbb {C}[u,x_0, \dots , x_n,y_0,\ldots ,y_m]\) and set \(J_\Gamma := J\cap \mathbb {C}[x,y]\). Let \(\Gamma (X')\subset \mathbb {P}^n \times \mathbb {P}^m\) be the graph of the restricted map \(f_{X'}\), which is defined by the bihomogeneous ideal
Now, \(f(X')\subset \mathbb {P}^m\) is given by the elimination ideal
We will also require the dual operation to implement our algorithm, i.e., given some subvariety \(Y' \subset Y\), we wish to algebraically compute its preimage \(f^{1}(Y')\) within X. Let \(\gamma \) be the natural map \(X \rightarrow \mathbb {P}^n \times \mathbb {P}^m\) sending each x to the pair (x, f(x)), so the image of \(\gamma \) coincides with the graph \(\Gamma (X)\). Consider the coordinate projections \(\pi _x\) and \(\pi _y\)
onto the first and second factor, respectively. By construction, for each point x in X, we have the equality \(f(x)=\pi _y \circ \gamma (x)\); and since all spaces and maps in sight are projective, the images of closed sets remain closed. Now, consider a subvariety \(Y'\subset f(X)\) and note that its preimage under f is
Treating \(I_{Y'} \lhd \mathbb {C}[y]\) as an ideal in \(\mathbb {C}[x,y]\), the desired preimage \(f^{1}(Y')\) may be computed algebraically as the intersection
7.3 Algorithm
Assume that \(f:X \rightarrow Y\) is a generic projective morphism in the sense of Definition 7.3, where \(X\subset \mathbb {P}^n\) and \(Y\subset \mathbb {P}^m\) are pure dimensional projective varieties with \(f(X)\subset Y\), and let \(k\le \min (n+1,m+1)\) as in Sect. 7.1. The following algorithm relies on WhitStratFlag (from Sec 6.1) to build Whitney stratifications \(X'_\bullet \) of X and \(Y'_\bullet \) of Y via the following basic strategy. First, we construct the image \(\mathbf {B}_\bullet \) of the ThomBoardman flag \(\mathbf {T}_\bullet \) as described in Definition 7.5. Next, we create a \(\mathbf {B}_\bullet \)subordinate stratification \(Y_\bullet \) of the codomain Y and pull it back across f to obtain a flag \(\mathbf {F}_\bullet \) on the domain X. Finally, we create an \(\mathbf {F}_\bullet \)subordinate stratification \(X'_\bullet \) of X.
WhitStratMap(X, Y, f)  

Input: Pure dimensional varieties X, Y and a generic morphism \(f:X \rightarrow Y\).  
Output: Lists of subvarieties \(X_\bullet \subset X\) and \(Y_\bullet \subset Y\).  
1  Set \({\mathbf {T}_\bullet }X := (\mathbf {T}_{k+1}X,\ldots ,\mathbf {T}_0X) := (X,\varnothing ,\ldots ,\varnothing )\) 
2  Set \({\mathbf {B}_\bullet }Y := (\mathbf {B}_{k+2}Y,\ldots ,\mathbf {B}_0Y) := (Y,\varnothing ,\ldots ,\varnothing )\) 
3  For each j in \((0,1,\ldots ,k)\) 
4  Set \(\mathbf {T}_jX := \mathbf {V}(I_X + \mathbf{Jac} _jf)\) 
5  Set \(\mathbf {B}_jY := f(\mathbf {T}_jX)\) 
6  Set \(\mathbf {B}_{k+1}Y := f(X)\) 
7  Set \(Y'_\bullet := \mathbf{WhitStratFlag}(Y,\mathbf {B}_\bullet )\) 
8  For each i in \((0,1,\ldots ,\dim Y)\) 
9  Set \(\mathbf {F}_iX := f^{1}(Y'_i)\) 
10  Set \(X'_\bullet := \mathbf{WhitStratFlag}(X,\mathbf {F}_\bullet )\) 
11  Set \((X_\bullet ,Y_\bullet ) := \) Refine\((X'_\bullet ,Y'_\bullet ,f)\) 
12  Return \((X_\bullet ,Y_\bullet )\) 
As we have not described the Refine subroutine invoked in the penultimate line, we are not yet able to check whether this algorithm terminates, and whether it returns a correct stratification of f in the sense of Definition 7.1. The next result, which involves the Whitney stratifications \(X'_\bullet \) and \(Y'_\bullet \) produced in Lines 10 and 7, respectively, will explain why this additional subroutine is needed.
Proposition 7.6
For each stratum S of \(X'_\bullet \), there exists a unique stratum R of \(Y'_\bullet \) satisfying \(f(S) \subset R\). Moreover, at each point x in S, the Jacobian \(J_xf_S:T_xS \rightarrow T_{f(x)}R\) of the restricted map \(f_S:S \rightarrow R\) has full rank, i.e.,
Proof
Noting that of \(X'_\bullet \) is subordinate to the flag \(\mathbf {F}_\bullet \) by Line 10, we know that for each stratum S of \(X'_\bullet \) there is a number \(i := i(S)\) satisfying \(S \subset (\mathbf {F}_iX\mathbf {F}_{i1}X)\). Now by Line 9, for any such stratum, we have \(f(S) \subset (Y'_i  Y'_{i1})\). By Definition 3.2, we know that S is connected, and so its image under the continuous map f must also be connected; thus there is a unique stratum \(R \subset (Y'_i  Y'_{i1})\) of \(Y'_\bullet \) satisfying \(f(S) \subset R\). Since \(Y'_\bullet \) is \(\mathbf {B}_\bullet \)subordinate by Line 7, there exists a number \(j := j(R)\) satisfying \(R \subset (\mathbf {B}_jY  \mathbf {B}_{j1}Y)\). By Definition 7.5, we have \(f^{1}(R) \subset (\mathbf {T}_jX  \mathbf {T}_{j1}X)\), where \(\mathbf {T}_\bullet \) is the ThomBoardman flag of f from Definition 7.4. In particular, this gives \(S \subset (\mathbf {T}_jX  \mathbf {T}_{j1}X)\) and it follows that \(X'_\bullet \) is subordinate to \(\mathbf {T}_\bullet \). Consequently, for each \(x \in S\), we know that \(\text {rank }J_xf = (j1)\). Consider the commuting diagram of vector spaces
Here, the vertical arrows depict inclusions of tangent spaces, e.g., on the left we have the natural inclusion of \(T_xS\) in \(T_x\mathbb {P}^n \simeq \mathbb {C}^{n+1}\). Since \(S \subset (\mathbf {T}_jX\mathbf {T}_{j1}X)\), we know from (8) that the rank of \(J_xf\) is precisely \((j1)\) at every \(x \in S\); and by genericity of f it follows that the subspaces \(T_xS\) and \(\ker J_xf\), whose intersection equals \(\ker J_xf_S\), meet transversely inside \(\mathbb {C}^{n+1}\). Thus, we obtain
There are now two cases to consider—either \(\dim S < (j1)\), or \(\dim S \ge (j1)\). In the first case, \(J_xf_S\) is injective and hence already has full rank. In the latter case, we have \(R \subset f(\Delta _j)\) where \(\Delta _j := (\mathbf {T}_jX\mathbf {T}_{j1}X)\). Thus, \(\dim Y \le \dim f(\Delta _j)\); but since the rank of f on \(\Delta _j\) is \((j1)\) by (8), the implicit function theorem guarantees that \(\dim f(\Delta _j) = (j1)\). So, we have \(\dim R \le (j1)\), and combining this inequality with our calculation of \(\dim \ker (J_xf_S)\) above gives
Since we have assumed \(\dim S \ge \dim R\), the kernel of \(J_xf_S\) can not have dimension smaller than the codimension \(\dim S  \dim R\), so the above inequality is an equality in this case and \(J_xf_S\) has full rank, as desired. \(\square \)
When comparing the requirements of Definition 7.1 to the properties guaranteed by the preceding result, we note that the stratifications \(X'_\bullet \) and \(Y'_\bullet \) are insufficient for our purposes. While every stratum S of \(X'_\bullet \) does indeed have a unique stratum R of \(Y'_\bullet \) containing f(S), the crucial Jacobiansurjectivity requirement is not satisfied. Instead, we might have \(\dim S < \dim R\) with the Jacobian \(J_xf_S\) being injective at every point x in S. The Refine subroutine invoked in Line 13 of WhitStratMap, which we describe in the next Section, has been designed to rectify this defect.
7.4 Refinement and Correctness
Before Line 13 of WhitStrat has been executed, we have stratifications \(X'_\bullet \) and \(Y'_\bullet \) of X and Y respectively. In light of Proposition 7.6, consider the set of problematic stratapairs \(\mathscr {P}=\mathscr {P}(X'_\bullet ,Y'_\bullet )\) given by:
The purpose of the Refine subroutine described here is to modify the stratifications \(X'_\bullet \) and \(Y'_\bullet \) until this problematic set \(\mathscr {P}\) becomes empty. By Proposition 7.6, each stratum S of \(X'_\bullet \) can appear in a pair of \(\mathscr {P}\) with at most one stratum R of \(Y'_\bullet \). However, the converse need not hold—a given stratum R of \(Y'_\bullet \) might be paired with several different strata of \(X'_\bullet \) within \(\mathscr {P}\). Recalling that \(X'_\bullet \) is \(\mathbf {F}_\bullet \)subordinate, for each index \(\ell \) we will use \(\mathfrak {S}_\ell = \mathfrak {S}_\ell (X'_\bullet )\) to denote the set of all strata S of \(X'_\bullet \) which lie in the difference \(\mathbf {F}_{\ell +1}X\mathbf {F}_{\ell }X\).
Refine\((X'_\bullet ,Y'_\bullet ,f)\)  

Input: Stratifications \(X'_\bullet ,Y'_\bullet \) of pure dimensional varieties X and Y  
and a generic morphism \(f:X \rightarrow Y\) so that Prop. 7.6 holds.  
Output: Lists of subvarieties \(X_\bullet \subset X\) and \(Y_\bullet \subset Y\).  
1  For each \((S,R) \in \mathscr {P}(X'_\bullet ,Y'_\bullet )\) with \(\dim R\) maximal 
2  Set \(Y^+_\bullet := Y'_\bullet \) 
3  Set \(d := \dim \overline{f(S)}\) 
4  Add \(\overline{f(S)}\) to \(Y^+_{\ge d}\) 
5  Merge \(Y^+_\bullet \) with WhitStrat\((\text { Pure}_d(Y'_d))\) 
6  For each \(\ell = (d,d1,\ldots ,1,0)\) 
7  For each irreducible \(W \subset \overline{Y^+_\ell  Y'_\ell }\) and \(S' \in \mathfrak {S}_\ell (X'_\bullet )\) 
8  If \(Z \cap S' \ne \varnothing \) for an irreducible \(Z \subset f^{1}(W)\) 
9  Set \(r := \dim Z\) 
10  Add Z to \(X'_{\ge r}\) 
11  Merge \(X'_\bullet \) with WhitStrat\((\mathrm{Pure}_{r}(X'_{r}))\) 
12  Set \(Y'_\bullet =Y^+_\bullet \) 
13  Recompute \(\mathscr {P}(X'_\bullet ,Y'_\bullet )\) 
14  Return \((X'_\bullet ,Y'_\bullet )\) 
This subroutine processes the problematic stratapairs (S, R) from \(\mathscr {P}(X'_\bullet ,Y'_\bullet )\) one at a time, in descending order of \(\dim R\). For each such pair, Lines 2–5 further partition R by forcing the closure of the image f(S) to form (one or more) new strata. As a result of subdividing R along f(S), some of the strata \(S'\) of \(X'_\bullet \) satisfying \(f(S') \subset R\) no longer have their images contained in a single stratum. Lines 6–11 are designed to correct this problem by finding and further subdividing all such \(S'\) appropriately.
Proposition 7.7
The Refine subroutine terminates, and its output \((X_\bullet ,Y_\bullet )\) constitutes a valid stratification (as in Definition 7.1) of the generic projective morphism \(f:X \rightarrow Y\).
Proof
If \(\mathscr {P}\) is empty, then the algorithm terminates immediately with a correct stratification, so let (S, R) be a stratapair in \(\mathscr {P}\) with R of maximal dimension; thus, we have \(\dim S < \dim R\). In Lines 2–5, WhitStratMap constructs a new Whitney stratification \(Y^+_\bullet \) of Y by subdividing the closure of R into finitely many new strata
so that all points lying in the (closure of the) immersed image \(f(S) \subset R\) lie within strata of dimension no larger than \(\dim S\). Thus, for each point \(x \in S\), there is a unique index i(x) for which \(f(x) \in R_{i(x)}\). Moreover, we have
Since \(R_{i(x)} \subset R\), we know by Proposition 7.6 that the Jacobian \(J_xf:T_xS \rightarrow T_{f(x)}R_{i(x)}\) is surjective for all \(x \in S\) as desired. Unfortunately, the act of partitioning R into smaller strata might violate the other property required by Definition 7.1, i.e., we may have strata \(S'\) of \(X'_\bullet \) whose images \(f(S')\) were entirely contained in R, but which now intersect several new \(R_i\)’s. Therefore, in Lines 6–11, the algorithm paritions all such \(S'\) along their intersections with \(f^{1}(R_i)\) for all i—this creates new Whitney strata and hence refines \(X'_\bullet \). Finally, in Line 12, we also update \(Y'_\bullet \) to the new stratification \(Y^+_\bullet \). After this update, there might be several new problematic strata pairs in \(\mathscr {P}\); but the key observation here is that none of these new pairs \((S^*,R^*)\) can have \(\dim R^* > \dim R\) since all of the new strata \(R^*\) of \(Y'_\bullet \) have dimension bounded above by \(\dim R\). Moreover, even when \(\dim R^* = \dim R\), it is impossible to have any \((S^*,R^*)\) in \(\mathscr {P}\) where \(S^* \subset S\) is a newly created stratum of \(X'_\bullet \)—any such \(S'\) must have its image \(f(S')\) entirely contained in a stratum of dimension \(< \dim R\). Thus, WhitStratMap eventually terminates and outputs a valid stratification of \(f:X \rightarrow Y\).
\(\square \)
Remark 7.8
An analogous algorithm for stratifying proper algebraic maps between affine varieties can be produced by making a few standard modifications to WhitStratMap. Implicit in (the proofs of) Corollaries 5.6 and 6.3 are routines which would compute (flagsubordinate) Whitney stratifications of a complex affine algebraic variety. These routines accept as input affine equations, homogenize the associated Gröbner basis, run the projective stratification algorithms described here, and then dehomogenize the output to produce the final result. Let WhitStratAff and WhitStratFlagAff be the resulting algorithms. If \(X\subset \mathbb {C}^n\) and \(Y\subset \mathbb {C}^m\) are affine varieties and \(f:X\rightarrow Y\) is a proper morphism, then an analogous definition of the map being generic and of a ThomBoardman flag on X may be given. To obtain a stratification of the generic proper morphism \(f:X\rightarrow Y\) in the sense of Definition 7.1, one simply replaces each occurence of WhitStrat and WhitStratFlag by WhitStratAff and WhitStratFlagAff, respectively in the WhitStratMap and Refine algorithms described above.
8 Performance and Complexity
In this section, we briefly describe the reallife performance as well as the computational complexity of the basic algorithm WhitStrat from §5. Our implementation is in Macaulay2 [24], and can be found along with documentation at the link below:
http://martinhelmer.com/Software/WhitStrat
8.1 Performance
As remarked in the Introduction, the state of the art for Whitney stratification algorithms appears to be the recent algorithm of Ɖinh and Jelonek [30, §2]. We are not aware of any existing implementations of earlier algorithms based on quantifier elimination, and in any event, since implemented quantifier elimination methods rely on cylindrical algebraic decomposition we would expect their performance to be slower than that of [30] overall. Since the authors of [30] did not provide an implementation of their algorithm, we have implemented it ourselves in Macaulay2. This implementation can be found at:
http://martinhelmer.com/Software/WhitStrat/DCG.m2.
In Table 1, we show the run time of the WhitStrat on several examples; on all of the examples listed here, the algorithm of [30] did not finish after 8 hours of calculation time.
The variety in the first entry of this table is (the projective analogue of) the Whitney umbrella, which was one of the earliest examples of singular spaces used to illustrate the need for Condition (B). We ran the algorithm of [30] on this variety for over 29 hours. In this time, it was unable to find strata of codimension \(> 1\), i.e., the strata lying below the singular locus. All computations involving this algorithm used at least 27 GB of RAM during their 8 hour run. In sharp contrast, WhitStrat used between 0.0005 and 0.347 GB of RAM, with all but the last entry in the table requiring no more than 0.016 GB. While it is certainly possible that a more optimized implementation of [30] than ours could be produced, in our view, it is unlikely to significantly alter these general trends.
8.2 Complexity
By far the biggest computational burden incurred when running WhitStrat comes from various intermediate Gröbner basis calculations. In particular, these are required when running the Decompose subroutine in Line 3 (computing ideal saturation), Line 4 (computing elimination ideals) and Line 6 (computing all irreducible components), for more on how these tasks are accomplished via Gröbner basis see [11, 12]. Throughout the remainder of this section, we write \(\mathbf{GB} (n,\delta )\) to denote the complexity of performing Gröbner basis computation on an ideal consisting of polynomials in n variables of degree at most \(\delta \), in the worst case this bound is approximately \(\mathcal {O}(\delta ^{2^n})\), as described for instance in [34, 36]. However, more recent analysis [2, 15] has revealed that this worst case bound tends to be overly pessimistic in general.
The bulk of our complexity estimates will be provided in terms of the following input parameters: we assume that the defining radical ideal \(I_X\) of our input variety X has been given in terms of a finite generating set of homogeneous polynomials in n complex variables with maximal degree \(\delta \). To avoid trivialities, we assume \(\delta \ge 2\) and \(n\ge 2\). Let k be the dimension of X, let \(c = nk\) be the codimension of X, and \(\mu < k\) the dimension of the singular locus \(X_\text {sing}\).
Proposition 8.1
The degree of \(X_\mathrm{sing}\) is no larger than \(\delta ^{n}\). If \(Z \subset X_\mathrm{sing}\) is any irreducible \(\mu \)dimensional subvariety, then the degree of the affine subvariety \(V_\mu \subset \mathbb {C}^n \times \mathbb {C}^n\) defined by the ideal sum \(I_{\mathbf {Con}(X)}+I_Z\) is bounded as
Proof
We begin with the observation that \(\deg (X_\text {sing})\) is bounded from above by the degree of any \(\mu \)dimensional complete intersection that contains \(X_\text {sing}\)—such complete intersections may be generated as zero sets of an appropriate number of random linear combinations of the defining polynomials of \(X_\text {sing}\) (see [17, Example 8.4.12] or [48, §A.9]), after choosing a set of generators all having the same degree (which can always be done for homogeneous ideals [26, Remark 2.3]). Recall that the Jacobian minors which generate \(X_\text {sing}\) in the coordinate ring of X have degree at most \(\delta 1\). By Bézout’s theorem [17, Theorem 12.3] and the discussion above, we have
since the singular locus can have codimension at most k in X. Again using Bezout’s theorem, the expression on the right may be bounded above by \(\delta ^{nk} \cdot \delta ^k\), which equals \(\delta ^{n}\) as desired. Turning now to \(V_\mu \), note that the minors of the augmented Jacobian which generate \(\mathbf {Con}(X)\) have bidegree no larger than \(((\delta 1)^{nk},1)\) inside \(\mathbb {P}^n \times (\mathbb {P}^n)^*\), while those which generate Z have degree no larger than \(\delta ^{n}\) inside \(\mathbb {P}^n\) by our bound on \(\deg (X_\text {sing})\) given above. Thus, \((\delta ^{n},1)\) bounds from above the bidegree for the generating polynomials of \(V_\mu \). Passing to affine charts, \(V_\mu \) may be generated by polynomials of degree at most \(\delta ^{n}+1\) as a subvariety of \(\mathbb {C}^{2n}\). Appealing once again to a complete intersection which contains \(V_\mu \) and has the same dimension, we obtain the following degree bound by Bézout’s theorem:
Since the right side is bounded from above by \(\delta ^{3n^2}\), the argument is complete. \(\square \)
The degree of \(V_\mu \) estimated above bounds several quantities of interest from above when Decompose is first invoked from WhitStrat.
Proposition 8.2
The following quantities are bounded by \(\delta ^{3n^2}\) when Decompose is called from WhitStrat during the \(d=\mu \) iteration of its For loop:

(1)
the number of irreducible components of Y;

(2)
the number of irreducible components of the varieties \(\mathbf {V}(J)\), \(\mathbf {V}(K)\), and W; and,

(3)
the degrees of the generating polynomials of J, K and \(I_W\).
Proof
Since Y consists of the pure \(\mu \)dimensional components of \(X_\text {sing}\) when Decompose is invoked from WhitStrat for the first time, we have \(\deg (Y) \le \deg (X_\text {sing})\). The first assertion now follows from our estimate \(\deg (X_\text {sing}) \le \delta ^{n}\) which was derived in Proposition 8.1.
Let \(p_\mu \) be the number of irreducible components of \(V_\mu \). Ideal saturation is only allowed to remove components by equation (3), so the number of irreducible components of \(\mathbf {V}(J)\) is bounded above by \(p_\mu \). Moreover, the projection of an irreducible variety is irreducible,^{Footnote 1} and so \(p_\mu \) also bounds from above the number of irreducible components of W. Since each irreducible component of a variety contributes at least one to its degree, we further have \(p_\mu \le \deg (V_\mu )\). Combining this fact with the estimate of \(\deg (V_\mu )\) from Proposition 8.1 establishes the second assertion.
The third assertion follows from the classical result of Mumford [39, page 32–33], which states that we can take the degree of a variety (or a scheme) as a bound on the degree of its generators. \(\square \)
Proposition 8.3
The following quantities are bounded by \(\delta ^{2^{\mu +2}\cdot n^{\mu +2}}\) when Decompose is called from WhitStrat during the any step of the algorithm:

(1)
the number of irreducible components of Y;

(2)
the number of irreducible components of the varieties \(\mathbf {V}(J)\), \(\mathbf {V}(K)\), and W; and,

(3)
the degrees of the generating polynomials of J, K and \(I_W\).
Proof
We have from Proposition 8.1 that \(\deg (V_\mu )\) is bounded by \(\delta ^{3n^2}\). For all d in \({\left\{ {\mu 1,\ldots ,0}\right\} }\), we similarly let \(V_d\) be the variety generated by \(I_{\mathbf {Con}(X)}+I_Z\) in Line 3 of Decompose when it is called during the \((\mu d+1)\)st iteration of the For loop of WhitStrat. Thus, when \(d=\mu 1\), the variety represented by X in Line 3 of Decompose is \(\mu \)dimensional and lives in the singular locus of the original input variety, whereas \(Z \subset X\) has dimension at most \(\mu 1\). Using the arguments of Proposition 8.1 verbatim, we may bound
Iterating this argument, we obtain a sequence \((a_0,a_1,\ldots ) := (3, 7,\ldots )\) so that
for all d in \({\left\{ {0,\ldots ,\mu }\right\} }\). Recognising that \(a_j = 2^{j+2}1\) for all \(j \ge 0\), we obtain
A very similar argument shows that this quantity also bounds the degrees of varieties arising in Decompose from the recursive calls in Line 7 of WhitStrat. \(\square \)
In order to give fully describe WhitStrat’s complexity, we require the following additional runtime parameters. Assume, for each \(d \in {\left\{ {\mu ,\mu 1,\ldots ,1,0}\right\} }\), that \(r_d \ge 0\) is the largest number of generators encountered among the ideals J, K, and \(I_W\) in Lines 3–6 of Decompose when extracting the ddimensional strata of X. We have introduced these secondary \(r_d\) parameters because we are unaware of any sufficiently general and reasonably tight bounds on the number of generators of J, K or \(I_W\) in terms of the primal quantities n, \(\delta \) and the number of generating polynomials for the input variety X. Any such bound must account for pathological cases and hence be at least doubly exponential in n, see for instance [8]. Such estimates do not accurately reflect the vast majority of inputs.
If a given ideal \(I_Z\) has r generating polynomials in n variables, then the number of minors in the generating ideal of \(\mathbf {Con}(Z)\) equals
We will assume henceforth that \((16 r_d n )^n\) is in \(\mathcal {O}(\delta ^{2^{\mu +2}\cdot n^{\mu +2}})\) for all d, so that the cost of computing the required minors to obtain the ideals of conormal varieties is dominated by the cost of subsequent Gröbner basis calculations. With this assumption in place, the estimates in Proposition 8.3 give us the desired complexity bounds.
Theorem 8.4
Let X be a complex projective subvariety of \(\mathbb {P}^n\) whose defining polynomials have degree at most \(\delta \) and whose singular locus has dimension \(\mu \). The time complexity of running WhitStrat on X is bounded in
where \(D = \delta ^{2^{\mu +2}\cdot n^{\mu +2}}\) and \(\mathbf{GB}(n,D)\) is the cost of computing Gröbner bases for an ideal generated by polynomials in n variables of degree at most D.
Proof
Taking into account the recursive call in Line 7 of WhitStrat, the subroutine Decompose can be called at most \((\mu +1)+(\mu )+\dots + 1=\frac{(\mu +1)(\mu +2)}{2}\) times. Each iteration of the For loop in line 2 of Decompose adds at most D irreducible components, and the total number of iterations of this loop is bounded by the number of irreducible components added either in previous calls to Decompose or from the singular locus of X. Therefore, during the first call to Decompose at most \(D^2\) irreducible components may be added. If all these lie in the variety Y which forms the input during the second call, then we may have up to \(D^2\cdot D\) components added in this call. Continuing in this fashion, during the \(\frac{(\mu +1)(\mu +2)}{2}\)th call to Decompose, we have a bound of \(D^{\frac{(\mu +1)(\mu +2)}{2}+1}\) irreducible components of the input Y. Irreducible decomposition occurs in Lines 2 and 7 of Decompose, and its complexity, along with the complexity of the two Gröbner basis calculations at lines 3 and 4 of Decompose, are bounded in \(\mathcal {O}(\mathbf{GB} (n,D))\). This gives a total bound of
Here, the first term in the parenthetical sum comes from Line 2 of Decompose, the second from Lines 3, 4, and 6, and the third from Line 7. Finally, we note that the above bound lies within \(\mathcal {O}((\mu +2)^2D^{2(\mu +2)^2}{} \mathbf{GB} (n,D))\), as desired. \(\square \)
The practical efficiency of WhitStrat comes from the fact that the parameter D from the above theorem lies in \(\mathcal {O}(\deg (X))\) for typical input varieties X, rather than scaling superexponentially with \(\delta \). For the purposes of describing theoretical complexity, we are forced to increment the power of n in the exponent each time the For loop of WhitStrat iterates, as this is the only way to guarantee that the worstcase degree bounds hold. In practice, however, we have observed that the degrees of the intermediate varieties stay roughly constant and even reduce as the For loop iterates from \(d = \mu \) down to \(d = 0\).
8.3 Comparison with QuantifierEliminationbased Stratification Methods
We are aware of one other approach for computing Whitney stratifications which does not use Gröbner basis calculation, namely the algorithm of [38, 40]. This method has complexity bounds derived from the asymptotically fast critical points based quantifier elimination methods of Grigoriev–Vorobjov [25] and Renegar [41]. Although these critical point methods were first introduced over three decades ago and have been extensively studied thereafter, to the best of our knowledge, there is no software implementation for general polynomial systems. All general purpose quantifierelimination software we are aware of uses some form of cylindrical algebraic decomposition, [1, 4, 9], which has complexity bounds doubly exponential in the number of variables. Quantifierelimination algorithms based on critical points are described in [4, Chapter 14]; on page 7 of this text, the authors state that:
“For most of the algorithms presented in Chapter 13 to 16 there is no implementation at all. The reason for that is that the methods developed are well adapted to complexity results but are not adapted to efficient implementation."
Nevertheless, had an implementation of the critical pointsbased quantifierelimination methods of Grigoriev–Vorobjov [25] and Renegar [41] existed, then an implementation of the stratification algorithm of [38, 40] based on this would achieve a complexity bound of the form
where \(\ell \) is the length of the canonical (i.e., coarsest) Whitney stratification of the input variety, see, for example, [38, page 289]. For highdimensional inputs which admit strata in all dimensions, this bound is asymptotically quite similar to those from Gröbner basisbased methods. However, it has been suggested that the \(\mathcal {O}(n)\) in the exponent conceals a rather large constant that is likely to make these quantifierelimination methods infeasible in practice [3, Remark 2.28].
Change history
01 February 2023
A Correction to this paper has been published: https://doi.org/10.1007/s10208022096027
Notes
Equivalently, the elimination ideal of a prime ideal is always prime, see [35, Theorem 4.2].
References
D. S. Arnon, G. E. Collins, and S. McCallum. Cylindrical algebraic decomposition I: The basic algorithm. SIAM Journal on Computing, 13(4):865–877, 1984.
M. Bardet, J.C. Faugère, and B. Salvy. On the complexity of the F5 Gröbner basis algorithm. Journal of Symbolic Computation, 70:49–70, 2015.
S. Basu. Algorithms in real algebraic geometry: a survey. Panoramas & Synthéses, 51:107153, 2017.
S. Basu, R. Pollack, and M.F. Roy. Algorithms in Real Algebraic Geometry, volume 10 of Algorithms and Computation in Mathematics. Springer, 2006.
J. M. Boardman. Singularities of differentiable maps. Publ. Math. IHES, 33:383–419, 1967.
J.P. Brasselet, J. Seade, and T. Suwa. Vector fields on singular varieties, volume 1987. Springer Science & Business Media, 2009.
S. Cappell and J. Shaneson. Stratifiable maps and topological invariants. J. Amer. Math. Soc., 4(3):521–551, 1991.
G. Caviglia and A. De Stefani. Bounds on the number of generators of prime ideals. preprint arXiv:2108.05683, 2021.
B. F. Caviness and J. R. Johnson. Quantifier elimination and cylindrical algebraic decomposition. Springer Science & Business Media, 2012.
D. Cox, J. Little, and D. OShea. Ideals, varieties, and algorithms: an introduction to computational algebraic geometry and commutative algebra. Springer Science & Business Media, 2015.
D. A. Cox. What is a toric variety?
W. Decker, G.M. Greuel, and G. Pfister. Primary decomposition: algorithms and comparisons. In Algorithmic algebra and number theory, pages 187–220. Springer, 1999.
J. Draisma, E. Horobeţ, G. Ottaviani, B. Sturmfels, and R. R. Thomas. The Euclidean distance degree of an algebraic variety. Foundations of Computational Mathematics, 16(1):99–149, 2016.
M. England and J. H. Davenport. Experience with heuristics, benchmarks & standards for cylindrical algebraic decomposition. In CEUR Workshop Proceedings, volume 1804, pages 24–31. CEURWS, 2016.
J.C. Faugere. A new efficient algorithm for computing G röbner bases (F4). Journal of pure and applied algebra, 139(13):61–88, 1999.
A. G. Flores and B. Teissier. Local polar varieties in the geometric study of singularities. Annales de la Faculté des sciences de Toulouse : Mathématiques, Ser. 6, 27(4):679–775, 2018.
W. Fulton. Intersection theory. SpringerVerlag New York, second edition, 1998.
V. Ginsburg. Characteristic varieties and vanishing cycles. Inventiones Mathematicae, 84(2):327–402, 1986.
M. Golubitsky and V. Guillemin. Stable Mappings and their Singularities. Number 14 in Graduate Texts in Mathematics. Springer, 1973.
G. GonzálezSprinberg. L’obstruction locale d’Euler et le théoreme de MacPherson. Astérisque, 82(83):7–32, 1981.
M. Goresky and R. MacPherson. Intersection homology theory. Topology, 19:135–162, 1980.
M. Goresky and R. MacPherson. Intersection homology II. Inventiones Mathematicae, 71:77–129, 1983.
M. Goresky and R. MacPherson. Stratified Morse Theory. SpringerVerlag, 1988.
D. R. Grayson and M. E. Stillman. Macaulay2, a software system for research in algebraic geometry. Available at http://www.math.uiuc.edu/Macaulay2.
D. Y. Grigor’ev and N. N. Vorobjov Jr. Solving systems of polynomial inequalities in subexponential time. Journal of symbolic computation, 5(12):37–64, 1988.
C. Harris and M. Helmer. Segre class computation and practical applications. Mathematics of Computation, 89(321):465–491, 2020.
R. Hartshorne. Algebraic Geometry. Number 52 in Graduate Texts in Mathematics. Springer, 1997.
A. Holme. The geometric and numerical properties of duality in projective algebraic geometry. Manuscripta mathematica, 61(2):145–162, 1988.
C. Huneke and I. Swanson. Integral closure of ideals, rings, and modules, volume 13. Cambridge University Press, 2006.
S. T. Đinh and Z. Jelonek. Thom isotopy theorem for nonproper maps and computation of sets of stratified generalized critical values. Discrete & Computational Geometry, 65:279–304, 2021.
D. Lê Tráng and B. Teissier. Limites d’espaces tangents en géométrie analytique. Commentarii Mathematici Helvetici, 63(1):540–578, 1988.
R. MacPherson. Chern classes for singular algebraic varieties. The Annals of Mathematics, 100(2):423–432, 1974.
J. Mather. Notes on topological stability. Bulletin of the American Mathematical Society, 49(4):475–506, 2012.
E. W. Mayr and A. R. Meyer. The complexity of the word problems for commutative semigroups and polynomial ideals. Advances in mathematics, 46(3):305–329, 1982.
M. Michałek and B. Sturmfels. Invitation to nonlinear algebra, volume 211. American Mathematical Soc., 2021.
H. M. Möller and F. Mora. Upper and lower bounds for the degree of gröbner bases. In International Symposium on Symbolic and Algebraic Manipulation, pages 172–183. Springer, 1984.
T. Mostowski and E. Rannou. Complexity of the computation of the canonical Whitney stratification of an algebraic set in \({\mathbb{C}}^n\). In International Symposium on Applied Algebra, Algebraic Algorithms, and ErrorCorrecting Codes, pages 281–291. Springer, 1991.
T. Mostowski and E. Rannou. Complexity of the computation of the canonical whitney stratification of an algebraic set in \({\mathbb{C}}^n\). In H. F. Mattson, T. Mora, and T. R. N. Rao, editors, Applied Algebra, Algebraic Algorithms and ErrorCorrecting Codes, pages 281–291, Berlin, Heidelberg, 1991. Springer Berlin Heidelberg.
D. Mumford. Varieties defined by quadratic equations. In Questions on algebraic varieties, C.I.M.E. Varenna, pages 29–100. Cremonese, 1970.
E. Rannou. The complexity of stratification computation. Discrete & Computational Geometry, 19(1):47–78, 1998.
J. Renegar. On the computational complexity and geometry of the firstorder theory of the reals. part I : Introduction. preliminaries. the geometry of semialgebraic sets. the decision problem for the existential theory of the reals. Journal of symbolic computation, 13(3):255–299, 1992.
J. I. Rodriguez and B. Wang. Computing Euler obstruction functions using maximum likelihood degrees. International Mathematics Research Notices, 2019.
R. Thom. Les singularités des applications différentiables. Ann. Inst. Fourier (Grenoble), 6:43–87, 1955/6.
R. Thom. Ensembles et morphismes stratifiés. Bull. Amer. Math. Soc., 75(2):240–284, March 1969.
W. Vasconcelos. Computational methods in commutative algebra and algebraic geometry, volume 2. Springer Science & Business Media, 2004.
W. Vasconcelos. Integral closure: Rees algebras, multiplicities, algorithms. Springer Science & Business Media, 2006.
N. N. Vorobjov. Effective stratification of regular real algebraic varieties. In Real Algebraic Geometry, pages 402–415. Springer, 1992.
I. C. W. Wampler et al. The Numerical solution of systems of polynomials arising in engineering and science. World Scientific, 2005.
S. Weinberger. The Topological Classification of Stratified Spaces. The University of Chicago Press, 1994.
H. Whitney. Tangents to an analytic variety. Annals of mathematics, pages 496–549, 1965.
D. J. Wilson, R. J. Bradford, and J. H. Davenport. Speeding up cylindrical algebraic decomposition by Gröbner bases. In International Conference on Intelligent Computer Mathematics, pages 280–294. Springer, 2012.
Acknowledgements
VN is grateful to Mark Goresky and Robert MacPherson for several valuable discussions on the local geometry of singular spaces; his work was supported by EPSRC grant EP/R018472/1 and by DSTL grant D015 funded through the Alan Turing Institute. We thank the anonymous referee for their careful reading of the paper as well as their helpful comments and corrections.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Shmuel Weinberger.
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Helmer, M., Nanda, V. Conormal Spaces and Whitney Stratifications. Found Comput Math 23, 1745–1780 (2023). https://doi.org/10.1007/s10208022095748
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10208022095748