Macaulay2 » Documentation
Packages » AnalyzeSheafOnP1 :: analyze
next | previous | forward | backward | up | index | toc

analyze -- Compute the decomposition of a sheaf on P1

Synopsis

Description

The routine decomposes the sheaf associated to M into a direct of twists of the structure sheaf and cycle torsion part modules. It returns a list L ={freegens, anns, e, D} where:

freegens is the list of the twists;

anns is the list of annihilators;

e is the map from M' to its double dual, where M' = is the result of reducing M mod 0-dimensional torsion, if necessary;

D is a presentation of the torsion part in the appropriate version of Smith normal form.

To compute this Smith normal form, we dehomogenize with respect to a linear form that is a nonzerodivisor on M', use the routine smithNormalForm, and then rehomogenize. To find this nonzerodivisor we try first the first variable, then the second, then up to 100 random choices

The routine returns an error if the base ring is not a polynomial ring in 2 variables over a field or if after 100 tries it finds no linear form that is a nonzerodivisor on the module.

i1 : setRandomSeed 0

o1 = 0
i2 : S = ZZ/101[a,b]

o2 = S

o2 : PolynomialRing
i3 : mm = ideal vars S

o3 = ideal (a, b)

o3 : Ideal of S
i4 : M0 = mm^3*S^{3} ++ S^{-1};
i5 : M1 =S^1/ideal(a^3)++S^{-1}/(ideal b^2)++S^1/(ideal b^2) ;
i6 : M = M0++M1;
i7 : L = analyze M0;
i8 : freegens = L_0

o8 = {1, -3}

o8 : List
i9 : anns = L_1

o9 = {}

o9 : List
i10 : e = L_2

o10 = {1}  | 0  0   0   0  1 |
      {-3} | a3 a2b ab2 b3 0 |

              2
o10 : Matrix S  <-- M0
i11 : D = L_3

o11 = 0

o11 : Matrix 0 <-- 0

See also

Ways to use analyze :

For the programmer

The object analyze is a method function.