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

2 Linear closures of path categories and their quotients
 2.1 Constructors
 2.2 Operations

2 Linear closures of path categories and their quotients

2.1 Constructors

2.1-1 LinearClosure
‣ LinearClosure( k, C )( operation )

Returns: a CAP category

Returns the \(k\)-linear closure category of C.

2.1-2 QuotientCategory
‣ 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>

2.2 Operations

2.2-1 GroebnerBasis
‣ GroebnerBasis( kC, relations )( operation )

Returns: a list of morphisms

Returns the Groebner basis of the two-sided ideal generated by relations.

2.2-2 ReducedGroebnerBasis
‣ 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)
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 Ind

generated by GAPDoc2HTML