  
  [1X4 [33X[0;0YPath Algebras[133X[101X
  
  
  [1X4.1 [33X[0;0YIntroduction[133X[101X
  
  [33X[0;0YA  path algebra is an algebra constructed from a field [23XF[123X (see Chapter 56 and
  57  in the [5XGAP[105X manual for information about fields) and a quiver [23XQ[123X. The path
  algebra  [23XFQ[123X  contains  all  finite  linear  combinations of paths of [23XQ[123X. This
  chapter  describes  the  functions  in  [5XQPA[105X that deal with path algebras and
  quotients  of  path algebras. Path algebras are algebras, so see Chapter 60:
  Algebras  in  the  [5XGAP[105X  manual  for  functionality such as generators, basis
  functions, and mappings.[133X
  
  [33X[0;0YThe  only  supported  ordering  of elements in a path algebra is length left
  lexicographic ordering. See [14X3.4[114X for more information.[133X
  
  
  [1X4.2 [33X[0;0YConstructing Path Algebras[133X[101X
  
  [1X4.2-1 PathAlgebra[101X
  
  [29X[2XPathAlgebra[102X( [3XF[103X, [3XQ[103X ) [32X function
  
  [33X[0;0YArguments: [3XF[103X -- a field, [3XQ[103X -- a quiver.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe path algebra [3XFQ[103X of [3XQ[103X over the field [3XF[103X.[133X
  
  [33X[0;0YFor  construction  of fields, see the [5XGAP[105X documentation. The elements of the
  path algebra [3XFQ[103X will be ordered by left length-lexicographic ordering.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XQ := Quiver( ["u","v"] , [ ["u","u","a"], ["u","v","b"], [127X[104X
    [4X[25X>[125X [27X["v","u","c"], ["v","v","d"] ] );[127X[104X
    [4X[28X<quiver with 2 vertices and 4 arrows>[128X[104X
    [4X[25Xgap>[125X [27XF := Rationals;[127X[104X
    [4X[28XRationals[128X[104X
    [4X[25Xgap>[125X [27XFQ := PathAlgebra(F,Q);[127X[104X
    [4X[28X<Rationals[<quiver with 2 vertices and 4 arrows>]>[128X[104X
  [4X[32X[104X
  
  
  [1X4.3 [33X[0;0YCategories and Properties of Path Algebras[133X[101X
  
  [1X4.3-1 IsPathAlgebra[101X
  
  [29X[2XIsPathAlgebra[102X( [3Xobject[103X ) [32X property
  
  [33X[0;0YArguments: [3Xobject[103X -- any object in [5XGAP[105X.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue whenever [3Xobject[103X is a path algebra.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XIsPathAlgebra(FQ);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  
  [1X4.4 [33X[0;0YAttributes and Operations for Path Algebras[133X[101X
  
  [1X4.4-1 AssociatedMonomialAlgebra[101X
  
  [29X[2XAssociatedMonomialAlgebra[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a quiver algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  associated monomial algebra of [3XA[103X with respect to the Groebner
            basis the path algebra is endoved with.[133X
  
  [1X4.4-2 QuiverOfPathAlgebra[101X
  
  [29X[2XQuiverOfPathAlgebra[102X( [3XFQ[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XFQ[103X -- a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe quiver from which [3XFQ[103X was constructed.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XQuiverOfPathAlgebra(FQ);[127X[104X
    [4X[28X<quiver with 2 vertices and 4 arrows> [128X[104X
  [4X[32X[104X
  
  [1X4.4-3 OrderingOfAlgebra[101X
  
  [29X[2XOrderingOfAlgebra[102X( [3XFQ[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XFQ[103X -- a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe ordering of the quiver of the path algebra.[133X
  
  [33X[0;0Y[13XNote:[113X  As  of  the  current  version  of [5XQPA[105X, only left length lexicographic
  ordering is supported.[133X
  
  [1X4.4-4 .[101X
  
  [29X[2X.[102X( [3XFQ[103X, [3Xgenerator[103X ) [32X operation
  
  [33X[0;0YArguments:  [3XFQ[103X  --  a path algebra, [3Xgenerator[103X -- a vertex or an arrow in the
  quiver [3XQ[103X.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe [3Xgenerator[103X as an element of the path algebra.[133X
  
  [33X[0;0YOther elements of the path algebra can be constructed as linear combinations
  of the generators. For further operations on elements, see below.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XFQ.a;[127X[104X
    [4X[28X(1)*a[128X[104X
    [4X[25Xgap>[125X [27XFQ.v;[127X[104X
    [4X[28X(1)*v[128X[104X
    [4X[25Xgap>[125X [27Xelem := 2*FQ.a - 3*FQ.v;[127X[104X
    [4X[28X(-3)*v+(2)*a[128X[104X
  [4X[32X[104X
  
  
  [1X4.5 [33X[0;0YOperations on Path Algebra Elements[133X[101X
  
  [1X4.5-1 ElementOfPathAlgebra[101X
  
  [29X[2XElementOfPathAlgebra[102X( [3XPA[103X, [3Xpath[103X ) [32X operation
  
  [33X[0;0YArguments:  [3XPA[103X -- a path algebra, [3Xpath[103X -- a path in the quiver from which [3XPA[103X
  was constructed.[133X
  
  [6XReturns:[106X  [33X[0;10YThe  embedding  of  [3Xpath[103X  into  the path algebra [3XPA[103X, or it returns
            false  if  [3Xpath[103X  is not an element of the quiver from which [3XPA[103X was
            constructed.[133X
  
  [1X4.5-2 <[101X
  
  [29X[2X<[102X( [3Xa[103X, [3Xb[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xa[103X and [3Xb[103X -- two elements of the same path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10YTrue  whenever  [3Xa[103X  is smaller than [3Xb[103X, according to the ordering of
            the path algebra.[133X
  
  [1X4.5-3 IsLeftUniform[101X
  
  [29X[2XIsLeftUniform[102X( [3Xelement[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xelement[103X -- an element of the path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue if each monomial in [3Xelement[103X has the same source vertex, false
            otherwise.[133X
  
  [1X4.5-4 IsRightUniform[101X
  
  [29X[2XIsRightUniform[102X( [3Xelement[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xelement[103X -- an element of the path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue if each monomial in [3Xelement[103X has the same target vertex, false
            otherwise.[133X
  
  [1X4.5-5 IsUniform[101X
  
  [29X[2XIsUniform[102X( [3Xelement[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xelement[103X -- an element of the path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue whenever [3Xelement[103X is both left and right uniform.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XIsLeftUniform(elem);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XIsRightUniform(elem);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XIsUniform(elem);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27Xanother := FQ.a*FQ.b + FQ.b*FQ.d*FQ.c*FQ.b*FQ.d;[127X[104X
    [4X[28X(1)*a*b+(1)*b*d*c*b*d[128X[104X
    [4X[25Xgap>[125X [27XIsLeftUniform(another);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsRightUniform(another);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsUniform(another);[127X[104X
    [4X[28Xtrue [128X[104X
  [4X[32X[104X
  
  [1X4.5-6 LeadingTerm[101X
  
  [29X[2XLeadingTerm[102X( [3Xelement[103X ) [32X operation
  [29X[2XTip[102X( [3Xelement[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xelement[103X -- an element of the path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  term  in  [3Xelement[103X  whose  monomial  is  largest  among  those
            monomials  that  have  nonzero coefficients (known as the "tip" of
            [3Xelement[103X).[133X
  
  [33X[0;0Y[13XNote: [113X The two operations are equivalent.[133X
  
  [1X4.5-7 LeadingCoefficient[101X
  
  [29X[2XLeadingCoefficient[102X( [3Xelement[103X ) [32X operation
  [29X[2XTipCoefficient[102X( [3Xelement[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xelement[103X -- an element of the path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  coefficient of the tip of [3Xelement[103X (which is an element of the
            field).[133X
  
  [33X[0;0Y[13XNote: [113X The two operations are equivalent.[133X
  
  [1X4.5-8 LeadingMonomial[101X
  
  [29X[2XLeadingMonomial[102X( [3Xelement[103X ) [32X operation
  [29X[2XTipMonomial[102X( [3Xelement[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xelement[103X -- an element of the path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  monomial  of  the  tip of [3Xelement[103X (which is an element of the
            underlying quiver, not of the path algebra).[133X
  
  [33X[0;0Y[13XNote: [113X The two operations are equivalent.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xelem := FQ.a*FQ.b*FQ.c + FQ.b*FQ.d*FQ.c+FQ.d*FQ.d;[127X[104X
    [4X[28X(1)*d^2+(1)*a*b*c+(1)*b*d*c[128X[104X
    [4X[25Xgap>[125X [27XLeadingTerm(elem);[127X[104X
    [4X[28X(1)*b*d*c[128X[104X
    [4X[25Xgap>[125X [27XLeadingCoefficient(elem);[127X[104X
    [4X[28X1[128X[104X
    [4X[25Xgap>[125X [27Xmon := LeadingMonomial(elem);[127X[104X
    [4X[28Xb*d*c[128X[104X
    [4X[25Xgap>[125X [27Xmon in FQ;[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27Xmon in Q;[127X[104X
    [4X[28Xtrue [128X[104X
  [4X[32X[104X
  
  [1X4.5-9 MakeUniformOnRight[101X
  
  [29X[2XMakeUniformOnRight[102X( [3Xelems[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xelems[103X -- a list of elements in a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ya  list  of  right  uniform  elements generated by each element of
            [3Xelems[103X.[133X
  
  [1X4.5-10 MappedExpression[101X
  
  [29X[2XMappedExpression[102X( [3Xexpr[103X, [3Xgens1[103X, [3Xgens2[103X ) [32X operation
  
  [33X[0;0YArguments:   [3Xexpr[103X  --  element  of  a  path  algebra,  [3Xgens1[103X  and  [3Xgens2[103X  --
  equal-length lists of generators for subalgebras.[133X
  
  [6XReturns:[106X  [33X[0;10Y[3Xexpr[103X as an element of the subalgebra generated by [3Xgens2[103X.[133X
  
  [33X[0;0YThe  element  [3Xexpr[103X  must  be in the subalgebra generated by [3Xgens1[103X. The lists
  define  a  mapping of each generator in [3Xgens1[103X to the corresponding generator
  in [3Xgens2[103X. The value returned is the evaluation of the mapping at [3Xexpr[103X.[133X
  
  [1X4.5-11 VertexPosition[101X
  
  [29X[2XVertexPosition[102X( [3Xelement[103X ) [32X operation
  
  [33X[0;0YArguments:  [3Xelement[103X -- an element of the path algebra on the form [23Xk*v[123X, where
  [23Xv[123X is a vertex of the underlying quiver and [23Xk[123X is an element of the field.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  position  of  the  vertex  [3Xv[103X  in  the list of vertices of the
            quiver.[133X
  
  [1X4.5-12 RelationsOfAlgebra[101X
  
  [29X[2XRelationsOfAlgebra[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a quiver algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ya  set  of  generators  for  the ideal in the path algebra [22XkQ[122X from
            which the algebra [3XFQ[103X was constructed. If [3XA[103X is a path algebra, then
            an empty list is returned.[133X
  
  
  [1X4.6 [33X[0;0YConstructing Quotients of Path Algebras[133X[101X
  
  [33X[0;0YIn  the  introduction we saw already one way of constructing a quotient of a
  path  algebra.  In  addition  to  this  there are at least two other ways of
  constructing  a  quotient of a path algebra; one with factoring out an ideal
  and one where a Groebner basis is attached to the quotient. We discuss these
  two next.[133X
  
  [33X[0;0YFor  several  functions  in  [5XQPA[105X  to  function  properly one needs to have a
  Groebner  basis  attached  to  the  quotient  one  wants  to  construct,  or
  equivalently  a  Groebner basis for the ideal one is factoring out. For this
  to  work  the  ideal  must  admit  a  finite Groebner basis. However, to our
  knowlegde  there  is  no  algorithm for determining if an ideal has a finite
  Groebner basis. On the other hand, it is known that if the factor algebra is
  finite  dimensional, then the ideal has a finite Groebner basis (independent
  of  the  ordering  of  the  elements, see [Gre00] ). In addition to having a
  finite  Groebner basis, several functions also need that the factoring ideal
  is  admissible.  A quotient of a path algebra by an admissible ideal belongs
  to  the category [2XIsAdmissibleQuotientOfPathAlgebra[102X ([14X4.11-1[114X). The method used
  in  the  introduction constructs a quotient in this category. However, there
  are situations where it is interesting to analyze quotients of path algebras
  by a non-admissible ideal, so we provide also additional methods.[133X
  
  [33X[0;0YIn  the  example  below, we construct a factor of a path algebra purely with
  commands  in  [5XGAP[105X (cf. also Chapter 60: Algebras in the [5XGAP[105X manual on how to
  construct  an  ideal  and  a  quotient  of  an algebra). Functions which use
  Groebner   bases  like  [2XIsFiniteDimensional[102X  ([14X4.11-3[114X),  [2XDimension[102X  ([14X4.12-6[114X),
  [2XIsSpecialBiserialAlgebra[102X  ([14X4.11-19[114X)  or  a  membership test [2X\in[102X ([14X4.7-6[114X) will
  work  properly  (they simply compute the Groebner basis if it is necessary).
  But some "older" functions (like [2XIndecProjectiveModules[102X ([14X6.5-4[114X)) can fail or
  give  an  incorrect  answer!  This  way of constructing a quotient of a path
  algebra  can  be useful e.g. if we know that computing a Groebner basis will
  take  a  long time and we do not need this because we want to deal only with
  modules.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XQ := Quiver( 1, [ [1,1,"a"], [1,1,"b"] ] );[127X[104X
    [4X[28X<quiver with 1 vertices and 2 arrows>[128X[104X
    [4X[25Xgap>[125X [27XkQ := PathAlgebra(Rationals, Q);[127X[104X
    [4X[28X<Rationals[<quiver with 1 vertices and 2 arrows>]>[128X[104X
    [4X[25Xgap>[125X [27Xgens := GeneratorsOfAlgebra(kQ);[127X[104X
    [4X[28X[ (1)*v1, (1)*a, (1)*b ][128X[104X
    [4X[25Xgap>[125X [27Xa := gens[2];[127X[104X
    [4X[28X(1)*a[128X[104X
    [4X[25Xgap>[125X [27Xb := gens[3];[127X[104X
    [4X[28X(1)*b[128X[104X
    [4X[25Xgap>[125X [27Xrelations := [a^2,a*b-b*a, b*b];[127X[104X
    [4X[28X[ (1)*a^2, (1)*a*b+(-1)*b*a, (1)*b^2 ][128X[104X
    [4X[25Xgap>[125X [27XI := Ideal(kQ,relations);[127X[104X
    [4X[28X<two-sided ideal in <Rationals[<quiver with 1 vertices and 2 arrows>]>[128X[104X
    [4X[28X    , (3 generators)>[128X[104X
    [4X[25Xgap>[125X [27XA := kQ/I;[127X[104X
    [4X[28X<Rationals[<quiver with 1 vertices and 2 arrows>]/[128X[104X
    [4X[28X<two-sided ideal in <Rationals[<quiver with 1 vertices and 2 arrows>]>[128X[104X
    [4X[28X    , (3 generators)>>[128X[104X
    [4X[25Xgap>[125X [27XIndecProjectiveModules(A);[127X[104X
    [4X[28XCompute a Groebner basis of the ideal you are factoring out with befor\[128X[104X
    [4X[28Xe you form the quotient algebra, or you have entered an algebra which \[128X[104X
    [4X[28Xis not finite dimensional.[128X[104X
    [4X[28Xfail[128X[104X
  [4X[32X[104X
  
  [33X[0;0YTo  resolve  this  matter, we need to compute the Gröbner basis of the ideal
  generated by the relations in [23XkQ[123X (yes, it seems like we are going in circles
  here.  Remember,  then,  that an ideal in the "mathematical sense" may exist
  independently  of  the  a  corresponding  [10XIdeal[110X object in [5XGAP[105X. Also, Gröbner
  bases  in  [5XQPA[105X are handled by the [5XGBNP[105X package, with constructor methods not
  dependent  on  [10XIdeal[110X objects. After creating the ideal [23XI[123X, we need to perform
  yet  another  Gröbner  basis operation which just set a respective attribute
  for [23XI[123X, see [2XGroebnerBasis[102X ([14X5.1-2[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgb := GBNPGroebnerBasis(relations,kQ);[127X[104X
    [4X[28X[ (1)*a^2, (-1)*a*b+(1)*b*a, (1)*b^2 ][128X[104X
    [4X[25Xgap>[125X [27XI := Ideal(kQ,gb);                    [127X[104X
    [4X[28X<two-sided ideal in <Rationals[<quiver with 1 vertices and 2 arrows>]>, [128X[104X
    [4X[28X  (3 generators)>[128X[104X
    [4X[25Xgap>[125X [27XGroebnerBasis(I,gb);                  [127X[104X
    [4X[28X<complete two-sided Groebner basis containing 3 elements>[128X[104X
    [4X[25Xgap>[125X [27XIndecProjectiveModules(A);                                                [127X[104X
    [4X[28Xfail[128X[104X
    [4X[25Xgap>[125X [27XA := kQ/I;                                                                [127X[104X
    [4X[28X<Rationals[<quiver with 1 vertices and 2 arrows>]/[128X[104X
    [4X[28X<two-sided ideal in <Rationals[<quiver with 1 vertices and 2 arrows>]>, [128X[104X
    [4X[28X  (3 generators)>>[128X[104X
    [4X[25Xgap>[125X [27XIndecProjectiveModules(A);[127X[104X
    [4X[28X[ <[ 4 ]> ][128X[104X
  [4X[32X[104X
  
  [33X[0;0YNote that the instruction [10XA := kQ/relations;[110X used in Introduction is exactly
  an  abbreviation  for  a  sequence of instructions with Groebner basis as in
  above example.[133X
  
  [33X[0;0YMost  [5XQPA[105X  operations working on algebras handle path algebras and quotients
  of path algebras in the same way (when this makes sense). However, there are
  still a few operations which does not work properly when given a quotient of
  a  path  algebra.  When  constructing a quotient of a path algebra one needs
  define  the  ideal  one  is factoring out. Above this has been done with the
  commands[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgens := GeneratorsOfAlgebra(kQ);[127X[104X
    [4X[28X[ (1)*v1, (1)*a, (1)*b ][128X[104X
    [4X[25Xgap>[125X [27Xa := gens[2];[127X[104X
    [4X[28X(1)*a[128X[104X
    [4X[25Xgap>[125X [27Xb := gens[3];[127X[104X
    [4X[28X(1)*b[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe following command makes this process easier.[133X
  
  [1X4.6-1 AssignGeneratorVariables[101X
  
  [29X[2XAssignGeneratorVariables[102X( [3XA[103X ) [32X operation
  
  [33X[0;0YArguments: [3XA[103X -- a quiver algebra.[133X
  
  [6XReturns:[106X  [33X[0;10YTakes a quiver algebra [3XA[103X as an argument and creates variables, say
            [22Xv_1,...,v_n[122X  for  the vertices, and [22Xa_1,...,a_t[122X for the arrows for
            the  corresponding  elements  in  [3XA[103X,  whenever  the quiver for the
            quiver  algebra [3XA[103X is was constructed with the vertices being named
            [22Xv_1,...,v_n[122X and the arrows being named [22Xa_1,...,a_t[122X.[133X
  
  [33X[0;0YHere is an example of its use.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XAssignGeneratorVariables(kQ);[127X[104X
    [4X[28X#I  Assigned the global variables [ v1, a, b ][128X[104X
    [4X[25Xgap>[125X [27Xv1; a; b;[127X[104X
    [4X[28X(1)*v1[128X[104X
    [4X[28X(1)*a[128X[104X
    [4X[28X(1)*b[128X[104X
  [4X[32X[104X
  
  
  [1X4.7 [33X[0;0YIdeals and operations on ideals[133X[101X
  
  [1X4.7-1 Ideal[101X
  
  [29X[2XIdeal[102X( [3XFQ[103X, [3Xelems[103X ) [32X function
  
  [33X[0;0YArguments: [3XFQ[103X -- a path algebra, [3Xelems[103X -- a list of elements in [3XFQ[103X.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe   ideal   of   [3XFQ[103X   generated   by  [3Xelems[103X  with  the  property
            [2XIsIdealInPathAlgebra[102X ([14X4.8-2[114X).[133X
  
  [33X[0;0YFor more on ideals, see the [5XGAP[105X reference manual (Chapter 60.6).[133X
  [33X[0;0Y[13XTechnical  info:[113X  Ideal is a synonym for a global GAP function TwoSidedIdeal
  which     calls     an    operation    TwoSidedIdealByGenerators    (synonym
  IdealByGenerators) for an algebra (FLMLOR).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgb := GBNPGroebnerBasis(relations,kQ);[127X[104X
    [4X[28X[ (1)*a^2, (-1)*a*b+(1)*b*a, (1)*b^2 ][128X[104X
    [4X[25Xgap>[125X [27XI := Ideal(kQ,gb);[127X[104X
    [4X[28X<two-sided ideal in <Rationals[<quiver with 1 vertices and 2 arrows>]>[128X[104X
    [4X[28X    , (3 generators)>[128X[104X
    [4X[25Xgap>[125X [27XGroebnerBasis(I,gb);[127X[104X
    [4X[28X<complete two-sided Groebner basis containing 3 elements>[128X[104X
    [4X[25Xgap>[125X [27XIndecProjectiveModules(A);[127X[104X
    [4X[28X[ <[ 4 ]> ][128X[104X
    [4X[25Xgap>[125X [27XA := kQ/I;[127X[104X
    [4X[28X<Rationals[<quiver with 1 vertices and 2 arrows>]/[128X[104X
    [4X[28X<two-sided ideal in <Rationals[<quiver with 1 vertices and 2 arrows>]>[128X[104X
    [4X[28X    , (3 generators)>>[128X[104X
    [4X[25Xgap>[125X [27XIndecProjectiveModules(A);[127X[104X
    [4X[28X[ <[ 4 ]> ][128X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X4.7-2 IdealOfQuotient[101X
  
  [29X[2XIdealOfQuotient[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a quiver algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe ideal in the path algebra [22XkQ[122X from which [3XA[103X was constructed.[133X
  
  [1X4.7-3 PathsOfLengthTwo[101X
  
  [29X[2XPathsOfLengthTwo[102X( [3XQ[103X ) [32X operation
  
  [33X[0;0YArguments: [3XQ[103X -- a quiver.[133X
  
  [6XReturns:[106X  [33X[0;10Ya  list  of  all paths of length two in [3XQ[103X, sorted by [10X<[110X. Fails with
            error message if [3XQ[103X is not a Quiver object.[133X
  
  [1X4.7-4 NthPowerOfArrowIdeal[101X
  
  [29X[2XNthPowerOfArrowIdeal[102X( [3XFQ[103X, [3Xn[103X ) [32X operation
  
  [33X[0;0YArguments: [3XFQ[103X -- a path algebra, [3Xn[103X -- a positive integer.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe ideal generated all the paths of length [3Xn[103X in [3XFQ[103X.[133X
  
  [1X4.7-5 AddNthPowerToRelations[101X
  
  [29X[2XAddNthPowerToRelations[102X( [3XFQ[103X, [3Xrels[103X, [3Xn[103X ) [32X operation
  
  [33X[0;0YArguments: [3XFQ[103X -- a path algebra, [3Xrels[103X -- a (possibly empty) list of elements
  in [3XFQ[103X, [3Xn[103X -- a positive integer.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  list  [3Xrels[103X  with  the  paths of length [3Xn[103X of [3XFQ[103X appended (will
            change the list [3Xrels[103X).[133X
  
  [1X4.7-6 \in[101X
  
  [29X[2X\in[102X( [3Xelt[103X, [3XI[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xelt[103X - an element in a path algebra, [3XI[103X - an ideal in the same path
  algebra (i.e. with [2XIsIdealInPathAlgebra[102X ([14X4.8-2[114X) property).[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue, if [3Xelt[103X belongs to [3XI[103X.[133X
  
  [33X[0;0YIt  performs  the  membership  test  for  an  ideal  in  path  algebra using
  completely reduced Groebner bases machinery.[133X
  [33X[0;0Y[13XTechnical info:[113X For the efficiency reasons, it computes Groebner basis for [3XI[103X
  only   if   it   has   not   been   computed  yet.  Similarly,  it  performs
  CompletelyReduceGroebnerBasis  only  if  it  has  not  been reduced yet. The
  method can change the existing Groebner basis.[133X
  [33X[0;0Y[13XRemark:[113X It works only in case [3XI[103X is in the arrow ideal.[133X
  
  
  [1X4.8 [33X[0;0YCategories and properties of ideals[133X[101X
  
  [1X4.8-1 IsAdmissibleIdeal[101X
  
  [29X[2XIsAdmissibleIdeal[102X( [3XI[103X ) [32X property
  
  [33X[0;0YArguments: [3XI[103X -- an IsIdealInPathAlgebra object.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  whenever  [3XI[103X is an [13Xadmissible[113X ideal in a path algebra, i.e. [3XI[103X
            is  a  subset of [22XJ^2[122X and [3XI[103X contains [22XJ^n[122X for some [22Xn[122X, where [22XJ[122X is the
            arrow ideal.[133X
  
  [33X[0;0Y[13XTechnical  note:[113X  The second condition is checked by the nilpotency index of
  the  radical  and  checking if the ideal generated by the arrows to one plus
  this  index  is  in  the  ideal  of  the relations (this uses Groebner bases
  machinery).[133X
  
  [1X4.8-2 IsIdealInPathAlgebra[101X
  
  [29X[2XIsIdealInPathAlgebra[102X( [3XI[103X ) [32X property
  
  [33X[0;0YArguments: [3XI[103X -- an IsFLMLOR object.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue whenever [3XI[103X is an ideal in a path algebra.[133X
  
  [1X4.8-3 IsMonomialIdeal[101X
  
  [29X[2XIsMonomialIdeal[102X( [3XI[103X ) [32X property
  
  [33X[0;0YArguments: [3XI[103X -- an IsIdealInPathAlgebra object.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  whenever  [3XI[103X is a [13Xmonomial[113X ideal in a path algebra, i.e. [3XI[103X is
            generated by a set of monomials (= "zero-relations").[133X
  
  [33X[0;0Y[13XTechnical  note:[113X It uses the observation: [3XI[103X is a monomial ideal iff Groebner
  basis  of  [3XI[103X is a set of monomials. It computes Groebner basis for [3XI[103X only in
  case   it  has  not  been  computed  yet  and  a  usual  set  of  generators
  (GeneratorsOfIdeal) is not a set of monomials.[133X
  
  [1X4.8-4 IsQuadraticIdeal[101X
  
  [29X[2XIsQuadraticIdeal[102X( [3Xrels[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xrels[103X -- a list of elements in a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  whenever  [3Xrels[103X  is  a list of elements in the linear span of
            degree  two  elements of a path algebra. It returns false whenever
            [3Xrels[103X  is  a  list  of  elements  in a path algebra, but not in the
            linear  span of degree two of a path algebra. Otherwise it returns
            fail.[133X
  
  
  [1X4.9 [33X[0;0YOperations on ideals[133X[101X
  
  [1X4.9-1 ProductOfIdeals[101X
  
  [29X[2XProductOfIdeals[102X( [3XI[103X, [3XJ[103X ) [32X operation
  
  [33X[0;0YArguments: [3XI, J[103X -- two ideals in a path algebra [3XKQ[103X.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  ideal  formed  by the product of the ideals [3XI[103X and [3XJ[103X, whenever
            the ideal [3XJ[103X admits finitely many nontips in [3XKQ[103X.[133X
  
  [33X[0;0YThe  function  checks  if the two ideals are ideals in the same path algebra
  and that [3XJ[103X admits finitely many nontips in [3XKQ[103X.[133X
  
  [1X4.9-2 QuadraticPerpOfPathAlgebraIdeal[101X
  
  [29X[2XQuadraticPerpOfPathAlgebraIdeal[102X( [3Xrels[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xrels[103X -- a list of elements in a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Yfail  if  [3Xrels[103X  is  not  a  list of elements in the linear span of
            degree  two  elements of a path algebra [3XKQ[103X. Otherwise it returns a
            list of length two, where the first element is a set of generators
            for  the ideal [23X[3Xrels[103X^\perp[123X in opposite algebra of [3XKQ[103X and the second
            element is the opposite algebra of [3XKQ[103X.[133X
  
  
  [1X4.10 [33X[0;0YAttributes of ideals[133X[101X
  
  [33X[0;0YFor  many  of the functions related to quotients, you will need to compute a
  Groebner  basis  of  the  ideal.  This  is  done  with the GBNP package. The
  following  example shows how to set a Groebner basis for an ideal (note that
  this  must  be  done  before  the quotient is constructed). See the next two
  chapters for more on Groebner bases.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xrels := [FQ.a - FQ.b*FQ.c, FQ.d*FQ.d];[127X[104X
    [4X[28X[ (1)*a+(-1)*b*c, (1)*d^2 ][128X[104X
    [4X[25Xgap>[125X [27Xgb := GBNPGroebnerBasis(rels, FQ); [127X[104X
    [4X[28X[ (-1)*a+(1)*b*c, (1)*d^2 ][128X[104X
    [4X[25Xgap>[125X [27XI := Ideal(FQ, gb);[127X[104X
    [4X[28X<two-sided ideal in <Rationals[<quiver with 2 vertices and 4 arrows>]>[128X[104X
    [4X[28X    , (2 generators)>[128X[104X
    [4X[25Xgap>[125X [27XGroebnerBasis(I, gb);[127X[104X
    [4X[28X<complete two-sided Groebner basis containing 2 elements>[128X[104X
    [4X[25Xgap>[125X [27Xquot := FQ/I;[127X[104X
    [4X[28X<Rationals[<quiver with 2 vertices and 4 arrows>]/[128X[104X
    [4X[28X<two-sided ideal in <Rationals[<quiver with 2 vertices and 4 arrows>]>[128X[104X
    [4X[28X    , (2 generators)>>[128X[104X
  [4X[32X[104X
  
  [1X4.10-1 GroebnerBasisOfIdeal[101X
  
  [29X[2XGroebnerBasisOfIdeal[102X( [3XI[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XI[103X -- an ideal in path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ya Groebner basis of ideal [3XI[103X (if it has been already computed!).[133X
  
  [33X[0;0YThis attribute is set only by an operation [2XGroebnerBasis[102X ([14X5.1-2[114X).[133X
  
  
  [1X4.11 [33X[0;0YCategories and Properties of Quotients of Path Algebras[133X[101X
  
  [1X4.11-1 IsAdmissibleQuotientOfPathAlgebra[101X
  
  [29X[2XIsAdmissibleQuotientOfPathAlgebra[102X( [3XA[103X ) [32X filter
  
  [33X[0;0YArguments: [3XA[103X -- any object.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  whenever  [3XA[103X is a quotient of a path algebra by an admissible
            ideal  constructed by the command [10X\/[110X with arguments a path algebra
            and  a  list  of  relations,  [10XKQ/rels[110X,  where  [10Xrels[110X  is  a list of
            relations. Otherewise it returns an error message.[133X
  
  [1X4.11-2 IsQuotientOfPathAlgebra[101X
  
  [29X[2XIsQuotientOfPathAlgebra[102X( [3Xobject[103X ) [32X property
  
  [33X[0;0YArgument: [3Xobject[103X -- any object in [5XGAP[105X.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue whenever [3Xobject[103X is a quotient of a path algebra.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xquot := FQ/I;[127X[104X
    [4X[28X<Rationals[<quiver with 2 vertices and 4 arrows>]/[128X[104X
    [4X[28X<two-sided ideal in <Rationals[<quiver with 2 vertices and 4 arrows>]>[128X[104X
    [4X[28X    , (2 generators)>>[128X[104X
    [4X[25Xgap>[125X [27XIsQuotientOfPathAlgebra(quot);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsQuotientOfPathAlgebra(FQ);[127X[104X
    [4X[28Xfalse[128X[104X
  [4X[32X[104X
  
  [1X4.11-3 IsFiniteDimensional[101X
  
  [29X[2XIsFiniteDimensional[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue whenever [3XA[103X is a finite dimensional algebra.[133X
  
  [33X[0;0Y[13XTechnical  note:[113X  For  a  path  algebra it uses a standard [5XGAP[105X method. For a
  quotient  of  a  path  algebra it uses Groebner bases machinery (it computes
  Groebner basis for the ideal only in case it has not been computed yet).[133X
  
  [1X4.11-4 IsCanonicalAlgebra[101X
  
  [29X[2XIsCanonicalAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  if  [3XA[103X has been constructed by the operation [2XCanonicalAlgebra[102X
            ([14X4.14-1[114X), otherwise "Error, no method found".[133X
  
  [1X4.11-5 IsDistributiveAlgebra[101X
  
  [29X[2XIsDistributiveAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  if  [3XA[103X  is  an  admissible  quotient  of  a  path algebra and
            distributive.  Otherwise  it  returns  false if [3XA[103X is an admissible
            quotient of a path algebra and distributive. If [3XA[103X is a quotient of
            a  path algebra, but not an admissible quotient, then it looks for
            other methods. There are not further methods implemented in QPA as
            of now.[133X
  
  [1X4.11-6 IsFiniteGlobalDimensionAlgebra[101X
  
  [29X[2XIsFiniteGlobalDimensionAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X - an algebra over a field.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  if  it is known that the entered algebra [3XA[103X has finite global
            dimension.[133X
  
  [33X[0;0YThere  is  no  method  associated  to  this,  so if it is not known that the
  algebra has finite global dimension, then an error message saying "no method
  found!" is return.[133X
  
  [1X4.11-7 IsGentleAlgebra[101X
  
  [29X[2XIsGentleAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue if the algebra [3XA[103X is a gentle algebra. Otherwise false.[133X
  
  [1X4.11-8 IsGorensteinAlgebra[101X
  
  [29X[2XIsGorensteinAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- an algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  if it is known that [3XA[103X is a Gorenstein algebra. If unknown it
            returns an error message saying "no method found!".[133X
  
  [33X[0;0YThere is no method installed for this yet.[133X
  
  [1X4.11-9 IsHereditaryAlgebra[101X
  
  [29X[2XIsHereditaryAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- an admissible quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue if [3XA[103X is a hereditary algebra and false otherwise.[133X
  
  [1X4.11-10 IsKroneckerAlgebra[101X
  
  [29X[2XIsKroneckerAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  if  [3XA[103X has been constructed by the operation [2XKroneckerAlgebra[102X
            ([14X4.14-2[114X), otherwise "Error, no method found".[133X
  
  [1X4.11-11 IsMonomialAlgebra[101X
  
  [29X[2XIsMonomialAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- a quiver algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  when  [3XA[103X  is  given  as [10XkQ/I[110X and [10XI[110X is a monomial ideal in [10XkQ[110X,
            otherwise it returns false.[133X
  
  [1X4.11-12 IsNakayamaAlgebra[101X
  
  [29X[2XIsNakayamaAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  if  [3XA[103X  has been constructed by the operation [2XNakayamaAlgebra[102X
            ([14X4.14-3[114X), otherwise "Error, no method found".[133X
  
  [1X4.11-13 IsQuiverAlgebra[101X
  
  [29X[2XIsQuiverAlgebra[102X( [3XA[103X ) [32X filter
  
  [33X[0;0YArguments: [3XA[103X -- an algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  if  [3XA[103X  is  a  path  algebra  or a quotient of a path algebra
            algebra, otherwise false.[133X
  
  [1X4.11-14 IsRadicalSquareZeroAlgebra[101X
  
  [29X[2XIsRadicalSquareZeroAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- an algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue if [3XA[103X is a radical square zero algebra, otherwise false.[133X
  
  [1X4.11-15 IsSchurianAlgebra[101X
  
  [29X[2XIsSchurianAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  if [3XA[103X is a schurian algebra. By definition it means that: for
            all [23Xx,y\in Q_0[123X we have [23X\dim A(x,y)\leq 1 [123X.[133X
  
  [33X[0;0Y[13XNote:[113X This method fail when a Groebner basis for ideal has not been computed
  before creating a quotient![133X
  
  [1X4.11-16 IsSelfinjectiveAlgebra[101X
  
  [29X[2XIsSelfinjectiveAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Yfail  if [3XA[103X is not finite dimensional. Otherwise it returns true or
            false according to whether [3XA[103X is selfinjective or not.[133X
  
  [1X4.11-17 IsSemicommutativeAlgebra[101X
  
  [29X[2XIsSemicommutativeAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  if  [3XA[103X  is  a semicommutative algebra. By definition it means
            that:[133X
            [33X[0;10Y1. [3XA[103X is schurian (cf. [2XIsSchurianAlgebra[102X ([14X4.11-15[114X)).[133X
            [33X[0;10Y2. Quiver [23XQ[123X of [3XA[103X is acyclic (cf. [2XIsAcyclicQuiver[102X ([14X3.3-2[114X)).[133X
            [33X[0;10Y3.  For  all  pairs  of  vertices [23X(x,y)[123X the following condition is
            satisfied:  for  every  two  paths  [23XP,P'[123X  from  [23Xx[123X  to  [23Xy[123X:  [23XP\in  I
            \Leftrightarrow P'\in I[123X.[133X
  
  [33X[0;0Y[13XNote:[113X This method fail when a Groebner basis for ideal has not been computed
  before creating a quotient![133X
  
  [1X4.11-18 IsSemisimpleAlgebra[101X
  
  [29X[2XIsSemisimpleAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X - an algebra over a field.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue if the entered algebra [3XA[103X is semisimple, false otherwise.[133X
  
  [33X[0;0YChecks  if  the  algebra  is  finite  dimensional.  If  it  is an admissible
  quotients of a path algebra, it only checks if the underlying quiver has any
  arrows  or not. Otherwise, it computes the radical of the algebra and checks
  if it is zero.[133X
  
  [1X4.11-19 IsSpecialBiserialAlgebra[101X
  
  [29X[2XIsSpecialBiserialAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  whenever [3XA[103X is a [13Xspecial biserial algebra[113X, i.e. [3XA=KQ/I[103X, where
            [3XQ[103X  is  [2XIsSpecialBiserialQuiver[102X  ([14X4.14-7[114X), [3XI[103X is an admissible ideal
            ([2XIsAdmissibleIdeal[102X ([14X4.8-1[114X)) and [3XI[103X satisfies the "special biserial"
            conditions, i.e.:[133X
  
            [30X    [33X[0;16Yfor  any  arrow [22Xa[122X there exists at most one arrow [22Xb[122X such that
                  [22Xab[122X does not belong to [3XI[103X[133X
  
            [30X    [33X[0;16Ythere  exists  at  most  one  arrow  [22Xc[122X such that [22Xca[122X does not
                  belong to [22XI[122X.[133X
  
  [33X[0;0Y[13XNote:[113X  e.g. a path algebra of one loop IS NOT special biserial, but one loop
  IS   special  biserial  quiver  (see  [2XIsSpecialBiserialQuiver[102X  ([14X4.14-7[114X)  for
  examples).[133X
  
  [1X4.11-20 IsStringAlgebra[101X
  
  [29X[2XIsStringAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  whenever  [3XA[103X  is  a  [13Xstring[113X  (special biserial) algebra, i.e.
            [3XA=KQ/I[103X  is  a  special  biserial algebra ([2XIsSpecialBiserialAlgebra[102X
            ([14X4.11-19[114X)  and  [3XI[103X  is  generated by monomials (= "zero-relations")
            (cf.   [2XIsMonomialIdeal[102X   ([14X4.8-3[114X)).   See   [2XIsSpecialBiserialQuiver[102X
            ([14X4.14-7[114X) for examples.[133X
  
  [1X4.11-21 IsSymmetricAlgebra[101X
  
  [29X[2XIsSymmetricAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Yfail  if  [3XA[103X  is not finite dimensional or does not have a Groebner
            basis.  Otherwise  it returns true or false according to whether [3XA[103X
            is symmetric or not.[133X
  
  [1X4.11-22 IsTriangularReduced[101X
  
  [29X[2XIsTriangularReduced[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X - a finite dimensional QuiverAlgebra.[133X
  
  [6XReturns:[106X  [33X[0;10Y[10Xfalse[110X  if the algebra [3XA[103X is triangular reducable, that is, there is
            a  sum  over  vertices  [22Xe[122X  such  that  [22XeA(1 - e) = (0)[122X for [22Xe≠ 0,1[122X.
            Otherwise, it returns [10Xtrue[110X.[133X
  
  [33X[0;0YThe  function  checks  if  the  algebra [3XA[103X is finite dimensional and gives an
  error message otherwise.[133X
  
  [1X4.11-23 IsWeaklySymmetricAlgebra[101X
  
  [29X[2XIsWeaklySymmetricAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Yfail  if  [3XA[103X  is not finite dimensional or does not have a Groebner
            basis.  Otherwise  it returns true or false according to whether [3XA[103X
            is weakly symmetric or not.[133X
  
  [1X4.11-24 IsFiniteTypeAlgebra[101X
  
  [29X[2XIsFiniteTypeAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10YReturns  true if [3XA[103X is of finite representation type. Returns false
            if  [3XA[103X  is  of infinite representation type. Returns fail if we can
            not  determine  the  representation  type (i.e. it impossible from
            theoretical/algorithmic  point of view or a suitable criterion has
            not  been  implemented  yet;  the  implementation is in progress).
            Note:  in  case  [3XA[103X  is  a  path algebra the function is completely
            implemented.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XQ := Quiver(5, [ [1,2,"a"], [2,4,"b"], [3,2,"c"], [2,5,"d"] ]);[127X[104X
    [4X[28X<quiver with 5 vertices and 4 arrows>[128X[104X
    [4X[25Xgap>[125X [27XA := PathAlgebra(Rationals, Q);[127X[104X
    [4X[28X<Rationals[<quiver with 5 vertices and 4 arrows>]>[128X[104X
    [4X[25Xgap>[125X [27XIsFiniteTypeAlgebra(A);[127X[104X
    [4X[28XInfinite type![128X[104X
    [4X[28XQuiver is not a (union of) Dynkin quiver(s).[128X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27Xquo := A/[A.a*A.b, A.c*A.d];;[127X[104X
    [4X[25Xgap>[125X [27XIsFiniteTypeAlgebra(quo);[127X[104X
    [4X[28XFinite type![128X[104X
    [4X[28XSpecial biserial algebra with no unoriented cycles in Q.[128X[104X
    [4X[28Xtrue [128X[104X
  [4X[32X[104X
  
  
  [1X4.12 [33X[0;0YAttributes and Operations (for Quotients) of Path Algebras[133X[101X
  
  [1X4.12-1 CartanMatrix[101X
  
  [29X[2XCartanMatrix[102X( [3XA[103X ) [32X operation
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe Cartan matrix of the algebra [3XA[103X, after having checked that [3XA[103X is
            a finite dimensional quotient of a path algebra.[133X
  
  [1X4.12-2 Centre/Center[101X
  
  [29X[2XCentre/Center[102X( [3XA[103X ) [32X operation
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe centre of the algebra [3XA[103X as a subalgebra.[133X
  
  [33X[0;0YThe  function computes the center of [3XA[103X if [3XA[103X is a finite dimensional quotient
  of  a  path  algebra  or  [3XA[103X  is  a  path  algebra with on restriction on the
  underlying quiver.[133X
  
  [1X4.12-3 ComplexityOfAlgebra[101X
  
  [29X[2XComplexityOfAlgebra[102X( [3XA[103X, [3Xn[103X ) [32X operation
  
  [33X[0;0YArguments:  [3XA[103X  --  a  path  algebra  or a quotient of a path algebra, [3Xn[103X -- a
  positive integer.[133X
  
  [6XReturns:[106X  [33X[0;10Yan estimate of the complexity of the algebra [3XA[103X.[133X
  
  [33X[0;0YThe  function  checks  if  the  algebra  [3XA[103X  is  known  to have finite global
  dimension. If so, it returns complexity zero. Otherwise it tries to estimate
  the  complexity  in  the  following way. Recall that if a function [22Xf(x)[122X is a
  polynomial  in  [22Xx[122X, the degree of [22Xf(x)[122X is given by [22Xlim_n->∞ fraclog |f(n)|log
  n[122X.  So  then this function computes an estimate of the maximal complexity of
  the  simple  modules  over  [3XA[103X by approximating the complexity of each simple
  module  [22XS[122X by considering the limit [22Xlim_m-> ∞ log fracdim(P(S)(m))log m[122X where
  [22XP(S)(m)[122X  is  the  [22Xm[122X-th projective in a minimal projective resolution of [3XS[103X at
  stage [22Xm[122X. This limit is estimated by [22Xfraclog dim(P(S)(n))log n[122X.[133X
  
  [1X4.12-4 CoxeterMatrix[101X
  
  [29X[2XCoxeterMatrix[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  Coxeter  matrix of the algebra [3XA[103X, after having checked that [3XA[103X
            is a finite dimensional quotient of a path algebra.[133X
  
  [1X4.12-5 CoxeterPolynomial[101X
  
  [29X[2XCoxeterPolynomial[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe Coxeter polynomial of the algebra [3XA[103X, after having checked that
            [3XA[103X is a finite dimensional quotient of a path algebra.[133X
  
  [1X4.12-6 Dimension[101X
  
  [29X[2XDimension[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  dimension  of  the  algebra  [3XA[103X  or  [13Xinfinity[113X  in case [3XA[103X is an
            infinite dimensional algebra.[133X
  
  [33X[0;0YFor  a  quotient  of  a  path  algebra  it uses Groebner bases machinery (it
  computes  Groebner basis for the ideal only in case it has not been computed
  yet).[133X
  
  [1X4.12-7 GlobalDimension[101X
  
  [29X[2XGlobalDimension[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- an algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe global dimension of the algebra [3XA[103X if it is known. Otherwise it
            returns an error message saying "no method found!".[133X
  
  [33X[0;0YThere is no method installed for this yet.[133X
  
  [1X4.12-8 LoewyLength[101X
  
  [29X[2XLoewyLength[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Yfail  if  [3XA[103X  is  not  finite dimensional. Otherwise it returns the
            Loewy length of the algebra [3XA[103X.[133X
  
  [1X4.12-9 NakayamaAutomorphism[101X
  
  [29X[2XNakayamaAutomorphism[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Yfalse  if [3XA[103X is not selfinjective algebra. Otherwise it returns the
            Nakayama automorphism of [3XA[103X.[133X
  
  [1X4.12-10 NakayamaPermutation[101X
  
  [29X[2XNakayamaPermutation[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Yfalse  if  [3XA[103X  is not selfinjective algebra. Otherwise it returns a
            list  of  two elements where the first is the Nakayama permutation
            on  the  simple modules and the second is the Nakayama permutation
            on the index set of the simple modules of [3XA[103X.[133X
  
  [1X4.12-11 OrderOfNakayamaAutomorphism[101X
  
  [29X[2XOrderOfNakayamaAutomorphism[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or a quotient of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Yfalse  if [3XA[103X is not selfinjective algebra. Otherwise it returns the
            order of the Nakayama autormorphism of [3XA[103X.[133X
  
  [1X4.12-12 RadicalSeriesOfAlgebra[101X
  
  [29X[2XRadicalSeriesOfAlgebra[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- an algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  radical  series  of  the algebra [3XA[103X in a list, where the first
            element is the algebra [3XA[103X itself, then radical of [3XA[103X, radical square
            of [3XA[103X, and so on.[133X
  
  
  [1X4.13 [33X[0;0YAttributes and Operations on Elements of Quotients of Path Algebra[133X[101X
  
  [1X4.13-1 IsElementOfQuotientOfPathAlgebra[101X
  
  [29X[2XIsElementOfQuotientOfPathAlgebra[102X( [3Xobject[103X ) [32X property
  
  [33X[0;0YArguments: [3Xobject[103X -- any object in [5XGAP[105X.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  whenever  [3Xobject[103X  is  an  element of some quotient of a path
            algebra.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xelem := quot.a*quot.b;[127X[104X
    [4X[28X[(1)*a*b][128X[104X
    [4X[25Xgap>[125X [27XIsElementOfQuotientOfPathAlgebra(elem);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsElementOfQuotientOfPathAlgebra(FQ.a*FQ.b);    [127X[104X
    [4X[28Xfalse [128X[104X
  [4X[32X[104X
  
  [1X4.13-2 Coefficients[101X
  
  [29X[2XCoefficients[102X( [3XB[103X, [3Xelement[103X ) [32X operation
  
  [33X[0;0YArguments:  [3XB,  element[103X  --  a  basis  for  a quotient of a path algebra and
  element thereof.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  coefficients of the [3Xelement[103X in terms of the canonical basis [3XB[103X
            of the quotient of a path algebra in which [3Xelement[103X is an element.[133X
  
  [1X4.13-3 IsNormalForm[101X
  
  [29X[2XIsNormalForm[102X( [3Xelement[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xelement[103X -- an element of a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue if [3Xelement[103X is known to be in normal form.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> IsNormalForm(elem);  [128X[104X
    [4X[28X true  [128X[104X
  [4X[32X[104X
  
  [1X4.13-4 <[101X
  
  [29X[2X<[102X( [3Xa[103X, [3Xb[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xa[103X and [3Xb[103X -- elements from a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue whenever [3Xa[103X < [3Xb[103X.[133X
  
  [1X4.13-5 ElementOfQuotientOfPathAlgebra[101X
  
  [29X[2XElementOfQuotientOfPathAlgebra[102X( [3Xfamily[103X, [3Xelement[103X, [3Xcomputenormal[103X ) [32X operation
  
  [33X[0;0YArguments:  [3Xfamily[103X  -- a family of elements, [3Xelement[103X -- an element of a path
  algebra, [3Xcomputenormal[103X -- true or false.[133X
  
  [6XReturns:[106X  [33X[0;10YThe  projection  of  [3Xelement[103X into the quotient given by [3Xfamily[103X. If
            [3Xcomputenormal[103X  is  true, then the normal form of the projection of
            [3Xelement[103X is returned.[133X
  
  [33X[0;0Y[3Xfamily[103X  is  the  ElementsFamily  of  the  family  of  the algebra [3Xelement[103X is
  projected into.[133X
  
  [1X4.13-6 OriginalPathAlgebra[101X
  
  [29X[2XOriginalPathAlgebra[102X( [3Xalgebra[103X ) [32X attribute
  
  [33X[0;0YArguments: [3Xalgebra[103X -- an algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ya path algebra.[133X
  
  [33X[0;0YIf  [3Xalgebra[103X  is  a quotient of a path algebra or just a path algebra itself,
  the  returned algebra is the path algebra it was constructed from. Otherwise
  it  returns  an  error  saying  that  the algebra entered was not given as a
  quotient of a path algebra.[133X
  
  
  [1X4.14 [33X[0;0YPredefined classes and classes of (quotients of) path algebras[133X[101X
  
  [1X4.14-1 CanonicalAlgebra[101X
  
  [29X[2XCanonicalAlgebra[102X( [3Xfield[103X, [3Xweights[103X[, [3Xrelcoeff[103X] ) [32X operation
  
  [33X[0;0YArguments:  [3Xfield[103X  --  a  field,  [3Xweights[103X -- a list of positive integers, [,
  [3Xrelcoeff[103X -- a list of non-zero elements in the field.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  canonical algebra over the [3Xfield[103X with the quiver given by the
            weight   sequence   [3Xweights[103X   and   the  relations  given  by  the
            coefficients [3Xrelcoeff[103X.[133X
  
  [33X[0;0YIt  function  checks  if  all  the  [3Xweights[103X are greater or equal to two, the
  number  of weights is at least two, the number of coefficients is the number
  of  [3Xweights[103X  -  2,  the  coefficients  for  the  relations  are in field and
  non-zero.  If  only  the  two  first arguments are given, then the number of
  weights must be two.[133X
  
  [1X4.14-2 KroneckerAlgebra[101X
  
  [29X[2XKroneckerAlgebra[102X( [3Xfield[103X, [3Xn[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xfield[103X -- a field, [3Xn[103X -- a positive integer.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe [3Xn[103X-Kronecker algebra over the field [3Xfield[103X.[133X
  
  [33X[0;0YIt  function checks if the number [3Xn[103X of arrows is greater or equal to two and
  returns an error message if not.[133X
  
  [1X4.14-3 NakayamaAlgebra[101X
  
  [29X[2XNakayamaAlgebra[102X( [3Xadmiss-seq[103X, [3Xfield[103X ) [32X function
  
  [33X[0;0YArguments: [3Xfield[103X -- a field, [3Xadmiss-seq[103X -- a list of positive integers.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  Nakayama  algebra  corresponding  to  the admissible sequence
            [3Xadmiss-seq[103X over the field [3Xfield[103X. If the entered sequence is not an
            admissible sequence, the sequence is returned.[133X
  
  [33X[0;0YThe [3Xadmiss-seq[103X consists of the dimensions of the projective representations.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xalg := NakayamaAlgebra([2,1], Rationals);[127X[104X
    [4X[28X<Rationals[<quiver with 2 vertices and 1 arrows>]>[128X[104X
    [4X[25Xgap>[125X [27XQuiverOfPathAlgebra(alg);[127X[104X
    [4X[28X<quiver with 2 vertices and 1 arrows>[128X[104X
  [4X[32X[104X
  
  [1X4.14-4 PosetAlgebra[101X
  
  [29X[2XPosetAlgebra[102X( [3XF[103X, [3XP[103X ) [32X operation
  
  [33X[0;0YArguments: [3XF[103X -- a field, [3XP[103X -- a poset.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe poset algebra associated to the poset [3XP[103X over the field [3XK[103X.[133X
  
  [1X4.14-5 PosetOfPosetAlgebra[101X
  
  [29X[2XPosetOfPosetAlgebra[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a poset algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe poset from which that poset algebra [3XA[103X is constructed.[133X
  
  [1X4.14-6 TruncatedPathAlgebra[101X
  
  [29X[2XTruncatedPathAlgebra[102X( [3XF[103X, [3XQ[103X, [3Xn[103X ) [32X operation
  
  [33X[0;0YArguments: [3XF[103X -- a field, [3XQ[103X -- a quiver, [3Xn[103X -- a positive integer.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe truncated path algebra [3XKQ/I[103X, where [3XI[103X is the ideal generated by
            all paths of length [3Xn[103X in [3XKQ[103X.[133X
  
  [1X4.14-7 IsSpecialBiserialQuiver[101X
  
  [29X[2XIsSpecialBiserialQuiver[102X( [3XQ[103X ) [32X property
  
  [33X[0;0YArguments: [3XQ[103X -- a quiver.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  whenever [3XQ[103X is a [13X"special biserial"[113X quiver, i.e. every vertex
            in [3XQ[103X is a source (resp. target) of at most 2 arrows.[133X
  
  [33X[0;0Y[13XNote:[113X  e.g. a path algebra of one loop IS NOT special biserial, but one loop
  IS  special biserial quiver (cf. [2XIsSpecialBiserialAlgebra[102X ([14X4.11-19[114X) and also
  an Example below).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XQ := Quiver(1, [ [1,1,"a"], [1,1,"b"] ]);;  [127X[104X
    [4X[25Xgap>[125X [27XA := PathAlgebra(Rationals, Q);;[127X[104X
    [4X[25Xgap>[125X [27XIsSpecialBiserialAlgebra(A); IsStringAlgebra(A);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27Xrel1 := [A.a*A.b, A.a^2, A.b^2];  [127X[104X
    [4X[28X[ (1)*a*b, (1)*a^2, (1)*b^2 ][128X[104X
    [4X[25Xgap>[125X [27Xquo1 := A/rel1;;[127X[104X
    [4X[25Xgap>[125X [27XIsSpecialBiserialAlgebra(quo1); IsStringAlgebra(quo1);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xrel2 := [A.a*A.b-A.b*A.a, A.a^2, A.b^2];  [127X[104X
    [4X[28X[ (1)*a*b+(-1)*b*a, (1)*a^2, (1)*b^2 ][128X[104X
    [4X[25Xgap>[125X [27Xquo2 := A/rel2;;[127X[104X
    [4X[25Xgap>[125X [27XIsSpecialBiserialAlgebra(quo2); IsStringAlgebra(quo2);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27Xrel3 := [A.a*A.b+A.b*A.a, A.a^2, A.b^2, A.b*A.a];   [127X[104X
    [4X[28X[ (1)*a*b+(1)*b*a, (1)*a^2, (1)*b^2, (1)*b*a ][128X[104X
    [4X[25Xgap>[125X [27Xquo3 := A/rel3;;[127X[104X
    [4X[25Xgap>[125X [27XIsSpecialBiserialAlgebra(quo3); IsStringAlgebra(quo3);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xrel4 := [A.a*A.b, A.a^2, A.b^3]; [127X[104X
    [4X[28X[ (1)*a*b, (1)*a^2, (1)*b^3 ][128X[104X
    [4X[25Xgap>[125X [27Xquo4 := A/rel4;;[127X[104X
    [4X[25Xgap>[125X [27XIsSpecialBiserialAlgebra(quo4); IsStringAlgebra(quo4);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[28Xfalse [128X[104X
  [4X[32X[104X
  
  
  [1X4.15 [33X[0;0YOpposite algebras[133X[101X
  
  [1X4.15-1 OppositePath[101X
  
  [29X[2XOppositePath[102X( [3Xp[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xp[103X -- a path.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe path corresponding to [3Xp[103X in the opposite quiver.[133X
  
  [33X[0;0YThe  following  example  illustrates  the  use of [2XOppositeQuiver[102X ([14X3.5-9[114X) and
  [2XOppositePath[102X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XQ := Quiver( [ "u", "v" ], [ [ "u", "u", "a" ], [127X[104X
    [4X[25X>[125X [27X             [ "u", "v", "b" ] ] );[127X[104X
    [4X[28X<quiver with 2 vertices and 2 arrows>[128X[104X
    [4X[25Xgap>[125X [27XQop := OppositeQuiver(Q);[127X[104X
    [4X[28X<quiver with 2 vertices and 2 arrows>[128X[104X
    [4X[25Xgap>[125X [27XVerticesOfQuiver( Qop );[127X[104X
    [4X[28X[ u_op, v_op ][128X[104X
    [4X[25Xgap>[125X [27XArrowsOfQuiver( Qop );[127X[104X
    [4X[28X[ a_op, b_op ][128X[104X
    [4X[25Xgap>[125X [27XOppositePath( Q.a * Q.b );[127X[104X
    [4X[28Xb_op*a_op[128X[104X
    [4X[25Xgap>[125X [27XIsIdenticalObj( Q, OppositeQuiver( Qop ) );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XOppositePath( Qop.b_op * Qop.a_op );[127X[104X
    [4X[28Xa*b[128X[104X
  [4X[32X[104X
  
  [1X4.15-2 OppositePathAlgebra[101X
  
  [29X[2XOppositePathAlgebra[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a path algebra or quotient of path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe opposite algebra [22X[3XA[103X^op[122X.[133X
  
  [33X[0;0YThis attribute contains the opposite algebra of an algebra.[133X
  
  [33X[0;0YThe opposite algebra of a path algebra is the path algebra over the opposite
  quiver  (as  given  by  [2XOppositeQuiver[102X  ([14X3.5-9[114X)).  The opposite algebra of a
  quotient  of  a  path  algebra  has  the  opposite  quiver  and the opposite
  relations of the original algebra.[133X
  
  [33X[0;0YThe function [2XOppositePathAlgebraElement[102X ([14X4.15-3[114X) takes an algebra element to
  the corresponding element in the opposite algebra.[133X
  
  [33X[0;0YThe  opposite of the opposite of an algebra [22XA[122X is isomorphic to [22XA[122X. In QPA, we
  regard    these    two    algebras   to   be   the   same,   so   the   call
  [10XOppositePathAlgebra(OppositePathAlgebra(A))[110X returns the object [10XA[110X.[133X
  
  [1X4.15-3 OppositePathAlgebraElement[101X
  
  [29X[2XOppositePathAlgebraElement[102X( [3Xx[103X ) [32X function
  
  [33X[0;0YArguments: [3Xx[103X -- a path.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe element corresponding to [3Xx[103X in the opposite algebra.[133X
  
  [33X[0;0YThe  following  example  illustrates the use of [2XOppositePathAlgebra[102X ([14X4.15-2[114X)
  and [2XOppositePathAlgebraElement[102X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XQ := Quiver( [ "u", "v" ], [ [ "u", "u", "a" ], [127X[104X
    [4X[25X>[125X [27X             [ "u", "v", "b" ] ] );[127X[104X
    [4X[28X<quiver with 2 vertices and 2 arrows>[128X[104X
    [4X[25Xgap>[125X [27XA := PathAlgebra( Rationals, Q );[127X[104X
    [4X[28X<Rationals[<quiver with 2 vertices and 2 arrows>]>[128X[104X
    [4X[25Xgap>[125X [27XOppositePathAlgebra( A );[127X[104X
    [4X[28X<Rationals[<quiver with 2 vertices and 2 arrows>]>[128X[104X
    [4X[25Xgap>[125X [27XOppositePathAlgebraElement( A.u + 2*A.a + 5*A.a*A.b );[127X[104X
    [4X[28X(1)*u_op+(2)*a_op+(5)*b_op*a_op[128X[104X
    [4X[25Xgap>[125X [27XIsIdenticalObj( A, [127X[104X
    [4X[25X>[125X [27X        OppositePathAlgebra( OppositePathAlgebra( A ) ) );[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  
  [1X4.16 [33X[0;0YTensor products of path algebras[133X[101X
  
  [33X[0;0YIf  [22XΛ[122X and [22XΓ[122X are quotients of path algebras over the same field [22XF[122X, then their
  tensor product [22XΛ tensor_F Γ[122X is also a quotient of a path algebra over [22XF[122X.[133X
  
  [33X[0;0YThe quiver for the tensor product path algebra is the [2XQuiverProduct[102X ([14X4.16-1[114X)
  of the quivers of the original algebras.[133X
  
  [33X[0;0YThe  operation [2XTensorProductOfAlgebras[102X ([14X4.16-6[114X) computes the tensor products
  of two quotients of path algebras as a quotient of a path algebra.[133X
  
  [1X4.16-1 QuiverProduct[101X
  
  [29X[2XQuiverProduct[102X( [3XQ1[103X, [3XQ2[103X ) [32X operation
  
  [33X[0;0YArguments: [3XQ1[103X and [3XQ2[103X -- quivers.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe product quiver [22X[3XQ1[103X quiverproduct [3XQ2[103X[122X.[133X
  
  [33X[0;0YA  vertex in [22X[3XQ1[103X quiverproduct [3XQ2[103X[122X which is made by combining a vertex named [10Xu[110X
  in  [3XQ1[103X  with a vertex [10Xv[110X in [3XQ2[103X is named [10Xu_v[110X. Arrows are named similarly (they
  are  made  by  combining  an  arrow  from  one quiver with a vertex from the
  other).[133X
  
  [1X4.16-2 QuiverProductDecomposition[101X
  
  [29X[2XQuiverProductDecomposition[102X( [3XQ[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XQ[103X -- a quiver.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  original  quivers  [3XQ[103X is a product of, if [3XQ[103X was created by the
            [2XQuiverProduct[102X ([14X4.16-1[114X) operation.[133X
  
  [33X[0;0YThe   value   of   this   attribute   is   an   object   in   the   category
  [2XIsQuiverProductDecomposition[102X ([14X4.16-3[114X).[133X
  
  [1X4.16-3 IsQuiverProductDecomposition[101X
  
  [29X[2XIsQuiverProductDecomposition[102X( [3Xobject[103X ) [32X category
  
  [33X[0;0YArguments: [3Xobject[103X -- any object in [5XGAP[105X.[133X
  
  [33X[0;0YCategory  for  objects  containing  information about the relation between a
  product quiver and the quivers it is a product of. The quiver factors can be
  extracted  from  the  decomposition  object  by  using the [] notation (like
  accessing  elements of a list). The decomposition object is also used by the
  operations   [2XIncludeInProductQuiver[102X  ([14X4.16-4[114X)  and  [2XProjectFromProductQuiver[102X
  ([14X4.16-5[114X).[133X
  
  [1X4.16-4 IncludeInProductQuiver[101X
  
  [29X[2XIncludeInProductQuiver[102X( [3XL[103X, [3XQ[103X ) [32X operation
  
  [33X[0;0YArguments:  [3XL[103X  --  a  list  containing the paths [22Xq_1[122X and [22Xq_2[122X, [22XQ[122X -- a product
  quiver.[133X
  
  [6XReturns:[106X  [33X[0;10Ya path in [3XQ[103X.[133X
  
  [33X[0;0YIncludes  paths  [22Xq_1[122X  and  [22Xq_2[122X  from  two  quivers into the product of these
  quivers, [3XQ[103X. If at least one of [22Xq_1[122X and [22Xq_2[122X is a vertex, there is exactly one
  possible  inclusion.  If  they are both non-trivial paths, there are several
  possibilities.  This operation constructs the path which is the inclusion of
  [22Xq_1[122X  at the source of [22Xq_2[122X multiplied with the inclusion of [22Xq_2[122X at the target
  of [22Xq_1[122X.[133X
  
  [1X4.16-5 ProjectFromProductQuiver[101X
  
  [29X[2XProjectFromProductQuiver[102X( [3Xi[103X, [3Xp[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xi[103X -- a positive integer, [3Xp[103X -- a path in the product quiver.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe projection of the product quiver path [3Xp[103X to one of the factors.
            Which  factor  it  should  be  projected  to  is  specified by the
            argument [3Xi[103X.[133X
  
  [33X[0;0YThe  following  example  shows how the operations related to quiver products
  are used.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xq1 := Quiver( [ "u1", "u2" ], [ [ "u1", "u2", "a" ] ] );[127X[104X
    [4X[28X<quiver with 2 vertices and 1 arrows>[128X[104X
    [4X[25Xgap>[125X [27Xq2 := Quiver( [ "v1", "v2", "v3" ],[127X[104X
    [4X[28X                      [ [ "v1", "v2", "b" ],[128X[104X
    [4X[28X                        [ "v2", "v3", "c" ] ] );[128X[104X
    [4X[28X<quiver with 3 vertices and 2 arrows>[128X[104X
    [4X[25Xgap>[125X [27Xq1_q2 := QuiverProduct( q1, q2 );[127X[104X
    [4X[28X<quiver with 6 vertices and 7 arrows>[128X[104X
    [4X[25Xgap>[125X [27Xq1_q2.u1_b * q1_q2.a_v2;[127X[104X
    [4X[28Xu1_b*a_v2[128X[104X
    [4X[25Xgap>[125X [27XIncludeInProductQuiver( [ q1.a, q2.b * q2.c ], q1_q2 );[127X[104X
    [4X[28Xa_v1*u2_b*u2_c[128X[104X
    [4X[25Xgap>[125X [27XProjectFromProductQuiver( 2, q1_q2.a_v1 * q1_q2.u2_b * q1_q2.u2_c );[127X[104X
    [4X[28Xb*c[128X[104X
    [4X[25Xgap>[125X [27Xq1_q2_dec := QuiverProductDecomposition( q1_q2 );[127X[104X
    [4X[28X<object>[128X[104X
    [4X[25Xgap>[125X [27Xq1_q2_dec[ 1 ];[127X[104X
    [4X[28X<quiver with 2 vertices and 1 arrows>[128X[104X
    [4X[25Xgap>[125X [27Xq1_q2_dec[ 1 ] = q1;[127X[104X
    [4X[28Xtrue  [128X[104X
  [4X[32X[104X
  
  [1X4.16-6 TensorProductOfAlgebras[101X
  
  [29X[2XTensorProductOfAlgebras[102X( [3XFQ1[103X, [3XFQ2[103X ) [32X operation
  
  [33X[0;0YArguments: [3XFQ1[103X and [3XFQ2[103X -- (quotients of) path algebras.[133X
  
  [6XReturns:[106X  [33X[0;10YThe tensor product of [3XFQ1[103X and [3XFQ2[103X.[133X
  
  [33X[0;0YThe   result  is  a  quotient  of  a  path  algebra,  whose  quiver  is  the
  [2XQuiverProduct[102X ([14X4.16-1[114X) of the quivers of the operands.[133X
  
  [1X4.16-7 TensorAlgebrasInclusion[101X
  
  [29X[2XTensorAlgebrasInclusion[102X( [3XT[103X, [3Xn[103X ) [32X operation
  
  [33X[0;0YArguments: [3XT[103X -- quiver algebra, [3Xn[103X -- 1 or 2.[133X
  
  [6XReturns:[106X  [33X[0;10YReturns  the inclusion [22XA ↪ A ⊗ B[122X or the inclusion [22XB ↪ A ⊗ B[122X if [22Xn =
            1[122X or [22Xn = 2[122X, respectively.[133X
  
  [1X4.16-8 SimpleTensor[101X
  
  [29X[2XSimpleTensor[102X( [3XL[103X, [3XT[103X ) [32X operation
  
  [33X[0;0YArguments: [3XL[103X -- a list containing two elements [22Xx[122X and [22Xy[122X of two (quotients of)
  path algebras, [3XT[103X -- the tensor product of these algebras.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe simple tensor [22Xx tensor y[122X.[133X
  
  [33X[0;0Y[22Xx  tensor  y[122X is in the tensor product [3XT[103X (produced by [2XTensorProductOfAlgebras[102X
  ([14X4.16-6[114X)).[133X
  
  [1X4.16-9 TensorProductDecomposition[101X
  
  [29X[2XTensorProductDecomposition[102X( [3XT[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XT[103X -- a tensor product of path algebras.[133X
  
  [6XReturns:[106X  [33X[0;10Ya list of the factors in the tensor product.[133X
  
  [33X[0;0Y[3XT[103X should be produced by [2XTensorProductOfAlgebras[102X ([14X4.16-6[114X)).[133X
  
  [33X[0;0YThe  following  example  shows  how  the  operations  for tensor products of
  quotients of path algebras are used.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xq1 := Quiver( [ "u1", "u2" ], [ [ "u1", "u2", "a" ] ] );[127X[104X
    [4X[28X<quiver with 2 vertices and 1 arrows>[128X[104X
    [4X[25Xgap>[125X [27Xq2 := Quiver( [ "v1", "v2", "v3", "v4" ],[127X[104X
    [4X[25X>[125X [27X                      [ [ "v1", "v2", "b" ],[127X[104X
    [4X[25X>[125X [27X                        [ "v1", "v3", "c" ],[127X[104X
    [4X[25X>[125X [27X                        [ "v2", "v4", "d" ],[127X[104X
    [4X[25X>[125X [27X                        [ "v3", "v4", "e" ] ] );[127X[104X
    [4X[28X<quiver with 4 vertices and 4 arrows>[128X[104X
    [4X[25Xgap>[125X [27Xfq1 := PathAlgebra( Rationals, q1 );[127X[104X
    [4X[28X<Rationals[<quiver with 2 vertices and 1 arrows>]>[128X[104X
    [4X[25Xgap>[125X [27Xfq2 := PathAlgebra( Rationals, q2 );[127X[104X
    [4X[28X<Rationals[<quiver with 4 vertices and 4 arrows>]>[128X[104X
    [4X[25Xgap>[125X [27XI := Ideal( fq2, [ fq2.b * fq2.d - fq2.c * fq2.e ] );[127X[104X
    [4X[28X<two-sided ideal in <Rationals[<quiver with 4 vertices and 4 arrows>]>[128X[104X
    [4X[28X    , (1 generators)>[128X[104X
    [4X[25Xgap>[125X [27Xquot := fq2 / I;[127X[104X
    [4X[28X<Rationals[<quiver with 4 vertices and 4 arrows>]/[128X[104X
    [4X[28X<two-sided ideal in <Rationals[<quiver with 4 vertices and 4 arrows>]>[128X[104X
    [4X[28X    , (1 generators)>>[128X[104X
    [4X[25Xgap>[125X [27Xt := TensorProductOfAlgebras( fq1, quot );[127X[104X
    [4X[28X<Rationals[<quiver with 8 vertices and 12 arrows>]/[128X[104X
    [4X[28X<two-sided ideal in <Rationals[<quiver with 8 vertices and [128X[104X
    [4X[28X    12 arrows>]>, (6 generators)>>[128X[104X
    [4X[25Xgap>[125X [27XSimpleTensor( [ fq1.a, quot.b ], t );[127X[104X
    [4X[28X[(1)*u1_b*a_v2][128X[104X
    [4X[25Xgap>[125X [27Xt_dec := TensorProductDecomposition( t );[127X[104X
    [4X[28X[ <Rationals[<quiver with 2 vertices and 1 arrows>]>, [128X[104X
    [4X[28X  <Rationals[<quiver with 4 vertices and 4 arrows>]/[128X[104X
    [4X[28X    <two-sided ideal in <Rationals[<quiver with 4 vertices and [128X[104X
    [4X[28X        4 arrows>]>, (1 generators)>> ][128X[104X
    [4X[25Xgap>[125X [27Xt_dec[ 1 ] = fq1;[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X4.16-10 EnvelopingAlgebra[101X
  
  [29X[2XEnvelopingAlgebra[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a (quotient of) a path algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe enveloping algebra [22X[3XA[103X^e = [3XA[103X^op tensor [3XA[103X[122X of [3XA[103X[133X
  
  [1X4.16-11 IsEnvelopingAlgebra[101X
  
  [29X[2XIsEnvelopingAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X -- an algebra.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue if and only if [3XA[103X is the result of a call to [2XEnvelopingAlgebra[102X
            ([14X4.16-10[114X).[133X
  
  [1X4.16-12 AlgebraAsModuleOverEnvelopingAlgebra[101X
  
  [29X[2XAlgebraAsModuleOverEnvelopingAlgebra[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a (quotient of a) path algebra [3XA[103X.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe algebra [3XA[103X as a right module over the enveloping algebra of [3XA[103X.[133X
  
  [1X4.16-13 DualOfAlgebraAsModuleOverEnvelopingAlgebra[101X
  
  [29X[2XDualOfAlgebraAsModuleOverEnvelopingAlgebra[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a finite dimensional (admissible quotient of) a path algebra
  [3XA[103X.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe algebra [3XA[103X as a right module over the enveloping algebra of [3XA[103X.[133X
  
  [1X4.16-14 TrivialExtensionOfQuiverAlgebra[101X
  
  [29X[2XTrivialExtensionOfQuiverAlgebra[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X -- a finite dimensional (admissible quotient of) a path algebra
  [3XA[103X.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  trivial extension algebra [22XT(A)=A⊕ D(A)[122X of the entered algebra
            [3XA[103X.[133X
  
  
  [1X4.17 [33X[0;0YFinite dimensional algebras over finite fields[133X[101X
  
  [1X4.17-1 AlgebraAsQuiverAlgebra[101X
  
  [29X[2XAlgebraAsQuiverAlgebra[102X( [3XA[103X ) [32X operation
  
  [33X[0;0YArguments: [3XA[103X - a finite dimensional algebra over a finite field.[133X
  
  [6XReturns:[106X  [33X[0;10Ya (quotient of a) path algebra isomorphic to the entered algebra [3XA[103X
            whenever possible and a list of the images of the vertices and the
            arrows in this path algebra in [3XA[103X.[133X
  
  [33X[0;0YThe  operation  only  applies  when [3XA[103X is a finite dimensional indecomposable
  algebra  over  a  finite  field,  otherwise  it returns an error message. It
  checks  the  algebra [3XA[103X is basic and elementary over some field and otherwise
  it  returns  an  error  message.  In  the  list  of images the images of the
  vertices are listed first and then the images of the arrows.[133X
  
  [1X4.17-2 IsBasicAlgebra[101X
  
  [29X[2XIsBasicAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X - a finite dimensional algebra over a finite field.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  if  the  entered  algebra  [3XA[103X is a (finite dimensional) basic
            algebra  and false otherwise. This method only applies to algebras
            over finite fields.[133X
  
  [1X4.17-3 IsElementaryAlgebra[101X
  
  [29X[2XIsElementaryAlgebra[102X( [3XA[103X ) [32X property
  
  [33X[0;0YArguments: [3XA[103X - a finite dimensional algebra over a finite field.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue if the entered algebra [3XA[103X is a (finite dimensional) elementary
            algebra  and false otherwise. This method only applies to algebras
            over finite fields.[133X
  
  [33X[0;0YThe  algebra  [3XA[103X need not to be an elementary algebra over the field which it
  is defined, but be an elementary algebra over a field extension.[133X
  
  [1X4.17-4 PrimitiveIdempotents[101X
  
  [29X[2XPrimitiveIdempotents[102X( [3XA[103X ) [32X attribute
  
  [33X[0;0YArguments: [3XA[103X - a finite dimensional simple algebra over a finite field.[133X
  
  [6XReturns:[106X  [33X[0;10Ya  complete  set  of  primitive  idempotents [23X\{ e_i \}[123X such that [23XA
            \simeq Ae_1 + ... + Ae_n[123X.[133X
  
  [33X[0;0YTODO: Understand what this function actually does.[133X
  
  
  [1X4.18 [33X[0;0YAlgebras[133X[101X
  
  [1X4.18-1 LiftingCompleteSetOfOrthogonalIdempotents[101X
  
  [29X[2XLiftingCompleteSetOfOrthogonalIdempotents[102X( [3Xf[103X, [3Xe[103X ) [32X operation
  
  [33X[0;0YArguments:  [3Xmap[103X - an algebra homomorphism, [3Xidempotents[103X elements in the range
  of [3Xmap[103X.[133X
  
  [6XReturns:[106X  [33X[0;10Ya  complete  set  of orthogonal idempotents in [10XSource(f)[110X which are
            liftings of the entered [3Xidempotents[103X whenever possible.[133X
  
  [33X[0;0YThe  operation  only  applies when the domain of [3Xf[103X is finite dimensional. It
  checks  if  the  list  of  elements  [3Xidempotents[103X  is  a  set complete set of
  orthogonal  idempotents.  If  some  idempotent  in [3Xidempotents[103X is not in the
  image  of  [3Xmap[103X,  then  an  error  message is returned. If all idempotents in
  [3Xidempotents[103X  has  a  preimage, then this operation returns a complete set of
  orthogonal  of  idempotents  which  is  a  lifting  of  the  idempotents  in
  [3Xidempotents[103X to the source of [3Xf[103X whenever possible or it returns fail.[133X
  
  [1X4.18-2 LiftingIdempotent[101X
  
  [29X[2XLiftingIdempotent[102X( [3Xf[103X, [3Xe[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xf[103X - an algebra homomorphism, [3Xe[103X an element in the range of [3Xf[103X.[133X
  
  [6XReturns:[106X  [33X[0;10Yan idempotent [22Xa[122X in [10XSource(f)[110X such that [10XImageElm(f, a) = e[110X whenever
            possible.  If  [3Xe[103X  is  not  in  the image of [3Xf[103X, an error message is
            given, and if [3Xe[103X does not have a preimage by [3Xf[103X [10Xfail[110X is returned.[133X
  
  [33X[0;0YThe  operation  only  applies when the domain of [3Xf[103X is finite dimensional. It
  checks  if  the  element  [3Xe[103X is an idempotent. If [3Xe[103X is not in the image of [3Xf[103X,
  then  an error message is returned. If [3Xe[103X has a preimage, then this operation
  returns  a  lifting  of [3Xe[103X to the source of [3Xf[103X whenever possible or it returns
  fail.  Using  the  algorithm  described  in the proof of Proposition 27.1 in
  Anderson  and  Fuller, Rings and categories of modules, second edition, GMT,
  Springer-Verlag.[133X
  
  
  [1X4.19 [33X[0;0YSaving and reading quotients of path algebras to and from a file[133X[101X
  
  [1X4.19-1 ReadAlgebra[101X
  
  [29X[2XReadAlgebra[102X( [3Xfile[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xfile[103X - a name of a file.[133X
  
  [6XReturns:[106X  [33X[0;10Ya  finite  dimension quotient [22XA[122X of a path algebra saved by command
            [10XSaveAlgebra[110X  to the file [3Xfile[103X. This function creates the algebra [22XA[122X
            again,  which  can  be  saved  to  a  file again with the function
            [10XSaveAlgebra[110X.[133X
  
  [1X4.19-2 SaveAlgebra[101X
  
  [29X[2XSaveAlgebra[102X( [3XA[103X, [3Xfile[103X, [3Xoption[103X ) [32X operation
  
  [33X[0;0YArguments: [3XA[103X - an algebra, [3Xfile[103X - a name of a file, [3Xoption[103X - a string.[133X
  
  [6XReturns:[106X  [33X[0;10Yor creates a file with name [3Xfile[103X, storing the algebra [3XA[103X, which can
            be open again with the function [10XReadAlgebra[110X and reconstructed. The
            last  argument  [3Xoverwrite[103X  decides  if the file [3Xfile[103X, if it exists
            already, should be overwritten, not overwritten or the user should
            be prompted for an answer to this question. The corresponding user
            inputs are: delete, keep or query.[133X
  
