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="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="IsZero:rings"> <#Include Label="IsNonZeroRing"> <#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="IsLocalizedWeylRing"> <#Include Label="IsGlobalDimensionFinite"> <#Include Label="IsLeftGlobalDimensionFinite"> <#Include Label="IsRightGlobalDimensionFinite"> <#Include Label="HasInvariantBasisProperty"> <#Include Label="IsLocal"> <#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="IsCohenMacaulay"> <#Include Label="IsGorenstein"> <#Include Label="IsKoszul"> <#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="IsSuperCommutative"> <#Include Label="BasisAlgorithmRespectsPrincipalIdeals"> <#Include Label="AreUnitsCentral"> <#Include Label="IsMinusOne"> <#Include Label="IsMonic:ringelement"> <#Include Label="IsMonicUptoUnit:ringelement"> <#Include Label="IsLeftRegular:ringelement"> <#Include Label="IsRightRegular:ringelement"> <#Include Label="IsRegular:ringelement">
Rings: Attributes <#Include Label="Inverse: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="ProductOfIndeterminates"> <#Include Label="RationalParameters"> <#Include Label="IndeterminatesOfPolynomialRing"> <#Include Label="RelativeIndeterminatesOfPolynomialRing"> <#Include Label="IndeterminateCoordinatesOfRingOfDerivations"> <#Include Label="RelativeIndeterminateCoordinatesOfRingOfDerivations"> <#Include Label="IndeterminateDerivationsOfRingOfDerivations"> <#Include Label="RelativeIndeterminateDerivationsOfRingOfDerivations"> <#Include Label="IndeterminateAntiCommutingVariablesOfExteriorRing"> <#Include Label="RelativeIndeterminateAntiCommutingVariablesOfExteriorRing"> <#Include Label="IndeterminatesOfExteriorRing"> <#Include Label="CoefficientsRing"> <#Include Label="KrullDimension"> <#Include Label="LeftGlobalDimension"> <#Include Label="RightGlobalDimension"> <#Include Label="GlobalDimension"> <#Include Label="GeneralLinearRank"> <#Include Label="ElementaryRank"> <#Include Label="StableRank"> <#Include Label="AssociatedGradedRing">
Rings: Operations and Functions