next | previous | forward | backward | up | top | index | toc | Macaulay2 website
VectorFields :: isFiniteStratification

isFiniteStratification -- checks if a stratification by integral submanifolds is finite



Let strat be the output of stratifyByRank applied to a module $L$ of vector fields. When $L$ is a Lie algebra, strat contains information about the integral submanifolds of $L$; under the assumption that $L$ is a Lie algebra, this function checks whether there are a finite number of connected integral submanifolds.

The algorithm used, and perhaps even the term integral submanifold, is only valid in real or complex geometry. This routine checks that, for all $j$, each component of strat#j has dimension $<j$. It is up to the user to check that the answers obtained by Macaulay2 (e.g., in QQ[x,y,z]) would not change if the calculation was done over the real or complex numbers.

The algorithm is motivated by the results of section 4.3 of ``James Damon and Brian Pike. Solvable groups, free divisors and nonisolated matrix singularities II: Vanishing topology. Geom. Topol., 18(2):911-962, 2014'', available at or

To display progress reports, make debugLevel$>1$.

i1 : R=QQ[a,b,c];
i2 : f=a*b*(a-b)*(a-c*b)

        2 2       3     3     2 2
o2 = - a b c + a*b c + a b - a b

o2 : R
i3 : D=derlog(ideal (f))

o3 = image | a 0    0     |
           | b 0    ab-b2 |
           | 0 bc-a -ac+a |

o3 : R-module, submodule of R
i4 : S=stratifyByRank(D);

Since D has rank 0 on $a=b=0$, that is, the vector fields all vanish:

i5 : S#1

o5 = ideal (a, b)

o5 : Ideal of R

the stratification cannot be finite (every point on $a=b=0$ is its own stratum):

i6 : isFiniteStratification(S)
isFiniteStratification: Component ideal(b,a) has dim 1 but should be of dim <1 to have a finite stratification.

o6 = false

This stratification is finite:

i7 : D=derlog(ideal (a*b*c))

o7 = image | a 0 0 |
           | 0 b 0 |
           | 0 0 c |

o7 : R-module, submodule of R
i8 : isFiniteStratification(stratifyByRank(D))

o8 = true


The assumption that $L$ is a Lie algebra is not checked.

See also

Ways to use isFiniteStratification :

For the programmer

The object isFiniteStratification is a method function.