Rings
Rings: Category and Representations
<#Include Label="IsHomalgRing">

<#Include Label="IsPreHomalgRing">

<#Include Label="IsHomalgRingElement">

<#Include Label="IsHomalgInternalRingRep">

Rings: Constructors

This section describes how to construct rings for use with &MatricesForHomalg;, which exploit the &GAP4;-built-in abilities to perform the necessary ring operations. By this we also mean necessary matrix operations over such rings. For the purposes of &MatricesForHomalg; only the ring of integers is properly supported in &GAP4;. The &GAP4; extension packages &Gauss; and &GaussForHomalg; extend these built-in abilities to operations with sparse matrices over the ring &ZZ; / p^n for p prime and n positive.

If a ring R is supported in &MatricesForHomalg; any of its residue class rings R/I is supported as well, provided the ideal I of relations admits a finite set of generators as a left resp. right ideal (&see; ). This is immediate for commutative noetherian rings.

<#Include Label="HomalgRingOfIntegers"> <#Include Label="HomalgFieldOfRationals"> <#Include Label="ResidueClassRingConstructor">

Rings: Properties

The following properties are declared for &homalg; rings. Note that (apart from so-called true and immediate methods (&see; )) there are no methods installed for ring properties. This means that if the value of the ring property Prop is not set for a &homalg; ring R, then

Prop
( R );

will cause an error. One can use the usual &GAP4; mechanism to check if the value of the property is set or not

HasProp
( R );

If you discover that a specific property Prop is missing for a certain &homalg; ring R you can it add using the usual &GAP4; mechanism

SetProp
( R, true );

or

SetProp
( R, false );

Be very cautious with setting "missing" properties to &homalg; objects: If the value you set is mathematically wrong &homalg; will probably draw wrong conclusions and might return wrong results.

<#Include Label="ContainsAField"> <#Include Label="IsRationalsForHomalg"> <#Include Label="IsFieldForHomalg"> <#Include Label="IsDivisionRingForHomalg"> <#Include Label="IsIntegersForHomalg"> <#Include Label="IsResidueClassRingOfTheIntegers"> <#Include Label="IsBezoutRing"> <#Include Label="IsIntegrallyClosedDomain"> <#Include Label="IsUniqueFactorizationDomain"> <#Include Label="IsKaplanskyHermite"> <#Include Label="IsDedekindDomain"> <#Include Label="IsDiscreteValuationRing"> <#Include Label="IsFreePolynomialRing"> <#Include Label="IsWeylRing"> <#Include Label="IsGlobalDimensionFinite"> <#Include Label="IsLeftGlobalDimensionFinite"> <#Include Label="IsRightGlobalDimensionFinite"> <#Include Label="HasInvariantBasisProperty"> <#Include Label="HasLeftInvariantBasisProperty"> <#Include Label="HasRightInvariantBasisProperty"> <#Include Label="IsLocalRing"> <#Include Label="IsSemiLocalRing"> <#Include Label="IsIntegralDomain"> <#Include Label="IsHereditary"> <#Include Label="IsLeftHereditary"> <#Include Label="IsRightHereditary"> <#Include Label="IsHermite"> <#Include Label="IsLeftHermite"> <#Include Label="IsRightHermite"> <#Include Label="IsNoetherian"> <#Include Label="IsLeftNoetherian"> <#Include Label="IsRightNoetherian"> <#Include Label="IsArtinian"> <#Include Label="IsLeftArtinian"> <#Include Label="IsRightArtinian"> <#Include Label="IsOreDomain"> <#Include Label="IsLeftOreDomain"> <#Include Label="IsRightOreDomain"> <#Include Label="IsPrincipalIdealRing"> <#Include Label="IsLeftPrincipalIdealRing"> <#Include Label="IsRightPrincipalIdealRing"> <#Include Label="IsRegular"> <#Include Label="IsFiniteFreePresentationRing"> <#Include Label="IsLeftFiniteFreePresentationRing"> <#Include Label="IsRightFiniteFreePresentationRing"> <#Include Label="IsSimpleRing"> <#Include Label="IsSemiSimpleRing"> <#Include Label="BasisAlgorithmRespectsPrincipalIdeals"> <#Include Label="IsMinusOne">

Rings: Attributes
<#Include Label="Zero:ring_element"> <#Include Label="One:ring_element">

<#Include Label="homalgTable"> <#Include Label="RingElementConstructor"> <#Include Label="TypeOfHomalgMatrix"> <#Include Label="ConstructorForHomalgMatrices"> <#Include Label="Zero:ring"> <#Include Label="One:ring"> <#Include Label="MinusOne"> <#Include Label="RationalParameters"> <#Include Label="IndeterminatesOfPolynomialRing"> <#Include Label="IndeterminateCoordinatesOfRingOfDerivations"> <#Include Label="IndeterminateDerivationsOfRingOfDerivations"> <#Include Label="IndeterminateAntiCommutingVariablesOfExteriorRing"> <#Include Label="IndeterminatesOfExteriorRing"> <#Include Label="WeightsOfIndeterminates"> <#Include Label="MatrixOfWeightsOfIndeterminates"> <#Include Label="CoefficientsRing"> <#Include Label="KrullDimension"> <#Include Label="LeftGlobalDimension"> <#Include Label="RightGlobalDimension"> <#Include Label="GlobalDimension"> <#Include Label="GeneralLinearRank"> <#Include Label="ElementaryRank"> <#Include Label="StableRank">

Rings: Operations and Functions