‣ 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.
‣ 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.
‣ 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> Display( SetOfObjects( C ) ); [ (0), (1), (2), (3), (4), (5) ] gap> Display( 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)" / C; true 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> Display( MorphismIndices( m ) ); [ 1, 1, 2, 3, 6, 8, 9, 9 ] gap> Perform( MorphismSupport( m ), Display ); 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> m = MorphismConstructor( C, Source( m ), [ MorphismLength( m ), MorphismIndices( m ) ], Target( m ) ); true gap> relations := [ [ C.x^5, C.x ], [ C.y^5, C.y^2 ] ];; 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> "0" / qC; (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> Display( List( SetOfGeneratingMorphisms( qC ), IsMonomorphism ) ); [ false, true, true, true, true, true, true, true, false ] gap> Display( List( SetOfGeneratingMorphisms( qC ), IsEpimorphism ) ); [ false, true, true, true, true, true, true, true, false ]
gap> LoadPackage( "Algebroids", 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> relations := [ [ C.x^5, C.x ], [ C.y^5, C.y^2 ] ];; 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> 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( "0" / kqC, "5" / kqC ); <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( "0" / A, "5" / A ); <A row module over Q of rank 75> gap> A.x + A.x^2; <1*x^2 + 1*x:(0) → (0)> gap> # @drop_example_in_Julia
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( "0" / P, "5" / P ); |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( "0" / kP, "5" / kP ); <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( "0" / T, "5" / T ); <A row module over Q of rank 3> gap> # @drop_example_in_Julia
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) ] gap> # @drop_example_in_Julia
generated by GAPDoc2HTML