Rings

This chapter deals with domains that are additive groups (see closed under multiplication *. Such a domain, if * and + are distributive, is called a ring in &GAP;. Each division ring, field (see ), or algebra (see ) is a ring. Important examples of rings are the integers (see ) and matrix rings.

In the case of a ring-with-one, additional multiplicative structure is present, see . There is a little support in &GAP; for rings that have no additional structure: it is possible to perform some computations for small finite rings; infinite rings are handled by &GAP; in an acceptable way in the case that they are algebras.

Also, the `SONATA` package provides support for near-rings, and a related functionality for multiplicative semigroups of near-rings is available in the `Smallsemi` package.

Several functions for ring elements, such as and , are defined only relative to a ring R, which can be entered as an optional argument; if R is omitted then a default ring is formed from the ring elements given as arguments, see .

Generating Rings
<#Include Label="IsRing"> <#Include Label="Ring"> <#Include Label="DefaultRing"> <#Include Label="RingByGenerators"> <#Include Label="DefaultRingByGenerators"> <#Include Label="GeneratorsOfRing"> <#Include Label="Subring"> <#Include Label="ClosureRing"> <#Include Label="Quotient">

Ideals in Rings
<#Include Label="[1]{ideal}"> <#Include Label="TwoSidedIdeal"> <#Include Label="TwoSidedIdealNC"> <#Include Label="IsTwoSidedIdeal"> <#Include Label="TwoSidedIdealByGenerators"> <#Include Label="LeftIdealByGenerators"> <#Include Label="RightIdealByGenerators"> <#Include Label="GeneratorsOfTwoSidedIdeal"> <#Include Label="GeneratorsOfLeftIdeal"> <#Include Label="GeneratorsOfRightIdeal"> <#Include Label="LeftActingRingOfIdeal"> <#Include Label="AsLeftIdeal">

Rings With One
<#Include Label="IsRingWithOne"> <#Include Label="RingWithOne"> <#Include Label="RingWithOneByGenerators"> <#Include Label="GeneratorsOfRingWithOne"> <#Include Label="SubringWithOne">

Properties of Rings
<#Include Label="IsIntegralRing"> <#Include Label="IsUniqueFactorizationRing"> <#Include Label="IsLDistributive"> <#Include Label="IsRDistributive"> <#Include Label="IsDistributive"> <#Include Label="IsAnticommutative"> <#Include Label="IsZeroSquaredRing"> <#Include Label="IsJacobianRing">

Units and Factorizations
<#Include Label="IsUnit"> <#Include Label="Units"> <#Include Label="IsAssociated"> <#Include Label="Associates"> <#Include Label="StandardAssociate"> <#Include Label="StandardAssociateUnit"> <#Include Label="IsIrreducibleRingElement"> <#Include Label="IsPrime"> <#Include Label="Factors"> <#Include Label="PadicValuation">

Euclidean Rings
<#Include Label="IsEuclideanRing"> <#Include Label="EuclideanDegree"> <#Include Label="EuclideanQuotient"> <#Include Label="EuclideanRemainder"> <#Include Label="QuotientRemainder">

Gcd and Lcm
<#Include Label="Gcd"> <#Include Label="GcdOp"> <#Include Label="GcdRepresentation"> <#Include Label="GcdRepresentationOp"> <#Include Label="ShowGcd"> <#Include Label="Lcm"> <#Include Label="LcmOp"> <#Include Label="QuotientMod"> <#Include Label="PowerMod"> <#Include Label="InterpolatedPolynomial">

Homomorphisms of Rings

A ring homomorphism is a mapping between two rings that respects addition and multiplication.

Currently &GAP; supports ring homomorphisms between finite rings (using straightforward methods) and ring homomorphisms with additional structures, where source and range are in fact algebras and where also the linear structure is respected, see .

<#Include Label="RingGeneralMappingByImages"> <#Include Label="RingHomomorphismByImages"> <#Include Label="RingHomomorphismByImagesNC"> <#Include Label="NaturalHomomorphismByIdeal">