Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

12 Abelian closure with strict direct sums
 12.1 Attributes
 12.2 Constructors
 12.3 GAP categories

12 Abelian closure with strict direct sums

12.1 Attributes

12.1-1 UnderlyingCategory
‣ UnderlyingCategory( DC )( attribute )

Return the category \(C\) underlying the abelian closure with strict direct sums category DC := AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure( \(C\) ).

12.2 Constructors

12.2-1 AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure
‣ AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure( C )( attribute )

Returns: a CAP category

Construct the free distributive closure category with strict products and coproducts of a category C.

#@if ValueOption( "no_precompiled_code" ) <> true
gap> LoadPackage( "Algebroids", false );
true
gap> LoadPackage( "FiniteCocompletions", false );
true
gap> q := RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" );
q(4)[a:1->2,b:2->3,c:3->4]
gap> Fq := FreeCategory( q );
FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) )
gap> Q := HomalgFieldOfRationals( );
Q
gap> Qq := Q[Fq];
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
gap> L := Qq / [ Qq.abc ];
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
/ relations
gap> A := AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure( L );
AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
/ relations )
gap> a := A.a;
<A morphism in
AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
/ relations )>
gap> b := A.b;
<A morphism in
AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
/ relations )>
gap> c := A.c;
<A morphism in
AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
/ relations )>
gap> IsZero( PreCompose( [ a, b, c ] ) );
true
gap> d := CokernelProjection( a );
<An epimorphism in
AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
/ relations )>
gap> e := CokernelColift( a, PreCompose( b, c ) );
<A morphism in
AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
/ relations )>
gap> f := KernelEmbedding( e );
<A monomorphism in
AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
/ relations )>
gap> g := KernelEmbedding( c );
<A monomorphism in
AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
/ relations )>
gap> h := KernelLift( c, PreCompose( a, b ) );
<A morphism in
AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
/ relations )>
gap> i := CokernelProjection( h );
<An epimorphism in
AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
/ relations )>
gap> ker := Source( f );
<An object in
AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
/ relations )>
gap> coker := Target( i );
<An object in
AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
/ relations )>
gap> HomStructure( ker, coker );
<A row module over Q of rank 1>
gap> hom_ker_coker := BasisOfExternalHom( ker, coker );
[ <A morphism in
   AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
   Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
   / relations )> ]
gap> s := hom_ker_coker[1];
<A morphism in
 AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
 / relations )>
gap> j := KernelObjectFunctorial( b, d, e );
<A morphism in
 AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
 / relations )>
gap> k := CokernelObjectFunctorial( h, g, b );
<A morphism in
 AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
 / relations )>
gap> HK := HomologyObject( j, s );
<An object in
 AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
 / relations )>
gap> IsZero( HK );
true
gap> HC := HomologyObject( s, k );
<An object in
 AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
 / relations )>
gap> IsZero( HC );
true
gap> ff := AsGeneralizedMorphism( f );
<A morphism in Generalized morphism category of
 AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
 / relations )>
gap> dd := AsGeneralizedMorphism( d );
<A morphism in Generalized morphism category of
 AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
 / relations )>
gap> bb := AsGeneralizedMorphism( b );
<A morphism in Generalized morphism category of
 AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
 / relations )>
gap> gg := AsGeneralizedMorphism( g );
<A morphism in Generalized morphism category of
 AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
 / relations )>
gap> ii := AsGeneralizedMorphism( i );
<A morphism in Generalized morphism category of
 AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
 / relations )>
gap> ss := PreCompose( [ ff, PseudoInverse( dd ), bb, PseudoInverse( gg ), ii ] );
<A morphism in Generalized morphism category of
 AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
 / relations )>
gap> IsHonest( ss );
true
gap> s = HonestRepresentative( ss );
true
gap> Id := ExtendFunctorToAbelianClosureWithStrictDirectSums(
>               EmbeddingOfUnderlyingCategory( A ) );
Extension to
AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
Source( Embedding functor into an abelian closure category
        with strict direct sums ) )
gap> Id( s );
<A morphism in
 AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
 / relations )>
gap> IsWellDefined( Id( s ) );
true
gap> Display( s );

--------------------------------
Source:
--------------------------------


--------------------------------
Source:
--------------------------------

A 2 x 2 matrix with entries in Algebroid( Q, FreeCategory(
RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) ) / relations

[1,1]: (2)-[{ 1*(b*c) }]->(4)
[1,2]: (2)-[{ 1*(2) }]->(2)
[2,1]: (1)-[{ 0 }]->(4)
[2,2]: (1)-[{ -1*(a) }]->(2)


--------------------------------
Morphism datum:
--------------------------------

A 2 x 1 matrix with entries in Algebroid( Q, FreeCategory(
RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) ) / relations

[1,1]: (2)-[{ 1*(2) }]->(2)
[2,1]: (1)-[{ 0 }]->(2)


--------------------------------
Range:
--------------------------------

A 1 x 1 matrix with entries in Algebroid( Q, FreeCategory(
RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) ) / relations

[1,1]: (2)-[{ 1*(b*c) }]->(4)


--------------------------------
General description:
--------------------------------

A morphism in CoFreyd( AdditiveClosure( Algebroid( Q, FreeCategory(
RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) ) / relations ) )



--------------------------------
Morphism datum:
--------------------------------


--------------------------------
Source:
--------------------------------

A 1 x 1 matrix with entries in Algebroid( Q, FreeCategory(
RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) ) / relations

[1,1]: (2)-[{ 1*(b*c) }]->(4)


--------------------------------
Morphism datum:
--------------------------------

A 1 x 1 matrix with entries in Algebroid( Q, FreeCategory(
RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) ) / relations

[1,1]: (2)-[{ 1*(b) }]->(3)


--------------------------------
Range:
--------------------------------

A 1 x 1 matrix with entries in Algebroid( Q, FreeCategory(
RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) ) / relations

[1,1]: (3)-[{ 1*(c) }]->(4)


--------------------------------
General description:
--------------------------------

A morphism in CoFreyd( AdditiveClosure( Algebroid( Q, FreeCategory(
RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) ) / relations ) )



--------------------------------
Range:
--------------------------------


--------------------------------
Source:
--------------------------------

A 2 x 2 matrix with entries in Algebroid( Q, FreeCategory(
RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) ) / relations

[1,1]: (3)-[{ 1*(c) }]->(4)
[1,2]: (3)-[{ 1*(3) }]->(3)
[2,1]: (1)-[{ 0 }]->(4)
[2,2]: (1)-[{ 0 }]->(3)


--------------------------------
Morphism datum:
--------------------------------

A 2 x 1 matrix with entries in Algebroid( Q, FreeCategory(
RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) ) / relations

[1,1]: (3)-[{ 1*(3) }]->(3)
[2,1]: (1)-[{ 1*(a*b) }]->(3)


--------------------------------
Range:
--------------------------------

A 1 x 1 matrix with entries in Algebroid( Q, FreeCategory(
RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) ) / relations

[1,1]: (3)-[{ 1*(c) }]->(4)


--------------------------------
General description:
--------------------------------

A morphism in CoFreyd( AdditiveClosure( Algebroid( Q, FreeCategory(
RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) ) / relations ) )



--------------------------------
General description:
--------------------------------

A morphism in Freyd( CoFreyd( AdditiveClosure( Algebroid( Q, FreeCategory(
RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) ) / relations ) ) )

A morphism in
AbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure(
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[a:1->2,b:2->3,c:3->4]" ) ) )
/ relations ) given by the above data
#@fi

12.2-2 EmbeddingOfUnderlyingCategory
‣ EmbeddingOfUnderlyingCategory( UC )( attribute )

Returns: a CAP functor

The full embedding functor from the category \(C\) underlying the free distributive closure category DC with strict products and coproducts into DC.

12.2-3 ExtendFunctorToAbelianClosureWithStrictDirectSums
‣ ExtendFunctorToAbelianClosureWithStrictDirectSums( DC )( attribute )

Returns: a CAP functor

The full embedding functor from the category \(C\) underlying the free distributive closure category DC with strict products and coproducts into DC.

12.3 GAP categories

12.3-1 IsAbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure
‣ IsAbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure( arg )( filter )

Returns: true or false

The GAP category of free distributive closure categories with strict products and coproducts of a category.

12.3-2 IsCellInAbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure
‣ IsCellInAbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure( arg )( filter )

Returns: true or false

The GAP category of cells in the free distributive closure category with strict products and coproducts of a category.

12.3-3 IsObjectInAbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure
‣ IsObjectInAbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure( arg )( filter )

Returns: true or false

The GAP category of objects in the free distributive closure category with strict products and coproducts of a category.

12.3-4 IsMorphismInAbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure
‣ IsMorphismInAbelianClosureWithStrictDirectSumsAsFreydOfCoFreydOfStrictAdditiveClosure( arg )( filter )

Returns: true or false

The GAP category of morphisms in the free distributive closure category with strict products and coproducts of a category.

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Ind

generated by GAPDoc2HTML