# Ring -- the class of all rings

## Description

Common ways to make a ring:
• Ring / Ideal -- make a quotient ring
• Ring Array -- the standard way to make a polynomial ring
• GF -- make a finite field
Common functions for accessing the variables or elements in a ring:
Common ways to get information about a ring:
Common ways to use a ring:

## Types of ring :

• EngineRing -- the class of rings handled by the engine

## Methods that use a ring :

• "Ideal * Ring" -- see * -- a binary operator, usually used for multiplication
• "MonomialIdeal * Ring" -- see * -- a binary operator, usually used for multiplication
• "Ring * Ideal" -- see * -- a binary operator, usually used for multiplication
• "Ring * MonomialIdeal" -- see * -- a binary operator, usually used for multiplication
• "Ring * RingElement" -- see * -- a binary operator, usually used for multiplication
• "Ring * Vector" -- see * -- a binary operator, usually used for multiplication
• "Ideal == Ring" -- see == -- equality
• "MonomialIdeal == Ring" -- see == -- equality
• "Ring == Ideal" -- see == -- equality
• "Ring == MonomialIdeal" -- see == -- equality
• "Ring == ZZ" -- see == -- equality
• "ZZ == Ring" -- see == -- equality
• AffineVariety ** Ring -- a binary operator, usually used for tensor product or Cartesian product
• "associatedPrimes(Ring)" -- see associatedPrimes -- find associated primes
• "baseRing(Ring)" -- see baseRing -- produce the ring from which a ring was formed
• "basis(InfiniteNumber,InfiniteNumber,Ring)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(InfiniteNumber,List,Ring)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(InfiniteNumber,ZZ,Ring)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(List,InfiniteNumber,Ring)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(List,List,Ring)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(List,Ring)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(List,ZZ,Ring)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(Ring)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(ZZ,InfiniteNumber,Ring)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(ZZ,List,Ring)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(ZZ,Ring)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(ZZ,ZZ,Ring)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• ChainComplex ** Ring -- a binary operator, usually used for tensor product or Cartesian product
• chainComplex(Ring) -- make an empty chain complex over a ring
• "char(Ring)" -- see char -- computes the characteristic of the ring or field
• "coefficientRing(Ring)" -- see coefficientRing -- get the coefficient ring
• "conductor(Ring)" -- see conductor -- the conductor of a finite ring map
• degree(Ring)
• "degreeLength(Ring)" -- see degreeLength -- the number of degrees
• degrees(Ring) -- degrees of generators
• degreesRing(Ring) -- the ring of degrees
• "diagonalMatrix(Ring,List)" -- see diagonalMatrix(Ring,ZZ,ZZ,List) -- make a diagonal matrix from a list
• diagonalMatrix(Ring,ZZ,ZZ,List) -- make a diagonal matrix from a list
• dim(Ring) -- compute the Krull dimension
• euler(Ring) -- Euler characteristic
• eulers(Ring) -- list the sectional Euler characteristics
• "Ext(Ideal,Ring)" -- see Ext(Module,Module) -- total Ext module
• "Ext(Module,Ring)" -- see Ext(Module,Module) -- total Ext module
• "Ext^ZZ(Matrix,Ring)" -- see Ext^ZZ(Matrix,Module) -- map between Ext modules
• "Ext^ZZ(Ideal,Ring)" -- see Ext^ZZ(Module,Module) -- Ext module
• "Ext^ZZ(Module,Ring)" -- see Ext^ZZ(Module,Module) -- Ext module
• Fano(ZZ,Ideal,Ring) -- Fano scheme
• "flattenRing(Ring)" -- see flattenRing -- write a ring as a (quotient of a) polynomial ring
• "frac(Ring)" -- see frac -- construct a fraction field
• genera(Ring) -- list of the successive linear sectional arithmetic genera
• generators(Ring) -- the list of generators of a ring
• "genericMatrix(Ring,RingElement,ZZ,ZZ)" -- see genericMatrix -- make a generic matrix of variables
• "genericMatrix(Ring,ZZ,ZZ)" -- see genericMatrix -- make a generic matrix of variables
• "genericSkewMatrix(Ring,RingElement,ZZ)" -- see genericSkewMatrix -- make a generic skew symmetric matrix of variables
• "genericSkewMatrix(Ring,ZZ)" -- see genericSkewMatrix -- make a generic skew symmetric matrix of variables
• "genericSymmetricMatrix(Ring,RingElement,ZZ)" -- see genericSymmetricMatrix -- make a generic symmetric matrix
• "genericSymmetricMatrix(Ring,ZZ)" -- see genericSymmetricMatrix -- make a generic symmetric matrix
• genus(Ring) -- arithmetic genus
• "GF(Ring)" -- see GF -- make a finite field
• "heft(Ring)" -- see heft -- heft vector of ring, module, graded module, or resolution
• "hilbertFunction(List,Ring)" -- see hilbertFunction -- the Hilbert function
• "hilbertFunction(ZZ,Ring)" -- see hilbertFunction -- the Hilbert function
• hilbertPolynomial(Ring) -- compute the Hilbert polynomial of the ring
• "Hom(Ideal,Ring)" -- see Hom(Module,Module) -- module of homomorphisms
• "Hom(Module,Ring)" -- see Hom(Module,Module) -- module of homomorphisms
• "Hom(Ring,Ideal)" -- see Hom(Module,Module) -- module of homomorphisms
• "Hom(Ring,Module)" -- see Hom(Module,Module) -- module of homomorphisms
• "icFracP(Ring)" -- see icFracP -- compute the integral closure in prime characteristic
• "icFractions(Ring)" -- see icFractions -- fractions integral over an affine domain
• "icMap(Ring)" -- see icMap -- natural map from an affine domain into its integral closure
• ideal(Ring) -- returns the defining ideal
• IndexedVariable _ Ring -- get a ring variable by name
• "isAffineRing(Ring)" -- see isAffineRing -- whether something is an affine ring
• "isCommutative(Ring)" -- see isCommutative -- whether a ring is commutative
• "isField(Ring)" -- see isField -- whether something is a field
• "isHomogeneous(Ring)" -- see isHomogeneous -- whether something is homogeneous (graded)
• "isNormal(Ring)" -- see isNormal -- determine if a reduced ring is normal
• "isQuotientOf(Ring,QuotientRing)" -- see isQuotientOf(Ring,Ring) -- whether one ring is a quotient of another
• isQuotientOf(Ring,Ring) -- whether one ring is a quotient of another
• isQuotientOf(Type,Ring) -- whether one ring is a quotient of a ring of a given type
• "isQuotientRing(Ring)" -- see isQuotientRing -- whether something is a quotient ring
• "isRing(Ring)" -- see isRing -- whether something is a ring
• "isSkewCommutative(Ring)" -- see isSkewCommutative -- whether a ring has skew commuting variables
• "isStandardGradedPolynomialRing(Ring)" -- see isStandardGradedPolynomialRing -- Checks whether a ring is a polynomial ring over a field with variables of degree 1
• isWeylAlgebra(Ring) (missing documentation)
• jacobian(Ring) -- the Jacobian matrix of the polynomials defining a quotient ring
• "Constant ^ Ring" -- see lift -- lift to another ring
• "Number ^ Ring" -- see lift -- lift to another ring
• "RingElement ^ Ring" -- see lift -- lift to another ring
• "makeS2(Ring)" -- see makeS2 -- compute the S2ification of a reduced ring
• map(Ring,Matrix) -- make a ring map
• map(Ring,Ring) -- make a ring map, using the names of the variables
• map(Ring,Ring,List) -- make a ring map
• map(Ring,Ring,Matrix) -- make a ring map
• "map(Ring,Ring,RingMap)" -- see map(Ring,Ring,Matrix) -- make a ring map
• Matrix ** Ring -- tensor product
• "Ring ** Matrix" -- see Matrix ** Ring -- tensor product
• matrix(Ring,List) -- create a matrix from a doubly nested list of ring elements or matrices
• Module ** Ring -- tensor product
• "Ring ** Module" -- see Module ** Ring -- tensor product
• module(Ring) -- make or get a module
• "multidegree(Ring)" -- see multidegree -- multidegree
• mutableIdentity(Ring,ZZ) -- make a mutable identity matrix
• mutableMatrix(Ring,ZZ,ZZ) -- make a mutable matrix filled with zeroes
• numgens(Ring) -- number of generators of a polynomial ring
• options(Ring) -- get values used for optional arguments
• poincare(Ring) -- assemble degrees of an ring into a polynomial
• "precision(Ring)" -- see precision
• "primaryDecomposition(Ring)" -- see primaryDecomposition(Module) -- irredundant primary decomposition of a module
• Proj(Ring) -- make a projective variety
• "Number _ Ring" -- see promote -- promote to another ring
• "RingElement _ Ring" -- see promote -- promote to another ring
• "random(List,Ring)" -- see random(Type) -- random element of a type
• "random(ZZ,Ring)" -- see random(Type) -- random element of a type
• Ring / Ideal -- make a quotient ring
• "Ring / List" -- see Ring / Ideal -- make a quotient ring
• "Ring / Module" -- see Ring / Ideal -- make a quotient ring
• "Ring / MonomialIdeal" -- see Ring / Ideal -- make a quotient ring
• "Ring / RingElement" -- see Ring / Ideal -- make a quotient ring
• "Ring / Sequence" -- see Ring / Ideal -- make a quotient ring
• "Ring / ZZ" -- see Ring / Ideal -- make a quotient ring
• Ring ^ BettiTally (missing documentation)
• Ring ^ List -- make a free module
• Ring ^ ZZ -- make a free module
• Ring _ List -- make a monomial from a list of exponents
• Ring _ String -- get a ring variable by name
• Ring _ ZZ -- get a ring variable by index
• Ring _* (missing documentation)
• Ring Array -- the standard way to make a polynomial ring
• Ring List -- make a local polynomial ring
• Ring OrderedMonoid -- make a polynomial ring
• "Ring ~" -- see sheaf(Ring) -- make a coherent sheaf of rings
• sheaf(Ring) -- make a coherent sheaf of rings
• sheaf(Variety,Ring) -- make a coherent sheaf of rings
• "singularLocus(Ring)" -- see singularLocus -- singular locus
• Spec(Ring) -- make an affine variety
• "substitute(Ideal,Ring)" -- see substitute -- substituting values for variables
• "substitute(Matrix,Ring)" -- see substitute -- substituting values for variables
• "substitute(Module,Ring)" -- see substitute -- substituting values for variables
• "substitute(Number,Ring)" -- see substitute -- substituting values for variables
• "substitute(RingElement,Ring)" -- see substitute -- substituting values for variables
• "substitute(Vector,Ring)" -- see substitute -- substituting values for variables
• Symbol _ Ring -- get a ring variable by name
• "symmetricAlgebra(Nothing,Ring,Matrix)" -- see symmetricAlgebra -- the symmetric algebra of a module
• "symmetricAlgebra(Ring,Nothing,Matrix)" -- see symmetricAlgebra -- the symmetric algebra of a module
• "symmetricAlgebra(Ring,Ring,Matrix)" -- see symmetricAlgebra -- the symmetric algebra of a module
• tensor(Ring,RingMap,Matrix) -- tensor product via a ring map
• "tensor(Ring,RingMap,Module)" -- see tensor(Ring,RingMap,Matrix) -- tensor product via a ring map
• "terms(Ring,RingElement)" -- see terms -- provide a list of terms of a polynomial
• toField(Ring) -- declare that a ring is a field
• Tor_ZZ(Matrix,Ring) (missing documentation)
• "Tor_ZZ(Ideal,Ring)" -- see Tor_ZZ(Module,Module) -- compute a Tor module
• "Tor_ZZ(Module,Ring)" -- see Tor_ZZ(Module,Module) -- compute a Tor module
• truncate(List,Ring)
• truncate(ZZ,Ring)
• use(Ring) -- install ring variables and ring operations
• variety(Ring) -- the variety previously associated to a given ring
• vars(Ring) -- row matrix of the variables

## Fixed objects of class Ring :

• QQ -- the class of all rational numbers
• ZZ -- the class of all integers

## For the programmer

The object Ring is a type, with ancestor classes Type < MutableHashTable < HashTable < Thing.