# 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
• 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
• depth(Ideal,Ring) (missing documentation) -- computes the depth of a ring
• depth(Ring) (missing documentation) -- computes the depth of a ring
• 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
• localRing(Ring,Ideal) (missing documentation) -- Localizing polynomial rings at a prime ideal
• 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)
• 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
• 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
• substitute(ChainComplex,Ring) (missing documentation) -- Substitute a chain complex to a new ring.
• 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), see truncate -- truncation of the graded ring, ideal or module at a specified degree or set of degrees
• truncate(ZZ,Ring), see truncate -- truncation of the graded ring, ideal or module at a specified degree or set of degrees
• use(Ring) -- install ring variables and ring operations
• variety(Ring) (missing documentation) -- the variety of an intersection ring
• vars(Ring) -- row matrix of the variables
• width(Ring) (missing documentation)

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