‣ 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) ]
‣ OppositeQuotientOfPathCategory ( qC ) | ( attribute ) |
Returns: a quotient of a path category
Returns the opposite category of a quotient qC of a path category \(C\).
‣ CategoryFromNerveData ( C ) | ( attribute ) |
‣ 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.
‣ 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.
‣ 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.
‣ 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.
generated by GAPDoc2HTML