Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Ind

### 11 Functors between the various categories

#### 11.1 Examples

##### 11.1-1 The reflexive completion of the one object category $C 2$

The reflexive completion of the one object category C_2 has four isomorphism classes of objects:

gap> q := RightQuiver( "q(1)[a:1->1]" );
q(1)[a:1->1]
gap> C2 := Category( q, [ [ q.a^2, q.1 ] ] );
FreeCategory( RightQuiver( "q(1)[a:1->1]" ) ) / [ a*a = 1 ]
gap> PSh := PreSheaves( C2 );
PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )/ [ a*a = 1 ],
SkeletalFinSets )
gap> IsReflexive( TerminalObject( PSh ) );
true
gap> IsReflexive( InitialObject( PSh ) );
true
gap> L := PSh.1;
<A projective object in PreSheaves( FreeCategory(
RightQuiver( "q(1)[a:1->1]" ) ) / [ a*a = 1 ], SkeletalFinSets )>
gap> IsReflexive( L );
true
gap> P := DirectProduct( L, L );
<An object in PreSheaves( FreeCategory(
RightQuiver( "q(1)[a:1->1]" ) ) / [ a*a = 1 ], SkeletalFinSets )>
gap> IsReflexive( P );
true
gap> iota := UnitOfIsbellAdjunction( PSh );
A natural transformation from Identity functor of PreSheaves(
FreeCategory( RightQuiver( "q(1)[a:1->1]" ) ) / [ a*a = 1 ], SkeletalFinSets )
to Precomposition of Isbell left adjoint functor and Isbell right adjoint functor
gap> iotaP := iota( P );
<A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a = 1 ], SkeletalFinSets )>
gap> Display( iotaP );
Image of <(1)>:
{ 0,..., 3 } ⱶ[ 0, 1, 2, 3 ]→ { 0,..., 3 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a = 1 ], SkeletalFinSets ) given by the above data
gap> IsOne( iotaP );
true
gap> C := Coproduct( L, L );
<An object in PreSheaves( FreeCategory(
RightQuiver( "q(1)[a:1->1]" ) ) / [ a*a = 1 ], SkeletalFinSets )>
gap> IsReflexive( C );
true
gap> iotaC := iota( C );
<A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a = 1 ], SkeletalFinSets )>
gap> Display( iotaC );
Image of <(1)>:
{ 0,..., 3 } ⱶ[ 1, 2, 0, 3 ]→ { 0,..., 3 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a = 1 ], SkeletalFinSets ) given by the above data
gap> IsIsomorphism( iotaC );
true
gap> Source( iotaC ) = C;
true
gap> Target( iotaC ) = P;
true
gap> L3 := Coproduct( L, L, L );
<An object in PreSheaves( FreeCategory(
RightQuiver( "q(1)[a:1->1]" ) ) / [ a*a = 1 ], SkeletalFinSets )>
gap> IsProjective( L3 );
true
gap> IsReflexive( L3 );
false

gap> q := RightQuiver( "q(1)[t:1->1]" );
q(1)[t:1->1]
gap> F := FreeCategory( q );
FreeCategory( RightQuiver( "q(1)[t:1->1]" ) )
gap> Q := HomalgFieldOfRationals( );
Q
gap> Qq := Q[F];
Algebra( Q, FreeCategory( RightQuiver( "q(1)[t:1->1]" ) ) )
gap> A := Qq / [ Qq.t^3 ];
Algebra( Q, FreeCategory( RightQuiver( "q(1)[t:1->1]" ) ) ) / relations
gap> PSh := PreSheaves( A );
PreSheaves(
Algebra( Q, FreeCategory( RightQuiver( "q(1)[t:1->1]" ) ) ) / relations,
Rows( Q ) )
gap> CommutativeRingOfLinearCategory( PSh );
Q
gap> Display( PSh.1 );
Image of <(1)>:
A row module over Q of rank 3

Image of (1)-[{ 1*(t) }]->(1):
Source:
A row module over Q of rank 3

Matrix:
[ [  0,  1,  0 ],
[  0,  0,  1 ],
[  0,  0,  0 ] ]

Range:
A row module over Q of rank 3

A morphism in Rows( Q )

An object in PreSheaves(
Algebra( Q, FreeCategory( RightQuiver( "q(1)[t:1->1]" ) ) ) / relations,
Rows( Q ) ) given by the above data
gap> Display( PSh.t );
Image of <(1)>:
Source:
A row module over Q of rank 3

Matrix:
[ [  0,  1,  0 ],
[  0,  0,  1 ],
[  0,  0,  0 ] ]

Range:
A row module over Q of rank 3

A morphism in Rows( Q )

A morphism in PreSheaves(
Algebra( Q, FreeCategory( RightQuiver( "q(1)[t:1->1]" ) ) ) / relations,
Rows( Q ) ) given by the above data
gap> phi := PreCompose( PSh.t, PSh.t );
<(1)->3x3>
gap> V := DirectSum( [ PSh.1, KernelObject( phi ), ImageObject( phi ) ] );
<(1)->6; (t)->6x6>
gap> Display( V );
Image of <(1)>:
A row module over Q of rank 6

Image of (1)-[{ 1*(t) }]->(1):
Source:
A row module over Q of rank 6

Matrix:
[ [  0,  1,  0,  0,  0,  0 ],
[  0,  0,  1,  0,  0,  0 ],
[  0,  0,  0,  0,  0,  0 ],
[  0,  0,  0,  0,  1,  0 ],
[  0,  0,  0,  0,  0,  0 ],
[  0,  0,  0,  0,  0,  0 ] ]

Range:
A row module over Q of rank 6

A morphism in Rows( Q )

An object in PreSheaves(
Algebra( Q, FreeCategory( RightQuiver( "q(1)[t:1->1]" ) ) ) / relations,
Rows( Q ) ) given by the above data
gap> IsProjective( V );
false
gap> IsReflexive( V );
true


The category of presheaves with values in the interval category of the boolean algebra 2^2 has 6 distinct objects. This is the free distributive lattice generated by a discrete category with two objects.

gap> LoadPackage( "FunctorCategories", false );
true
gap> pq := FinQuiver( "quiver(p,q)" );
FinQuiver( "quiver(p,q)[]" )
gap> F := PathCategory( pq );
PathCategory( FinQuiver( "quiver(p,q)[]" ) )
gap> P := PosetOfCategory( F );
PosetOfCategory( PathCategory( FinQuiver( "quiver(p,q)[]" ) ) )
gap> Dist := FreeDistributiveCompletion( P );
FreeDistributiveCompletion(
PosetOfCategory( PathCategory( FinQuiver( "quiver(p,q)[]" ) ) ) )
gap> Display( Dist );
A CAP category with name FreeDistributiveCompletion(
PosetOfCategory( PathCategory( FinQuiver( "quiver(p,q)[]" ) ) ) ):

56 primitive operations were used to derive 286 operations for this category
which algorithmically
* IsCategoryWithDecidableColifts
* IsCategoryWithDecidableLifts
* IsFiniteCategory
* IsEquippedWithHomomorphismStructure
* IsHeytingAlgebra
and not yet algorithmically
* IsBiHeytingAlgebra
gap> Length( SetOfObjects( Dist ) );
6
gap> Display( DotVertexLabelledDigraph( DigraphOfPoset( Dist ) ) );
//dot
digraph subobject_lattice{
rankdir="BT"
minlen=0
node [shape=circle width=0 height=0]
1 [label="0" fontsize=12 margin=0.01 fontname="DejaVu Serif,serif"]
2 [label="1" fontsize=12 margin=0.01 fontname="DejaVu Serif,serif"]
3 [label="2" fontsize=12 margin=0.01 fontname="DejaVu Serif,serif"]
4 [label="3" fontsize=12 margin=0.01 fontname="DejaVu Serif,serif"]
5 [label="4" fontsize=12 margin=0.01 fontname="DejaVu Serif,serif"]
6 [label="5" fontsize=12 margin=0.01 fontname="DejaVu Serif,serif"]
1 -> 5 [arrowsize=0.5]
3 -> 6 [arrowsize=0.5]
4 -> 6 [arrowsize=0.5]
5 -> 3 [arrowsize=0.5]
5 -> 4 [arrowsize=0.5]
6 -> 2 [arrowsize=0.5]
}
gap> DiffbCSL := MeetSemilatticeOfSingleDifferences( Dist );
MeetSemilatticeOfSingleDifferences( FreeDistributiveCompletion(
PosetOfCategory( PathCategory( FinQuiver( "quiver(p,q)[]" ) ) ) ) )
gap> Length( SetOfObjects( DiffbCSL ) );
13


#### 11.2 Attributes

 ‣ NakayamaLeftAdjoint( PSh, coPSh ) ( operation )
 ‣ NakayamaLeftAdjoint( B ) ( attribute )

Returns: a CAP functor

Returns the Nakayama left adjoint functor from PSh = PreSheaves( B ) \to coPSh = CoPreSheaves( B ).

 ‣ NakayamaRightAdjoint( coPSh, PSh ) ( operation )
 ‣ NakayamaRightAdjoint( B ) ( attribute )

Returns: a CAP functor

Returns the Nakayama right adjoint functor from coPSh = CoPreSheaves( B ) \to PSh = PreSheaves( B ).

 ‣ IsbellLeftAdjoint( PSh, coPSh ) ( operation )
 ‣ IsbellLeftAdjoint( B ) ( attribute )

Returns: a CAP functor

Returns the Isbell left adjoint functor from PSh = PreSheaves( B ) \to coPSh = CoPreSheaves( B ).

 ‣ IsbellRightAdjoint( coPSh, PSh ) ( operation )
 ‣ IsbellRightAdjoint( B ) ( attribute )

Returns: a CAP functor

Returns the Isbell right adjoint functor from coPSh = CoPreSheaves( B ) \to PSh = PreSheaves( B ).

 ‣ IsbellAdjunctionMonad( PSh, coPSh ) ( operation )
 ‣ IsbellAdjunctionMonad( B ) ( attribute )

Returns: a CAP functor

 ‣ UnitOfIsbellAdjunction( PSh ) ( attribute )

Returns: a CAP functor

Returns the unit of the Isbell adjunction on the presheaf category PSh.

##### 11.2-7 IsomorphismFromSourceIntoImageOfYonedaEmbeddingOfSource
 ‣ IsomorphismFromSourceIntoImageOfYonedaEmbeddingOfSource( PSh ) ( attribute )

Returns: a CAP functor

Returns the isomorphism functor from Source(PSh) to ImageOfYonedaEmbeddingOfSource(PSh) induced by the Yoneda embedding.

##### 11.2-8 IsomorphismFromImageOfYonedaEmbeddingOfSourceIntoSource
 ‣ IsomorphismFromImageOfYonedaEmbeddingOfSourceIntoSource( PSh ) ( attribute )

Returns: a CAP functor

Returns the isomorphism functor from ImageOfYonedaEmbeddingOfSource(PSh) to Source(PSh) induced by the Yoneda embedding.

 ‣ EquivalenceFromFullSubcategoryOfProjectivesObjectsIntoAdditiveClosureOfSource( PSh ) ( attribute )
Returns the equivalence functor from FullSubcategoryOfProjectiveObjects(PSh) to the additive closure category of Source(PSh).