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] 

7 The coequalizer completion of a category
 7.1 Attributes
 7.2 Constructors
 7.3 GAP categories

7 The coequalizer completion of a category

7.1 Attributes

7.1-1 PairOfObjectsAndPairOfParallelMorphisms
‣ PairOfObjectsAndPairOfParallelMorphisms( quiver )( attribute )

7.1-2 DefiningPairOfMorphismBetweenCoequalizerPairs
‣ DefiningPairOfMorphismBetweenCoequalizerPairs( quiver_morphism )( attribute )

7.1-3 UnderlyingCategory
‣ UnderlyingCategory( CoeqC )( attribute )

Return the category \(C\) underlying the category CoeqC := CoequalizerCompletion( \(C\) ).

7.1-4 EmbeddingOfUnderlyingCategory
‣ EmbeddingOfUnderlyingCategory( UC )( attribute )

Returns: a CAP functor

The full embedding functor from the category \(C\) underlying the finite coproduct cocompletion UC into UC.

7.2 Constructors

7.2-1 CoequalizerCompletion
‣ CoequalizerCompletion( cat )( attribute )

Return the finite coequalizer completion of the coartesian category cat.

gap> LoadPackage( "FunctorCategories" );
true
gap> q := "q(VS,AS,VT,AT)[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,\
> m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]";;
gap> q := RightQuiver( q );
q(VS,AS,VT,AT)[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
               m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]
gap> F := FreeCategory( q );
FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
 m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) )
gap> rel := [ [ F.sS * F.m1, F.w1 * F.sT ],
>          [ F.sS * F.m2, F.w2 * F.sT ],
>          [ F.sS * F.m3, F.w3 * F.sT ],
>          [ F.tS * F.m1, F.w1 * F.tT ],
>          [ F.tS * F.m2, F.w2 * F.tT ],
>          [ F.tS * F.m3, F.w3 * F.tT ] ];;
gap> C := F / rel;
FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
 m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) )
/ relations
gap> Q := HomalgFieldOfRationals( );
Q
gap> L := Q[C];
Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
 m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) )
/ relations
gap> UC := AdditiveClosure( L );
AdditiveClosure( Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
 m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) )
/ relations )
gap> str := CellAsEvaluatableString( UC.sS, [ "L", "UC", "L.AS", "L.VS", "L.sS" ] );
"MorphismConstructor( UC,
        ObjectConstructor( UC, [ L.AS ] ),
        [ [ L.sS ] ],
        ObjectConstructor( UC, [ L.VS ] ) )"
gap> EvalString( str ) = UC.sS;
true
gap> A := CoequalizerCompletion( UC );
CoequalizerCompletion( AdditiveClosure( Algebroid( Q, FreeCategory(
RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
 m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) )
/ relations ) )
gap> A.sS * A.m1 = A.w1 * A.sT;
true
gap> A.sS * A.m2 = A.w2 * A.sT;
true
gap> A.sS * A.m3 = A.w3 * A.sT;
true
gap> A.tS * A.m1 = A.w1 * A.tT;
true
gap> A.tS * A.m2 = A.w2 * A.tT;
true
gap> A.tS * A.m3 = A.w3 * A.tT;
true
gap> S := ObjectConstructor( A, Pair( Pair( UC.VS, UC.AS ), Pair( UC.sS, UC.tS ) ) );
<An object in CoequalizerCompletion( AdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
 [sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,m1:VS->VT,w1:AS->AT,
  m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) ) / relations ) )>
gap> T := ObjectConstructor( A, Pair( Pair( UC.VT, UC.AT ), Pair( UC.sT, UC.tT ) ) );
<An object in CoequalizerCompletion( AdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
 [sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,m1:VS->VT,w1:AS->AT,
  m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) ) / relations ) )>
gap> mor1 := MorphismConstructor( A, S, Pair( UC.m1, UC.w1 ), T );
<A morphism in CoequalizerCompletion( AdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
 [sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
  m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) )
 / relations ) )>
gap> mor2 := MorphismConstructor( A, S, Pair( UC.m2, UC.w2 ), T );
<A morphism in CoequalizerCompletion( AdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
 [sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
  m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) )
 / relations ) )>
gap> mor3 := MorphismConstructor( A, S, Pair( UC.m3, UC.w3 ), T );
<A morphism in CoequalizerCompletion( AdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
 [sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
  m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) )
 / relations ) )>
gap> IsWellDefined( mor1 );
true
gap> IsWellDefined( mor2 );
true
gap> IsWellDefined( mor3 );
true
gap> coeq := Coequalizer( [ mor1, mor2, mor3 ] );
<An object in CoequalizerCompletion( AdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
 [sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,m1:VS->VT,w1:AS->AT,
  m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) ) / relations ) )>
gap> Display( coeq );
Image of <(V)>:
A formal direct sum consisting of 2 objects.
<(VT)>
<(VS)>

Image of <(A)>:
A formal direct sum consisting of 4 objects.
<(AT)>
<(VS)>
<(VS)>
<(VS)>

Image of (V)-[(s)]->(A):
A 4 x 2 matrix with entries in
Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) ) / relations

[1,1]: (AT)-[{ 1*(sT) }]->(VT)
[1,2]: (AT)-[{ 0 }]->(VS)
[2,1]: (VS)-[{ 0 }]->(VT)
[2,2]: (VS)-[{ 1*(VS) }]->(VS)
[3,1]: (VS)-[{ 0 }]->(VT)
[3,2]: (VS)-[{ 1*(VS) }]->(VS)
[4,1]: (VS)-[{ 0 }]->(VT)
[4,2]: (VS)-[{ 1*(VS) }]->(VS)
Image of (V)-[(t)]->(A):
A 4 x 2 matrix with entries in
Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) ) / relations

[1,1]: (AT)-[{ 1*(tT) }]->(VT)
[1,2]: (AT)-[{ 0 }]->(VS)
[2,1]: (VS)-[{ 1*(m1) }]->(VT)
[2,2]: (VS)-[{ 0 }]->(VS)
[3,1]: (VS)-[{ 1*(m2) }]->(VT)
[3,2]: (VS)-[{ 0 }]->(VS)
[4,1]: (VS)-[{ 1*(m3) }]->(VT)
[4,2]: (VS)-[{ 0 }]->(VS)
An object in PreSheaves( FreeCategory( RightQuiver( "q(V,A)[s:V->A,t:V->A]" ) ),
AdditiveClosure( Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
 m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) ) / relations ) )
 given by the above data

An object in PairOfParallelArrowsCategory(
AdditiveClosure( Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
 m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) )
/ relations ) ) given by the above data

An object in QuotientCategory( PairOfParallelArrowsCategory(
AdditiveClosure( Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
 m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) )
/ relations ) ) ) defined by the congruence function unknown
given by the above data

An object in CoequalizerCompletion(
AdditiveClosure( Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
 m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) )
/ relations ) ) given by the above data
gap> proj := ProjectionOntoCoequalizer( [ mor1, mor2, mor3 ] );
<An epimorphism in CoequalizerCompletion( AdditiveClosure(
 Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
 [sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
  m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) )
 / relations ) )>
gap> Display( proj );
Image of <(V)>:
A 1 x 2 matrix with entries in
Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
 m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) ) / relations

[1,1]: (VT)-[{ 1*(VT) }]->(VT)
[1,2]: (VT)-[{ 0 }]->(VS)
Image of <(A)>:
A 1 x 4 matrix with entries in
Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
 m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) ) / relations

[1,1]: (AT)-[{ 1*(AT) }]->(AT)
[1,2]: (AT)-[{ 0 }]->(VS)
[1,3]: (AT)-[{ 0 }]->(VS)
[1,4]: (AT)-[{ 0 }]->(VS)
A morphism in PreSheaves( FreeCategory( RightQuiver( "q(V,A)[s:V->A,t:V->A]" ) ),
AdditiveClosure( Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
 m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) )
/ relations ) ) given by the above data

A morphism in PairOfParallelArrowsCategory(
AdditiveClosure( Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
 m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) )
/ relations ) ) given by the above data

A morphism in QuotientCategory( PairOfParallelArrowsCategory(
AdditiveClosure( Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
 m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) )
/ relations ) ) ) defined by the congruence function unknown
given by the above data

A morphism in CoequalizerCompletion(
AdditiveClosure( Algebroid( Q, FreeCategory( RightQuiver( "q(VS,AS,VT,AT)
[sS:AS->VS,tS:AS->VS,sT:AT->VT,tT:AT->VT,
 m1:VS->VT,w1:AS->AT,m2:VS->VT,w2:AS->AT,m3:VS->VT,w3:AS->AT]" ) ) )
/ relations ) ) given by the above data

7.3 GAP categories

7.3-1 IsCoequalizerCompletion
‣ IsCoequalizerCompletion( arg )( filter )

Returns: true or false

The GAP category of coequalizer completions of categories.

7.3-2 IsCellInCoequalizerCompletion
‣ IsCellInCoequalizerCompletion( arg )( filter )

Returns: true or false

The GAP category of cells in the coequalizer completion of a category.

7.3-3 IsObjectInCoequalizerCompletion
‣ IsObjectInCoequalizerCompletion( arg )( filter )

Returns: true or false

The GAP category of objects in the coequalizer completion of a category.

7.3-4 IsMorphismInCoequalizerCompletion
‣ IsMorphismInCoequalizerCompletion( arg )( filter )

Returns: true or false

The GAP category of morphisms in the coequalizer completion 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