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

2 Path categories
 2.1 Constructors
 2.2 Attributes
 2.3 GAP categories

2 Path categories

2.1 Constructors

2.1-1 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.

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 : admissible_order := "Dp" );
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
* IsFinitelyPresentedCategory
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> AssignSetOfObjects( C, "v_" );
#I  MakeReadWriteGlobal: v_0 already read-write
#I  MakeReadWriteGlobal: v_1 already read-write
#I  MakeReadWriteGlobal: v_2 already read-write
#I  MakeReadWriteGlobal: v_3 already read-write
#I  MakeReadWriteGlobal: v_4 already read-write
#I  MakeReadWriteGlobal: v_5 already read-write
gap> AssignSetOfGeneratingMorphisms( C, "m_" );
#I  MakeReadWriteGlobal: m_x already read-write
#I  MakeReadWriteGlobal: m_s already read-write
#I  MakeReadWriteGlobal: m_a already read-write
#I  MakeReadWriteGlobal: m_c already read-write
#I  MakeReadWriteGlobal: m_e already read-write
#I  MakeReadWriteGlobal: m_b already read-write
#I  MakeReadWriteGlobal: m_d already read-write
#I  MakeReadWriteGlobal: m_t already read-write
#I  MakeReadWriteGlobal: m_y already read-write
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 ]:

24 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 : admissible_order := "Dp" );
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 ) );
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) ]

2.2 Attributes

2.2-1 OppositeQuotientOfPathCategory
‣ OppositeQuotientOfPathCategory( qC )( attribute )

Returns: a quotient of a path category

Returns the opposite category of a quotient qC of a path category \(C\).

2.2-2 CategoryFromNerveData
‣ CategoryFromNerveData( C )( attribute )

2.2-3 DefiningRelations
‣ DefiningRelations( qC )( attribute )

Returns: a dense list

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

2.2-4 GroebnerBasisOfDefiningRelations
‣ GroebnerBasisOfDefiningRelations( qC )( attribute )

Returns: a dense list

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

2.2-5 ObjectIndex
‣ ObjectIndex( obj )( attribute )

Returns: an integer

Returns the index of the object.

2.2-6 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.

2.2-7 AssignSetOfObjects
‣ AssignSetOfObjects( qC[, str] )( operation )

Returns: nothing

Assigns the objects of qC 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-8 AssignSetOfGeneratingMorphisms
‣ AssignSetOfGeneratingMorphisms( qC[, str] )( operation )

Returns: nothing

Assigns the generating morphisms of qC 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 GAP categories

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

Returns: true or false

The GAP category of quotients of path categories.

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

Returns: true or false

The GAP category of objects in quotients path categories.

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

Returns: true or false

The GAP category of morphisms in quotients of path categories.

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

generated by GAPDoc2HTML