Computes ideals describing where the provided vector fields have a particular rank. For 1≤i≤n, where n is the dimension of the space, (stratifyByRank(M))#i will be an ideal defining the set of points p such that the generators of M evaluated at p span a subspace of dimension less than i. If the vector fields generate a Lie algebra, then this gives some information about their ’orbits’ or their maximal integral submanifolds.
For details on the parts of the calculation, make debugLevel positive.
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); |
D has rank 0 on a=b=0, that is, the vector fields all vanish there:
i5 : S#1 o5 = monomialIdeal (a, b) o5 : MonomialIdeal of R |
D has rank <3 precisely on the hypersurface f=0, and hence rank 3 off the hypersurface:
i6 : S#3 2 2 3 3 2 2 o6 = ideal(a b c - a*b c - a b + a b ) o6 : Ideal of R |
This submodule of D has rank <3 everywhere since it only has 2 generators:
i7 : Df=derlogH(f) o7 = image | ab a2 | | b2 -3ab+4b2 | | -4bc+4a 4ac-12bc+8a | 3 o7 : R-module, submodule of R |
i8 : isSubset(Df,D) o8 = true |
i9 : S=stratifyByRank(Df); |
i10 : S#3 o10 = ideal 0 o10 : Ideal of R |