# 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 P3:

 ```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

• Functions and commands
• Symbols
• maxIdeal (missing documentation)
• presentationComplex (missing documentation)
• residueMap (missing documentation)