If R is a local or standard graded Gorenstein ring, and M is a finitely generated R-module, then, according to the theory of Auslander and Buchweitz (a good exposition is in Ding's Thesis) there are unique exact sequences $$0\to K \to M' \to M\to 0$$ and $$0\to M \to N\to M''\to 0$$ such that K and N are of finite projective dimension, M' and M'' are maximal Cohen-Macaulay, and M'' has no free summands. Thus, for example, the projective dimension of K is one less than the CoDepth of M.)
The call
coApproximation M
returns the map $M\to N$, while the call
approximation M
returns the pair (phi,psi), which define the map $M'\to M$. Here phi is the "essential MCM approximation" from the biggest summand M'0 of M' that has no free summands, and psi is the map from the free summand M'1.
The module M'0 is computed as syzygyModule(-k, syzygyModule(k,M)) for any k >= CoDepth M, and the map $M'0 \to M$ is induced by the comparison map of resolutions.
The rank t of the free summand M'1 is called the Auslander Invariant of M, and is returned by the call auslanderInvariant M.
The CoDepth of M can be provided as an option to speed computation.
If Total => false, then just the map phi is returned.
i1 : R = ZZ/101[a,b]/ideal(a^2) o1 = R o1 : QuotientRing |
i2 : k = coker vars R o2 = cokernel | a b | 1 o2 : R-module, quotient of R |
i3 : approximation k o3 = (| 0 1 |, 0) o3 : Sequence |
i4 : M = image vars R o4 = image | a b | 1 o4 : R-module, submodule of R |
i5 : approximation M o5 = ({1} | -1 0 |, 0) {1} | 0 1 | o5 : Sequence |
i6 : approximation(M, Total=>false) o6 = {1} | -1 0 | {1} | 0 1 | o6 : Matrix |
i7 : approximation(M, CoDepth => 0) o7 = ({1} | 1 0 |, 0) {1} | 0 1 | o7 : Sequence |
The object approximation is a method function with options.