‣ LinearClosure( k, C ) | ( operation ) |
Returns: a CAP category
Returns the \(k\)-linear closure category of C.
‣ QuotientCategory( kC, relations ) | ( operation ) |
Returns: a list of morphisms
Returns a the quotient category of kC modulo the two-sided ideal generated by relations. This method requires the Groebner basis of relations to be a finite set.
gap> LoadPackage( "FpLinearCategories", 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> k := HomalgFieldOfRationals( );; 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> kC := 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> rels := [ kC.x^10 - kC.x^5, kC.abt - kC.et, kC.y^10 - kC.y^5, kC.x^5, kC.y^5 ];; gap> Perform( rels, Display ); 1*x^10 + (-1)*x^5:(0) → (0) 1*a⋅b⋅t + (-1)*e⋅t:(1) → (5) 1*y^10 + (-1)*y^5:(5) → (5) 1*x^5:(0) → (0) 1*y^5:(5) → (5) gap> quo_kC := QuotientCategory( kC, rels ); 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]" ) ) ) / [ 1*x^10 + (-1)*x^5, 1*a⋅b⋅t + (-1)*e⋅t, 1*y^10 + (-1)*y^5, ... ] gap> HomStructure( quo_kC.("0"), quo_kC.("5") ); <A row module over Q of rank 50> gap> A := AlgebroidFromDataTables( quo_kC ); 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> HomStructure( A.("0"), A.("5") ); <A row module over Q of rank 50> gap> quo_C := C / [ [ C.x^10, C.x^5 ], [ C.abt, C.et ], [ C.y^10, C.y^5 ] ]; 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^10 = x^5, a⋅b⋅t = e⋅t, y^10 = y^5 ] gap> k_quo_C := k[quo_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]" ) ) / [ x^10 = x^5, a⋅b⋅t = e⋅t, y^10 = y^5 ] ) gap> quo_k_quo_C := k_quo_C / [ k_quo_C.x^5, k_quo_C.y^5 ]; 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^10 = x^5, a⋅b⋅t = e⋅t, y^10 = y^5 ] ) / [ 1*[x^5], 1*[y^5] ] gap> HomStructure( quo_k_quo_C.("0"), quo_k_quo_C.("5") ); <A row module over Q of rank 50> gap> Dimension( quo_k_quo_C ); 126 gap> ModelingCategory( quo_k_quo_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]" ) ) ) / [ 1*x^10 + (-1)*x^5, 1*a⋅b⋅t + (-1)*e⋅t, 1*y^10 + (-1)*y^5, ... ] gap> B := AlgebroidFromDataTables( quo_k_quo_C ); 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> HomStructure( B.("0"), B.("5") ); <A row module over Q of rank 50>
‣ GroebnerBasis( kC, relations ) | ( operation ) |
Returns: a list of morphisms
Returns the Groebner basis of the two-sided ideal generated by relations.
‣ ReducedGroebnerBasis( kC, relations ) | ( operation ) |
Returns: a list of morphisms
Returns a reduced Groebner basis of the two-sided ideal generated by relations.
gap> LoadPackage( "FpLinearCategories", false ); true gap> k := HomalgFieldOfRationals( );; gap> q := FinQuiver( "q(o)[x:o->o,y:o->o]" ); FinQuiver( "q(o)[x:o→o,y:o→o]" ) gap> C := PathCategory( q ); PathCategory( FinQuiver( "q(o)[x:o→o,y:o→o]" ) ) gap> kC := k[C]; Q-LinearClosure( PathCategory( FinQuiver( "q(o)[x:o→o,y:o→o]" ) ) ) gap> x := kC.x; 1*x:(o) → (o) gap> y := kC.y; 1*y:(o) → (o) gap> rels := [ x*y-y*x, (x^2+y^2)*(x+x*y), (x^2+y^2)*(y^2+x^3) ];; gap> Perform( rels, Display ); (-1)*y⋅x + 1*x⋅y:(o) → (o) 1*x^3⋅y + 1*y^2⋅x⋅y + 1*x^3 + 1*y^2⋅x:(o) → (o) 1*x^5 + 1*y^2⋅x^3 + 1*x^2⋅y^2 + 1*y^4:(o) → (o) gap> gb := ReducedGroebnerBasis( kC, rels );; gap> Perform( gb, Display ); (-1)*y⋅x + 1*x⋅y:(o) → (o) 1*x^3⋅y + 1*x⋅y^3 + 1*x^3 + 1*x⋅y^2:(o) → (o) 1*x^5 + (-1)*x⋅y^4 + 1*x^2⋅y^2 + 1*y^4 + 1*x^3 + 1*x⋅y^2:(o) → (o) 1*x^2⋅y^3 + 1*y^5 + 1*x^2⋅y^2 + 1*y^4:(o) → (o) gap> f := (x-y)*gb[1] + (x^2-y)*gb[2] + y^3*gb[3] + (x-y^3)*gb[4]; 1*y^3⋅x^5 + (-1)*y^3⋅x^2⋅y^3 + (-1)*y^3⋅x⋅y^4 + (-1)*y^8 + 1*y^3⋅x^3 + 1*x^5⋅y + 1*y^3⋅x⋅y^2 + 2*x^3⋅y^3 + 1*x⋅y^5 + 1*x^5 + (-1)*y⋅x^3⋅y + 2*x^3⋅y^2 + (-1)*y⋅x⋅y^3 + 1*x⋅y^4 + (-1)*y⋅x^3 + (-1)*y⋅x⋅y^2 + (-1)*x⋅y⋅x + 1*y^2⋅x + 1*x^2⋅y + (-1)*y⋅x⋅y:(o) → (o) gap> ReductionOfMorphism( kC, f, rels ); (-1)*x^2⋅y^6 + (-1)*y^8 + 1*x^2⋅y^2 + 1*y^4:(o) → (o) gap> ReductionOfMorphism( kC, f, gb ); 0:(o) → (o)
generated by GAPDoc2HTML