Goto Chapter: Top 1 2 3 4 5 6 A B C D E F Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

3 Rings
 3.1 Rings: Category and Representations
 3.2 Rings: Constructors
 3.3 Rings: Properties

  3.3-1 IsZero

  3.3-2 IsNonZeroRing

  3.3-3 ContainsAField

  3.3-4 IsRationalsForHomalg

  3.3-5 IsFieldForHomalg

  3.3-6 IsDivisionRingForHomalg

  3.3-7 IsIntegersForHomalg

  3.3-8 IsResidueClassRingOfTheIntegers

  3.3-9 IsBezoutRing

  3.3-10 IsIntegrallyClosedDomain

  3.3-11 IsUniqueFactorizationDomain

  3.3-12 IsKaplanskyHermite

  3.3-13 IsDedekindDomain

  3.3-14 IsDiscreteValuationRing

  3.3-15 IsFreePolynomialRing

  3.3-16 IsWeylRing

  3.3-17 IsLocalizedWeylRing

  3.3-18 IsGlobalDimensionFinite

  3.3-19 IsLeftGlobalDimensionFinite

  3.3-20 IsRightGlobalDimensionFinite

  3.3-21 HasInvariantBasisProperty

  3.3-22 IsLocal

  3.3-23 IsSemiLocalRing

  3.3-24 IsIntegralDomain

  3.3-25 IsHereditary

  3.3-26 IsLeftHereditary

  3.3-27 IsRightHereditary

  3.3-28 IsHermite

  3.3-29 IsLeftHermite

  3.3-30 IsRightHermite

  3.3-31 IsNoetherian

  3.3-32 IsLeftNoetherian

  3.3-33 IsRightNoetherian

  3.3-34 IsCohenMacaulay

  3.3-35 IsGorenstein

  3.3-36 IsKoszul

  3.3-37 IsArtinian

  3.3-38 IsLeftArtinian

  3.3-39 IsRightArtinian

  3.3-40 IsOreDomain

  3.3-41 IsLeftOreDomain

  3.3-42 IsRightOreDomain

  3.3-43 IsPrincipalIdealRing

  3.3-44 IsLeftPrincipalIdealRing

  3.3-45 IsRightPrincipalIdealRing

  3.3-46 IsRegular

  3.3-47 IsFiniteFreePresentationRing

  3.3-48 IsLeftFiniteFreePresentationRing

  3.3-49 IsRightFiniteFreePresentationRing

  3.3-50 IsSimpleRing

  3.3-51 IsSemiSimpleRing

  3.3-52 IsSuperCommutative

  3.3-53 BasisAlgorithmRespectsPrincipalIdeals

  3.3-54 AreUnitsCentral

  3.3-55 IsMinusOne

  3.3-56 IsMonic

  3.3-57 IsMonicUptoUnit

  3.3-58 IsLeftRegular

  3.3-59 IsRightRegular

  3.3-60 IsRegular
 3.4 Rings: Attributes
 3.5 Rings: Operations and Functions

3 Rings

3.1 Rings: Category and Representations

3.1-1 IsHomalgRing
‣ IsHomalgRing( R )( category )

Returns: true or false

The GAP category of homalg rings.

(It is a subcategory of the GAP categories IsStructureObject and IsHomalgRingOrModule.)

DeclareCategory( "IsHomalgRing",
        IsStructureObject and
        IsRingWithOne and
        IsHomalgRingOrModule );

3.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.

DeclareCategory( "IsPreHomalgRing",
        IsHomalgRing );

3.1-3 IsHomalgRingElement
‣ IsHomalgRingElement( r )( category )

Returns: true or false

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

DeclareCategory( "IsHomalgRingElement",
        IsExtAElement and
        IsExtLElement and
        IsExtRElement and
        IsAdditiveElementWithInverse and
        IsMultiplicativeElementWithInverse and
        IsAssociativeElement and
        IsAdditivelyCommutativeElement and
        ## all the above guarantees IsHomalgRingElement => IsRingElement (in GAP4)
        IsAttributeStoringRep );

3.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.)

3.2 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 ℤ / 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 (--> \/ (3.2-2)). This is immediate for commutative noetherian rings.

3.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:

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.

3.2-2 \/
‣ \/( 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:

For noncommutative rings: In the first case the set of ring relations should generate the ideal of relations I as left resp. right ideal, and their involutions should generate I as right resp. left ideal. 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( );
Z
gap> Display( zz );
<An internal ring>
gap> Z256 := zz / 2^8;
Z/( 256 )
gap> Display( Z256 );
<A residue class ring>
gap> Z2 := Z256 / 6;
Z/( 256, 6 )
gap> BasisOfRows( MatrixOfRelations( Z2 ) );
<An unevaluated non-zero 1 x 1 matrix over an internal ring>
gap> Z2;
Z/( 2 )
gap> Display( Z2 );
<A residue class ring>

3.3 Rings: Properties

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

3.3-1 IsZero
‣ IsZero( R )( property )

Returns: true or false

Check if the ring R is the zero ring, i.e., if One(R)=Zero(R).

3.3-2 IsNonZeroRing
‣ IsNonZeroRing( R )( property )

Returns: true or false

Check if the ring R is not the zero ring, i.e., if One(R) is different from Zero(R).

3.3-3 ContainsAField
‣ ContainsAField( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-4 IsRationalsForHomalg
‣ IsRationalsForHomalg( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-5 IsFieldForHomalg
‣ IsFieldForHomalg( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-6 IsDivisionRingForHomalg
‣ IsDivisionRingForHomalg( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-7 IsIntegersForHomalg
‣ IsIntegersForHomalg( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-8 IsResidueClassRingOfTheIntegers
‣ IsResidueClassRingOfTheIntegers( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-9 IsBezoutRing
‣ IsBezoutRing( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-10 IsIntegrallyClosedDomain
‣ IsIntegrallyClosedDomain( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-11 IsUniqueFactorizationDomain
‣ IsUniqueFactorizationDomain( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-12 IsKaplanskyHermite
‣ IsKaplanskyHermite( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-13 IsDedekindDomain
‣ IsDedekindDomain( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-14 IsDiscreteValuationRing
‣ IsDiscreteValuationRing( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-15 IsFreePolynomialRing
‣ IsFreePolynomialRing( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-16 IsWeylRing
‣ IsWeylRing( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-17 IsLocalizedWeylRing
‣ IsLocalizedWeylRing( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-18 IsGlobalDimensionFinite
‣ IsGlobalDimensionFinite( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-19 IsLeftGlobalDimensionFinite
‣ IsLeftGlobalDimensionFinite( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-20 IsRightGlobalDimensionFinite
‣ IsRightGlobalDimensionFinite( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-21 HasInvariantBasisProperty
‣ HasInvariantBasisProperty( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-22 IsLocal
‣ IsLocal( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-23 IsSemiLocalRing
‣ IsSemiLocalRing( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-24 IsIntegralDomain
‣ IsIntegralDomain( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-25 IsHereditary
‣ IsHereditary( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-26 IsLeftHereditary
‣ IsLeftHereditary( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-27 IsRightHereditary
‣ IsRightHereditary( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-28 IsHermite
‣ IsHermite( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-29 IsLeftHermite
‣ IsLeftHermite( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-30 IsRightHermite
‣ IsRightHermite( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-31 IsNoetherian
‣ IsNoetherian( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-32 IsLeftNoetherian
‣ IsLeftNoetherian( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-33 IsRightNoetherian
‣ IsRightNoetherian( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-34 IsCohenMacaulay
‣ IsCohenMacaulay( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-35 IsGorenstein
‣ IsGorenstein( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-36 IsKoszul
‣ IsKoszul( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-37 IsArtinian
‣ IsArtinian( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-38 IsLeftArtinian
‣ IsLeftArtinian( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-39 IsRightArtinian
‣ IsRightArtinian( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-40 IsOreDomain
‣ IsOreDomain( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-41 IsLeftOreDomain
‣ IsLeftOreDomain( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-42 IsRightOreDomain
‣ IsRightOreDomain( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-43 IsPrincipalIdealRing
‣ IsPrincipalIdealRing( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-44 IsLeftPrincipalIdealRing
‣ IsLeftPrincipalIdealRing( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-45 IsRightPrincipalIdealRing
‣ IsRightPrincipalIdealRing( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-46 IsRegular
‣ IsRegular( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-47 IsFiniteFreePresentationRing
‣ IsFiniteFreePresentationRing( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-48 IsLeftFiniteFreePresentationRing
‣ IsLeftFiniteFreePresentationRing( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-49 IsRightFiniteFreePresentationRing
‣ IsRightFiniteFreePresentationRing( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-50 IsSimpleRing
‣ IsSimpleRing( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-51 IsSemiSimpleRing
‣ IsSemiSimpleRing( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-52 IsSuperCommutative
‣ IsSuperCommutative( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-53 BasisAlgorithmRespectsPrincipalIdeals
‣ BasisAlgorithmRespectsPrincipalIdeals( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-54 AreUnitsCentral
‣ AreUnitsCentral( R )( property )

Returns: true or false

R is a ring for homalg.

3.3-55 IsMinusOne
‣ IsMinusOne( r )( property )

Returns: true or false

Check if the ring element r is the additive inverse of one.

3.3-56 IsMonic
‣ IsMonic( r )( property )

Returns: true or false

Check if the homalg ring element r is monic.

3.3-57 IsMonicUptoUnit
‣ IsMonicUptoUnit( r )( property )

Returns: true or false

Check if leading coefficient of the homalg ring element r is a unit.

3.3-58 IsLeftRegular
‣ IsLeftRegular( r )( property )

Returns: true or false

Check if the homalg ring element r is left regular.

3.3-59 IsRightRegular
‣ IsRightRegular( r )( property )

Returns: true or false

Check if the homalg ring element r is right regular.

3.3-60 IsRegular
‣ IsRegular( r )( property )

Returns: true or false

Check if the homalg ring element r is regular, i.e. left and right regular.

3.4 Rings: Attributes

3.4-1 Inverse
‣ Inverse( r )( attribute )

Returns: a homalg ring element or fail

The inverse of the homalg ring element r.

gap> zz := HomalgRingOfIntegers( );;
gap> R := zz / 2^8;
Z/( 256 )
gap> r := (1/3*One(R)+1/5)+3/7;
|[ 157 ]|
gap> 1 / r; ## = r^-1;
|[ 181 ]|
gap> s := (1/3*One(R)+2/5)+3/7;
|[ 106 ]|
gap> s^(-1);
fail

3.4-2 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.

3.4-3 RingElementConstructor
‣ RingElementConstructor( R )( attribute )

Returns: a function

The constructor of ring elements in the homalg ring R.

3.4-4 TypeOfHomalgMatrix
‣ TypeOfHomalgMatrix( R )( attribute )

Returns: a type

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

3.4-5 ConstructorForHomalgMatrices
‣ ConstructorForHomalgMatrices( R )( attribute )

Returns: a type

The constructor for homalg matrices over the homalg ring R.

3.4-6 Zero
‣ Zero( R )( attribute )

Returns: a homalg ring element

The zero of the homalg ring R.

3.4-7 One
‣ One( R )( attribute )

Returns: a homalg ring element

The one of the homalg ring R.

3.4-8 MinusOne
‣ MinusOne( R )( attribute )

Returns: a homalg ring element

The minus one of the homalg ring R.

3.4-9 ProductOfIndeterminates
‣ ProductOfIndeterminates( R )( attribute )

Returns: a homalg ring element

The product of indeterminates of the homalg ring R.

3.4-10 RationalParameters
‣ RationalParameters( R )( attribute )

Returns: a list of homalg ring elements

The list of rational parameters of the homalg ring R.

3.4-11 IndeterminatesOfPolynomialRing
‣ IndeterminatesOfPolynomialRing( R )( attribute )

Returns: a list of homalg ring elements

The list of indeterminates of the homalg polynomial ring R.

3.4-12 RelativeIndeterminatesOfPolynomialRing
‣ RelativeIndeterminatesOfPolynomialRing( R )( attribute )

Returns: a list of homalg ring elements

The list of relative indeterminates of the homalg polynomial ring R.

3.4-13 IndeterminateCoordinatesOfRingOfDerivations
‣ IndeterminateCoordinatesOfRingOfDerivations( R )( attribute )

Returns: a list of homalg ring elements

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

3.4-14 RelativeIndeterminateCoordinatesOfRingOfDerivations
‣ RelativeIndeterminateCoordinatesOfRingOfDerivations( R )( attribute )

Returns: a list of homalg ring elements

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

3.4-15 IndeterminateDerivationsOfRingOfDerivations
‣ IndeterminateDerivationsOfRingOfDerivations( R )( attribute )

Returns: a list of homalg ring elements

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

3.4-16 RelativeIndeterminateDerivationsOfRingOfDerivations
‣ RelativeIndeterminateDerivationsOfRingOfDerivations( R )( attribute )

Returns: a list of homalg ring elements

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

3.4-17 IndeterminateAntiCommutingVariablesOfExteriorRing
‣ IndeterminateAntiCommutingVariablesOfExteriorRing( R )( attribute )

Returns: a list of homalg ring elements

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

3.4-18 RelativeIndeterminateAntiCommutingVariablesOfExteriorRing
‣ RelativeIndeterminateAntiCommutingVariablesOfExteriorRing( R )( attribute )

Returns: a list of homalg ring elements

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

3.4-19 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.

3.4-20 CoefficientsRing
‣ CoefficientsRing( R )( attribute )

Returns: a homalg ring

The ring of coefficients of the homalg ring R.

3.4-21 KrullDimension
‣ KrullDimension( R )( attribute )

Returns: a non-negative integer

The Krull dimension of the commutative homalg ring R.

3.4-22 LeftGlobalDimension
‣ LeftGlobalDimension( R )( attribute )

Returns: a non-negative integer

The left global dimension of the homalg ring R.

3.4-23 RightGlobalDimension
‣ RightGlobalDimension( R )( attribute )

Returns: a non-negative integer

The right global dimension of the homalg ring R.

3.4-24 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.

3.4-25 GeneralLinearRank
‣ GeneralLinearRank( R )( attribute )

Returns: a non-negative integer

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

3.4-26 ElementaryRank
‣ ElementaryRank( R )( attribute )

Returns: a non-negative integer

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

3.4-27 StableRank
‣ StableRank( R )( attribute )

Returns: a non-negative integer

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

3.4-28 AssociatedGradedRing
‣ AssociatedGradedRing( R )( attribute )

Returns: a homalg ring

The graded ring associated to the filtered ring R.

3.5 Rings: Operations and Functions

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 A B C D E F Bib Ind

generated by GAPDoc2HTML