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

2 Category of presheaves of a finitely presented (linear) category
 2.1 Constructors
 2.2 Attributes
 2.3 Operations
 2.4 GAP Categories
 2.5 Global variables
 2.6 Examples

2 Category of presheaves of a finitely presented (linear) category

2.1 Constructors

2.1-1 PreSheaves
‣ PreSheaves( B, C )( operation )
‣ PreSheaves( B, k )( operation )
‣ PreSheaves( B )( operation )

Returns: a CAP category

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

2.1-2 CreatePreSheaf
‣ CreatePreSheaf( F )( attribute )
‣ CreatePreSheaf( B, rec_images_of_objects, rec_images_of_morphisms )( operation )
‣ CreatePreSheaf( B, images_of_objects, images_of_morphisms )( operation )

Returns: a presheaf

Turn the functor F:B^op \(\to\) C into an object in the category of functors PSh := PreSheaves( B, C ). An alternative input is the source category B and two defining records rec_images_of_objects and rec_images_of_morphisms of F. Another alternative input is the source category B and two defining lists images_of_objects and images_of_morphisms of F. The order of their entries must correspond to that of the vertices and arrows of the underlying quiver.

For the convenience of the user the following input is also valid: If images_of_objects is a list of nonnegative integers, images_of_morphisms is a list of matrices, and \(k:=\) CommutativeRingOfLinearCategory( B ) is a field then the two lists are interpreted as objects and morphisms in a matrix category or a category of rows over \(k\), respectively.

2.1-3 CreatePreSheafMorphismByValues
‣ CreatePreSheafMorphismByValues( arg1, arg2, arg3, arg4 )( operation )
‣ CreatePreSheafMorphism( eta )( attribute )
‣ CreatePreSheafMorphism( U, e, V )( operation )
‣ CreatePreSheafMorphism( U, e, V )( operation )
‣ CreatePreSheafMorphismByFunction( arg1, arg2, arg3 )( operation )

Returns: a morphism in a CAP category

Turn the natrual transformation eta:\(F \to G\) into a morphism U := AsObjectInFunctorCategory( F ) \(\to\) V := AsObjectInFunctorCategory( G ) in the category of functors Hom := Hom( B, C ), where B := Source( F ) = Source( G ) and C := Range( F ) = Range( G ).

An alternative input is the triple (U, e, V), where e is a defining record of eta.

Another alternative input is the triple (U, e, V), where e is a defining list of eta.

2.1-4 CoYonedaLemma
‣ CoYonedaLemma( F )( attribute )

2.1-5 SomeDiagramOfRepresentables
‣ SomeDiagramOfRepresentables( F )( attribute )

2.1-6 CategoryOfInternalCategories
‣ CategoryOfInternalCategories( C )( attribute )

Construct the category of categories internal to the monoidal or cartesian category C. The output the full subcategory of the subcategory of functors from the SimplicialCategoryTruncatedInDegree(2) into C for which each such functor is the nerve truncated in degree \(2\) of a category internal to C.

2.2 Attributes

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

2.2-2 Range
‣ Range( PSh )( attribute )

2.2-3 Source
‣ Source( F )( attribute )

Returns: a CAP category

The source of the presheaf F.

2.2-4 Range
‣ Range( F )( attribute )

Returns: a CAP category

The target of the presheaf F.

2.2-5 ValuesOnAllObjects
‣ ValuesOnAllObjects( eta )( attribute )

Returns: a list

Returns the values of the presheaf morphism eta on all objects of the source category of presheaf category PSh.

The 2-cell underlying the functor object F_or_eta.

2.2-6 UnderlyingCapTwoCategoryCell
‣ UnderlyingCapTwoCategoryCell( F_or_eta )( attribute )

Returns: a CAP functor or natural transformation

2.2-7 YonedaEmbedding
‣ YonedaEmbedding( B )( attribute )

Returns: a CAP functor

2.2-8 YonedaEmbeddingOfSourceCategory
‣ YonedaEmbeddingOfSourceCategory( PSh )( attribute )

Returns: a CAP functor

2.2-9 ImageOfYonedaEmbeddingOfSource
‣ ImageOfYonedaEmbeddingOfSource( PSh )( attribute )

Returns: a CAP category

Returns the full subcategory of PSh generated by the values of the Yoneda embedding on the objects of Source(PSh).

2.2-10 SimpleObjects
‣ SimpleObjects( PSh )( attribute )

Returns: a list of objects

The input is a category of presheaves PSh of an admissible \(k\)-algebroid for some field \(k\). The output is the list of simple objects in PSh.

gap> q := RightQuiver( "q(4)[x:1->1,a:1->2,b:2->4,c:1->3,d:3->4,y:4->4]" );
q(4)[x:1->1,a:1->2,b:2->4,c:1->3,d:3->4,y:4->4]
gap> F := FreeCategory( q );
FreeCategory( RightQuiver( "q(4)[x:1->1,a:1->2,b:2->4,c:1->3,d:3->4,
y:4->4]" ) )
gap> k := HomalgFieldOfRationals( );
Q
gap> kF := k[F];
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[x:1->1,a:1->2,b:2->4,
c:1->3,d:3->4,y:4->4]" ) ) )
gap> A := kF / [ kF.x^3, kF.y^2 ];
Algebroid( Q, FreeCategory( RightQuiver( "q(4)[x:1->1,a:1->2,b:2->4,
c:1->3,d:3->4,y:4->4]" ) ) ) / relations
gap> PSh := PreSheaves( A );
PreSheaves( Algebroid( Q, FreeCategory( RightQuiver( "q(4)[x:1->1,
a:1->2,b:2->4,c:1->3,d:3->4,y:4->4]" ) ) ) / relations, Rows( Q ) )
gap> P := PSh.4;
<(1)->12, (2)->2, (3)->2, (4)->2; (x)->12x12, (a)->2x12, (b)->2x2,
(c)->2x12, (d)->2x2, (y)->2x2>
gap> IsProjective( P );
true
gap> Display( P );
Image of <(1)>:
A row module over Q of rank 12

Image of <(2)>:
A row module over Q of rank 2

Image of <(3)>:
A row module over Q of rank 2

Image of <(4)>:
A row module over Q of rank 2

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

Matrix:
[ [  0,  0,  1,  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,  0,  1,  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,  1,  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,  0 ],
  [  0,  0,  0,  0,  0,  0,  0,  0,  0,  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,  1 ],
  [  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 ],
  [  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 ] ]

Range:
A row module over Q of rank 12

A morphism in Rows( Q )

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

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

Range:
A row module over Q of rank 12

A morphism in Rows( Q )

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

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

Range:
A row module over Q of rank 2

A morphism in Rows( Q )

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

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

Range:
A row module over Q of rank 12

A morphism in Rows( Q )

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

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

Range:
A row module over Q of rank 2

A morphism in Rows( Q )

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

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

Range:
A row module over Q of rank 2

A morphism in Rows( Q )

An object in PreSheaves( Algebroid( Q, FreeCategory( RightQuiver( "q(4)[x:1->1,
a:1->2,b:2->4,c:1->3,d:3->4,y:4->4]" ) ) ) / relations, Rows( Q ) ) given by
the above data
gap> CP := CreateComplex( ComplexesCategoryByCochains( PSh ), P, 0 );
<An object in Complexes category by cochains( PreSheaves( Algebroid( Q,
FreeCategory( RightQuiver( "q(4)[x:1->1,a:1->2,b:2->4,c:1->3,d:3->4,y:4->4]" ) ) )
/ relations, Rows( Q ) ) ) supported on the interval [ 0 .. 0 ]>
gap> I_CP := InjectiveResolution( CP, true );
<An object in Complexes category by cochains( PreSheaves( Algebroid( Q,
FreeCategory( RightQuiver( "q(4)[x:1->1,a:1->2,b:2->4,c:1->3,d:3->4,y:4->4]" ) ) )
/ relations, Rows( Q ) ) ) supported on the interval [ 0 .. 1 ]>
gap> IsWellDefined( I_CP ) and CohomologySupport( I_CP ) = [ 0 ];
true
gap> q := QuasiIsomorphismFromProjectiveResolution( CP, true );;
gap> IsWellDefined( q ) and IsQuasiIsomorphism( q );
true

2.2-11 NerveTruncatedInDegree2
‣ NerveTruncatedInDegree2( B )( attribute )

Returns: a presheaf

The input is a category B with finitely many objects equipped with a homomorphism structure with values in a finite complete and finite cocomplete category H. The output is the nerve of B truncated in degree \(2\), as an object in the category of presheaves on SimplicialCategoryTruncatedInDegree(\(2\)) with values in H.

We compute the nerve of the full subcategory of the simplicial category \(\Delta\) on the objects \([0], [1], [2]\).

gap> Delta2 := SimplicialCategoryTruncatedInDegree( 2 );
FreeCategory( RightQuiver(
  "Delta(C0,C1,C2)[id:C1->C0,s:C0->C1,t:C0->C1,
                   is:C2->C1,it:C2->C1,
                   ps:C1->C2,pt:C1->C2,mu:C1->C2]" ) ) / relations
gap> RelationsOfFpCategory( Delta2 );
[ [ (s*id), (C0) ], [ (t*id), (C0) ],
  [ (ps*is), (C1) ], [ (pt*it), (C1) ],
  [ (is*id), (it*id) ], [ (pt*is), (id*t) ],
  [ (ps*it), (id*s) ], [ (s*pt), (t*ps) ],
  [ (s*mu), (s*ps) ], [ (t*mu), (t*pt) ],
  [ (mu*is), (C1) ], [ (mu*it), (C1) ] ]
gap> Size( Delta2 );
31
gap> N := NerveTruncatedInDegree2( Delta2 );
<An object in PreSheaves( FreeCategory( RightQuiver(
  "Delta(C0,C1,C2)[id:C1->C0,s:C0->C1,t:C0->C1,
                   is:C2->C1,it:C2->C1,
                   ps:C1->C2,pt:C1->C2,mu:C1->C2]" ) ) / relations,
 SkeletalFinSets )>
gap> IsWellDefined( N );
true
gap> N.C0;
|3|
gap> Display( N.C0 );
{ 0, 1, 2 }
gap> N.C1;
|31|
gap> Display( N.C1 );
{ 0,..., 30 }
gap> N.C2;
|393|
gap> Display( N.C2 );
{ 0,..., 392 }
gap> N.id;
|3| → |31|
gap> Display( N.id );
{ 0, 1, 2 } ⱶ[ 0, 5, 21 ]→ { 0,..., 30 }
gap> IntCat := CategoryOfInternalCategories(
>                   RangeCategoryOfHomomorphismStructure( Delta2 ) );
FullSubcategoryByObjectMembershipFunction(
PreSheaves( FreeCategory( RightQuiver(
  "Delta(C0,C1,C2)[id:C1->C0,s:C0->C1,t:C0->C1,
                   is:C2->C1,it:C2->C1,
                   ps:C1->C2,pt:C1->C2,mu:C1->C2]" ) ) / relations,
SkeletalFinSets ), ObjectMembershipFunction )
gap> IsWellDefined( N / IntCat );
true

We compute the nerve of the full subcategory of the simplicial category \(\Delta\) on the objects \([0], [1], [2]\).

gap> Delta2 := CategoryFromNerveData( SimplicialCategoryTruncatedInDegree( 2 ) );
FreeCategory( RightQuiver(
  "Delta(C0,C1,C2)[id:C1->C0,s:C0->C1,t:C0->C1,
                   is:C2->C1,it:C2->C1,
                   ps:C1->C2,pt:C1->C2,mu:C1->C2]" ) ) / relations
gap> N := NerveTruncatedInDegree2( Delta2 );
<An object in PreSheaves( FreeCategory( RightQuiver(
  "Delta(C0,C1,C2)[id:C1->C0,s:C0->C1,t:C0->C1,
                   is:C2->C1,it:C2->C1,
                   ps:C1->C2,pt:C1->C2,mu:C1->C2]" ) ) / relations,
 SkeletalFinSets )>
gap> IsWellDefined( N );
true
gap> N.C0;
|3|
gap> Display( N.C0 );
{ 0, 1, 2 }
gap> N.C1;
|31|
gap> Display( N.C1 );
{ 0,..., 30 }
gap> N.C2;
|393|
gap> Display( N.C2 );
{ 0,..., 392 }
gap> N.id;
|3| → |31|
gap> Display( N.id );
{ 0, 1, 2 } ⱶ[ 0, 5, 21 ]→ { 0,..., 30 }

2.2-12 SievesOfPathsToTruth
‣ SievesOfPathsToTruth( iota )( attribute )

Returns: a monomorphisms in a Hom-category of functors

The input is a monomorphism iota:\(Q \to P\) in the category of presheaves with values in RangeCategoryOfHomomorphismStructure(\(C\)) on the finitely presented category \(C:=\)(Source(\(P\))) with finite \(\mathrm{Hom}\)-sets. The output is the morphism from \(P\) to the SieveFunctor(\(C\)) mapping for each \(c \in C\) the element \(x \in P(c)\) to its "paths to truth" \(f: a \to c\) translating \(x\) into \(f(x) \in Q(a) \subseteq P(a)\).

2.3 Operations

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

Returns: a CAP object

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

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

Returns: a CAP morphism

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

2.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).

2.4 GAP Categories

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

Returns: true or false

The GAP category of a presheaf category.

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

Returns: true or false

The GAP category of cells in a presheaf category.

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

Returns: true or false

The GAP category of objects in a presheaf category.

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

Returns: true or false

The GAP category of morphisms in a presheaf category.

2.4-5 IsPreSheafCategoryOfFpEnrichedCategory
‣ IsPreSheafCategoryOfFpEnrichedCategory( category )( filter )

Returns: true or false

The GAP category of a presheaf category of a finitely presented enriched category.

2.4-6 IsCellInPreSheafCategoryOfFpEnrichedCategory
‣ IsCellInPreSheafCategoryOfFpEnrichedCategory( cell )( filter )

Returns: true or false

The GAP category of cells in a presheaf category of a finitely presented enriched category.

2.4-7 IsObjectInPreSheafCategoryOfFpEnrichedCategory
‣ IsObjectInPreSheafCategoryOfFpEnrichedCategory( obj )( filter )

Returns: true or false

The GAP category of objects in a presheaf category of a finitely presented enriched category.

2.4-8 IsMorphismInPreSheafCategoryOfFpEnrichedCategory
‣ IsMorphismInPreSheafCategoryOfFpEnrichedCategory( mor )( filter )

Returns: true or false

The GAP category of morphisms in a presheaf category of a finitely presented enriched category.

2.5 Global variables

2.5-1 CAP_INTERNAL_METHOD_NAME_LIST_FOR_PRESHEAF_CATEGORY
‣ CAP_INTERNAL_METHOD_NAME_LIST_FOR_PRESHEAF_CATEGORY( global variable )

2.5-2 CAP_INTERNAL_METHOD_NAME_LIST_FOR_MONOIDAL_PRESHEAF_CATEGORY
‣ CAP_INTERNAL_METHOD_NAME_LIST_FOR_MONOIDAL_PRESHEAF_CATEGORY( global variable )

2.5-3 CAP_INTERNAL_METHOD_NAME_LIST_FOR_MONOIDAL_PRESHEAF_CATEGORY_WITH_DUALS
‣ CAP_INTERNAL_METHOD_NAME_LIST_FOR_MONOIDAL_PRESHEAF_CATEGORY_WITH_DUALS( global variable )

2.6 Examples

2.6-1 The subobject classifier

The subobject classifier of the PreSheaves\((C, H)\), where \(H\):=RangeCategoryOfHomomorphismStructure(\(C\)) is the functor of sieves, mapping each object \(c \in C^\mathrm{op}\) to the set of subobjects of the representable functor \(\mathrm{Hom}_C(-,c)\).

gap> q := RightQuiver( "q(1)[a:1->1]" );
q(1)[a:1->1]
gap> Fq := FreeCategory( q );
FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
gap> M0 := Fq / [ [ Fq.a^3, Fq.1 ] ];
FreeCategory( RightQuiver( "q(1)[a:1->1]" ) ) / [ a*a*a = 1 ]
gap> PShM0 := PreSheaves( M0 );
PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = 1 ], SkeletalFinSets )
gap> Omega0 := SubobjectClassifier( PShM0 );
<An object in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
 / [ a*a*a = 1 ], SkeletalFinSets )>
gap> Display( Omega0 );
Image of <(1)>:
{ 0, 1 }

Image of (1)-[(a)]->(1):
{ 0, 1 } ⱶ[ 0, 1 ]→ { 0, 1 }

An object in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = 1 ], SkeletalFinSets )
given by the above data
gap> e := Exponential( Omega0, Omega0 );
<An object in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
 / [ a*a*a = 1 ], SkeletalFinSets )>
gap> Display( e );
Image of <(1)>:
{ 0,..., 3 }

Image of (1)-[(a)]->(1):
{ 0,..., 3 } ⱶ[ 0, 1, 2, 3 ]→ { 0,..., 3 }

An object in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = 1 ], SkeletalFinSets )
given by the above data
gap> ev0 := CartesianEvaluationMorphism( Omega0, Omega0 );
<A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
 / [ a*a*a = 1 ], SkeletalFinSets )>
gap> Display( ev0 );
Image of <(1)>:
{ 0,..., 7 } ⱶ[ 0, 1, 0, 1, 0, 0, 1, 1 ]→ { 0, 1 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = 1 ], SkeletalFinSets )
given by the above data
gap> M1 := Fq / [ [ Fq.a^3, Fq.a ] ];
FreeCategory( RightQuiver( "q(1)[a:1->1]" ) ) / [ a*a*a = a ]
gap> PShM1 := PreSheaves( M1 );
PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a ], SkeletalFinSets )
gap> Omega1 := SubobjectClassifier( PShM1 );
<An object in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
 / [ a*a*a = a ], SkeletalFinSets )>
gap> Display( Omega1 );
Image of <(1)>:
{ 0, 1, 2 }

Image of (1)-[(a)]->(1):
{ 0, 1, 2 } ⱶ[ 0, 2, 2 ]→ { 0, 1, 2 }

An object in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a ], SkeletalFinSets )
given by the above data
gap> M2 := Fq / [ [ Fq.a^3, Fq.a^2 ] ];
FreeCategory( RightQuiver( "q(1)[a:1->1]" ) ) / [ a*a*a = a*a ]
gap> PShM2 := PreSheaves( M2 );
PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
gap> Omega2 := SubobjectClassifier( PShM2 );
<An object in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
 / [ a*a*a = a*a ], SkeletalFinSets )>
gap> Display( Omega2 );
Image of <(1)>:
{ 0,..., 3 }

Image of (1)-[(a)]->(1):
{ 0,..., 3 } ⱶ[ 0, 2, 3, 3 ]→ { 0,..., 3 }

An object in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
given by the above data
gap> true2 := TruthMorphismOfTrue( PShM2 );
<A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
 / [ a*a*a = a*a ], SkeletalFinSets )>
gap> Display( true2 );
Image of <(1)>:
{ 0 } ⱶ[ 3 ]→ { 0,..., 3 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
given by the above data
gap> false2 := TruthMorphismOfFalse( PShM2 );
<A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
 / [ a*a*a = a*a ], SkeletalFinSets )>
gap> Display( false2 );
Image of <(1)>:
{ 0 } ⱶ[ 0 ]→ { 0,..., 3 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
given by the above data
gap> iota := CreatePreSheafMorphism( EmbeddingOfSieveFunctor( M2 ) );
<A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
 / [ a*a*a = a*a ], SkeletalFinSets )>
gap> Display( iota );
Image of <(1)>:
{ 0,..., 3 } ⱶ[ 0, 4, 6, 7 ]→ { 0,..., 7 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
given by the above data
gap> Range( iota );
<An object in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
 / [ a*a*a = a*a ], SkeletalFinSets )>
gap> Display( Range( iota ) );
Image of <(1)>:
{ 0,..., 7 }

Image of (1)-[(a)]->(1):
{ 0,..., 7 } ⱶ[ 0, 0, 1, 1, 6, 6, 7, 7 ]→ { 0,..., 7 }

An object in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
given by the above data
gap> t2 := SubobjectOfClassifyingMorphism( true2 );
<A monomorphism in PreSheaves( FreeCategory(
 RightQuiver( "q(1)[a:1->1]" ) ) / [ a*a*a = a*a ], SkeletalFinSets )>
gap> Display( t2 );
Image of <(1)>:
{ 0 } ⱶ[ 0 ]→ { 0 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
given by the above data
gap> f2 := SubobjectOfClassifyingMorphism( false2 );
<A monomorphism in PreSheaves( FreeCategory(
 RightQuiver( "q(1)[a:1->1]" ) ) / [ a*a*a = a*a ], SkeletalFinSets )>
gap> Display( f2 );
Image of <(1)>:
∅ ⱶ[  ]→ { 0 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
given by the above data
gap> H := HomStructure( Omega2, Omega2 );
|8|
gap> Display( H );
{ 0,..., 7 }
gap> T2 := DistinguishedObjectOfHomomorphismStructure( PShM2 );
|1|
gap> L := List( H, i ->
>        InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism(
>                Omega2, Omega2, MapOfFinSets( T2, [ i ], H ) ) );;
gap> Length( L );
8
gap> Perform( L, Display );
Image of <(1)>:
{ 0,..., 3 } ⱶ[ 0, 0, 0, 0 ]→ { 0,..., 3 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
given by the above data
Image of <(1)>:
{ 0,..., 3 } ⱶ[ 3, 0, 0, 0 ]→ { 0,..., 3 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
given by the above data
Image of <(1)>:
{ 0,..., 3 } ⱶ[ 0, 1, 2, 3 ]→ { 0,..., 3 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
given by the above data
Image of <(1)>:
{ 0,..., 3 } ⱶ[ 3, 1, 2, 3 ]→ { 0,..., 3 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
given by the above data
Image of <(1)>:
{ 0,..., 3 } ⱶ[ 0, 2, 3, 3 ]→ { 0,..., 3 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
given by the above data
Image of <(1)>:
{ 0,..., 3 } ⱶ[ 0, 3, 3, 3 ]→ { 0,..., 3 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
given by the above data
Image of <(1)>:
{ 0,..., 3 } ⱶ[ 3, 2, 3, 3 ]→ { 0,..., 3 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
given by the above data
Image of <(1)>:
{ 0,..., 3 } ⱶ[ 3, 3, 3, 3 ]→ { 0,..., 3 }

A morphism in PreSheaves( FreeCategory( RightQuiver( "q(1)[a:1->1]" ) )
/ [ a*a*a = a*a ], SkeletalFinSets )
given by the above data

2.6-2 PreSheaves of non-f.p. categories (experimental)
 [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 15 Ind

generated by GAPDoc2HTML