Macaulay2 » Documentation
Packages » Macaulay2Doc » The Macaulay2 language » Type » Ring
next | previous | forward | backward | up | index | toc

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

- use(Ring) -- install ring variables and ring operations
- generators(Ring) -- the list of generators of a ring
- numgens(Ring) -- number of generators of a polynomial ring
- Ring _ ZZ -- get a ring variable by index

Common ways to get information about a ring:

- char(Ring) -- get the characteristic of the ring or field
- coefficientRing(Ring) -- get the coefficient ring
- dim(Ring) -- compute the Krull dimension

Common ways to use a ring:

- Ring ^ ZZ -- make a free module
- Ring ^ List -- make a free module
- vars(Ring) -- row matrix of the variables

## See also

- rings

### Menu

- EngineRing -- the class of rings handled by the engine
- ring -- get the associated ring of an object
- isRing -- whether something is a ring
- ambient(Ring) -- ambient polynomial ring
- `baseRing(Ring)` -- see baseRing -- produce the ring from which a ring was formed
- degree(Ring)
- `degreeLength(Ring)` -- see degreeLength -- the length of the degree vector
- `degreeGroup(Ring)` -- see degreeGroup -- the degree group of a ring or monoid
- degrees -- degrees of generators
- degrees(Ring) -- degrees of generators
- `degreesRing(Ring)` -- see degreesRing -- the ring or monoid of degrees
- numgens(Ring) -- number of generators of a polynomial ring
- dim(Ring) -- compute the Krull dimension
- vars(Ring) -- row matrix of the variables
- generators(Ring) -- the list of generators of a ring
- hilbertPolynomial(Ring) -- compute the Hilbert polynomial of the ring
- jacobian(Ring) -- the Jacobian matrix of the polynomials defining a quotient ring
- minimalPresentation(Ring) -- compute a minimal presentation of a quotient ring
- selectVariables -- make a subring of a polynomial ring generated by selected variables
- flattenRing -- write a ring as a (quotient of a) polynomial ring
- generators -- provide matrix or list of generators

## Types of ring:

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

## Functions and methods returning a ring:

- ambient(GaloisField) -- corresponding quotient ring
- `ambient(QuotientRing)` -- see ambient(Ring) -- ambient polynomial ring
- ambient(Ring) -- ambient polynomial ring
- coefficientRing -- get the coefficient ring
- minimalPresentation(Ring) -- compute a minimal presentation of a quotient ring
- `prune(Ring)` -- see minimalPresentation(Ring) -- compute a minimal presentation of a quotient ring
- newRing -- make a copy of a ring, with some features changed
- normalCone(Ideal)
- normalCone(Ideal,RingElement)
- ring -- get the associated ring of an object
- Ring AngleBarList (missing documentation)
- `symmetricAlgebra(Module)` -- see symmetricAlgebra -- the symmetric algebra of a module
- `Ring ** Ring` -- see tensor(Monoid,Monoid) -- tensor product of monoids
- `Ring ^** ZZ` -- see tensor(Monoid,Monoid) -- tensor product of monoids
- `tensor(Ring,Ring)` -- see tensor(Monoid,Monoid) -- tensor product of monoids
- `trim(QuotientRing)` -- see trim -- minimize generators and relations
- `trim(Ring)` -- see trim -- minimize generators and relations

## 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
- `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
- `char(Ring)` -- see char -- get the characteristic of the ring or field
- `coefficientRing(Ring)` -- see coefficientRing -- get the coefficient ring
- degree(Ring)
- `degreeGroup(Ring)` -- see degreeGroup -- the degree group of a ring or monoid
- `degreeLength(Ring)` -- see degreeLength -- the length of the degree vector
- degrees(Ring) -- degrees of generators
- `degreesMonoid(Ring)` -- see degreesRing -- the ring or monoid of degrees
- `degreesRing(Ring)` -- see degreesRing -- the ring or monoid 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)
- eulers(Ring)
- `Ext(Ideal,Ring)` -- see Ext(Module,Module) -- total Ext module
- `Ext(Module,Ring)` -- see Ext(Module,Module) -- total Ext module
- `Ext(Ring,Ideal)` -- see Ext(Module,Module) -- total Ext module
- `Ext(Ring,Module)` -- see Ext(Module,Module) -- total Ext module
- `Ext(Ring,Ring)` -- see Ext(Module,Module) -- total Ext module
- `Ext^ZZ(Matrix,Ring)` -- see Ext^ZZ(Matrix,Module) -- map between Ext modules
- `Ext^ZZ(Ring,Matrix)` -- see Ext^ZZ(Module,Matrix) -- 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
- `Ext^ZZ(Ring,Ideal)` -- see Ext^ZZ(Module,Module) -- Ext module
- `Ext^ZZ(Ring,Module)` -- see Ext^ZZ(Module,Module) -- Ext module
- `Ext^ZZ(Ring,Ring)` -- see Ext^ZZ(Module,Module) -- Ext module
- `Fano(ZZ,Ideal,Ring)` -- see Fano -- compute the ideal of a Fano scheme in the Grassmannian
- `flattenRing(Ring)` -- see flattenRing -- write a ring as a (quotient of a) polynomial ring
- `frac(Ring)` -- see frac -- construct a fraction field
- genera(Ring)
- `Ring _*` -- see generators of rings, ideals, and modules
- 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)
- `Ring _ List` -- see get a monomial by exponent vector -- make a monomial from a list of exponents
- `Ring _ ZZ` -- see get a ring variable by index -- get a ring variable by index
- `String _ Ring` -- see get a ring variable by name -- get a ring variable by name
- `GF(Ring)` -- see GF -- make a finite field
- `heft(Ring)` -- see heft -- heft vector of ring or monoid
- `hilbertFunction(List,Ring)` -- see hilbertFunction -- the Hilbert function
- `hilbertFunction(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 of homomorphisms
- `Hom(Module,Ring)` -- see Hom -- module of homomorphisms
- `Hom(Ring,Ideal)` -- see Hom -- module of homomorphisms
- `Hom(Ring,Module)` -- see Hom -- module of homomorphisms
- `Hom(Ring,Ring)` -- see Hom -- module of homomorphisms
- ideal(Ring) -- get 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
- `isFinitePrimeField(Ring)` -- see isFinitePrimeField -- whether a ring is a finite prime field
- `isHomogeneous(Ring)` -- see isHomogeneous -- whether something is homogeneous (graded)
- isNormal(Ring)
- `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
- jacobian(Ring) -- the Jacobian matrix of the polynomials defining a quotient ring
- `Number ^ Ring` -- see lift -- lift to another 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
- `Ideal ** Ring` -- see Module ** Ring -- tensor product
- Module ** Ring -- tensor product
- `Ring ** Ideal` -- see Module ** Ring -- tensor product
- `Ring ** Module` -- see Module ** Ring -- tensor product
- module(Ring) -- make or get a module
- monoid(Ring) -- make or retrieve a monoid
- `multidegree(Ring)` -- see multidegree -- multidegree
- mutableIdentity(Ring,ZZ) -- make a mutable identity matrix
- `mutableMatrix(Ring,List)` -- see mutableMatrix -- make a mutable matrix
- mutableMatrix(Ring,ZZ,ZZ) -- make a mutable matrix filled with zeroes
- numgens(Ring) -- number of generators of a polynomial ring
- `options(Ring)` -- see options(Monoid) -- get values used for optional arguments
- part(List,Ring) (missing documentation)
- part(ZZ,Ring) (missing documentation)
- `poincare(Ring)` -- see poincare -- assemble degrees of a ring, module, or ideal into a polynomial
- `precision(Ring)` -- see precision
- `Number _ Ring` -- see promote -- promote to another ring
- `RingElement _ Ring` -- see promote -- promote to another ring
- `random(List,Ring)` -- see random(ZZ,Ring) -- get a random homogeneous element from a graded ring
- random(ZZ,Ring) -- get a random homogeneous element from a graded ring
- 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 / 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
- Ring ^ List -- make a free module
- Ring ^ ZZ -- make a free module
- Ring ^~
- Ring Array -- the standard way to make a polynomial ring
- Ring List -- make a local polynomial ring
- Ring Monoid -- make a polynomial ring
- `setupLift(Function,Ring,Ring)` -- see setupLift -- set up lift from one ring to another
- `singularLocus(Ring)` -- see singularLocus -- singular locus
- `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
- `terms(Ring,RingElement)` -- see terms -- provide a list of terms of a polynomial
- toField(Ring) -- declare that a ring is a field
- `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
- `Tor_ZZ(Ring,Ideal)` -- see Tor_ZZ(Module,Module) -- compute a Tor module
- `Tor_ZZ(Ring,Module)` -- see Tor_ZZ(Module,Module) -- compute a Tor module
- `Tor_ZZ(Ring,Ring)` -- see Tor_ZZ(Module,Module) -- compute a Tor module
- truncate(List,Ring)
- truncate(ZZ,Ring)
- use(Ring) -- install ring variables and ring operations
- vars(Ring) -- row matrix of the variables
- `vector(Ring,List)` -- see vector -- make a vector
- `vector(Ring,Matrix)` -- see vector -- make a vector
- `vector(Ring,Number)` -- see vector -- make a vector
- `vector(Ring,RingElement)` -- see vector -- make a vector
- `isWeylAlgebra(Ring)` -- see Weyl algebras

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

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/Macaulay2Doc/doc_rings.m2:119:0.