‣ IsFinitelyPresentedCategory ( C ) | ( property ) |
Returns: true
or false
The (evil) property of C being a finitely presented.
‣ SetOfGeneratingMorphismsOfCategory ( C ) | ( attribute ) |
Returns: a list of a CAP category morphisms
Return a list of generating morphisms of the finitely generated category C.
‣ 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
.
‣ Size ( C ) | ( attribute ) |
Returns: a nonnegative integer
Return the number of morphisms in the finite category C.
‣ DefiningTripleOfUnderlyingQuiver ( C ) | ( attribute ) |
Returns: a pair
The defining triple of the quiver underlying the finitely presented category C.
‣ DataTablesOfCategory ( C ) | ( attribute ) |
Returns: a pair of lists
The data tables of the category C.
‣ NerveTruncatedInDegree2Data ( C ) | ( attribute ) |
Returns: a pair consisting of a triple and an 8-tuple
The nerve data of the category C.
‣ 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 )
‣ IndicesOfGeneratingMorphismsFromHomStructure ( C ) | ( attribute ) |
Returns: a list of integers
The normalized indices of the generating morphisms of the finite category C.
‣ OppositeFiniteCategory ( C ) | ( attribute ) |
Returns: a CAP category
The opposite category of a finite category C.
‣ 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}\).
‣ 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)\).
‣ 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
‣ 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.
‣ 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
generated by GAPDoc2HTML