Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 A B C D E F G H I Bib Ind
Top of Book Previous Chapter Next Chapter

4 Rings
4.1 Rings: Category and Representations
4.1-1 IsHomalgRing
4.1-2 IsPreHomalgRing
4.1-3 IsHomalgRingElement
4.1-4 IsHomalgInternalRingRep
4.2 Rings: Constructors
4.2-1 HomalgRingOfIntegers
4.2-2 HomalgFieldOfRationals
4.2-3 \/
4.3 Rings: Properties
4.3-1 ContainsAField
4.3-2 IsRationalsForHomalg
4.3-3 IsFieldForHomalg
4.3-4 IsDivisionRingForHomalg
4.3-5 IsIntegersForHomalg
4.3-6 IsResidueClassRingOfTheIntegers
4.3-7 IsBezoutRing
4.3-8 IsIntegrallyClosedDomain
4.3-9 IsUniqueFactorizationDomain
4.3-10 IsKaplanskyHermite
4.3-11 IsDedekindDomain
4.3-12 IsDiscreteValuationRing
4.3-13 IsFreePolynomialRing
4.3-14 IsWeylRing
4.3-15 IsGlobalDimensionFinite
4.3-16 IsLeftGlobalDimensionFinite
4.3-17 IsRightGlobalDimensionFinite
4.3-18 HasInvariantBasisProperty
4.3-19 HasLeftInvariantBasisProperty
4.3-20 HasRightInvariantBasisProperty
4.3-21 IsLocalRing
4.3-22 IsSemiLocalRing
4.3-23 IsIntegralDomain
4.3-24 IsHereditary
4.3-25 IsLeftHereditary
4.3-26 IsRightHereditary
4.3-27 IsHermite
4.3-28 IsLeftHermite
4.3-29 IsRightHermite
4.3-30 IsNoetherian
4.3-31 IsLeftNoetherian
4.3-32 IsRightNoetherian
4.3-33 IsArtinian
4.3-34 IsLeftArtinian
4.3-35 IsRightArtinian
4.3-36 IsOreDomain
4.3-37 IsLeftOreDomain
4.3-38 IsRightOreDomain
4.3-39 IsPrincipalIdealRing
4.3-40 IsLeftPrincipalIdealRing
4.3-41 IsRightPrincipalIdealRing
4.3-42 IsRegular
4.3-43 IsFiniteFreePresentationRing
4.3-44 IsLeftFiniteFreePresentationRing
4.3-45 IsRightFiniteFreePresentationRing
4.3-46 IsSimpleRing
4.3-47 IsSemiSimpleRing
4.3-48 BasisAlgorithmRespectsPrincipalIdeals
4.3-49 IsMinusOne
4.4 Rings: Attributes
4.4-1 Zero
4.4-2 One
4.4-3 homalgTable
4.4-4 RingElementConstructor
4.4-5 TypeOfHomalgMatrix
4.4-6 ConstructorForHomalgMatrices
4.4-7 Zero
4.4-8 One
4.4-9 MinusOne
4.4-10 IndeterminatesOfPolynomialRing
4.4-11 IndeterminateCoordinatesOfRingOfDerivations
4.4-12 IndeterminateDerivationsOfRingOfDerivations
4.4-13 IndeterminateAntiCommutingVariablesOfExteriorRing
4.4-14 IndeterminatesOfExteriorRing
4.4-15 WeightsOfIndeterminates
4.4-16 MatrixOfWeightsOfIndeterminates
4.4-17 CoefficientsRing
4.4-18 KrullDimension
4.4-19 LeftGlobalDimension
4.4-20 RightGlobalDimension
4.4-21 GlobalDimension
4.4-22 GeneralLinearRank
4.4-23 ElementaryRank
4.4-24 StableRank
4.5 Rings: Operations and Functions

### 4 Rings

#### 4.1 Rings: Category and Representations

##### 4.1-1 IsHomalgRing

`> IsHomalgRing`( R ) | ( category )

Returns: `true` or `false`

The GAP category of homalg rings.

(It is a subcategory of the GAP category `IsHomalgRingOrModule`.)

##### 4.1-2 IsPreHomalgRing

`> IsPreHomalgRing`( R ) | ( category )

Returns: `true` or `false`

The GAP category of pre homalg rings.

(It is a subcategory of the GAP category `IsHomalgRing`.)
These are rings with an incomplete `homalgTable`. They provide flexibility for developers to support a wider class of rings, as was necessary for the development of the LocalizeRingForHomalg package. They are not suited for direct usage.

##### 4.1-3 IsHomalgRingElement

`> IsHomalgRingElement`( r ) | ( category )

Returns: `true` or `false`

The GAP category of elements of homalg rings which are not GAP4 built-in.

##### 4.1-4 IsHomalgInternalRingRep

`> IsHomalgInternalRingRep`( R ) | ( representation )

Returns: `true` or `false`

The internal representation of homalg rings.

(It is a representation of the GAP category `IsHomalgRing`.)

#### 4.2 Rings: Constructors

This section describes how to construct rings for use with homalg, 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 homalg 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 ℤ / p^n for p prime and n positive.

If a ring R is supported in homalg 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 (--> `\/` (4.2-3)). This is immediate for commutative noetherian rings.

##### 4.2-1 HomalgRingOfIntegers

`> HomalgRingOfIntegers`( ) | ( function )

Returns: a homalg ring

`> HomalgRingOfIntegers`( c ) | ( function )

Returns: a homalg ring

The no-argument form returns the ring of integers ℤ for homalg.

The one-argument form accepts an integer c and returns the ring ℤ / c for homalg:

- c= 0 defaults to ℤ

- if c is a prime power then the package GaussForHomalg is loaded (if it fails to load an error is issued)

- otherwise, the residue class ring constructor `/` (--> `\/` (4.2-3)) is invoked

The operation `SetRingProperties` is automatically invoked to set the ring properties.

If for some reason you don't want to use the GaussForHomalg package (maybe because you didn't install it), then use

`HomalgRingOfIntegers`( ) `/` c;

but note that the computations will then be considerably slower.

##### 4.2-2 HomalgFieldOfRationals

`> HomalgFieldOfRationals`( ) | ( function )

Returns: a homalg ring

The package GaussForHomalg is loaded and the field of rationals ℚ is returned. If GaussForHomalg fails to load an error is issued.

The operation `SetRingProperties` is automatically invoked to set the ring properties.

##### 4.2-3 \/

`> \/`( R, ring_rel ) | ( operation )

Returns: a homalg ring

This is the homalg constructor for residue class rings R / I, where R is a homalg ring and I=ring_rel is the ideal of relations generated by ring_rel. ring_rel might be:

- a set of left resp. right relations on one generator

- a list of ring elements of R

- a ring element of R

For noncommutative rings: In the first case the left resp. right set of relations should generate the ideal of relations I as left resp. right ideal generators, and their involutions should generate I as right resp. left ideal generators. If ring_rel is not a set of relations, a left set of relations is constructed.

The operation `SetRingProperties` is automatically invoked to set the ring properties.

    gap> ZZ := HomalgRingOfIntegers( );
    <A homalg internal ring>
    gap> Display( ZZ );
    Z
    gap> Z256 := ZZ / 2^8;
    <A homalg residue class ring>
    gap> Display( Z256 );
    Z/( 256 )
    gap> Z2 := Z256 / 6;
    <A homalg residue class ring>
    gap> Display( Z2 );
    Z/( 2 )

#### 4.3 Rings: Properties

The following properties are declared for homalg rings. Note that (apart from so-called true and immediate methods (--> E.1)) 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.

##### 4.3-1 ContainsAField

`> ContainsAField`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-2 IsRationalsForHomalg

`> IsRationalsForHomalg`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-3 IsFieldForHomalg

`> IsFieldForHomalg`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-4 IsDivisionRingForHomalg

`> IsDivisionRingForHomalg`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-5 IsIntegersForHomalg

`> IsIntegersForHomalg`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-6 IsResidueClassRingOfTheIntegers

`> IsResidueClassRingOfTheIntegers`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-7 IsBezoutRing

`> IsBezoutRing`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-8 IsIntegrallyClosedDomain

`> IsIntegrallyClosedDomain`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-9 IsUniqueFactorizationDomain

`> IsUniqueFactorizationDomain`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-10 IsKaplanskyHermite

`> IsKaplanskyHermite`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-11 IsDedekindDomain

`> IsDedekindDomain`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-12 IsDiscreteValuationRing

`> IsDiscreteValuationRing`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-13 IsFreePolynomialRing

`> IsFreePolynomialRing`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-14 IsWeylRing

`> IsWeylRing`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-15 IsGlobalDimensionFinite

`> IsGlobalDimensionFinite`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-16 IsLeftGlobalDimensionFinite

`> IsLeftGlobalDimensionFinite`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-17 IsRightGlobalDimensionFinite

`> IsRightGlobalDimensionFinite`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-18 HasInvariantBasisProperty

`> HasInvariantBasisProperty`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-19 HasLeftInvariantBasisProperty

`> HasLeftInvariantBasisProperty`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-20 HasRightInvariantBasisProperty

`> HasRightInvariantBasisProperty`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-21 IsLocalRing

`> IsLocalRing`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-22 IsSemiLocalRing

`> IsSemiLocalRing`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-23 IsIntegralDomain

`> IsIntegralDomain`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-24 IsHereditary

`> IsHereditary`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-25 IsLeftHereditary

`> IsLeftHereditary`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-26 IsRightHereditary

`> IsRightHereditary`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-27 IsHermite

`> IsHermite`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-28 IsLeftHermite

`> IsLeftHermite`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-29 IsRightHermite

`> IsRightHermite`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-30 IsNoetherian

`> IsNoetherian`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-31 IsLeftNoetherian

`> IsLeftNoetherian`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-32 IsRightNoetherian

`> IsRightNoetherian`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-33 IsArtinian

`> IsArtinian`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-34 IsLeftArtinian

`> IsLeftArtinian`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-35 IsRightArtinian

`> IsRightArtinian`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-36 IsOreDomain

`> IsOreDomain`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-37 IsLeftOreDomain

`> IsLeftOreDomain`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-38 IsRightOreDomain

`> IsRightOreDomain`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-39 IsPrincipalIdealRing

`> IsPrincipalIdealRing`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-40 IsLeftPrincipalIdealRing

`> IsLeftPrincipalIdealRing`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-41 IsRightPrincipalIdealRing

`> IsRightPrincipalIdealRing`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-42 IsRegular

`> IsRegular`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-43 IsFiniteFreePresentationRing

`> IsFiniteFreePresentationRing`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-44 IsLeftFiniteFreePresentationRing

`> IsLeftFiniteFreePresentationRing`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-45 IsRightFiniteFreePresentationRing

`> IsRightFiniteFreePresentationRing`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-46 IsSimpleRing

`> IsSimpleRing`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-47 IsSemiSimpleRing

`> IsSemiSimpleRing`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-48 BasisAlgorithmRespectsPrincipalIdeals

`> BasisAlgorithmRespectsPrincipalIdeals`( R ) | ( property )

Returns: `true` or `false`

R is a ring for homalg.

##### 4.3-49 IsMinusOne

`> IsMinusOne`( r ) | ( property )

Returns: `true` or `false`

r is a homalg ring element.

#### 4.4 Rings: Attributes

##### 4.4-1 Zero

`> Zero`( r ) | ( attribute )

Returns: the zero of the homalg ring element r

##### 4.4-2 One

`> One`( r ) | ( attribute )

Returns: the one of the homalg ring element r

##### 4.4-3 homalgTable

`> homalgTable`( R ) | ( attribute )

Returns: a homalg table

The homalg table of R is a ring dictionary, i.e. the translator between homalg and the (specific implementation of the) ring.

Every homalg ring has a homalg table.

##### 4.4-4 RingElementConstructor

`> RingElementConstructor`( R ) | ( attribute )

Returns: a function

The constructor of ring elements in the homalg ring R.

##### 4.4-5 TypeOfHomalgMatrix

`> TypeOfHomalgMatrix`( R ) | ( attribute )

Returns: a type

The GAP4-type of homalg matrices over the homalg ring R.

##### 4.4-6 ConstructorForHomalgMatrices

`> ConstructorForHomalgMatrices`( R ) | ( attribute )

Returns: a type

The constructor for homalg matrices over the homalg ring R.

##### 4.4-7 Zero

`> Zero`( R ) | ( attribute )

Returns: the zero of the homalg ring R

##### 4.4-8 One

`> One`( R ) | ( attribute )

Returns: the one of the homalg ring R

##### 4.4-9 MinusOne

`> MinusOne`( R ) | ( attribute )

Returns: the minus one of the homalg ring R

##### 4.4-10 IndeterminatesOfPolynomialRing

`> IndeterminatesOfPolynomialRing`( R ) | ( attribute )

Returns: a list of homalg ring elements

The list of indeterminates of the homalg polynomial ring R.

##### 4.4-11 IndeterminateCoordinatesOfRingOfDerivations

`> IndeterminateCoordinatesOfRingOfDerivations`( R ) | ( attribute )

Returns: a list of homalg ring elements

The list of indeterminate coordinates of the homalg Weyl ring R.

##### 4.4-12 IndeterminateDerivationsOfRingOfDerivations

`> IndeterminateDerivationsOfRingOfDerivations`( R ) | ( attribute )

Returns: a list of homalg ring elements

The list of indeterminate derivations of the homalg Weyl ring R.

##### 4.4-13 IndeterminateAntiCommutingVariablesOfExteriorRing

`> IndeterminateAntiCommutingVariablesOfExteriorRing`( R ) | ( attribute )

Returns: a list of homalg ring elements

The list of anti-commuting indeterminates of the homalg exterior ring R.

##### 4.4-14 IndeterminatesOfExteriorRing

`> IndeterminatesOfExteriorRing`( R ) | ( attribute )

Returns: a list of homalg ring elements

The list of all indeterminates (commuting and anti-commuting) of the homalg exterior ring R.

##### 4.4-15 WeightsOfIndeterminates

`> WeightsOfIndeterminates`( R ) | ( attribute )

Returns: a list or listlist of integers

The list of degrees of the indeterminates of the homalg ring R.

##### 4.4-16 MatrixOfWeightsOfIndeterminates

`> MatrixOfWeightsOfIndeterminates`( R ) | ( attribute )

Returns: a homalg matrix

A homalg matrix where the list (or listlist) of degrees of the indeterminates of the homalg ring R is stored.

##### 4.4-17 CoefficientsRing

`> CoefficientsRing`( R ) | ( attribute )

Returns: a homalg ring

The ring of coefficients of the homalg ring R.

##### 4.4-18 KrullDimension

`> KrullDimension`( R ) | ( attribute )

Returns: a non-negative integer

The Krull dimension of the commutative homalg ring R.

##### 4.4-19 LeftGlobalDimension

`> LeftGlobalDimension`( R ) | ( attribute )

Returns: a non-negative integer

The left global dimension of the homalg ring R.

##### 4.4-20 RightGlobalDimension

`> RightGlobalDimension`( R ) | ( attribute )

Returns: a non-negative integer

The right global dimension of the homalg ring R.

##### 4.4-21 GlobalDimension

`> GlobalDimension`( R ) | ( attribute )

Returns: a non-negative integer

The global dimension of the homalg ring R. The global dimension is defined, only if the left and right global dimensions coincide.

##### 4.4-22 GeneralLinearRank

`> GeneralLinearRank`( R ) | ( attribute )

Returns: a non-negative integer

The general linear rank of the homalg ring R ([MR01], 11.1.14).

##### 4.4-23 ElementaryRank

`> ElementaryRank`( R ) | ( attribute )

Returns: a non-negative integer

The elementary rank of the homalg ring R ([MR01], 11.3.10).

##### 4.4-24 StableRank

`> StableRank`( R ) | ( attribute )

Returns: a non-negative integer

The stable rank of the homalg ring R ([MR01], 11.3.4).

#### 4.5 Rings: Operations and Functions

Top of Book Previous Chapter Next Chapter
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 A B C D E F G H I Bib Ind

generated by GAPDoc2HTML