This package contains a variety of functions that calculate or work with brackets, including bracket, commutator, derivedSeries, and lowerCentralSeries. Each function has two variants: those that work on only the provided vector fields, and those that work on a module of vector fields. The former type accept a Matrix as the parameter, while the latter type accept a Module as the parameter.
The documentation for each function explains what is calculated, and how.
Here is an example to illustrate the difference.
i1 : R=QQ[x,y]; |
i2 : D=gens derlog(ideal (x*y))
o2 = | x 0 |
| 0 y |
2 2
o2 : Matrix R <--- R
|
i3 : bracket(D,D)
o3 = 0
2 4
o3 : Matrix R <--- R
|
i4 : commutator(D)
o4 = 0
2 1
o4 : Matrix R <--- R
|
The generating vector fields of D commute but not all pairs of elements from the module D are commutative:
i5 : co1=commutator(D|x*D|y*D)
o5 = | 0 x2 0 0 0 0 0 xy -x2y x2y 0 0 0 0 -xy2 |
| 0 0 0 xy 0 x2y 0 0 0 -xy2 0 y2 0 xy2 0 |
2 15
o5 : Matrix R <--- R
|
i6 : commutator(D|x*D|y*D|x^2*D|x*y*D|y^2*D)
o6 = | 0 x2 0 0 0 0 0 xy -x2y x2y 0 0 0 0 -xy2 2x3 0 x4 0 2x3y 0 0 0 0 0 -x3y 0 0 x2y x2y 0 x3y x2y2
| 0 0 0 xy 0 x2y 0 0 0 -xy2 0 y2 0 xy2 0 0 0 0 -x3y 0 0 2x2y 0 2x3y 0 2x2y2 -x2y2 2x4y 0 0 0 -x2y2 0
----------------------------------------------------------------------------------------------------------------------------
x2y2 -x4y x4y 0 0 0 0 -x2y2 0 0 0 -x3y2 0 2xy2 -x2y2 2x2y2 0 2xy3 -2x3y2 2x3y2 -x2y3 2x2y3 0 0 0 0
0 0 -2x3y2 xy2 xy2 x2y2 x2y2 xy3 0 x3y2 x3y2 x2y3 0 0 0 -xy3 0 0 0 -2x2y3 0 -xy4 0 2y3 0 2xy3
----------------------------------------------------------------------------------------------------------------------------
-xy3 0 0 0 -x2y3 0 -2xy4 |
0 y4 0 2x2y3 0 xy4 0 |
2 66
o6 : Matrix R <--- R
|
In this case only the first-order terms are necessary to achieve the results calculated by the Module versions of the functions:
i7 : bracket(image D,image D)
o7 = image | 0 0 0 0 x2 0 0 0 0 0 xy 0 x2 0 0 0 0 0 xy 0 |
| 0 0 0 0 0 xy 0 0 0 0 0 y2 0 xy 0 0 0 0 0 y2 |
2
o7 : R-module, submodule of R
|
i8 : commutator(image D)
o8 = image | 0 x2 0 0 0 0 0 xy 0 |
| 0 0 xy 0 0 0 0 0 y2 |
2
o8 : R-module, submodule of R
|
i9 : bracket(image D,image D)==image co1 o9 = true |
i10 : commutator(image D)==image co1 o10 = true |