‣ IsPathCategory ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of path categories.
‣ IsPathCategoryObject ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of objects in path categories.
‣ IsPathCategoryMorphism ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of morphisms in path categories.
‣ PathCategory ( q ) | ( operation ) |
Returns: a CAP category
The input is a CAP quiver q. The output is the path category of q, i.e., the category whose objects are the objects of q and whose morphisms are lists of morphisms in q, in which the target of any morphism is equal to the source of the next morphism.
‣ ObjectConstructor ( C, i ) | ( operation ) |
Returns: a CAP category object
The input is a path category C of CAP quiver q and a positive integer i. The output is the i'th object in C.
‣ MorphismConstructor ( C, s, l, support, t ) | ( operation ) |
Returns: a CAP category object
The input is a path category C of CAP quiver q, two objects s, t a nonnegative integer length and a list support of length l consisting of morphisms in q where the target of each morphism is equal to the source of the next morphism. The output is the morphism in C whose length is l and whose support is support.
‣ AssignSetOfObjects ( C[, str] ) | ( operation ) |
Returns: nothing
Assigns the objects of C to global variables. Names of the variables are the concatenation of str with the labels of the objects. The default value of str is the empty string.
‣ AssignSetOfGeneratingMorphisms ( C[, str] ) | ( operation ) |
Returns: nothing
Assigns the generating morphisms of C to global variables. Names of the variables are the concatenation of str with the labels of the generating morphisms. The default value of str is the empty string.
‣ UnderlyingQuiver ( C ) | ( attribute ) |
Returns: a list of CAP category objects
Returns the defining quiver of the path category C.
‣ ObjectIndex ( v ) | ( attribute ) |
Returns: a positive integer
Returns the index of the object v.
‣ ObjectLabel ( v ) | ( attribute ) |
Returns: a string
Returns the label of the object v.
‣ MorphismLength ( alpha ) | ( attribute ) |
Returns: a positive integer
Returns the length of alpha.
‣ MorphismSupport ( alpha ) | ( attribute ) |
Returns: a dense-list of CAP quiver morphisms
Returns the list of morphisms in the underlying quiver which defines alpha.
‣ MorphismIndices ( alpha ) | ( attribute ) |
Returns: a dense-list of positive integers
Returns the indices of the morphisms in MorphismSupport
(alpha).
‣ MorphismLabel ( alpha ) | ( attribute ) |
Returns: a positive integer
Returns the label of the morphism alpha.
‣ IsFinitePathCategory ( C ) | ( property ) |
Returns: a boolean
Returns whether C can be enriched over the category of finite sets.
‣ HasFiniteNumberOfMacaulayMorphisms ( C, mors ) | ( operation ) |
Returns: a boolean
The input is a path category C and a list of morphisms mors in C (mors is usually the leading terms of a Groebner basis). The output is whether almost all morphisms of C are multiples of elements in mors. In other words, whether the number of morphisms that are not multiples of elements in mors (i.e., Macaulay monomials) is finite.
‣ MacaulayMorphisms ( C, mors ) | ( operation ) |
Returns: a boolean
The input is a path category C and a list of morphisms mors in C (mors is usually the leading terms of a Groebner basis). The output is the Macaulay monomials with respect to mors.
‣ GroebnerBasis ( C, rels ) | ( operation ) |
Returns: a dense list
The input is a path category C and a list rels consisting of pairs of parallel morphisms in C. The output is the Groebner basis of rels.
‣ ReducedGroebnerBasisWithGivenGroebnerBasis ( C, groebner_basis ) | ( operation ) |
Returns: a dense list
The input is a path category C and a Groebner basis groebner_basis consisting of pairs of parallel morphisms in C. The output is the reduced Groebner basis of groebner_basis.
‣ ReducedGroebnerBasis ( C, rels ) | ( operation ) |
Returns: a dense list
The input is a path category C and a list rels consisting of pairs of parallel morphisms in C. The output is the reduced Groebner basis of rels.
‣ IsDescendingForMorphisms ( C, f, g, admissible_order ) | ( operation ) |
Returns: a boolean
The input is a path category C, two parallel morphisms f, g and a string admissible_order which takes one of the following two values "Dp"
or "dp"
. The output is whether f \succ g with respect to the specified admissible order. "Dp"
stands for the left-length-lexicographic order under which f \succ_{\mathtt{Dp}} g if MorphismLength
(f) \succ MorphismLength
(g); or MorphismLength
(f)=MorphismLength
(g) and the first nonzero entry in MorphismIndices
(f)-MorphismIndices
(g) is negative. "dp"
stands for the right-length-lexicographic order under which f \succ_{\mathtt{dp}} g if MorphismLength
(f) \succ MorphismLength
(g); or MorphismLength
(f)=MorphismLength
(g) and the last nonzero entry in MorphismIndices
(f)-MorphismIndices
(g) is negative. For example, if the quiver of C is defined by the string "(*)[x:*->*,y:*->*]"
, then
x^2 \succ_{\mathtt{Dp}} xy \succ_{\mathtt{Dp}} yx \succ_{\mathtt{Dp}} y^2 \succ_{\mathtt{Dp}} x \succ_{\mathtt{Dp}} y \succ_{\mathtt{Dp}} \mathtt{id(*)}
x^2 \succ_{\mathtt{dp}} yx \succ_{\mathtt{dp}} xy \succ_{\mathtt{dp}} y^2 \succ_{\mathtt{dp}} x \succ_{\mathtt{dp}} y \succ_{\mathtt{dp}} \mathtt{id(*)}
‣ IsAscendingForMorphisms ( C, f, g, admissible_order ) | ( operation ) |
Returns: a boolean
The input is a path category C, two parallel morphisms f, g and a string admissible_order which takes one of the following two values "Dp"
or "dp"
. The output is whether f \prec g with respect to the specified admissible order.
‣ IsQuotientOfPathCategory ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of quotients of path categories.
‣ IsQuotientOfPathCategoryObject ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of objects in quotients path categories.
‣ IsQuotientOfPathCategoryMorphism ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of morphisms in quotients of path categories.
‣ QuotientCategory ( C, rels ) | ( operation ) |
Returns: a CAP category
Returns the quotient category of C by the two-sided ideal of morphisms generated by rels.
‣ DefiningRelations ( qC ) | ( attribute ) |
Returns: a dense list
Returns the generators of the underlying two-sided ideal of morphisms.
‣ GroebnerBasisOfDefiningRelations ( qC ) | ( attribute ) |
Returns: a dense list
Returns the reduced Groebner basis of the underlying two-sided ideal of morphisms.
‣ ObjectIndex ( obj ) | ( attribute ) |
Returns: an integer
Returns the index of the object.
‣ CanonicalRepresentative ( alpha ) | ( attribute ) |
Returns: a CAP morphism
The input is a morphism alpha in the quotient category qC of a path category C
. The output is a canonical representative of alpha in C
. Equal morphisms in qC have the same canonical representative.
gap> LoadPackage( "FpCategories", false ); true gap> str := > "q(0..5)[x:0->0,s:0->1,a:1->2,c:1->3,e:1->4,b:2->4,d:3->4,t:4->5,y:5->5]";; gap> q := FinQuiver( str ); FinQuiver( "q(0,1,2,3,4,5)[x:0-≻0,s:0-≻1,a:1-≻2,c:1-≻3,e:1-≻4,b:2-≻4,d:3-≻4, t:4-≻5,y:5-≻5]" ) gap> C := PathCategory( q ); PathCategory( FinQuiver( "q(0,1,2,3,4,5)[x:0-≻0,s:0-≻1,a:1-≻2,c:1-≻3,e:1-≻4, b:2-≻4,d:3-≻4,t:4-≻5,y:5-≻5]" ) ) gap> Display( C ); A CAP category with name PathCategory( FinQuiver( "q(0,1,2,3,4,5)[x:0-≻0,s:0-≻1, a:1-≻2,c:1-≻3,e:1-≻4,b:2-≻4,d:3-≻4,t:4-≻5,y:5-≻5]" ) ): 17 primitive operations were used to derive 32 operations for this category which algorithmically * IsObjectFiniteCategory gap> SetOfObjects( C ); [ (0), (1), (2), (3), (4), (5) ] gap> SetOfGeneratingMorphisms( C ); [ x:(0) -≻ (0), s:(0) -≻ (1), a:(1) -≻ (2), c:(1) -≻ (3), e:(1) -≻ (4), b:(2) -≻ (4), d:(3) -≻ (4), t:(4) -≻ (5), y:(5) -≻ (5) ] gap> C.5; (5) gap> ObjectIndex( C.5 ); 6 gap> C.id_5; id(5):(5) -≻ (5) gap> C.("id(5)"); id(5):(5) -≻ (5) gap> m := C.("x^2*s*a*b*t*y^2"); x^2⋅s⋅a⋅b⋅t⋅y^2:(0) -≻ (5) gap> m := C.("x^2sabty^2"); x^2⋅s⋅a⋅b⋅t⋅y^2:(0) -≻ (5) gap> IsWellDefined( m ); true gap> MorphismLength( m ); 8 gap> MorphismIndices( m ); [ 1, 1, 2, 3, 6, 8, 9, 9 ] gap> MorphismSupport( m ); [ x:(0) -≻ (0), x:(0) -≻ (0), s:(0) -≻ (1), a:(1) -≻ (2), b:(2) -≻ (4), t:(4) -≻ (5), y:(5) -≻ (5), y:(5) -≻ (5) ] gap> relations := [ [ C.x^5, C.x ], [ C.y^5, C.y^2 ] ];; gap> m = MorphismConstructor( C, > Source( m ), MorphismLength( m ), MorphismSupport( m ), Target( m ) ); true gap> qC := QuotientCategory( C, relations ); PathCategory( FinQuiver( "q(0,1,2,3,4,5)[x:0-≻0,s:0-≻1,a:1-≻2,c:1-≻3,e:1-≻4, b:2-≻4,d:3-≻4,t:4-≻5,y:5-≻5]" ) ) / [ x^5 = x, y^5 = y^2 ] gap> Display( qC ); A CAP category with name PathCategory( FinQuiver( "q(0,1,2,3,4,5)[x:0-≻0,s:0-≻1, a:1-≻2,c:1-≻3,e:1-≻4,b:2-≻4,d:3-≻4,t:4-≻5,y:5-≻5]" ) ) / [ x^5 = x, y^5 = y^2 ]: 27 primitive operations were used to derive 65 operations for this category which algorithmically * IsCategoryWithDecidableColifts * IsCategoryWithDecidableLifts * IsFiniteCategory * IsEquippedWithHomomorphismStructure gap> qC.0; (0) gap> ObjectIndex( qC.0 ); 1 gap> qC.x^7; [x^3]:(0) -≻ (0) gap> CanonicalRepresentative( qC.x^7 ); x^3:(0) -≻ (0) gap> HomomorphismStructureOnObjects( qC.0, qC.5 ); |75| gap> List( SetOfGeneratingMorphisms( qC ), IsMonomorphism ); [ false, true, true, true, true, true, true, true, false ] gap> List( SetOfGeneratingMorphisms( qC ), IsEpimorphism ); [ false, true, true, true, true, true, true, true, false ] gap> LoadPackage( "Algebroids", false ); true gap> k := HomalgFieldOfRationals(); Q gap> kC := k[C]; # or LinearClosure( k, C ); Q-LinearClosure( PathCategory( FinQuiver( "q(0,1,2,3,4,5)[x:0-≻0,s:0-≻1,a:1-≻2, c:1-≻3,e:1-≻4,b:2-≻4,d:3-≻4,t:4-≻5,y:5-≻5]" ) ) ) gap> kC.x + kC.x^2; 1*x^2 + 1*x:(0) -≻ (0) gap> kqC := k[qC]; Q-LinearClosure( PathCategory( FinQuiver( "q(0,1,2,3,4,5)[x:0-≻0,s:0-≻1,a:1-≻2, c:1-≻3,e:1-≻4,b:2-≻4,d:3-≻4,t:4-≻5,y:5-≻5]" ) ) / [ x^5 = x, y^5 = y^2 ] ) gap> HomomorphismStructureOnObjects( kqC.0, kqC.5 ); <A row module over Q of rank 75> gap> kqC.x + kqC.x^2; 1*[x^2] + 1*[x]:(0) -≻ (0) gap> List( SetOfGeneratingMorphisms( kqC ), IsMonomorphism ); [ false, true, true, true, true, true, true, true, false ] gap> List( SetOfGeneratingMorphisms( kqC ), IsEpimorphism ); [ false, true, true, true, true, true, true, true, false ] gap> homs := BasisOfExternalHom( kqC.0, kqC.5 );; gap> mor := 2 * homs[1] - 3 * homs[4] + homs[75]; 2*[x^4⋅s⋅a⋅b⋅t⋅y^4] - 3*[x^4⋅s⋅c⋅d⋅t⋅y^3] + 1*[s⋅e⋅t]:(0) -≻ (5) gap> EvalString( CellAsEvaluatableString( mor, [ "kqC", "qC", "C" ] ) ) = mor; true gap> A := AlgebroidFromDataTables( kqC ); Q-algebroid( {0,1,2,3,4,5}[x:0-≻0,s:0-≻1,a:1-≻2,c:1-≻3,e:1-≻4,b:2-≻4,d:3-≻4, t:4-≻5,y:5-≻5] ) defined by 6 objects and 9 generating morphisms gap> HomomorphismStructureOnObjects( A.0, A.5 ); <A row module over Q of rank 75> gap> A.x + A.x^2; <1*x^2 + 1*x:(0) -≻ (0)>
gap> LoadPackage( "Algebroids", false ); true gap> str := "q(0,1,2,3,4,5)[s:0->1,a:1->2,c:1->3,e:1->4,b:2->4,d:3->4,t:4->5]";; gap> quiver := FinQuiver( str ); FinQuiver( "q(0,1,2,3,4,5)[s:0-≻1,a:1-≻2,c:1-≻3,e:1-≻4,b:2-≻4,d:3-≻4,t:4-≻5]" ) gap> P := PathCategory( quiver ); PathCategory( FinQuiver( "q(0,1,2,3,4,5)[s:0-≻1,a:1-≻2,c:1-≻3,e:1-≻4,b:2-≻4, d:3-≻4,t:4-≻5]" ) ) gap> Display( P ); A CAP category with name PathCategory( FinQuiver( "q(0,1,2,3,4,5)[s:0-≻1,a:1-≻2, c:1-≻3,e:1-≻4,b:2-≻4,d:3-≻4,t:4-≻5]" ) ): 18 primitive operations were used to derive 65 operations for this category which algorithmically * IsCategoryWithDecidableColifts * IsCategoryWithDecidableLifts * IsFiniteCategory * IsEquippedWithHomomorphismStructure gap> HomStructure( P.0, P.5 ); |3| gap> k := HomalgFieldOfRationals( ); Q gap> kP := k[P]; Q-LinearClosure( PathCategory( FinQuiver( "q(0,1,2,3,4,5)[s:0-≻1,a:1-≻2,c:1-≻3, e:1-≻4,b:2-≻4,d:3-≻4,t:4-≻5]" ) ) ) gap> HomStructure( kP.0, kP.5 ); <A row module over Q of rank 3> gap> T := AlgebroidFromDataTables( kP ); Q-algebroid( {0,1,2,3,4,5}[s:0-≻1,a:1-≻2,c:1-≻3,e:1-≻4,b:2-≻4,d:3-≻4,t:4-≻5] ) defined by 6 objects and 7 generating morphisms gap> HomStructure( T.0, T.5 ); <A row module over Q of rank 3>
gap> LoadPackage( "Algebroids", false ); true gap> str := "q(o)[x:o->o,y:o->o,z:o->o]";; gap> C := PathCategory( FinQuiver( str ) : sort_external_homs_like_qpa := true ); PathCategory( FinQuiver( "q(o)[x:o-≻o,y:o-≻o,z:o-≻o]" ) ) gap> F := FreeCategory( RightQuiver( str ) ); FreeCategory( RightQuiver( "q(o)[x:o->o,y:o->o,z:o->o]" ) ) gap> qC := C / [ [C.x^3, C.x], [C.y^3, C.y], [C.z^3, C.z], > [C.xy, C.yx], [C.xz, C.zx], [C.yz, C.zy] ]; PathCategory( FinQuiver( "q(o)[x:o-≻o,y:o-≻o,z:o-≻o]" ) ) / [ x^3 = x, y^3 = y, z^3 = z, ... ] gap> qF := F / [ [F.x^3, F.x], [F.y^3, F.y], [F.z^3, F.z], > [F.xy, F.yx], [F.xz, F.zx], [F.yz, F.zy] ]; FreeCategory( RightQuiver( "q(o)[x:o->o,y:o->o,z:o->o]" ) ) / relations gap> MorphismsOfExternalHom( qC.o, qC.o ); [ [id(o)]:(o) -≻ (o), [x]:(o) -≻ (o), [y]:(o) -≻ (o), [z]:(o) -≻ (o), [x^2]:(o) -≻ (o), [x⋅y]:(o) -≻ (o), [x⋅z]:(o) -≻ (o), [y^2]:(o) -≻ (o), [y⋅z]:(o) -≻ (o), [z^2]:(o) -≻ (o), [x^2⋅y]:(o) -≻ (o), [x^2⋅z]:(o) -≻ (o), [x⋅y^2]:(o) -≻ (o), [x⋅y⋅z]:(o) -≻ (o), [x⋅z^2]:(o) -≻ (o), [y^2⋅z]:(o) -≻ (o), [y⋅z^2]:(o) -≻ (o), [x^2⋅y^2]:(o) -≻ (o), [x^2⋅y⋅z]:(o) -≻ (o), [x^2⋅z^2]:(o) -≻ (o), [x⋅y^2⋅z]:(o) -≻ (o), [x⋅y⋅z^2]:(o) -≻ (o), [y^2⋅z^2]:(o) -≻ (o), [x^2⋅y^2⋅z]:(o) -≻ (o), [x^2⋅y⋅z^2]:(o) -≻ (o), [x⋅y^2⋅z^2]:(o) -≻ (o), [x^2⋅y^2⋅z^2]:(o) -≻ (o) ] gap> MorphismsOfExternalHom( qF.o, qF.o ); [ (o)-[(o)]->(o), (o)-[(x)]->(o), (o)-[(y)]->(o), (o)-[(z)]->(o), (o)-[(x*x)]->(o), (o)-[(x*y)]->(o), (o)-[(x*z)]->(o), (o)-[(y*y)]->(o), (o)-[(y*z)]->(o), (o)-[(z*z)]->(o), (o)-[(x*x*y)]->(o), (o)-[(x*x*z)]->(o), (o)-[(x*y*y)]->(o), (o)-[(x*y*z)]->(o), (o)-[(x*z*z)]->(o), (o)-[(y*y*z)]->(o), (o)-[(y*z*z)]->(o), (o)-[(x*x*y*y)]->(o), (o)-[(x*x*y*z)]->(o), (o)-[(x*x*z*z)]->(o), (o)-[(x*y*y*z)]->(o), (o)-[(x*y*z*z)]->(o), (o)-[(y*y*z*z)]->(o), (o)-[(x*x*y*y*z)]->(o), (o)-[(x*x*y*z*z)]->(o), (o)-[(x*y*y*z*z)]->(o), (o)-[(x*x*y*y*z*z)]->(o) ]
generated by GAPDoc2HTML