Ext(M,N) -- compute the total Ext module of two modules M, N.
If M or N is an ideal or ring, it is regarded as a module in the evident way.
The computation of the total Ext module is possible for modules over the ring R of a complete intersection, according the algorithm of Shamash-Eisenbud-Avramov-Buchweitz. The result is provided as a finitely presented module over a new ring with one additional variable for each equation of R. The variables in this new ring have degree length 2; we would have liked to arrange for the degree i-- part of Ext^d(M,N) to appear as the degree {i,-d} part of E = Ext(M,N), but for technical and hopefully temporary reasons, this wasn't possible. So meanwhile, we provide a function E.adjust in the result returned by Ext which can be used to convert {i,-d} into the degree actually used. This adjusted multi-degree can be used with basis, as in the example below.
i1 : R = ZZ/101[x,y]/ideal(x^3,y^2); |
i2 : N = cokernel random (R^1, R^{-2,-2}) |
i3 : E = Ext(N,N) |
i4 : rank source basis( E.adjust {-3,-2}, E) |
i5 : rank source basis( {-3}, Ext^2(N,N) ) |
See also ScriptedFunctor and adjust.