next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Seminormalization :: Seminormalization

Seminormalization -- a package used to seminormalize rings


Seminormalization is a package which can be used to seminormalize rings or more generally check if a ring is seminormal. Roughly speaking a ring is non-normal if in the Spec, points are identified and tangent spaces killed. Seminormal rings are those where only points are identified. See the following for more discussion: MathOverflow question

Core functions To accomplish this, this we first normalize the ring via integralClosure and then glue points together via the Pullback package. There are some other functions exported which people may also find useful.

Other useful functions


Certification a gold star

Version 0.21 of this package was accepted for publication in volume 10 of The Journal of Software for Algebra and Geometry on 5 December 2019, in the article Seminormalization package for Macaulay2. That version can be obtained from the journal or from the Macaulay2 source code repository.


This documentation describes version 0.21 of Seminormalization.

Source code

The source code from which this documentation is derived is in the file Seminormalization.m2.


  • Functions and commands
  • Methods
    • "betterNormalizationMap(Ring)" -- see betterNormalizationMap -- normalizes non domains
    • "findElementMappingToTarget(RingMap,RingElement)" -- see findElementMappingToTarget -- given a ring map and an element of the target, this find an element from the source whose image is the given one
    • "flattenVarDegrees(Ring)" -- see flattenVarDegrees -- turns a multigraded ring into a singly graded ring
    • "isSeminormal(Ring)" -- see isSeminormal -- checks if a ring is seminormal
    • "ringProduct(List)" -- see ringProduct -- compute the product of a list of rings
    • "ringToAlgebraMap(RingMap)" -- see ringToAlgebraMap -- presents the target of a map of rings as an algebra over the source
    • "ringToAlgebraMap(RingMap,ZZ)" -- see ringToAlgebraMap -- presents the target of a map of rings as an algebra over the source
    • "seminormalize(Ring)" -- see seminormalize -- seminormalize a reduced ring
  • Symbols
    • Yy -- default symbol for new variables in the seminormalization method

For the programmer

The object Seminormalization is a package.