Goto Chapter: Top 1 2 Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

1 Category of presheaves of a (linear) category
 1.1 Attributes
 1.2 Constructors
 1.3 Operations
 1.4 GAP categories
 1.5 Examples

1 Category of presheaves of a (linear) category

1.1 Attributes

1.1-1 Source
‣ Source( PSh )( attribute )

Returns: a CAP category

The source category \(C\) of the presheaf category PSh=PSh(\(C, D\)).

1.1-2 Target
‣ Target( PSh )( attribute )

Returns: a CAP category

The target category \(D\) of the presheaf category PSh=PSh(\(C, D\)).

1.1-3 OppositeOfSource
‣ OppositeOfSource( Hom )( attribute )

Returns: a CAP category

The opposite \(C^\mathrm{op}\) of the source category \(C\) of the presheaf category PSh=PSh(\(C, D\)).

1.1-4 Source
‣ Source( F )( attribute )

Returns: a CAP category

The source of the presheaf F.

1.1-5 Target
‣ Target( F )( attribute )

Returns: a CAP category

The target of the presheaf F.

1.1-6 YonedaEmbeddingOfSourceCategory
‣ YonedaEmbeddingOfSourceCategory( PSh )( attribute )

Returns: a CAP functor

1.2 Constructors

1.2-1 PreSheaves
‣ PreSheaves( B, D )( operation )
‣ PreSheaves( B )( operation )

Returns: a CAP category

Construct the category Hom( B^op, D ) of functors from the opposite of the small category B to the category D as objects and their natural transformations as morphisms.

1.3 Operations

1.3-1 ApplyObjectInPreSheafCategoryToObject
‣ ApplyObjectInPreSheafCategoryToObject( F, obj )( operation )

Returns: a CAP object

Apply the presheaf F to the object obj. The shorthand is F(obj).

1.3-2 ApplyObjectInPreSheafCategoryToMorphism
‣ ApplyObjectInPreSheafCategoryToMorphism( F, mor )( operation )

Returns: a CAP morphism

Apply the presheaf F to the morphism mor. The shorthand is F(mor).

1.3-3 ApplyMorphismInPreSheafCategoryToObject
‣ ApplyMorphismInPreSheafCategoryToObject( eta, obj )( operation )

Returns: a CAP morphism

Apply the presheaf morphism eta to the object obj. The shorthand is eta(o).

1.4 GAP categories

1.4-1 IsPreSheafCategory
‣ IsPreSheafCategory( category )( filter )

Returns: true or false

The GAP category of a presheaf category.

1.4-2 IsCellInPreSheafCategory
‣ IsCellInPreSheafCategory( cell )( filter )

Returns: true or false

The GAP category of cells in a presheaf category.

1.4-3 IsObjectInPreSheafCategory
‣ IsObjectInPreSheafCategory( obj )( filter )

Returns: true or false

The GAP category of objects in a presheaf category.

1.4-4 IsMorphismInPreSheafCategory
‣ IsMorphismInPreSheafCategory( mor )( filter )

Returns: true or false

The GAP category of morphisms in a presheaf category.

1.5 Examples

1.5-1 The terminal category
gap> LoadPackage( "PreSheaves" );
true
gap> LoadPackage( "Toposes", ">= 2024.02-08", fail );
true
gap> T := PreSheaves( InitialCategory( ) );
PreSheaves( InitialCategory( ), InitialCategory( ) )
gap> IsTerminalCategory( T );
true
gap> Display( T );
A CAP category with name PreSheaves( InitialCategory( ), InitialCategory( ) ):

110 primitive operations were used to derive 611 operations for this category
which algorithmically
* IsObjectFiniteCategory
* IsCategoryWithDecidableColifts
* IsCategoryWithDecidableLifts
* IsEquippedWithHomomorphismStructure
* IsLinearCategoryOverCommutativeRing
* IsLeftClosedMonoidalCategory
* IsLeftCoclosedMonoidalCategory
* IsBicartesianCoclosedCategory
* IsAbelianCategoryWithEnoughInjectives
* IsAbelianCategoryWithEnoughProjectives
* IsElementaryTopos
* IsRigidSymmetricClosedMonoidalCategory
* IsRigidSymmetricCoclosedMonoidalCategory
and not yet algorithmically
* IsFiniteCategory
* IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms
and furthermore mathematically
* IsLocallyOfFiniteInjectiveDimension
* IsLocallyOfFiniteProjectiveDimension
* IsSkeletalCategory
* IsStrictCartesianCategory
* IsStrictCocartesianCategory
* IsStrictMonoidalCategory
* IsTerminalCategory
gap> i := InitialObject( T );
<An object in PreSheaves( InitialCategory( ), InitialCategory( ) )>
gap> t := TerminalObject( T );
<An object in PreSheaves( InitialCategory( ), InitialCategory( ) )>
gap> z := ZeroObject( T );
<A zero object in PreSheaves( InitialCategory( ), InitialCategory( ) )>
gap> Display( i );
An object in PreSheaves( InitialCategory( ), InitialCategory( ) ).
gap> Display( t );
An object in PreSheaves( InitialCategory( ), InitialCategory( ) ).
gap> Display( z );
A zero object in PreSheaves( InitialCategory( ), InitialCategory( ) ).
gap> IsIdenticalObj( i, z );
false
gap> IsIdenticalObj( t, z );
false
gap> IsEqualForObjects( i, z );
true
gap> IsEqualForObjects( t, z );
true
gap> IsWellDefined( z );
true
gap> id_z := IdentityMorphism( z );
<A zero, identity morphism in
 PreSheaves( InitialCategory( ), InitialCategory( ) )>
gap> fn_z := ZeroObjectFunctorial( T );
<A zero, isomorphism in PreSheaves( InitialCategory( ), InitialCategory( ) )>
gap> IsWellDefined( fn_z );
true
gap> IsEqualForMorphisms( id_z, fn_z );
true
gap> IsCongruentForMorphisms( id_z, fn_z );
true

1.5-2 The category of presheaves of SkeletalFinSets
gap> LoadPackage( "PreSheaves" );
true
gap> LoadPackage( "FinSetsForCAP" );
true
gap> PSh := PreSheaves( SkeletalFinSets, SkeletalFinSets );
PreSheaves( SkeletalFinSets, SkeletalFinSets )
gap> Display( PSh );
A CAP category with name PreSheaves( SkeletalFinSets, SkeletalFinSets ):

46 primitive operations were used to derive 165 operations for this category
which not yet algorithmically
* IsDistributiveCategory
* IsFiniteBicompleteCategory
gap> MissingOperationsForConstructivenessOfCategory( PSh, "IsElementaryTopos" );
[ "CartesianLeftCoevaluationMorphismWithGivenRange",
  "CartesianLeftEvaluationMorphismWithGivenSource",
  "CartesianRightCoevaluationMorphismWithGivenRange",
  "CartesianRightEvaluationMorphismWithGivenSource",
  "ClassifyingMorphismOfSubobjectWithGivenSubobjectClassifier",
  "ExponentialOnMorphismsWithGivenExponentials", "ExponentialOnObjects",
  "IsCongruentForMorphisms", "IsEqualForMorphisms", "IsEqualForObjects",
  "SubobjectClassifier", "SubobjectOfClassifyingMorphism" ]
gap> Y := YonedaEmbeddingOfSourceCategory( PSh );
Yoneda embedding functor
gap> omega := SubobjectClassifier( SourceOfFunctor( Y ) );
|2|
gap> M := FinSet( 3 );
|3|
gap> Y( omega )( M );
|8|
gap> phi := MapOfFinSets( omega, [ 2, 0 ], M );
|2| → |3|
gap> omega_phi := Y( omega )( phi );
|8| → |4|
gap> Display( omega_phi );
{ 0,..., 7 } ⱶ[ 0, 2, 0, 2, 1, 3, 1, 3 ]→ { 0,..., 3 }
gap> phi_omega := Y( phi )( omega );
|4| → |9|
gap> Display( phi_omega );
{ 0,..., 3 } ⱶ[ 8, 6, 2, 0 ]→ { 0,..., 8 }
gap> six1 := Y( FinSet( 6 ) );
<A projective object in PreSheaves( SkeletalFinSets, SkeletalFinSets )>
gap> six2 := DirectProduct( Y( FinSet( 2 ) ), Y( FinSet( 3 ) ) );
<An object in PreSheaves( SkeletalFinSets, SkeletalFinSets )>
gap> List( [ 0 .. 7 ], i -> six1( FinSet( i ) ) );
[ |1|, |6|, |36|, |216|, |1296|, |7776|, |46656|, |279936| ]
gap> List( [ 0 .. 7 ], i -> six2( FinSet( i ) ) );
[ |1|, |6|, |36|, |216|, |1296|, |7776|, |46656|, |279936| ]
gap> six1_on_mor := six1( UniversalMorphismIntoTerminalObject( FinSet( 3 ) ) );
|6| → |216|
gap> Display( six1_on_mor );
{ 0,..., 5 } ⱶ[ 0, 43, 86, 129, 172, 215 ]→ { 0,..., 215 }
gap> six2_on_mor := six2( UniversalMorphismIntoTerminalObject( FinSet( 3 ) ) );
|6| → |216|
gap> Display( six2_on_mor );
{ 0,..., 5 } ⱶ[ 0, 7, 104, 111, 208, 215 ]→ { 0,..., 215 }
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 Ind

generated by GAPDoc2HTML