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

2 Quiver algebras
 2.1 Categories for algebras, elements and ideals
 2.2 Constructing algebras
 2.3 Information about an algebra
 2.4 Accessing algebra elements
 2.5 Information about an element
 2.6 Manipulation of elements
 2.7 Operations related to Groebner basis theory
 2.8 Algebra constructions

2 Quiver algebras

We use the term quiver algebra for an algebra that is either a path algebra or a quotient of a path algebra by some ideal.

2.1 Categories for algebras, elements and ideals

2.1-1 IsQuiverAlgebraElement
‣ IsQuiverAlgebraElement( arg )( filter )

Returns: true or false

Category for elements of quiver algebras.

2.1-2 IsQuiverAlgebra
‣ IsQuiverAlgebra( arg )( filter )

Returns: true or false

Category for quiver algebras.

2.1-3 IsPathAlgebraElement
‣ IsPathAlgebraElement( arg )( filter )

Returns: true or false

Category for elements of path algebras.

2.1-4 IsPathAlgebra
‣ IsPathAlgebra( arg )( filter )

Returns: true or false

Category for path algebras.

2.1-5 IsPathIdeal
‣ IsPathIdeal( arg )( filter )

Returns: true or false

Category for (two-sided) ideals in path algebras.

2.1-6 IsQuotientOfPathAlgebraElement
‣ IsQuotientOfPathAlgebraElement( arg )( filter )

Returns: true or false

Category for elements of quotients of path algebras.

2.1-7 IsQuotientOfPathAlgebra
‣ IsQuotientOfPathAlgebra( arg )( filter )

Returns: true or false

Category for quotients of path algebras.

2.2 Constructing algebras

2.2-1 PathAlgebra
‣ PathAlgebra( k, Q )( operation )

Constructs the path algebra over the field k using the quiver Q.

gap> Q := LeftQuiver( "Q(3)[a:1->2,b:2->3,c:2->3]" );
Q(3)[a:1->2,b:2->3,c:2->3]
gap> kQ := PathAlgebra( Rationals, Q );
Rationals * Q
gap> kQ.c - 2/5 * kQ.ba + kQ[1];
-2/5*(b*a) + 1*(c) + 1*(1)

2.2-2 QuotientOfPathAlgebra
‣ QuotientOfPathAlgebra( kQ, I )( operation )
‣ QuotientOfPathAlgebra( kQ, relations )( operation )
‣ \/( kQ, I )( operation )
‣ \/( kQ, relations )( operation )

Constructs a quotient of a path algebra.

The first argument is a path algebra kQ. The second argument is either an ideal I in the algebra kQ or a list relations of elements of kQ. The result is kQ divided by the ideal I, or by the ideal generated by relations.

The / operator is defined to do the same as QuotientOfPathAlgebra, so QuotientOfPathAlgebra( kQ, I ) or QuotientOfPathAlgebra( kQ, relations ) can also be written as kQ/I or kQ/relations.

gap> kQ := PathAlgebra( Rationals, LeftQuiver( "Q(3)[a:1->2,b:2->3,c:2->3]" ) );
Rationals * Q
gap> A := kQ / [ kQ.ca - kQ.ba ];
(Rationals * Q) / [ 1*(c*a) - 1*(b*a) ]
gap> (A.c + A.b) * A.a;
{ 2*(b*a) }
gap> kQ / TwoSidedIdealByGenerators( kQ, [ kQ.ca - kQ.ba ] );
(Rationals * Q) / [ 1*(c*a) - 1*(b*a) ]

2.3 Information about an algebra

2.3-1 QuiverOfAlgebra
‣ QuiverOfAlgebra( A )( attribute )

Returns: IsQuiver (1.1-7)

Returns the quiver Q of the quiver algebra A = kQ/I.

2.3-2 RelationsOfAlgebra
‣ RelationsOfAlgebra( A )( attribute )

Returns: list of IsPathAlgebraElement (2.1-3)

Returns a list of relations for the quiver algebra A. That is, if A = kQ/I, then this operation returns a list of generators for the ideal I. If A is a path algebra, this operation returns the empty list.

2.3-3 IdealOfQuotient
‣ IdealOfQuotient( A )( attribute )

Returns: IsPathIdeal (2.1-5)

For a quotient A = kQ/I of a path algebra, this operation returns the ideal I.

2.3-4 LeftActingDomain
‣ LeftActingDomain( A )( attribute )

Returns the underlying field of the algebra A.

Returns: IsField

2.3-5 PathAlgebra
‣ PathAlgebra( A )( attribute )

Returns: IsPathAlgebra (2.1-4)

Given a quiver algebra A = kQ/I, this operation returns the path algebra kQ.

2.4 Accessing algebra elements

2.4-1 PathAlgebraElement
‣ PathAlgebraElement( kQ, coefficients, paths )( operation )
‣ PathAlgebraElementNC( kQ, coefficients, paths )( operation )

Returns: IsPathAlgebraElement (2.1-3)

Creates an element of a path algebra.

The argument kQ is a path algebra, paths is a list of paths in the quiver of kQ, and coefficients a list of coefficients. The lists paths and coefficients must have the same length. If the paths are p_1, \ldots, p_n and the coefficients are c_1, \ldots, c_n, then the result is the linear combination \sum_{i=1}^n c_i p_i.

For the operation PathAlgebraElement, the elements in paths may be listed in any order, and the same paths can occur several times in the list. The operation PathAlgebraElementNC assumes that the list of paths is sorted in decreasing order (by the path ordering of the quiver) and does not have any duplicates.

gap> kQ := PathAlgebra( Rationals, LeftQuiver( "Q(3)[a:1->2,b:2->3,c:2->3]" ) );
Rationals * Q
gap> PathAlgebraElement( kQ, [ 2, -1, 1/5 ], [ Q.a, Q.ba, Q[1] ] );
-1*(b*a) + 2*(a) + 1/5*(1)
gap> PathAlgebraElement( kQ, [ 2, 3/2 ], [ Q.a, Q.a ] );
7/2*(a)

2.4-2 QuotientOfPathAlgebraElement
‣ QuotientOfPathAlgebraElement( A, e )( function )

Given a quotient A = kQ/I of a path algebra kQ, and an element e of kQ, this operation produces the element of A represented by e.

gap> kQ := PathAlgebra( Rationals, LeftQuiver( "Q(3)[a:1->2,b:2->3,c:2->3]" ) );
Rationals * Q
gap> A := kQ / [ kQ.ca - kQ.ba ];
(Rationals * Q) / [ 1*(c*a) - 1*(b*a) ]
gap> e := kQ.ca + kQ.ba;
1*(c*a) + 1*(b*a)
gap> QuotientOfPathAlgebraElement( A, e );
{ 2*(b*a) }

2.4-3 PathAsAlgebraElement
‣ PathAsAlgebraElement( A, p )( operation )

Returns the path p as an element of the quiver algebra A.

gap> Q := LeftQuiver( "Q(3)[a:1->2,b:2->3,c:2->3]" );;
gap> kQ := PathAlgebra( Rationals, Q );;
gap> A := kQ / [ kQ.ca - kQ.ba ];;
gap> PathAsAlgebraElement( kQ, Q.ca );
1*(c*a)
gap> PathAsAlgebraElement( A, Q.ca );
{ 1*(b*a) }

2.4-4 AlgebraElementByLabel
‣ AlgebraElementByLabel( A, label )( operation )
‣ \[\]( A, label )( operation )

Returns: IsQuiverAlgebraElement (2.1-1)

Returns the primitive path (vertex or arrow) with label label, as an element of the quiver algebra A. If no such path exists, an error is signalled. The operation A[ label ] is equivalent to AlgebraElementByLabel( A, label ).

gap> Q := LeftQuiver( "Q(3)[a:1->2,b:2->3,c:2->3]" );;
gap> kQ := PathAlgebra( Rationals, Q );;
gap> kQ[ 1 ] + kQ[ 2 ] + kQ[ 3 ];
1*(3) + 1*(2) + 1*(1)
gap> kQ[ 'b' ] * kQ[ 'a' ];
1*(b*a)

2.4-5 AlgebraElementFromString
‣ AlgebraElementFromString( A, string )( operation )

Returns: IsQuiverAlgebraElement (2.1-1)

Returns the path described by the string string (see PathFromString (1.4-13)) as an element of the quiver algebra A. If no such path exists, an error is signalled.

This operation can also be called by writing A.str, where str is an unquoted string literal.

gap> Q := LeftQuiver( "Q(3)[a:1->2,b:2->3,c:3->2,d:2->1]" );;
gap> kQ := PathAlgebra( Rationals, Q );;
gap> AlgebraElementFromString( kQ, "dcba" );
1*(d*c*b*a)
gap> kQ.dcba;
1*(d*c*b*a)

2.5 Information about an element

2.5-1 AlgebraOfElement
‣ AlgebraOfElement( e )( attribute )

Returns: IsQuiverAlgebra (2.1-2)

Returns the quiver algebra the element e belongs to.

2.5-2 Coefficients
‣ Coefficients( e )( attribute )

Returns: list of field elements

Returns a list of coefficients for the algebra element e.

Every element of a quiver algebra can be written as a linear combination \sum_{i=1}^n c_i p_i of paths. The attribute Paths (2.5-3) gives the list p_1, \ldots, p_n of paths for the element e, and this attribute returns the corresponding list c_1, \ldots, c_n of coefficients.

2.5-3 Paths
‣ Paths( e )( attribute )

Returns: list of IsPath (1.1-1)

Returns a list of paths for the algebra element e.

Every element of a quiver algebra can be written as a linear combination \sum_{i=1}^n c_i p_i of paths. This operation produces the list p_1, \ldots, p_n of paths for the element e. The corresponding coefficients c_1, \ldots, c_n can be obtained by the attribute Coefficients (2.5-2).

The paths are ordered in decreasing order, by the path ordering of the quiver.

If e is an element of a path algebra, then there is a unique way to express it as a linear combination of paths. If e is an element of a quotient of a path algebra, then there may be several ways to express it as a linear combination of paths. In this case, the chosen combination is that of Representative( e ) (see Representative (2.5-5)).

2.5-4 IsUniform
‣ IsUniform( e )( property )

Returns: true or false

Checks whether the element e is uniform, that is, whether all paths in the element have the same source and the same target.

2.5-5 Representative
‣ Representative( e )( attribute )

Returns: IsPathAlgebraElement (2.1-3)

Returns the canonical representative path algebra element of the element e of a quotient of a path algebra.

2.6 Manipulation of elements

2.6-1 TranslateAlgebraElement
‣ TranslateAlgebraElement( e, A, f )( operation )

Returns: IsQuiverAlgebraElement (2.1-1)

Translate the element e to an element in the quiver algebra A by using the function f on each path.

2.7 Operations related to Groebner basis theory

2.7-1 LeadingPath
‣ LeadingPath( e )( attribute )

Returns: IsPath (1.1-1)

Returns the leading path of the path algebra element e, that is, the path occuring in e which is largest with respect to the quiver's ordering of paths.

2.7-2 LeadingCoefficient
‣ LeadingCoefficient( e )( operation )

Returns: field element

Returns the leading coefficient of the path algebra element e, that is, the coefficient of the leading path.

2.7-3 LeadingTerm
‣ LeadingTerm( e )( attribute )

Returns: IsPathAlgebraElement (2.1-3)

Returns the leading term of the path algebra element e.

2.7-4 NonLeadingTerms
‣ NonLeadingTerms( e )( attribute )

Returns: IsPathAlgebraElement (2.1-3)

Returns the sum of all the non-leading terms of the path algebra element e.

2.7-5 DivideByList
‣ DivideByList( e, divisors )( operation )

Returns: list

Performs division of the path algebra element e by the elements in the list divisors.

When dividing an element e by a list d_1, \ldots, d_n of divisors, the goal is to find a remainder r and left/right quotients L_{i,j} and R_{i,j} (for 1 \le i \le n and 1 \le j \le m_i, where m_i is some integer depending on i) such that

e = r + \sum_{i=1}^n \sum_{j=1}^{m_i} L_{i,j} \cdot d_i \cdot R_{i,j}.

This operation returns a list [ quotients, remainder ], where quotients is a list containing the left/right quotients, and remainder is the remainder. The left quotient L_{i,j} is accessible as quotients[ i ][ j ][ 1 ], and the right quotient R_{i,j} as quotients[ i ][ j ][ 2 ].

2.7-6 Reduce
‣ Reduce( e, divisors )( operation )

Returns: IsPathAlgebraElement (2.1-3)

Reduce the path algebra element e by the elements in the list divisors.

This operation returns the remainder produced by DivideByList (2.7-5).

2.7-7 OverlapRelation
‣ OverlapRelation( f, g, b, c )( operation )

Returns: IsPathAlgebraElement (2.1-3)

Computes an overlap relation. Given two path algebra elements f and g, and two paths b and c, such that LeadingPath( f ) * c = b * LeadingPath( g ), this operation produces the overlap relation

\frac{1}{LC(f)} fc - \frac{1}{LC(g)} bg

f and g with respect to b and c.

2.7-8 OverlapRelations
‣ OverlapRelations( f, g )( operation )

Returns: IsPathAlgebraElement (2.1-3)

Finds all overlap relations between the path algebra elements f and g.

We consider two elements f and g to have an overlap when there are paths b and c such that LP(f) \cdot c = b \cdot LP(g). The corresponding overlap relation is then the element

\frac{1}{LC(f)} fc - \frac{1}{LC(g)} bg.

For a given pair (f,g), there may be several such overlap relations, corresponding to several choices of paths (b,c). This operation constructs all these overlap relations, and returns them as a list.

Overlap relations are interesting because they point to obstructions to a list G of generators of an ideal forming a Groebner basis: if some overlap relation between two elements of G reduces to a nonzero remainder r when divided by G, then G is not a Groebner basis. In Buchberger's algorithm, we then add the remainder r to the list G.

Note that our definition of overlaps does not include situations of the form LP(f) = a \cdot LP(g) \cdot a', although they too give obstructions to a set being a Groebner basis, and would be considered as overlaps by some authors.

2.7-9 TipReduce
‣ TipReduce( G )( operation )

Returns: list of IsPathAlgebraElement (2.1-3)

Returns a tip reduced version of the list G of path algebra elements. The original list is not modified.

The resulting list has the following properties: (1) It generates the same ideal as G does. (2) No element in the list has a leading path which divides the leading path of another element in the list.

2.7-10 ComputeGroebnerBasis
‣ ComputeGroebnerBasis( G )( operation )

Returns: list of IsPathAlgebraElement (2.1-3)

Given a list G of generators for an ideal I in a path algebra, this operation produces a Groebner basis for the ideal I.

2.7-11 GroebnerBasis
‣ GroebnerBasis( I )( attribute )

Returns: list of IsPathAlgebraElement (2.1-3)

A Groebner basis for the ideal I.

2.8 Algebra constructions

2.8-1 OppositeAlgebra
‣ OppositeAlgebra( A )( attribute )

Returns: IsQuiverAlgebra (2.1-2)

Returns the opposite algebra of A.

2.8-2 OppositeAlgebraElement
‣ OppositeAlgebraElement( e )( attribute )

Returns: IsQuiverAlgebraElement (2.1-1)

Returns the element corresponding to e in the opposite algebra.

2.8-3 TensorProductOfAlgebras
‣ TensorProductOfAlgebras( A, B )( operation )

Returns: IsQuiverAlgebra (2.1-2)

Returns the tensor product of the quiver algebras A and B.

2.8-4 IsTensorProductOfAlgebras
‣ IsTensorProductOfAlgebras( T, A, B )( operation )

Returns: true or false

Returns true if the algebra T is the tensor product of the algebras A and B; false otherwise.

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

generated by GAPDoc2HTML