next | previous | forward | backward | up | top | index | toc | packages | Macaulay2 website
WhitneyStratifications :: whitneyStratify

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

Synopsis

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 , a , a , a )}}
                                     3    4   2   1   0     4           4   3   2   0
                                                  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

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 :

For the programmer

The object whitneyStratify is a method function.