Goto Chapter: Top 1 2 3 4 5 6 7 8 Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

3 Tools
 3.1 Properties
 3.2 Attributes
 3.3 Operations

3 Tools

3.1 Properties

3.1-1 IsFinitelyPresentedCategory
‣ IsFinitelyPresentedCategory( C )( property )

Returns: true or false

The (evil) property of C being a finitely presented.

3.2 Attributes

3.2-1 SetOfGeneratingMorphismsOfCategory
‣ SetOfGeneratingMorphismsOfCategory( C )( attribute )

Returns: a list of a CAP category morphisms

Return a list of generating morphisms of the finitely generated category C.

3.2-2 SetOfGeneratingMorphisms
‣ SetOfGeneratingMorphisms( C )( attribute )

Returns: a list of a CAP category morphisms

Return a list of generating morphisms of the finitely generated category C. The corresponding CAP operation is SetOfGeneratingMorphismsOfCategory.

3.2-3 Size
‣ Size( C )( attribute )

Returns: a nonnegative integer

Return the number of morphisms in the finite category C.

3.3 Operations

3.3-1 DefiningTripleOfUnderlyingQuiver
‣ DefiningTripleOfUnderlyingQuiver( C )( attribute )

Returns: a pair

The defining triple of the quiver underlying the finitely presented category C.

3.3-2 DataTablesOfCategory
‣ DataTablesOfCategory( C )( attribute )

Returns: a pair of lists

The data tables of the category C.

3.3-3 NerveTruncatedInDegree2Data
‣ NerveTruncatedInDegree2Data( C )( attribute )

Returns: a pair consisting of a triple and an 8-tuple

The nerve data of the category C.

3.3-4 NerveTruncatedInDegree2AsFunctor
‣ NerveTruncatedInDegree2AsFunctor( C )( attribute )

Returns: a CAP functor

The input is a finitely presented category C equipped with a homomorphism structure with values in the skeletal category SkeletalFinSets of finite sets. The output is the nerve of B truncated in degree \(2\), as a presheaf on SimplicialCategoryTruncatedInDegree(\(2\)) with values in SkeletalFinSets.

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

gap> LoadPackage( "FpCategories", false );
true
gap> Delta2 := SimplicialCategoryTruncatedInDegree( 2 );
PathCategory( FinQuiver(
  "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]" ) )
/ [ s⋅id = id(C0), t⋅id = id(C0), ps⋅is = id(C1), ... ]
gap> DefiningRelations( Delta2 );
[ [ s⋅id:(C0) -≻ (C0), id(C0):(C0) -≻ (C0) ],
  [ t⋅id:(C0) -≻ (C0), id(C0):(C0) -≻ (C0) ],
  [ ps⋅is:(C1) -≻ (C1), id(C1):(C1) -≻ (C1) ],
  [ pt⋅it:(C1) -≻ (C1), id(C1):(C1) -≻ (C1) ],
  [ is⋅id:(C2) -≻ (C0), it⋅id:(C2) -≻ (C0) ],
  [ pt⋅is:(C1) -≻ (C1), id⋅t:(C1) -≻ (C1) ],
  [ ps⋅it:(C1) -≻ (C1), id⋅s:(C1) -≻ (C1) ],
  [ s⋅pt:(C0) -≻ (C2), t⋅ps:(C0) -≻ (C2) ],
  [ s⋅mu:(C0) -≻ (C2), s⋅ps:(C0) -≻ (C2) ],
  [ t⋅mu:(C0) -≻ (C2), t⋅pt:(C0) -≻ (C2) ],
  [ mu⋅is:(C1) -≻ (C1), id(C1):(C1) -≻ (C1) ],
  [ mu⋅it:(C1) -≻ (C1), id(C1):(C1) -≻ (C1) ] ]
gap> Size( Delta2 );
31
gap> N := NerveTruncatedInDegree2AsFunctor( Delta2 );
Functor from PathCategory( FinQuiver(
  "Delta_op(C0,C1,C2)[id:C0-≻C1,s:C1-≻C0,t:C1-≻C0,
                      is:C1-≻C2,it:C1-≻C2,ps:C2-≻C1,pt:C2-≻C1,mu:C2-≻C1]" ) )
/ [ id⋅s = id(C0), id⋅t = id(C0), is⋅ps = id(C1), ... ] -> SkeletalFinSets
gap> Delta2op := SourceOfFunctor( N );
PathCategory( FinQuiver(
  "Delta_op(C0,C1,C2)[id:C0-≻C1,s:C1-≻C0,t:C1-≻C0,
                      is:C1-≻C2,it:C1-≻C2,ps:C2-≻C1,pt:C2-≻C1,mu:C2-≻C1]" ) )
/ [ id⋅s = id(C0), id⋅t = id(C0), is⋅ps = id(C1), ... ]
gap> N( Delta2op.C0 );
|3|
gap> Display( N( Delta2op.C0 ) );
{ 0, 1, 2 }
gap> N( Delta2op.C1 );
|31|
gap> Display( N( Delta2op.C1 ) );
{ 0,..., 30 }
gap> N( Delta2op.C2 );
|393|
gap> Display( N( Delta2op.C2 ) );
{ 0,..., 392 }
gap> N( Delta2op.id );
|3| → |31|
gap> Display( N( Delta2op.id ) );
{ 0, 1, 2 } ⱶ[ 0, 5, 21 ]→ { 0,..., 30 }
gap> LoadPackage( "FunctorCategories", false );
true
gap> N := NerveTruncatedInDegree2( Delta2 );
<An object in PreSheaves( PathCategory( FinQuiver(
 "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]" ) )
 / [ s⋅id = id(C0), t⋅id = id(C0), ps⋅is = id(C1), ... ], SkeletalFinSets )>
gap> IntCat := CategoryOfInternalCategories(
>                   RangeCategoryOfHomomorphismStructure( Delta2 ) );
FullSubcategoryByObjectMembershipFunction(
PreSheaves( PathCategory( FinQuiver(
  "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]" ) )
/ [ s⋅id = id(C0), t⋅id = id(C0), ps⋅is = id(C1), ... ], SkeletalFinSets ),
ObjectMembershipFunction )

3.3-5 IndicesOfGeneratingMorphismsFromHomStructure
‣ IndicesOfGeneratingMorphismsFromHomStructure( C )( attribute )

Returns: a list of integers

The normalized indices of the generating morphisms of the finite category C.

3.3-6 OppositeFiniteCategory
‣ OppositeFiniteCategory( C )( attribute )

Returns: a CAP category

The opposite category of a finite category C.

3.3-7 YonedaFibrationAsNaturalTransformation
‣ YonedaFibrationAsNaturalTransformation( B )( attribute )

Returns: a CAP natural transformation

The input is a finitely presented category B. The output is a natural morphism. Its source is the functor \(B \to H, c \mapsto \sqcup_{a\in B} \mathrm{Hom}(a,c), \psi \mapsto \sqcup_{a\in B} \mathrm{Hom}(a,\psi)\). Its targe is the constant functor of \(0\)-cells \(B \to H, c \mapsto B_0, \psi \mapsto \mathrm{id}_{B_0}\).

3.3-8 YonedaProjectionAsNaturalEpimorphism
‣ YonedaProjectionAsNaturalEpimorphism( B )( attribute )

Returns: a CAP natural transformation

The input is a finitely presented category B. The output is a natural epimorphism. Its source is the functor \(B \to H, c \mapsto \sqcup_{a,b\in B} \mathrm{Hom}(a,b) \times \mathrm{Hom}(b,c), \psi \mapsto \sqcup_{a,b\in B} \mathrm{Hom}(1_a,1_b) \times \mathrm{Hom}(b,\psi)\). Its target is the functor \(B \to H, c \mapsto \sqcup_{a\in B} \mathrm{Hom}(a,c), \psi \mapsto \sqcup_{a\in B} \mathrm{Hom}(a,\psi)\).

3.3-9 YonedaCompositionAsNaturalEpimorphism
‣ YonedaCompositionAsNaturalEpimorphism( B )( attribute )

Returns: a CAP natural transformation

The input is a finitely presented category B. The output is a natural epimorphism. Its source is the functor \(B \to H, c \mapsto \sqcup_{a,b\in B} \mathrm{Hom}(a,b) \times \mathrm{Hom}(b,c), \psi \mapsto \sqcup_{a,b\in B} \mathrm{Hom}(1_a,1_b) \times \mathrm{Hom}(b,\psi)\). Its target is the functor \(B \to H, c \mapsto \sqcup_{a\in B} \mathrm{Hom}(a,c), \psi \mapsto \sqcup_{a\in B} \mathrm{Hom}(a,\psi)\).

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

gap> Delta2 := SimplicialCategoryTruncatedInDegree( 2 );
PathCategory( FinQuiver(
  "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]" ) )
/ [ s⋅id = id(C0), t⋅id = id(C0), ps⋅is = id(C1), ... ]
gap> DefiningRelations( Delta2 );
[ [ s⋅id:(C0) -≻ (C0), id(C0):(C0) -≻ (C0) ],
  [ t⋅id:(C0) -≻ (C0), id(C0):(C0) -≻ (C0) ],
  [ ps⋅is:(C1) -≻ (C1), id(C1):(C1) -≻ (C1) ],
  [ pt⋅it:(C1) -≻ (C1), id(C1):(C1) -≻ (C1) ],
  [ is⋅id:(C2) -≻ (C0), it⋅id:(C2) -≻ (C0) ],
  [ pt⋅is:(C1) -≻ (C1), id⋅t:(C1) -≻ (C1) ],
  [ ps⋅it:(C1) -≻ (C1), id⋅s:(C1) -≻ (C1) ],
  [ s⋅pt:(C0) -≻ (C2), t⋅ps:(C0) -≻ (C2) ],
  [ s⋅mu:(C0) -≻ (C2), s⋅ps:(C0) -≻ (C2) ],
  [ t⋅mu:(C0) -≻ (C2), t⋅pt:(C0) -≻ (C2) ],
  [ mu⋅is:(C1) -≻ (C1), id(C1):(C1) -≻ (C1) ],
  [ mu⋅it:(C1) -≻ (C1), id(C1):(C1) -≻ (C1) ] ]
gap> Size( Delta2 );
31
gap> Ymu := YonedaCompositionAsNaturalEpimorphism( Delta2 );
Natural transformation from
Functor from PathCategory( FinQuiver(
  "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]" ) )
/ [ s⋅id = i d(C0), t⋅id = id(C0), ps⋅is = id(C1), ... ] -> SkeletalFinSets
->
Functor from PathCategory( FinQuiver(
  "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]" ) )
/ [ s⋅id = i d(C0), t⋅id = id(C0), ps⋅is = id(C1), ... ] -> SkeletalFinSets
gap> Ymu := YonedaProjectionAsNaturalEpimorphism( Delta2 );
Natural transformation from
Functor from PathCategory( FinQuiver(
  "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]" ) )
/ [ s⋅id = i d(C0), t⋅id = id(C0), ps⋅is = id(C1), ... ] -> SkeletalFinSets
->
Functor from PathCategory( FinQuiver(
  "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]" ) )
/ [ s⋅id = i d(C0), t⋅id = id(C0), ps⋅is = id(C1), ... ] -> SkeletalFinSets
gap> Ys := YonedaFibrationAsNaturalTransformation( Delta2 );
Natural transformation from
Functor from PathCategory( FinQuiver(
  "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]" ) )
/ [ s⋅id = i d(C0), t⋅id = id(C0), ps⋅is = id(C1), ... ] -> SkeletalFinSets
->
Functor from PathCategory( FinQuiver(
  "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]" ) )
/ [ s⋅id = i d(C0), t⋅id = id(C0), ps⋅is = id(C1), ... ] -> SkeletalFinSets

3.3-10 NaturalTransformation
‣ NaturalTransformation( eta, F, G )( operation )
‣ NaturalTransformation( F, eta, G )( operation )

Returns: a CAP natural transformation

Construct, using the record (or list) of images eta, a natural transformation from the functor F to the parallel functor G.

3.3-11 QuiverStringOfDigraph
‣ QuiverStringOfDigraph( D, name_of_quiver, prefix_of_name_of_morphisms )( operation )

Returns: a string

Return a string encoding the underlying quiver of the digraph D. The string name_of_quiver will be the name of the underlying quiver. The string prefix_of_name_of_morphisms will be the prefix of the name all morphisms.

gap> LoadPackage( "FpCategories", false );
true
gap> q := "q(1,2,3,4)[m_1_2:1->2,m_1_3:1->3,m_2_4:2->4,m_3_4:3->4]";;
gap> F := PathCategory( FinQuiver( q ) );
PathCategory( FinQuiver(
"q(1,2,3,4)[m_1_2:1-≻2,m_1_3:1-≻3,m_2_4:2-≻4,m_3_4:3-≻4]" ) )
gap> digraph := DigraphReflexiveTransitiveReduction(
>                    Digraph( SetOfObjects( F ), IsHomSetInhabited ) );
<immutable digraph with 4 vertices, 4 edges>
gap> QuiverStringOfDigraph( digraph, "q", "m" ) = q;
true
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 Ind

generated by GAPDoc2HTML