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.