This is WhitneyStratifications.info, produced by Macaulay2, version 1.21

WhitneyStratifications -- Computes Whitney Statifications of complex varieties.
*******************************************************************************

Description
===========

This package computes Whitney stratifications of complex algebraic varieties
using algorithms described in [1]. Homogeneous ideals will be treated as
defining a projective variety, non-homogeneous ideals will be treated as
defining affine varieties. Input ideals are assumed to define pure dimensional
varieties.

References:

[1] Martin Helmer and Vidit Nanda. "Cornormal Spaces and Whitney
Stratifications", Foundations of Computational Mathematics, DOI:
10.1007/s10208-022-09574-8.

Author
======

  * Martin Helmer (see http://martin-helmer.com/ ) <mhelmer@ncsu.edu>

Version
=======

This documentation describes version 1.2 of WhitneyStratifications.

Source code
===========

The source code from which this documentation is derived is in the file
WhitneyStratifications.m2 (see common/share/Macaulay2/WhitneyStratifications.m2
).

Exports
=======

  * Functions and commands
      * conormal -- Computes the conormal variety
      * conormalRing (missing documentation)
      * whitneyStratify -- Computes a Whitney
        stratification of the complex variety in affine or projective space.
  * Methods
      * "conormal(Ideal)" -- see conormal, -- Computes the
        conormal variety
      * "whitneyStratify(Ideal)" -- see whitneyStratify,
        -- Computes a Whitney stratification of the complex variety in affine
        or projective space.

For the programmer
==================

The object WhitneyStratifications, is a package (Macaulay2Doc).

conormal -- Computes the conormal variety
*****************************************

Synopsis
========

  * Usage:
        conormal(I)
  * Inputs:
      * I, an ideal (Macaulay2Doc), a homogeneous ideal defining a
        closed subvareity of $\PP^{n}$.
  * Outputs:
      * C, an ideal defining the conormal variety in $\PP^n \times (\PP^n)^*$.

Description
===========

For a complex projective variety $X=V(I)\subset \PP^n$ this command computes
the ideal of the conormal variety $Con(X)$ in $\PP^n \times (\PP^n)^*$.

+-----------------------------------------------------------------------------+
|i1 : S=QQ[x..z,w]                                                            |
|                                                                             |
|o1 = S                                                                       |
|                                                                             |
|o1 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i2 : I=ideal(y^2*z-x^2*w)                                                    |
|                                                                             |
|            2     2                                                          |
|o2 = ideal(y z - x w)                                                        |
|                                                                             |
|o2 : Ideal of S                                                              |
+-----------------------------------------------------------------------------+
|i3 : conormal I                                                              |
|                                                                             |
|                                                      2      2               |
|o3 = ideal (z*v  + w*v , y*v  + 2w*v , x*v  - 2w*v , v v  + v v , x*v v  -   |
|               2      3     1       3     0       3   1 2    0 3     1 2     |
|     ------------------------------------------------------------------------|
|              2      2       2             2                 2      2     2  |
|     y*v v , x v  + y v , x*v  - 2z*v v , x v  + 2y*z*v , z*v  - w*v , y*v  -|
|        0 3     2      3     1       0 3     1         3     0      1     0  |
|     ------------------------------------------------------------------------|
|                                2               2     2                      |
|     2w*v v , y*z*v  + x*w*v , y v  + 2x*w*v , y z - x w)                    |
|         1 2       0        1     0         2                                |
|                                                                             |
|o3 : Ideal of QQ[x..z, w, v ..v ]                                            |
|                           0   3                                             |
+-----------------------------------------------------------------------------+

Ways to use conormal :
======================

  * "conormal(Ideal)"
  * conormal(Ideal,Ring) (missing documentation)

For the programmer
==================

The object conormal, is a method function (Macaulay2Doc).

conormalRing
************

Ways to use conormalRing :
==========================

  * conormalRing(Ideal) (missing documentation)
  * conormalRing(Ideal,List,List) (missing documentation)

For the programmer
==================

The object conormalRing (missing documentation) is a method function (Macaulay2Doc).

whitneyStratify -- Computes a Whitney stratification of the complex variety in affine or projective space.
**********************************************************************************************************

Synopsis
========

  * Usage:
        whitneyStratify(I)
  * Inputs:
      * I, an ideal (Macaulay2Doc), an ideal defining a closed
        subvariety of $\CC^n$ or $\PP^{n}$.
  * Outputs:
      * WS, a mutable hash table (Macaulay2Doc), a hash
        table indexed by dimension, with the entry of dimension $i$ consisting
        of a list of prime ideals. The variety of each prime ideal defines a
        connected open stratum of $V(I)$ obtained by removing the varieties of
        all lower dimensional entries of the hash table.

Description
===========

For a affine or projective complex variety $X$ this command computes a Whitney
stratification WS where WS#i is a list of strata closures in dimension $i$; for
a prime ideal $P$ in WS#i the associated open (connected) strata is given by
$V(P)-Z$ where $Z$ is the union of the varieties defined by the entries of
WS#(i-1). We demonstrate the method for the affine Whitney umbrella and its
projective closure below.

+---------------------------------------------+
|i1 : R=QQ[x..z]                              |
|                                             |
|o1 = R                                       |
|                                             |
|o1 : PolynomialRing                          |
+---------------------------------------------+
|i2 : I=ideal(y^2*z-x^2)                      |
|                                             |
|            2     2                          |
|o2 = ideal(y z - x )                         |
|                                             |
|o2 : Ideal of R                              |
+---------------------------------------------+
|i3 : WS=whitneyStratify I                    |
|                                             |
|o3 = MutableHashTable{...3...}               |
|                                             |
|o3 : MutableHashTable                        |
+---------------------------------------------+
|i4 : peek WS                                 |
|                                             |
|o4 = MutableHashTable{0 => {ideal (z, y, x)}}|
|                      1 => {ideal (y, x)}    |
|                                   2     2   |
|                      2 => {ideal(y z - x )} |
+---------------------------------------------+

Now the projective version.

+--------------------------------------------------------------+
|i5 : S=QQ[x..z,w]                                             |
|                                                              |
|o5 = S                                                        |
|                                                              |
|o5 : PolynomialRing                                           |
+--------------------------------------------------------------+
|i6 : I=ideal(y^2*z-x^2*w)                                     |
|                                                              |
|            2     2                                           |
|o6 = ideal(y z - x w)                                         |
|                                                              |
|o6 : Ideal of S                                               |
+--------------------------------------------------------------+
|i7 : WS=whitneyStratify I                                     |
|                                                              |
|o7 = MutableHashTable{...3...}                                |
|                                                              |
|o7 : MutableHashTable                                         |
+--------------------------------------------------------------+
|i8 : peek WS                                                  |
|                                                              |
|o8 = MutableHashTable{0 => {ideal (z, y, x), ideal (w, y, x)}}|
|                      1 => {ideal (y, x)}                     |
|                                   2     2                    |
|                      2 => {ideal(y z - x w)}                 |
+--------------------------------------------------------------+

Another projective example.

+-----------------------------------------------------------------------------+
|i9 : R=QQ[a_0..a_4]                                                          |
|                                                                             |
|o9 = R                                                                       |
|                                                                             |
|o9 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i10 : I=ideal(a_0^2*a_4-a_1*a_2^2+a_3^3-a_3*a_0^2-a_4^2*a_3)                 |
|                                                                             |
|                 2    2      3    2        2                                 |
|o10 = ideal(- a a  - a a  + a  + a a  - a a )                                |
|               1 2    0 3    3    0 4    3 4                                 |
|                                                                             |
|o10 : Ideal of R                                                             |
+-----------------------------------------------------------------------------+
|i11 : V=whitneyStratify I                                                    |
|                                                                             |
|o11 = MutableHashTable{...4...}                                              |
|                                                                             |
|o11 : MutableHashTable                                                       |
+-----------------------------------------------------------------------------+
|i12 : peek V                                                                 |
|                                                                             |
|                                                      2     2                |
|o12 = MutableHashTable{0 => {ideal (a  - a , a , a , a  - 2a ), ideal (a ,   |
|                                     3    4   2   1   0     4           4    |
|                                                  2     2                    |
|                       1 => {ideal (a  - a , a , a  - 2a )}                  |
|                                     3    4   2   0     4                    |
|                                                  2     2                    |
|                       2 => {ideal (a  - a , a , a  - 2a )}                  |
|                                     3    4   2   0     4                    |
|                                      2    2      3    2        2            |
|                       3 => {ideal(a a  + a a  - a  - a a  + a a )}          |
|                                    1 2    0 3    3    0 4    3 4            |
|-----------------------------------------------------------------------------|
|a , a , a )}}                                                                |
| 3   2   0                                                                   |
+-----------------------------------------------------------------------------+

Note that as with the Whitney umbrella, simply taking successive singular loci
will not yield the correct stratification, in particular one would miss the two
points defined by the second entry of V#0.

+------------------------------------------------+
|i13 : J=radical (I+minors(codim I, jacobian I)) |
|                                                |
|                           2     2              |
|o13 = ideal (a  - a , a , a  - 2a )             |
|              3    4   2   0     4              |
|                                                |
|o13 : Ideal of R                                |
+------------------------------------------------+
|i14 : J2=radical (J+minors(codim J, jacobian J))|
|                                                |
|o14 = ideal (a , a , a , a )                    |
|              4   3   2   0                     |
|                                                |
|o14 : Ideal of R                                |
+------------------------------------------------+

Ways to use whitneyStratify :
=============================

  * "whitneyStratify(Ideal)"
  * whitneyStratify(Ideal,Ring,Ring) (missing documentation)

For the programmer
==================

The object whitneyStratify, is a method function (Macaulay2Doc).