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

2 Path Categories
 2.1 GAP categories
 2.2 Constructors
 2.3 Attributes
 2.4 Operations
 2.5 Quotients of path categories

2 Path Categories

2.1 GAP categories

2.1-1 IsPathCategory
‣ IsPathCategory( arg )( filter )

Returns: true or false

The GAP category of path categories.

2.1-2 IsPathCategoryObject
‣ IsPathCategoryObject( arg )( filter )

Returns: true or false

The GAP category of objects in path categories.

2.1-3 IsPathCategoryMorphism
‣ IsPathCategoryMorphism( arg )( filter )

Returns: true or false

The GAP category of morphisms in path categories.

2.2 Constructors

2.2-1 PathCategory
‣ 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.

2.2-2 ObjectConstructor
‣ 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.

2.2-3 MorphismConstructor
‣ 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.

2.2-4 AssignSetOfObjects
‣ 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.

2.2-5 AssignSetOfGeneratingMorphisms
‣ 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.

2.3 Attributes

2.3-1 UnderlyingQuiver
‣ UnderlyingQuiver( C )( attribute )

Returns: a list of CAP category objects

Returns the defining quiver of the path category C.

2.3-2 ObjectIndex
‣ ObjectIndex( v )( attribute )

Returns: a positive integer

Returns the index of the object v.

2.3-3 ObjectLabel
‣ ObjectLabel( v )( attribute )

Returns: a string

Returns the label of the object v.

2.3-4 MorphismLength
‣ MorphismLength( alpha )( attribute )

Returns: a positive integer

Returns the length of alpha.

2.3-5 MorphismSupport
‣ MorphismSupport( alpha )( attribute )

Returns: a dense-list of CAP quiver morphisms

Returns the list of morphisms in the underlying quiver which defines alpha.

2.3-6 MorphismIndices
‣ MorphismIndices( alpha )( attribute )

Returns: a dense-list of positive integers

Returns the indices of the morphisms in MorphismSupport(alpha).

2.3-7 MorphismLabel
‣ MorphismLabel( alpha )( attribute )

Returns: a positive integer

Returns the label of the morphism alpha.

2.3-8 IsFinitePathCategory
‣ IsFinitePathCategory( C )( property )

Returns: a boolean

Returns whether C can be enriched over the category of finite sets.

2.3-9 HasFiniteNumberOfMacaulayMorphisms
‣ 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.

2.3-10 MacaulayMorphisms
‣ 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.

2.4 Operations

2.4-1 GroebnerBasis
‣ 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.

2.4-2 ReducedGroebnerBasisWithGivenGroebnerBasis
‣ 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.

2.4-3 ReducedGroebnerBasis
‣ 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.

2.4-4 IsDescendingForMorphisms
‣ 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

2.4-5 IsAscendingForMorphisms
‣ 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.

2.5 Quotients of path categories

2.5-1 IsQuotientOfPathCategory
‣ IsQuotientOfPathCategory( arg )( filter )

Returns: true or false

The GAP category of quotients of path categories.

2.5-2 IsQuotientOfPathCategoryObject
‣ IsQuotientOfPathCategoryObject( arg )( filter )

Returns: true or false

The GAP category of objects in quotients path categories.

2.5-3 IsQuotientOfPathCategoryMorphism
‣ IsQuotientOfPathCategoryMorphism( arg )( filter )

Returns: true or false

The GAP category of morphisms in quotients of path categories.

2.5-4 QuotientCategory
‣ QuotientCategory( C, rels )( operation )

Returns: a CAP category

Returns the quotient category of C by the two-sided ideal of morphisms generated by rels.

2.5-5 DefiningRelations
‣ DefiningRelations( qC )( attribute )

Returns: a dense list

Returns the generators of the underlying two-sided ideal of morphisms.

2.5-6 GroebnerBasisOfDefiningRelations
‣ GroebnerBasisOfDefiningRelations( qC )( attribute )

Returns: a dense list

Returns the reduced Groebner basis of the underlying two-sided ideal of morphisms.

2.5-7 ObjectIndex
‣ ObjectIndex( obj )( attribute )

Returns: an integer

Returns the index of the object.

2.5-8 CanonicalRepresentative
‣ 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 67 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 67 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) ]
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 Ind

generated by GAPDoc2HTML