This package computes Whitney stratifications of real and complex algebraic varieties using the algorithms described in [1, 2, 4]. For varieties considered over the complex numbers the output is indexed by the strata dimension. When wishing to treat the variety over the reals, the same output may be used, but the dimensions of the strata may differ (and some strata may be empty), see [2] for more details. This post processing in the real case is currently left to the user.
A method is also provided to stratify polynomial maps $f:X\to Y$ between algebraic varieties, the output is a Whitney stratification of both $X$ and $Y$, such that for each (open, connected) strata $M$ of $X$ there is an (open, connected) strata $N$ of $Y$ such that $f(M) \subset N$ and such that the restriction of $f$ to $M$ is a submersion. This in particular is sufficient to guarantee that Thom's (first) isotopy lemma holds; namely that the stratified homeomorpism type of $f^{-1}(q)$ is fixed for all $q$ in a given strata of the codomain.
Using the methods of [1] or [4] computing the Conormal variety of a variety is an important step in these algorithms, so a method for this is also provided. An alternative method based on [2] is also provided, this requires the computation of polar varieties, hence a method for this is provided as well.
Finally, based on work in [3], we use Whitney stratification to compute the characteristic cycle of a constructable function and of the associated annhilator ideal of a D-module.
References:
[1] Martin Helmer and Vidit Nanda. "Conormal Spaces and Whitney Stratifications", Foundations of Computational Mathematics, DOI: 10.1007/s10208-022-09574-8.
[2] Martin Helmer, Anton Leykin, and Vidit Nanda. "Effective Whitney Stratification of Real Algebraic Varieties". Arxiv: 2307.05427.
[3] Martin Helmer, Felix Tellander. "Spectral Decomposition of Euler-Mellin Integrals". Arxiv: 2505.12458.
[4] Martin Helmer and Rafael Mohr. A New Algorithm for Whitney Stratification of Varieties . Arxiv: 2406.1712.
This documentation describes version 2.25 of WhitneyStratifications, released July 23, 2025; note not all functions in the package are listed below.
The source code for this package can be veiwed and downloaded here: WhitneyStratifications.m2.
If you have used this package in your research, please cite it as follows:
|
The object WhitneyStratifications is a package, defined in WhitneyStratifications.m2.
The source of this document is in WhitneyStratifications.m2:1792:0.