Goto Chapter: Top 1 2 Ind

### 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
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 }

Goto Chapter: Top 1 2 Ind

generated by GAPDoc2HTML