Macaulay2 » Documentation
Packages » WhitneyStratifications :: WhitneyStratifications
next | previous | forward | backward | up | index | toc

WhitneyStratifications -- Computes Whitney Statifications of real and complex varieties and of algebraic maps between them.

Description

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.

Author

Version

This documentation describes version 2.25 of WhitneyStratifications, released July 23, 2025; note not all functions in the package are listed below.

Source code

The source code for this package can be veiwed and downloaded here: WhitneyStratifications.m2.

Citation

If you have used this package in your research, please cite it as follows:

@misc{WhitneyStratificationsSource,
  title = {{WhitneyStratifications: Compute Whitney Stratifications. Version~2.23}},
  author = {Martin Helmer},
  howpublished = {A \emph{Macaulay2} package available at
    \url{https://github.com/Macaulay2/M2/tree/stable/M2/Macaulay2/packages}}
}

Exports

  • Functions and commands
    • conormal -- Computes the conormal variety
    • conormalRing (missing documentation)
    • eulerObsMatrix -- Computes a matrix containing the strata-wise values of the local Euler obstruction function.
    • fiberContAssocPrimes (missing documentation)
    • mapStratify -- Computes a Whitney stratification of a polynomial map $f:X\to Y$ between real or complex varieties.
    • mapStratifyPol -- Computes a Whitney stratification of a polynomial map $f:X\to Y$ between real or complex varieties.
    • minCoarsenWS -- Coarsens a given Whitney stratification to the unique minimal one.
    • multCC -- Computes a list containing the coefficient associated to each term in the characteristic cycle of the constructable function corresponding to the input.
    • nonProperSet (missing documentation)
    • polarSequence -- Computes the list of multiplcities of a subvareity in the polar varities of another vareity.
    • polarVars -- Computes the list of all polar varieties of a variety
    • whitneyStratify -- Computes a Whitney stratification of the real and complex varieties using conormal methods.
    • whitneyStratifyPol -- Computes a Whitney stratification of the real and complex varieties.
  • Methods
    • conormal(Ideal) -- see conormal -- Computes the conormal variety
    • conormal(Ideal,Ring) (missing documentation)
    • conormalRing(Ideal) (missing documentation)
    • conormalRing(Ideal,List,List) (missing documentation)
    • conormalRing(Ring) (missing documentation)
    • eulerObsMatrix(MutableHashTable) -- see eulerObsMatrix -- Computes a matrix containing the strata-wise values of the local Euler obstruction function.
    • mapStratify(List,Ideal,Ideal) -- see mapStratify -- Computes a Whitney stratification of a polynomial map $f:X\to Y$ between real or complex varieties.
    • mapStratifyPol(List,Ideal,Ideal) -- see mapStratifyPol -- Computes a Whitney stratification of a polynomial map $f:X\to Y$ between real or complex varieties.
    • minCoarsenWS(MutableHashTable) -- see minCoarsenWS -- Coarsens a given Whitney stratification to the unique minimal one.
    • multCC(MutableHashTable) -- see multCC -- Computes a list containing the coefficient associated to each term in the characteristic cycle of the constructable function corresponding to the input.
    • nonProperSet(List,Ideal,Ideal) (missing documentation)
    • polarSequence(Ideal,Ideal) -- see polarSequence -- Computes the list of multiplcities of a subvareity in the polar varities of another vareity.
    • polarSequence(Ideal,Ideal,List) -- see polarSequence -- Computes the list of multiplcities of a subvareity in the polar varities of another vareity.
    • polarVars(Ideal) -- see polarVars -- Computes the list of all polar varieties of a variety
    • whitneyStratify(Ideal) -- see whitneyStratify -- Computes a Whitney stratification of the real and complex varieties using conormal methods.
    • whitneyStratify(Ideal,ZZ) (missing documentation)
    • whitneyStratify(Ideal,ZZ,ZZ) (missing documentation)
    • whitneyStratifyPol(Ideal) -- see whitneyStratifyPol -- Computes a Whitney stratification of the real and complex varieties.
  • Symbols
    • AssocPrimes (missing documentation)
    • coordProj (missing documentation)
    • isProper (missing documentation)
    • StratsToFind (missing documentation)

For the programmer

The object WhitneyStratifications is a package, defined in WhitneyStratifications.m2.


The source of this document is in WhitneyStratifications.m2:1792:0.