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 = (localRing (R, ideal (a, b, c, d))) <-- (localRing (R, ideal (a, b, c, d))) <-- (localRing (R, ideal (a, b, c, d))) <-- (localRing (R, ideal (a, b, c, d))) 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 = (localRing (R, ideal (a, b, c))) <-- (localRing (R, ideal (a, b, c))) <-- (localRing (R, ideal (a, b, c))) 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.

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

- Functions and commands
- hilbertSamuelFunction -- Computes the Hilbert-Samuel Function of Modules over Local Rings
- liftUp -- Lifts various objects over R_P to R.
`localComplement`(missing documentation)`localMingens`(missing documentation)`localModulo`(missing documentation)`localPrune`(missing documentation)`localResolution`(missing documentation)`localsyz`(missing documentation)`setMaxIdeal`(missing documentation)

- Symbols
`maxIdeal`(missing documentation)`presentationComplex`(missing documentation)`residueMap`(missing documentation)