The basic definition of localization of polynomial rings at prime ideals along with various elementary operations are defined in m2/localring.m2, which in turn depends on a raw local ring type defined in e/localrings.hpp. This package extends the following methods to such local rings: syz, resolution, length, trim, mingens, minimalPresentation, symbol//, inducedMap, symbol:, saturate, annihilate.
Note: Methods isSubset and symbol== are fixed in m2/modules2.m2 and reduce is fixed in m2/matrix.m2. Many other methods that only rely on the methods above, such as map, modulo, subquotient, kernel, cokernel, image, homology, Hom, Ext, Tor, etc. work for local rings automatically.
If you need specific methods that do not work, please inform Mahrud Sayrafi.
i1 : R = ZZ/32003[a..d]; |
Rational quartic curve in P^3:
i2 : I = monomialCurveIdeal(R,{1,3,4}) 3 2 2 2 3 2 o2 = ideal (b*c - a*d, c - b*d , a*c - b d, b - a c) o2 : Ideal of R |
i3 : C = res I 1 4 4 1 o3 = R <-- R <-- R <-- R <-- 0 0 1 2 3 4 o3 : ChainComplex |
i4 : M = ideal"a,b,c,d"; "maximal ideal at the origin"; o4 : Ideal of R |
i6 : P = ideal"a,b,c"; "prime ideal"; o6 : Ideal of R |
i8 : RM = localRing(R, M); |
i9 : D = C ** RM; |
i10 : E = pruneComplex D 1 4 4 1 o10 = RM <-- RM <-- RM <-- RM 0 1 2 3 o10 : ChainComplex |
That is to say, the rational quartic curve is not locally Cohen-Macaulay at the origin Therefore the curve is not Cohen-Macaulay
i11 : RP = localRing(R, P); |
i12 : D' = C ** RP; |
i13 : E' = pruneComplex D' 1 2 1 o13 = RP <-- RP <-- RP 0 1 2 o13 : ChainComplex |
However, the curve is Cohen-Macaulay at the prime ideal P (and in fact any other prime ideal)
Currently limited to localization at prime ideals rather than any multiplicatively closed set. Quotients of local rings are not implemented yet. Moreover, certain functions (such as symbol%, radical, minimalPrimes, leadingCoefficient) are ambiguous or not yet defined.
This documentation describes version 2.0 of LocalRings.
The source code from which this documentation is derived is in the file LocalRings.m2. The auxiliary files accompanying it are in the directory LocalRings/.
The object LocalRings is a package.