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], Goresky-MacPherson [21,22,23], Lê-Teissier [31], Fulton [17], Cappell-Shaneson [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

$$\begin{aligned} X = \coprod _i M_i, \end{aligned}$$

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

$$\begin{aligned} M_n&:= \mathscr {E}_n(X), \text { and } \\ M_i&:= \mathscr {E}_i(X-M_{>i}) \text { for }0 \le i < n, \end{aligned}$$

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.

Fig. 1
figure 1

The Whitney cusp depicted is the hypersurface of \(\mathbb {R}^3\) given by \(y^2+z^3-x^2z^2=0\). The entire x-axis, drawn horizontally, is singular

Since \(M_3\) is empty, one identifies \(M_2 \subset X\) as the set of points with two-dimensional Euclidean neighborhoods; and upon removing these, only the x-axis remains. This axis must therefore equal \(M_1\), and we obtain a partition of X into one and two-dimensional 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 x-axis. 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 G-equisingular 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 (XY) 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.

Fig. 2
figure 2

Sequences of points \({\left\{ {x_i}\right\} } \subset M_2\) and \({\left\{ {y_i}\right\} } \subset M_1\) which both converge to the origin. The limiting tangent plane T of the \(x_i\)’s is horizontal, while the limiting secant line \(\ell \) of the \([x_i,y_i]\)’s is vertical. Thus, Condition (B) would be violated if the origin was included in \(M_1\)

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 algebraic-topological 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 k-dimensional projective variety \(X \subset \mathbb {P}^n\), let \(X_\text {reg}\) be the smooth locus of X and note that there is a well-defined 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 k-dimensional subspaces of \(\mathbb {C}^{n+1}\); let us consider the map

$$\begin{aligned} \tau :X_\text {reg} \rightarrow X \times \mathbf {Gr}(k,n+1) \end{aligned}$$

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.

Fig. 3
figure 3

Fibers of the Nash blowup are depicted over a smooth (red) and singular (blue) point of an underlying curve

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.)


Let \(X \subset \mathbb {P}^n\) be a pure-dimensional 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

$$\begin{aligned} J := I_{\kappa _X^{-1}(Y)}:\left( I_{\mathbf {Con}(X) \cap \mathbf {Con}(Y)}\right) ^\infty , \end{aligned}$$

and write \(\mathbf {V}(J)\) for the corresponding projective variety. Then, the difference

$$\begin{aligned} Y' :=Y_\text {\!reg} - \overline{\kappa _X(\mathbf {V}(J))} \end{aligned}$$

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 k-dimensional 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

$$\begin{aligned} X_0 \subset X_1 \subset \cdots \subset X_k = X, \end{aligned}$$

so that the desired manifold partition \(X = \coprod _i M_i\) is given by \(M_i := X_i - X_{i-1}\). 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:

$$\begin{aligned} \mathbf {F}_0X \subset \mathbf {F}_1X \subset \cdots \subset \mathbf {F}_\ell X = X, \end{aligned}$$

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}_{j-1}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 Thom-Boardman 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 n-dimensional affine or projective space, all prior stratification methods (such as [37, 40] for instance) require quantifier elimination in approximately 4n real variables. While critical points-based 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 elimination-based 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 well-documented [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 basis-type 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 real-world 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 flag-subordinate 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 k-dimensional 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 k-dimensional 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

$$\begin{aligned} \mathbf {Con}(X)=\overline{{\left\{ {(x,\xi ) \mid x \in X_\mathrm{reg} \text { and } T_xX_\mathrm{reg} \subset \xi }\right\} }}. \end{aligned}$$

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 well-studied 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 n-dimensional 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 Zariski-dense subset, then \(\mathbf {Con}(X)=\mathbf {Con}(X')\).


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 (XY) satisfies Condition (B) if the above property holds for every point p in Y. Note that (XY) 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 (XY) 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).


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 (XY) does. \(\square \)

Condition (B) serves as a regularity axiom which can be used to induce a particularly well-behaved and useful class of decompositions of analytic spaces into submanifolds.

Definition 3.2

A (k-dimensional) Whitney stratification of a complex analytic subspace \(W \subset \mathbb {C}^{n+1}\) is a filtration \(W_\bullet \) by closed subsets

$$\begin{aligned} \varnothing = W_{-1} \subset W_0 \subset W_1 \subset \cdots \subset W_{k-1} \subset W_k = W, \end{aligned}$$

where each difference \(M_i := W_i-W_{i-1}\) is a complex analytic i-dimensional manifold subject to the following conditions. The connected components of \(M_i\), called the i-dimensional strata, must obey the following axioms:

  1. (1)

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

  2. (2)

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

  3. (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

$$\begin{aligned} \mathscr {I}[\mathbf {Con}(X)\cap \mathbf {Con}(Y)] \subset \overline{\mathscr {I}}[\kappa _X^{-1}(Y)]. \end{aligned}$$

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

$$\begin{aligned} \mathscr {I}[\kappa _X^{-1}(Y)] \subset \mathscr {I}[\mathbf {Con}(X) \cap \mathbf {Con}(Y)] \end{aligned}$$

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

$$\begin{aligned} I:J^\infty = {\left\{ {r \in R \mid \text {there is some } N \ge 0 \text { satisfying } rJ^N \subset I}\right\} }. \end{aligned}$$

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

$$\begin{aligned} \mathscr {V}(I:J^\infty ) = \overline{\mathscr {V}(I) - \mathscr {V}(J)}, \end{aligned}$$

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

$$\begin{aligned} \mathbb {C}[x,\xi ] := \mathbb {C}[x_0,\ldots ,x_n,\xi _0,\ldots , \xi _n] \end{aligned}$$

and examine some of its relevant ideals. When \(Y \subset X\) is a subvariety defined by some ideal

$$\begin{aligned} I_Y=\langle f_1, \dots , f_r\rangle \lhd \mathbb {C}[x], \end{aligned}$$

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

$$\begin{aligned} I_{\kappa _X^{-1}(Y)} = I_{\mathbf {Con}(X)} + I_Y \end{aligned}$$

in the polynomial ring \(\mathbb {C}[x,\xi ]\).


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

$$\begin{aligned} \kappa ^{-1}_X(Y)=\mathbf {Con}(X)\cap \pi ^{-1}(Y), \end{aligned}$$

and we also have \(\mathbf {V}(K)=\pi ^{-1}(Y)\) by definition. Consequently, there is an equality

$$\begin{aligned} \kappa ^{-1}_X(Y)=\mathbf {Con}(X)\cap \mathbf {V}(K) \end{aligned}$$

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 stratum-closure 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 pure-dimensional, 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

$$\begin{aligned} J = I_{\kappa _X^{-1}(Y)} : \left( I_{\mathbf {Con}(X) \cap \mathbf {Con}(Y)}\right) ^\infty , \end{aligned}$$

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.


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:

$$\begin{aligned} \varnothing = X_{-1} \subset X_0 \subset \cdots \subset X_{i-1} \subset X_{i} = X, \end{aligned}$$

so that the j-stratum \(Z = X_{j} - X_{j - 1}\) intersects Y in a dense subset \(Z \cap Y\). This density has three immediate but important consequences:

  1. (i)

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

  2. (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 non-empty; and finally,

  3. (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

$$\begin{aligned} \mathscr {I}[\kappa _X^{-1}(Y)] \subset \mathscr {I}[\kappa _X^{-1}(Y\cap Z)] \subset \mathscr {I}[\mathbf {Con}(X)\cap \mathbf {Con}(Y)] \subset \overline{\mathscr {I}}[\kappa _X^{-1}(Y\cap Z)]. \end{aligned}$$

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

$$\begin{aligned} \dim (\mathscr {S})=\dim (\kappa _X^{-1}(Y))=\dim (\kappa _X^{-1}(Z\cap Y)) =\dim (\mathbf {Con}(X)\cap \mathbf {Con}(Y)) = \dim (\mathscr {S}^+). \end{aligned}$$

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

$$\begin{aligned} \mathbf {V}(J) = \overline{\kappa _X^{-1}(Y)-(\mathbf {Con}(X) \cap \mathbf {Con}(Y))}, \end{aligned}$$

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).


By (3) and the definition of \(Y'\), we have the containment

$$\begin{aligned} \kappa _X^{-1}(Y') \subseteq \overline{ \mathscr {V}(I_Y+I_{\mathbf {Con}(X)})-\mathscr {V}(J)} \end{aligned}$$

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

$$\begin{aligned} \mathbf {Con}(X)\cap \mathbf {Con}(Y)=\mathbf {Con}(X)\cap \mathbf {Con}(Y') \subseteq \kappa _X^{-1}(Y').\end{aligned}$$

For the reverse inclusion, note by (3) that \(\overline{\mathscr {V}(I_Y+I_{\mathbf {Con}(X)})-\mathscr {V}({J})}\) equals

$$\begin{aligned} \overline{\mathscr {V}(I_Y+I_{\mathbf {Con}(X)})-(\overline{\mathscr {V}(I_Y+I_{\mathbf {Con}(X)})-(\mathbf {Con}(X)\cap \mathbf {Con}(Y)))}}, \end{aligned}$$

which is evidently a subset of \(\mathbf {Con}(X)\cap \mathbf {Con}(Y)\). Therefore, we have

$$\begin{aligned} \kappa ^{-1}({Y'})=\mathbf {Con}(X)\cap \mathbf {Con}(Y)=\mathbf {Con}(X)\cap \mathbf {Con}({Y}') \end{aligned}$$

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 pure-dimensional 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 d-dimensional 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

$$\begin{aligned} \begin{bmatrix} \nicefrac {\partial f_1}{\partial x_0} &{}\cdots &{} \nicefrac {\partial f_1}{\partial x_n}\\ \vdots &{} \ddots &{} \vdots \\ \nicefrac {\partial f_r}{\partial x_0} &{}\cdots &{} \nicefrac {\partial f_r}{\partial x_n}\\ \end{bmatrix}, \end{aligned}$$

see [35,  pg. 27–28]. The singular set \(Z_\text {sing} \subset Z\) is (by definition) the zero locus of the Jacobian ideal, namely:

$$\begin{aligned} Z_\text {sing} = \mathbf {V}(I_Z+\mathbf{Jac} _Z). \end{aligned}$$

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:

$$\begin{aligned} \begin{bmatrix} \xi _0 &{} \cdots &{}\xi _n\\ \nicefrac {\partial f_1}{\partial x_0} &{}\cdots &{} \nicefrac {\partial f_1}{\partial x_n}\\ \vdots &{} \ddots &{} \vdots \\ \nicefrac {\partial f_r}{\partial x_0} &{}\cdots &{} \nicefrac {\partial f_r}{\partial x_n}\\ \end{bmatrix}, \end{aligned}$$

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 saturation-based 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.




Input: Projective varieties \(Y \subset X\) in \(\mathbb {P}^n\), with \(d:=\dim Y\).


Output: A list of subvarieties \(Y_\bullet \) of Y.


Set \(Y_\bullet := (Y_d,Y_{d-1},\ldots ,Y_0) := (Y,\varnothing ,\ldots ,\varnothing )\)


For each irreducible component Z of Y


   Set \(J:=(I_{\mathbf {Con}(X)}+I_{Z}):(I_{\mathbf {Con}(X)}+I_{\mathbf {Con}(Z)})^\infty \subset \mathbb {C}[x,\xi ]\)


   Set \(K := {J}\cap \mathbb {C}[x]\)


   Set \(W := Z \cap \mathbf {V}(K)\)


   For each irreducible component V of W


      Add V to \(Y_{ \ge \dim (V)}\)


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 (YX), then:

  1. (1)

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

  2. (2)

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

  3. (3)

    all points of \(Y_\mathrm{reg}\) where Condition (B) fails with respect to \(X_\mathrm{reg}\) lie in \(Y_{d-1}\), so the pair \((X_\text {reg},Y_\text {reg}-Y_{d-1})\) satisfies Condition (B).


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

$$\begin{aligned} J = I_{\kappa _X^{-1}(Z)} : (I_{\mathbf {Con}(X) \cap \mathbf {Con}(Z)})^\infty . \end{aligned}$$

(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_{i-1}\).

5.3 The Main Algorithm

Let \(X\subset \mathbb {P}^n\) be a pure k-dimensional 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:

$$\begin{aligned} V_i \leftarrow V_i \cup W_{\max (i,d)}. \end{aligned}$$

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 pure-dimensional projective varieties.




Input: A pure k-dimensional variety \(X\subset \mathbb {P}^n\).


Output: A list of subvarieties \(X_\bullet \) of X.


Set \(X_\bullet := (X_k,X_{k-1},\ldots ,X_0) := (X,\varnothing ,\ldots ,\varnothing )\)


Compute \(X_\mathrm{sing}\) and \(\mu := \dim (X_\mathrm{sing})\)


For each irreducible component Z of \(X_\text {sing}\)


   Add Z to \(X_{\ge \dim Z}\)


For each d in \((\mu , \mu -1,\ldots ,1,0)\)


   Merge \(X_\bullet \) with \(\mathbf{Decompose}(\text { Pure}_d(X_d),X)\)


   Merge \(X_\bullet \) with \(\mathbf{WhitStrat}(\text { Pure}_d({X_d}))\)


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 d-th 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. (1)

    the left-most 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. (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. (3)

    the i-th 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}$$

These three assertions follow from the observation that during the d-indexed 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.,

$$\begin{aligned} S_i(d) := X_i(d) - X_{i-1}(d). \end{aligned}$$

It follows from Lines 2–4 of WhitStrat that we have the containment

$$\begin{aligned} X_i(d)_\text {Sing} \subset X_{i-1}(d) \text { for all } d \le i, \end{aligned}$$

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 i-strata 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_{d-1}(i)\) contains all points of \(X_d(i)_\text { reg}\) where Condition (B) fails with respect to \(S_k(i)\).


By Remark 5.2, we may safely restrict to the case \(0 \le i\le d \le \mu \), since we have

$$\begin{aligned} X_\mu (d)=X_{\mu +1}(d)=\cdots =X_{k-1}(d) \end{aligned}$$

for all d by Remark 5.2(2). Let \(V_\bullet \) denote the output of Decompose obtained (in Line 6) during the d-th iteration of the For loop in Line 5. It follows from Proposition 5.1(3) that the pair

$$\begin{aligned} P := \left( X_\text {reg},X_d(d+1)_\text {reg}-V_d\right) \end{aligned}$$

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_{d-1}(d)\). Now note that

$$\begin{aligned} S_k(d)&= X_k(d) - X_{k-1}(d)&\text { by } 7 , \\&= X - X_{k-1}(d)&\text { by Remark } 4.2 (1). \end{aligned}$$

Since \(\dim X_{k-1}(d) < k\), we know that \(S_k(d)\) is dense in \(X_\text {reg}\). Moreover, since \(V_d\) is entirely contained in \(X_{d-1}(d)\), we may apply Proposition 3.1 to the pair P above and conclude that the new pair

$$\begin{aligned} P' := \left( S_k(d),X_d(d+1)_\text {reg}-X_{d-1}(d)\right) \end{aligned}$$

also satisfies Condition (B). Now let \(W_\bullet \) be the output of the recursive call to WhitStrat in Line 7 during the d-th iteration of the For loop in Line 5. From Lines 2–4, we deduce that \(X_d(d+1)_\text {sing} \subset W_{d-1}\), and after the Merge operation of Line 7 we are also guaranteed \(W_{d-1} \subset X_{d-1}(d)\). Putting these containments together gives

$$\begin{aligned} X_d(d+1)_\text {sing} \subset W_{d-1} \subset X_{d-1}(d). \end{aligned}$$

By (6), we have \(X_d(d+1) = X_d(d)\), whence \(X_d(d)_\text {sing} \subset X_{d-1}(d)\). Therefore, the difference \(S_d(d) := X_d(d) - X_{d-1}(d)\) in fact equals \(X_d(d+1)_\text {reg}-X_{d-1}(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\).


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(i-1)\); now any irreducible component \(Y \subset X_j(i)\) with \(\dim Y < j\) must also lie in \(X_{j-1}(i)\), whence

$$\begin{aligned} S_j(i)&=\text { Pure}_j(X_j(j))-X_{j-1}(i) \nonumber \\&=W_j-X_{j-1}(i). \end{aligned}$$

Now, \(W_{j-1}\) lies in \(X_{j-1}(j)\) because of the Merge operation in Line 7 of WhitStrat, and in turn, \(X_{j-1}(j)\) is a subvariety of \(X_{j-1}(i)\) as described in (5). Since both varieties \(W_{j-1} \subset X_{j-1}(i)\) have dimension strictly smaller than j, we have that \(S_j(i)\) is dense in \(W_j-W_{j-1}\). 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_{i-1}(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

$$\begin{aligned} (W_j-W_{j-1},W_i-W_{i-1}) \end{aligned}$$

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 (Z-W_i)\) where Condition (B) fails with respect to \(W_j\) must lie in \(W_{j-1}\) 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_{i-1}(i)\). But since \(W_{i-1}\subset X_{i-1}(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 k-dimensional complex projective variety \(X\subset \mathbb {P}^n\), the output \(X_\bullet \) of WhitStrat forms a Whitney stratification of X.


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 k-dimensional 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\).


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 Flag-Subordinate Stratifications

By a flag \(\mathbf {F}_\bullet \) on a variety X, we mean any finite nested set of subvarieties of the form

$$\begin{aligned} \varnothing = \mathbf {F}_{-1}X \subset \mathbf {F}_0X \subset \mathbf {F}_1X \subset \cdots \subset \mathbf {F}_{\ell -1}X \subset \mathbf {F}_\ell X = X. \end{aligned}$$

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}_{i-1}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}_{j-1}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 pure-dimensional 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

$$\begin{aligned} \mathbf {F}'_jW := W \cap \mathbf {F}_jX \end{aligned}$$

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 \).


Set \(\mathbf {F}'_\bullet W := (\mathbf {F}'_\ell W, \ldots , \mathbf {F}'_0W) := (\varnothing ,\ldots ,\varnothing )\)


For each irreducible component V of W


   Add V to \(\mathbf {F}'_{i}W\) for all \(\mathbf {F}'_{i}\) where \(V\subset \mathbf {F}'_{i}\)


   For each j with \(\dim (\mathbf {F}_jX \cap V) < \dim V\)


      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}\)


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 i-dimensional 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 Flag-Subordinate Stratification Algorithms

Here is the flag-subordinate 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\).


Set \(Y_\bullet := (Y_d,Y_{d-1},\ldots ,Y_0) := (\varnothing ,\ldots ,\varnothing )\)


For each irreducible component Z of Y


   Set \(J:=(I_{\mathbf {Con}(X)}+I_{Z}):(I_{\mathbf {Con}(X)}+I_{\mathbf {Con}(Z)})^\infty \subset \mathbb {C}[x,\xi ]\)


   Set \(K := {J}\cap \mathbb {C}[x]\)


   Set \(W := Z \cap \mathbf {V}(K)\)


   Merge \(Y_\bullet \) with InducedFlag\((W,\mathbf {F}_\bullet )\)


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 k-dimensional variety \(X\subset \mathbb {P}^n\) and a flag \(F_\bullet \) on X.


Output: A list of subvarieties \(X_\bullet \subset X\).


Set \(X_\bullet := (X_k,X_{k-1},\ldots ,X_0) := (X,\varnothing ,\ldots ,\varnothing )\)


Compute \(X_\mathrm{sing}\) and \(\mu := \dim (X_\mathrm{sing})\)


Set \(X_d = X_\mathrm{sing}\) for all d in \({\left\{ {\mu ,\mu +1,\ldots ,k-1}\right\} }\)


Merge \(X_\bullet \) with InducedFlag\((X_\text {sing},\mathbf {F}_\bullet )\)


For each d in \((\mu , \mu -1,\ldots ,1,0)\)


   Merge \(X_\bullet \) with \(\mathbf{DecomposeFlag}(X_d,X,\mathbf {F}_\bullet )\)


   Merge \(X_\bullet \) with \(\mathbf{WhitStratFlag}(X_d,\mathbf {F}_\bullet )\)


Return \(X_\bullet \)

6.2 Correctness

The following result confirms that WhitStratFlag produces valid flag-subordinate 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.


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_i-X_{i-1}\) is contained entirely in a single \(\mathbf {F}_jX-\mathbf {F}_{j-1}X\). Any such S can be written as \(Y - X_{i-1}\), 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

$$\begin{aligned} S \cap (\mathbf {F}_{p}X - \mathbf {F}_{p-1}X) = \varnothing \text { whenever } p<j. \end{aligned}$$

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}_{p-1}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 flag-subordinate 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

$$\begin{aligned} {\varvec{ P}}\mathbf {F}_i(PX) := P(\mathbf {F}_iX). \end{aligned}$$

The following result forms a natural flag-subordinate 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 \).


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 flag-subordinate 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 pre-images 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. (1)

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

  2. (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

$$\begin{aligned} f|_{f^{-1}(R)}:f^{-1}(R) \rightarrow R \end{aligned}$$

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.,

$$\begin{aligned} f(x) = \left( f_0(x), \dots , f_m(x)\right) , \end{aligned}$$

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 pure-dimensional 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 (XYf). Both the genericity condition and the algorithm itself make essential use of the Thom-Boardman flag of f, which is described below.

7.1 The Thom-Boardman Flag

Let \(f:X\rightarrow \mathbb {P}^m\) be a projective morphism and consider its Jacobian operator

$$\begin{aligned} Jf := \begin{bmatrix} \nicefrac {\partial f_0}{\partial x_0} &{}\cdots &{} \nicefrac {\partial f_0}{\partial x_n}\\ \vdots &{} \ddots &{} \vdots \\ \nicefrac {\partial f_m}{\partial x_0} &{}\cdots &{} \nicefrac {\partial f_m}{\partial x_n}\\ \end{bmatrix}. \end{aligned}$$

This matrix of polynomials is not well-defined 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

$$\begin{aligned} \mathbf {T}^+_i\mathbb {P}^n = {\left\{ {p \in \mathbb {P}^n \mid \text {rank }J_pf \le i-1}\right\} } \end{aligned}$$

for \(0 \le i \le k+1\). We call \(\mathbf {T}^+_\bullet \) the the Thom-Boardman 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

$$\begin{aligned} \dim \mathbf {T}^+_{k'+1-i}\mathbb {P}^n = (n+1) - i \cdot (i+|m-n|), \end{aligned}$$

with \(k' := \min (n+1,m+1)\). A complete derivation of this dimension formula along with other properties of Thom-Boardman singularities can be found in [19,  Chapter VI, Part I, §1].

Definition 7.4

The Thom-Boardman 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 Thom-Boardman flag \(\mathbf {T}_\bullet \) on X, its image is the flag \({\varvec{ B}}_\bullet \) of length \(k+2\) on Y defined by setting

$$\begin{aligned} \mathbf {B}_iY := {\left\{ \begin{array}{ll} f(\mathbf {T}_iX) &{} i \le k+1, \\ Y &{} i=k+2. \end{array}\right. } \end{aligned}$$

(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 Pre-Images

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

$$\begin{aligned} J := \left\langle {y_0-uf_0(x), \dots , y_m-uf_m(x)}\right\rangle \end{aligned}$$

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 bi-homogeneous ideal

$$\begin{aligned} I_{\Gamma (X')} := I_{X'}+J_\Gamma . \end{aligned}$$

Now, \(f(X')\subset \mathbb {P}^m\) is given by the elimination ideal

$$\begin{aligned} I_{f(X')} := I_{\Gamma (X')} \cap \mathbb {C}[y]. \end{aligned}$$

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 pre-image \(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 (xf(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 pre-image under f is

$$\begin{aligned} f^{-1}(Y') := \pi _x\left( \Gamma (X) \cap \pi _y^{-1}(Y')\right) . \end{aligned}$$

Treating \(I_{Y'} \lhd \mathbb {C}[y]\) as an ideal in \(\mathbb {C}[x,y]\), the desired pre-image \(f^{-1}(Y')\) may be computed algebraically as the intersection

$$\begin{aligned} I_{f^{-1}(Y')} := \mathbb {C}[x]\cap \left( I_{\Gamma (X)} +I_{Y'}\right) . \end{aligned}$$

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 Thom-Boardman 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.




Input: Pure dimensional varieties XY and a generic morphism \(f:X \rightarrow Y\).


Output: Lists of subvarieties \(X_\bullet \subset X\) and \(Y_\bullet \subset Y\).


Set \({\mathbf {T}_\bullet }X := (\mathbf {T}_{k+1}X,\ldots ,\mathbf {T}_0X) := (X,\varnothing ,\ldots ,\varnothing )\)


Set \({\mathbf {B}_\bullet }Y := (\mathbf {B}_{k+2}Y,\ldots ,\mathbf {B}_0Y) := (Y,\varnothing ,\ldots ,\varnothing )\)


For each j in \((0,1,\ldots ,k)\)


   Set \(\mathbf {T}_jX := \mathbf {V}(I_X + \mathbf{Jac} _jf)\)


   Set \(\mathbf {B}_jY := f(\mathbf {T}_jX)\)


Set \(\mathbf {B}_{k+1}Y := f(X)\)


Set \(Y'_\bullet := \mathbf{WhitStratFlag}(Y,\mathbf {B}_\bullet )\)


For each i in \((0,1,\ldots ,\dim Y)\)


   Set \(\mathbf {F}_iX := f^{-1}(Y'_i)\)


Set \(X'_\bullet := \mathbf{WhitStratFlag}(X,\mathbf {F}_\bullet )\)


Set \((X_\bullet ,Y_\bullet ) := \) Refine\((X'_\bullet ,Y'_\bullet ,f)\)


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.,

$$\begin{aligned} \text { rank}\left( J_xf|_S\right) = \min \left( \dim S, \dim R\right) \end{aligned}$$


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}_{i-1}X)\). Now by Line 9, for any such stratum, we have \(f(S) \subset (Y'_i - Y'_{i-1})\). 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'_{i-1})\) 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}_{j-1}Y)\). By Definition 7.5, we have \(f^{-1}(R) \subset (\mathbf {T}_jX - \mathbf {T}_{j-1}X)\), where \(\mathbf {T}_\bullet \) is the Thom-Boardman flag of f from Definition 7.4. In particular, this gives \(S \subset (\mathbf {T}_jX - \mathbf {T}_{j-1}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 = (j-1)\). 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}_{j-1}X)\), we know from (8) that the rank of \(J_xf\) is precisely \((j-1)\) 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

$$\begin{aligned} \dim \ker (J_xf|_S)&= \dim \ker J_xf + \dim T_xS - (n+1)&\text {by transversality}\\&= [(n+1)-(j-1)] + \dim S - (n+1)&\text {by rank/nullity}\\&= \dim S - (j-1). \end{aligned}$$

There are now two cases to consider—either \(\dim S < (j-1)\), or \(\dim S \ge (j-1)\). 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}_{j-1}X)\). Thus, \(\dim Y \le \dim f(\Delta _j)\); but since the rank of f on \(\Delta _j\) is \((j-1)\) by (8), the implicit function theorem guarantees that \(\dim f(\Delta _j) = (j-1)\). So, we have \(\dim R \le (j-1)\), and combining this inequality with our calculation of \(\dim \ker (J_xf|_S)\) above gives

$$\begin{aligned} \dim \ker (J_xf|_S) \le \dim S - \dim R. \end{aligned}$$

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 Jacobian-surjectivity 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 strata-pairs \(\mathscr {P}=\mathscr {P}(X'_\bullet ,Y'_\bullet )\) given by:

$$\begin{aligned} \mathscr {P}:= {\left\{ {(S,R) \mid f(S) \subset R \text { with } \dim S < \dim R}\right\} }. \end{aligned}$$

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\).


For each \((S,R) \in \mathscr {P}(X'_\bullet ,Y'_\bullet )\) with \(\dim R\) maximal


   Set \(Y^+_\bullet := Y'_\bullet \)


   Set \(d := \dim \overline{f(S)}\)


   Add \(\overline{f(S)}\) to \(Y^+_{\ge d}\)


   Merge \(Y^+_\bullet \) with WhitStrat\((\text { Pure}_d(Y'_d))\)


   For each \(\ell = (d,d-1,\ldots ,1,0)\)


      For each irreducible \(W \subset \overline{Y^+_\ell - Y'_\ell }\) and \(S' \in \mathfrak {S}_\ell (X'_\bullet )\)


         If \(Z \cap S' \ne \varnothing \) for an irreducible \(Z \subset f^{-1}(W)\)


            Set \(r := \dim Z\)


            Add Z to \(X'_{\ge r}\)


            Merge \(X'_\bullet \) with WhitStrat\((\mathrm{Pure}_{r}(X'_{r}))\)


   Set \(Y'_\bullet =Y^+_\bullet \)


   Recompute \(\mathscr {P}(X'_\bullet ,Y'_\bullet )\)


Return \((X'_\bullet ,Y'_\bullet )\)

This subroutine processes the problematic strata-pairs (SR) 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\).


If \(\mathscr {P}\) is empty, then the algorithm terminates immediately with a correct stratification, so let (SR) be a strata-pair 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

$$\begin{aligned} \overline{R}= \coprod _i R_i \end{aligned}$$

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

$$\begin{aligned} \dim R_{i(x)} \le \dim S < \dim R. \end{aligned}$$

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 (flag-subordinate) 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 Thom-Boardman 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 real-life 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:


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:


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.

Table 1 Run times of our WhitStrat implementation in Macaulay2 when working over \(\mathbb {Q}\) on an Intel i7-8700 CPU with 64 GB of RAM

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 = n-k\) 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

$$\begin{aligned} \deg (V_\mu ) \le \delta ^{3n^2}. \end{aligned}$$


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

$$\begin{aligned} \deg (X_\text {sing}) \le \deg (X) \cdot (\delta -1)^{k}, \end{aligned}$$

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 ^{n-k} \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)^{n-k},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:

$$\begin{aligned} \deg (V_\mu ) \le (\delta ^{n}+1)^{{{\,\mathrm{codim}\,}}V_\mu } < (\delta ^{n}+1)^{2n}\le (2\delta ^{n})^{2n}\le (\delta ^{n+1})^{2n}. \end{aligned}$$

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. (1)

    the number of irreducible components of Y;

  2. (2)

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

  3. (3)

    the degrees of the generating polynomials of JK and \(I_W\).


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. (1)

    the number of irreducible components of Y;

  2. (2)

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

  3. (3)

    the degrees of the generating polynomials of JK and \(I_W\).


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

$$\begin{aligned} \deg (V_{\mu -1}) \le (\delta ^{3n^2}+1)^{2n-(\mu -1)}<\delta ^{7n^3}. \end{aligned}$$

Iterating this argument, we obtain a sequence \((a_0,a_1,\ldots ) := (3, 7,\ldots )\) so that

$$\begin{aligned} \deg (V_{d}) < \delta ^{a_{\mu -d}\cdot n^{\mu -d+2}} \end{aligned}$$

for all d in \({\left\{ {0,\ldots ,\mu }\right\} }\). Recognising that \(a_j = 2^{j+2}-1\) for all \(j \ge 0\), we obtain

$$\begin{aligned} \deg (V_0) \le \delta ^{( 2^{\mu +2}-1)\cdot n^{\mu +2}} < \delta ^{2^{\mu +2}\cdot n^{\mu +2}}. \end{aligned}$$

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 JK, and \(I_W\) in Lines 3–6 of Decompose when extracting the d-dimensional 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

$$\begin{aligned} \left( {\begin{array}{c}r+1\\ n-\dim (Z)\end{array}}\right) \cdot \left( {\begin{array}{c}n+1\\ n-\dim (Z)\end{array}}\right) \le (16 r n )^{n-\dim (Z)}<(16 r n )^n. \end{aligned}$$

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

$$\begin{aligned} \mathcal {O}\left( (\mu +2)^2\cdot D^{2(\mu +2)^2}\cdot \mathbf{GB}(n,D)\right) , \end{aligned}$$

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.


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

$$\begin{aligned} \mathcal {O}\left( \frac{(\mu +1)(\mu +2)}{2}\left( \mathbf{GB} (n,D) + 3D^{\frac{(\mu +1)(\mu +2)}{2}+1}{} \mathbf{GB} (n,D) +D^{\frac{(\mu +1)(\mu +2)}{2}+2}\right) \right) . \end{aligned}$$

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 super-exponentially 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 worst-case 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 Quantifier-Elimination-based 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 quantifier-elimination 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. Quantifier-elimination 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 points-based quantifier-elimination 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

$$\begin{aligned} \delta ^{\mathcal {O}(n)^{6 \ell }}, \end{aligned}$$

where \(\ell \) is the length of the canonical (i.e., coarsest) Whitney stratification of the input variety, see, for example, [38,  page 289]. For high-dimensional inputs which admit strata in all dimensions, this bound is asymptotically quite similar to those from Gröbner basis-based 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 quantifier-elimination methods infeasible in practice [3,  Remark 2.28].