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

multCC -- Computes a list containing the coefficient associated to each term in the characteristic cycle of the constructable function corresponding to the input.

Description

Below we find the multiplicities of the elements of the formal sum making up the characteristic cycle of the constructable function associated to the input. When $V$ corresponds to a hypersurface this also gives the characteristic cycle arising from the D-module annihilating the associated rational function. For further background see Remark 4.2 and Example 4.5 of reference [3] (Martin Helmer, Felix Tellander. "Spectral Decomposition of Euler-Mellin Integrals". Arxiv: 2505.12458.) Note that $Eu_{V_j}$ is defined to have value 0 outside $V_j$, meaning if some strata closure $V_l$ is not contained in $V_j$ the corresponding matrix row and column will be zero.

This multiplicity also directly gives the value of the the Euler characteristic of the complex link of any stratum to the variety corresponding to our Whitney stratification, as we will see on our example below.

Note, this algorithm implementation contains steps which are probabilistic. To be confident of the answer it is advised to confirm by running twice.

We begin by computing a Whitney stratification to input into the multCC function. We will use the Whitney cusp as our example variety, which we denote $X$.

i1 : R=QQ[x..z]

o1 = R

o1 : PolynomialRing
i2 : Y=ideal(y^2+x^3-x^2*z^2)

              2 2    3    2
o2 = ideal(- x z  + x  + y )

o2 : Ideal of R
i3 : V=whitneyStratify Y

o3 = MutableHashTable{...3...}

o3 : MutableHashTable
i4 : peek V

o4 = MutableHashTable{0 => {ideal (z, y, x)}      }
                      1 => {ideal (y, x)}
                                   2 2    3    2
                      2 => {ideal(x z  - x  - y )}

Now we are ready to compute the Euler obstructions of strata.

i5 : CCmults=multCC V

                                                                             
o5 = {| 1 -1 1 |, {{1, {0, ideal (z, y, x)}}, {1, {1, ideal (y, x)}}, {1, {2,
      | 0 -1 2 |
      | 0 0  1 |
     ------------------------------------------------------------------------
            2 2    3    2
     ideal(x z  - x  - y )}}}}

o5 : List
i6 : Eu=first CCmults

o6 = | 1 -1 1 |
     | 0 -1 2 |
     | 0 0  1 |

              3       3
o6 : Matrix ZZ  <-- ZZ
i7 : CCmultiplcityList=last CCmults

                                                                        2 2  
o7 = {{1, {0, ideal (z, y, x)}}, {1, {1, ideal (y, x)}}, {1, {2, ideal(x z  -
     ------------------------------------------------------------------------
      3    2
     x  - y )}}}

o7 : List

Now we can extract the multiplicity with which the conormal variety of each strata will appear in the characteristic cycle.

i8 : m=for s in CCmultiplcityList list first s

o8 = {1, 1, 1}

o8 : List

Using this we can immediately obtain the the value of the the Euler characteristic, $\chi(CL_{Y}(S))$ of the complex link, $CL_{Y}(S)$ of any stratum $S$ of $Y$ to the variety Y (for any variety $Y$). See (7) and Remark 4.2 of reference [3] (Martin Helmer, Felix Tellander. "Spectral Decomposition of Euler-Mellin Integrals". Arxiv: 2505.12458.) for a definition.

Note that the block of code below can be used identically on any other example as well.

i9 : d=dim Y

o9 = 2
i10 : dStrats=for s in CCmultiplcityList list first last s

o10 = {0, 1, 2}

o10 : List
i11 : EulerCharComplexLink=for i from 0 to #CCmultiplcityList-1 list (1-(-1)^(d-dStrats_i)*m_i)

o11 = {0, 2, 0}

o11 : List

There are also several different options to preform the underlying polar variety calculations. The default algorithm uses the M2 saturate command to compute the polar variteies, this option is Algorithm=>. The other options are: Algorithm=>"msolve" and Algorithm=>"M2F4". The Algorithm=>"msolve" only works in versions 1.25.06 and above of Macualay2. The Algorithm=>"M2F4" is mostly beneficial when working over a finite field. Note that over a finite field we can still sometimes obtain useful information about the stratification, but the coefficients appearing in the resulting polynomials may (or likely will) be incorrect.

Ways to use multCC:

  • multCC(MutableHashTable)

For the programmer

The object multCC is a method function with options.


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