# stratifyByRank -- compute ideals describing where the vector fields have a particular rank

## Synopsis

• Usage:
H=stratifyByRank(M)
H=stratifyByRank(m)
• Inputs:
• M, , of vector fields
• m, , of vector fields
• Outputs:
• H, an instance of the type StratificationByRank, a type of HashTable with integer keys: i maps to the radical ideal defining the set where the vector fields have rank less than i.

## Description

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