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 http://dx.doi.org/10.2140/gt.2014.18.911 or http://arxiv.org/abs/1201.1579.
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 | 3 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 = monomialIdeal (a, b) o5 : MonomialIdeal of R |
the stratification cannot be finite (every point on a=b=0 is its own stratum):
i6 : isFiniteStratification(S) isFiniteStratification: Component monomialIdeal(a,b) 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 | 3 o7 : R-module, submodule of R |
i8 : isFiniteStratification(stratifyByRank(D)) o8 = true |
The assumption that L is a Lie algebra is not checked.