Any sheaf on P1 is the direct sum of line bundles-- and cyclic skyscraper sheaves represented by modules of the form k[x,y]/(lm) where l is an kirreducible homogeneous polynomial and m is a non-negative integer. The routine "analyze" computes the twists and the annihilators lm that appear in the decomposition, starting from a coherent sheaf on P1 or a graded module over a polynomial ring on 2 variables.
i1 : k = ZZ/5 o1 = k o1 : QuotientRing |
i2 : S = k[a,b] o2 = S o2 : PolynomialRing |
i3 : M = S^1/ideal(a^3)++S^{-1}/(ideal b^2)++S^1/(ideal b^2)++ S^{-1,1}
o3 = cokernel {0} | a3 0 0 |
{1} | 0 b2 0 |
{0} | 0 0 b2 |
{1} | 0 0 0 |
{-1} | 0 0 0 |
5
o3 : S-module, quotient of S
|
i4 : L = analyze M; |
i5 : twists = L_0
o5 = {1, -1}
o5 : List
|
i6 : anns = L_1
3 2 2
o6 = {-2a , b , b }
o6 : List
|
i7 : analyze sheaf M
3 2 2
o7 = {{1, -1}, {a , b , b }, {1} | 0 0 0 1 0 |, | a3 0 0 |}
{-1} | 0 0 0 0 1 | | 0 b2 0 |
| 0 0 b2 |
o7 : List
|
The script uses a linear nonzerodivisor, which would not exist over a finite field in the case where every point of P1 is the support of one of the skyscraper components.