Computes ideals describing where the provided vector fields have a particular rank. For $1\leq i\leq 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 = ideal (a, b) o5 : Ideal 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 |
The object stratifyByRank is a method function.