# LocalRings -- Localizing polynomial rings at a prime ideal

## Description

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)

## Caveat

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.

• PruneComplex -- Pruning chain complexes over polynomial and local rings

## Version

This documentation describes version 2.0 of LocalRings.

## Source code

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/.

## Exports

• Types
• LocalRing (missing documentation)
• Functions and commands
• Methods
• "hilbertSamuelFunction(Ideal,Module,ZZ)" -- see hilbertSamuelFunction -- Computes the Hilbert-Samuel Function of Modules over Local Rings
• "hilbertSamuelFunction(Ideal,Module,ZZ,ZZ)" -- see hilbertSamuelFunction -- Computes the Hilbert-Samuel Function of Modules over Local Rings
• "hilbertSamuelFunction(Module,ZZ)" -- see hilbertSamuelFunction -- Computes the Hilbert-Samuel Function of Modules over Local Rings
• "hilbertSamuelFunction(Module,ZZ,ZZ)" -- see hilbertSamuelFunction -- Computes the Hilbert-Samuel Function of Modules over Local Rings
• "liftUp(Ideal,Ring)" -- see liftUp -- Lifts various objects over R_P to R.
• "liftUp(Matrix,Ring)" -- see liftUp -- Lifts various objects over R_P to R.
• "liftUp(Module,Ring)" -- see liftUp -- Lifts various objects over R_P to R.
• "liftUp(MutableMatrix,Ring)" -- see liftUp -- Lifts various objects over R_P to R.
• "liftUp(Thing)" -- see liftUp -- Lifts various objects over R_P to R.
• "localComplement(Matrix)" -- see localComplement -- find the splitting of the target of a map
• "localMingens(Matrix)" -- see localMingens -- finds a minimal set of generators
• "localModulo(Matrix,Matrix)" -- see localModulo -- find the pre-image (pullback) of image of a map over a local ring
• "localPrune(Module)" -- see localPrune -- find a minimal presentation
• "localResolution(Ideal)" -- see localResolution -- find a resolution over a local ring
• "localResolution(Module)" -- see localResolution -- find a resolution over a local ring
• "localRing(Ring,Ideal)"
• "localsyz(Matrix)" -- see localsyz -- find syzygies
• "setMaxIdeal(Ideal)" -- see setMaxIdeal -- set the maximal ideal for local ring methods
• Symbols
• maxIdeal (missing documentation)
• MaximalIdeal (missing documentation)
• presentationComplex (missing documentation)
• residueMap (missing documentation)

## For the programmer

The object LocalRings is .