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] 

5 Elements
 5.1 Elements: Category and Representations
 5.2 Elements: Constructors
 5.3 Elements: Properties
 5.4 Elements: Attributes
 5.5 Elements: Operations and Functions

  5.5-1 in

5 Elements

An element of an object M is internally represented by a morphism from the "structure object" to the object M. In particular, the data structure for object elements automatically profits from the intrinsic realization of morphisms in the homalg project.

5.1 Elements: Category and Representations

5.1-1 IsHomalgElement
‣ IsHomalgElement( M )( category )

Returns: true or false

The GAP category of object elements.

5.1-2 IsElementOfAnObjectGivenByAMorphismRep
‣ IsElementOfAnObjectGivenByAMorphismRep( M )( representation )

Returns: true or false

The GAP representation of elements of finitley presented objects.

(It is a representation of the GAP category IsHomalgElement (5.1-1).)

5.2 Elements: Constructors

5.3 Elements: Properties

5.3-1 IsZero
‣ IsZero( m )( property )

Returns: true or false

Check if the object element m is zero.

5.3-2 IsCyclicGenerator
‣ IsCyclicGenerator( m )( property )

Returns: true or false

Check if the object element m is a cyclic generator.

5.3-3 IsTorsion
‣ IsTorsion( m )( property )

Returns: true or false

Check if the object element m is a torsion element.

5.4 Elements: Attributes

5.4-1 Annihilator
‣ Annihilator( e )( attribute )

Returns: a homalg subobject

The annihilator of the object element e as a subobject of the structure object.

5.5 Elements: Operations and Functions

5.5-1 in
‣ in( m, N )( attribute )

Returns: true or false

Is the element m of the object M included in the subobject N≤ M, i.e., does the morphism (with the unit object as source and M as target) underling the element m of M factor over the subobject morphism N-> M?

gap> zz := HomalgRingOfIntegers( );
Z
gap> M := 2 * zz;
<A free left module of rank 2 on free generators>
gap> a := HomalgModuleElement( "[ 6, 0 ]", M );
( 6, 0 )
gap> N := Subobject( HomalgMap( "[ 2, 0 ]", 1 * zz, M ) );
<A free left submodule given by a cyclic generator>
gap> K := Subobject( HomalgMap( "[ 4, 0 ]", 1 * zz, M ) );
<A free left submodule given by a cyclic generator>
gap> a in M;
true
gap> a in N;
true
gap> a in UnderlyingObject( N );
true
gap> a in K;
false
gap> a in UnderlyingObject( K );
false
gap> a in 3 * zz;
false 
InstallMethod( \in,
        "for homalg elements",
        [ IsHomalgElement, IsStaticFinitelyPresentedSubobjectRep ],
        
  function( m, N )
    local phi, psi;
    
    phi := UnderlyingMorphism( m );
    
    psi := MorphismHavingSubobjectAsItsImage( N );
    
    if not IsIdenticalObj( Range( phi ), Range( psi ) ) then
        Error( "the super object of the subobject and the range ",
               "of the morphism underlying the element do not coincide\n" );
    fi;
    
    return IsZero( PreCompose( phi, CokernelEpi( psi ) ) );
    
end );
 [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