GAP (homalg) - Chapter 4: Morphisms

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

[MathJax off]

4 Morphisms
4.1 Morphisms: Categories and Representations
4.1-1 IsHomalgMorphism
4.1-2 IsHomalgStaticMorphism
4.1-3 IsHomalgEndomorphism
4.1-4 IsMorphismOfFinitelyGeneratedObjectsRep
4.1-5 IsStaticMorphismOfFinitelyGeneratedObjectsRep
4.2 Morphisms: Constructors
4.3 Morphisms: Properties
4.3-1 IsMorphism
4.3-2 IsGeneralizedMorphismWithFullDomain
4.3-3 IsGeneralizedEpimorphism
4.3-4 IsGeneralizedMonomorphism
4.3-5 IsGeneralizedIsomorphism
4.3-6 IsOne
4.3-7 IsIdempotent
4.3-8 IsMonomorphism
4.3-9 IsEpimorphism
4.3-10 IsSplitMonomorphism
4.3-11 IsSplitEpimorphism
4.3-12 IsIsomorphism
4.3-13 IsAutomorphism
4.4 Morphisms: Attributes
4.4-1 Source
4.4-2 Range
4.4-3 CokernelEpi
4.4-4 CokernelNaturalGeneralizedIsomorphism
4.4-5 KernelSubobject
4.4-6 KernelEmb
4.4-7 ImageSubobject
4.4-8 ImageObjectEmb
4.4-9 ImageObjectEpi
4.4-10 MorphismAid
4.4-11 InverseOfGeneralizedMorphismWithFullDomain
4.4-12 DegreeOfMorphism
4.5 Morphisms: Operations and Functions
4.5-1 ByASmallerPresentation

### 4 Morphisms

#### 4.1 Morphisms: Categories and Representations

##### 4.1-1 IsHomalgMorphism

`‣ IsHomalgMorphism`( phi ) | ( category )

Returns: `true` or `false`

This is the super GAP-category which will include the GAP-categories `IsHomalgStaticMorphism` (4.1-2) and `IsHomalgChainMorphism` (7.1-1). We need this GAP-category to be able to build complexes with *objects* being objects of homalg categories or again complexes. We need this GAP-category to be able to build chain morphisms with *morphisms* being morphisms of homalg categories or again chain morphisms.
CAUTION: Never let homalg morphisms (which are not endomorphisms) be multiplicative elements!!

    DeclareCategory( "IsHomalgMorphism",
            IsHomalgStaticObjectOrMorphism and
            IsAdditiveElementWithInverse );

##### 4.1-2 IsHomalgStaticMorphism

`‣ IsHomalgStaticMorphism`( phi ) | ( category )

Returns: `true` or `false`

This is the super GAP-category which will include the GAP-categories `IsHomalgMap`, etc.
CAUTION: Never let homalg morphisms (which are not endomorphisms) be multiplicative elements!!

    DeclareCategory( "IsHomalgStaticMorphism",
            IsHomalgMorphism );

##### 4.1-3 IsHomalgEndomorphism

`‣ IsHomalgEndomorphism`( phi ) | ( category )

Returns: `true` or `false`

This is the super GAP-category which will include the GAP-categories `IsHomalgSelfMap`, `IsHomalgChainEndomorphism` (7.1-2), etc. be multiplicative elements!!

    DeclareCategory( "IsHomalgEndomorphism",
            IsHomalgMorphism and
            IsMultiplicativeElementWithInverse );

##### 4.1-4 IsMorphismOfFinitelyGeneratedObjectsRep

`‣ IsMorphismOfFinitelyGeneratedObjectsRep`( phi ) | ( representation )

Returns: `true` or `false`

The GAP representation of morphisms of finitley generated homalg objects.

(It is a representation of the GAP category `IsHomalgMorphism` (4.1-1).)

    DeclareRepresentation( "IsMorphismOfFinitelyGeneratedObjectsRep",
            IsHomalgMorphism,
            [ ] );

##### 4.1-5 IsStaticMorphismOfFinitelyGeneratedObjectsRep

`‣ IsStaticMorphismOfFinitelyGeneratedObjectsRep`( phi ) | ( representation )

Returns: `true` or `false`

The GAP representation of static morphisms of finitley generated homalg static objects.

(It is a representation of the GAP category `IsHomalgStaticMorphism` (4.1-2), which is a subrepresentation of the GAP representation `IsMorphismOfFinitelyGeneratedObjectsRep` (4.1-4).)

    DeclareRepresentation( "IsStaticMorphismOfFinitelyGeneratedObjectsRep",
            IsHomalgStaticMorphism and
            IsMorphismOfFinitelyGeneratedObjectsRep,
            [ ] );

#### 4.2 Morphisms: Constructors

#### 4.3 Morphisms: Properties

##### 4.3-1 IsMorphism

`‣ IsMorphism`( phi ) | ( property )

Returns: `true` or `false`

`IsMorphism`=`true` means one of the following:

- The property method `IsMorphism`(phi) was explicitly invoked by the user and it returned `true`, where prior to the invocation `HasIsMorphism`(phi) was `false`. The method is meant to check the integrity of the data structure at the time of it invocation. What this precisely means depends on the specific homalg-based package.

- The user has explicitly `SetIsMorphism`(phi, `true`).

- The morphism phi is output of a categorical procedure where `IsMorphism` has become `true` for all morphisms in the input.

- The morphism phi is output of a categorical procedure which gurantees the integrity of the data structure of its output independent of its input.

##### 4.3-2 IsGeneralizedMorphismWithFullDomain

`‣ IsGeneralizedMorphismWithFullDomain`( phi ) | ( property )

Returns: `true` or `false`

Check if phi is a generalized morphism.

##### 4.3-3 IsGeneralizedEpimorphism

`‣ IsGeneralizedEpimorphism`( phi ) | ( property )

Returns: `true` or `false`

Check if phi is a generalized epimorphism.

##### 4.3-4 IsGeneralizedMonomorphism

`‣ IsGeneralizedMonomorphism`( phi ) | ( property )

Returns: `true` or `false`

Check if phi is a generalized monomorphism.

##### 4.3-5 IsGeneralizedIsomorphism

`‣ IsGeneralizedIsomorphism`( phi ) | ( property )

Returns: `true` or `false`

Check if phi is a generalized isomorphism.

##### 4.3-6 IsOne

`‣ IsOne`( phi ) | ( property )

Returns: `true` or `false`

Check if the homalg morphism phi is the identity morphism.

##### 4.3-7 IsIdempotent

`‣ IsIdempotent`( phi ) | ( property )

Returns: `true` or `false`

Check if the homalg morphism phi is an automorphism.

##### 4.3-8 IsMonomorphism

`‣ IsMonomorphism`( phi ) | ( property )

Returns: `true` or `false`

Check if the homalg morphism phi is a monomorphism.

##### 4.3-9 IsEpimorphism

`‣ IsEpimorphism`( phi ) | ( property )

Returns: `true` or `false`

Check if the homalg morphism phi is an epimorphism.

##### 4.3-10 IsSplitMonomorphism

`‣ IsSplitMonomorphism`( phi ) | ( property )

Returns: `true` or `false`

Check if the homalg morphism phi is a split monomorphism.

##### 4.3-11 IsSplitEpimorphism

`‣ IsSplitEpimorphism`( phi ) | ( property )

Returns: `true` or `false`

Check if the homalg morphism phi is a split epimorphism.

##### 4.3-12 IsIsomorphism

`‣ IsIsomorphism`( phi ) | ( property )

Returns: `true` or `false`

Check if the homalg morphism phi is an isomorphism.

##### 4.3-13 IsAutomorphism

`‣ IsAutomorphism`( phi ) | ( property )

Returns: `true` or `false`

Check if the homalg morphism phi is an automorphism.

#### 4.4 Morphisms: Attributes

##### 4.4-1 Source

`‣ Source`( phi ) | ( attribute )

Returns: a homalg object

The source of the homalg morphism phi.

##### 4.4-2 Range

`‣ Range`( phi ) | ( attribute )

Returns: a homalg object

The target (range) of the homalg morphism phi.

##### 4.4-3 CokernelEpi

`‣ CokernelEpi`( phi ) | ( attribute )

Returns: a homalg morphism

The natural epimorphism from the `Range`\((\)phi\()\) onto the `Cokernel`\((\)phi\()\).

##### 4.4-4 CokernelNaturalGeneralizedIsomorphism

`‣ CokernelNaturalGeneralizedIsomorphism`( phi ) | ( attribute )

Returns: a homalg morphism

The natural generalized isomorphism from the `Cokernel`\((\)phi\()\) onto the `Range`\((\)phi\()\).

##### 4.4-5 KernelSubobject

`‣ KernelSubobject`( phi ) | ( attribute )

Returns: a homalg subobject

This constructor returns the finitely generated kernel of the homalg morphism phi as a subobject of the homalg object `Source`(phi) with generators given by the syzygies of phi.

##### 4.4-6 KernelEmb

`‣ KernelEmb`( phi ) | ( attribute )

Returns: a homalg morphism

The natural embedding of the `Kernel`\((\)phi\()\) into the `Source`\((\)phi\()\).

##### 4.4-7 ImageSubobject

`‣ ImageSubobject`( phi ) | ( attribute )

Returns: a homalg subobject

This constructor returns the finitely generated image of the homalg morphism phi as a subobject of the homalg object `Range`(phi) with generators given by phi applied to the generators of its source object.

##### 4.4-8 ImageObjectEmb

`‣ ImageObjectEmb`( phi ) | ( attribute )

Returns: a homalg morphism

The natural embedding of the `ImageObject`\((\)phi\()\) into the `Range`\((\)phi\()\).

##### 4.4-9 ImageObjectEpi

`‣ ImageObjectEpi`( phi ) | ( attribute )

Returns: a homalg morphism

The natural epimorphism from the `Source`\((\)phi\()\) onto the `ImageObject`\((\)phi\()\).

##### 4.4-10 MorphismAid

`‣ MorphismAid`( phi ) | ( attribute )

Returns: a homalg morphism

The morphism aid map of a true generalized map.
(no method installed)

##### 4.4-11 InverseOfGeneralizedMorphismWithFullDomain

`‣ InverseOfGeneralizedMorphismWithFullDomain`( phi ) | ( attribute )

Returns: a homalg morphism

The generalized inverse of the epimorphism phi (cf. [Bar09, Cor. 4.8])).

##### 4.4-12 DegreeOfMorphism

`‣ DegreeOfMorphism`( phi ) | ( attribute )

Returns: an integer

The degree of the morphism phi between graded objects.
(no method installed)

#### 4.5 Morphisms: Operations and Functions

##### 4.5-1 ByASmallerPresentation

`‣ ByASmallerPresentation`( phi ) | ( method )

Returns: a homalg map

It invokes `ByASmallerPresentation` for homalg (static) objects.

    InstallMethod( ByASmallerPresentation,
            "for homalg morphisms",
            [ IsStaticMorphismOfFinitelyGeneratedObjectsRep ],

      function( phi )

        ByASmallerPresentation( Source( phi ) );
        ByASmallerPresentation( Range( phi ) );

        return DecideZero( phi );

    end );

This method performs side effects on its argument phi and returns it.

    gap> ZZ := HomalgRingOfIntegers( );
    Z
    gap> M := HomalgMatrix( "[ 2, 3, 4,   5, 6, 7 ]", 2, 3, ZZ );
    <A 2 x 3 matrix over an internal ring>
    gap> M := LeftPresentation( M );
    <A non-torsion left module presented by 2 relations for 3 generators>
    gap> N := HomalgMatrix( "[ 2, 3, 4, 5,   6, 7, 8, 9 ]", 2, 4, ZZ );
    <A 2 x 4 matrix over an internal ring>
    gap> N := LeftPresentation( N );
    <A non-torsion left module presented by 2 relations for 4 generators>
    gap> mat := HomalgMatrix( "[ \
    > 1, 0, -2, -4, \
    > 0, 1,  4,  7, \
    > 1, 0, -2, -4  \
    > ]", 3, 4, ZZ );
    <A 3 x 4 matrix over an internal ring>
    gap> phi := HomalgMap( mat, M, N );
    <A "homomorphism" of left modules>
    gap> IsMorphism( phi );
    true
    gap> phi;
    <A homomorphism of left modules>
    gap> Display( phi );
    [ [   1,   0,  -2,  -4 ],
      [   0,   1,   4,   7 ],
      [   1,   0,  -2,  -4 ] ]

    the map is currently represented by the above 3 x 4 matrix
    gap> ByASmallerPresentation( phi );
    <A non-zero homomorphism of left modules>
    gap> Display( phi );
    [ [   0,   0,   0 ],
      [   1,  -1,  -2 ] ]

    the map is currently represented by the above 2 x 3 matrix
    gap> M;
    <A rank 1 left module presented by 1 relation for 2 generators>
    gap> Display( M );
    Z/< 3 > + Z^(1 x 1)
    gap> N;
    <A rank 2 left module presented by 1 relation for 3 generators>
    gap> Display( N );
    Z/< 4 > + Z^(1 x 2)

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

generated by GAPDoc2HTML