  
  [1X3 [33X[0;0YQuivers[133X[101X
  
  
  [1X3.1 [33X[0;0YInformation class, Quivers[133X[101X
  
  [33X[0;0YA  quiver  [23XQ[123X  is a set derived from a labeled directed multigraph with loops
  [23X\Gamma[123X.  An  element  of  [23XQ[123X  is called a *path*, and falls into one of three
  classes.  The  first  class  is  the set of *vertices* of [23X\Gamma[123X. The second
  class  is the set of *walks* in [23X\Gamma[123X of length at least one, each of which
  is  represented  by  the  corresponding  sequence of *arrows* in [23X\Gamma[123X. The
  third  class  is the singleton set containing the distinguished *zero path*,
  usually denoted [23X0[123X. An associative multiplication is defined on [23XQ[123X.[133X
  
  [33X[0;0YThis  chapter  describes  the  functions  in  [5XQPA[105X  that  deal with paths and
  quivers.  The  functions  for constructing paths in Section [14X4.2[114X are normally
  not  useful  in  isolation; typically, they are invoked by the functions for
  constructing quivers in Section [14X3.2[114X.[133X
  
  [1X3.1-1 InfoQuiver[101X
  
  [29X[2XInfoQuiver[102X[32X info class
  
  [33X[0;0Yis the info class for functions dealing with quivers.[133X
  
  
  [1X3.2 [33X[0;0YConstructing Quivers[133X[101X
  
  [1X3.2-1 Quiver[101X
  
  [29X[2XQuiver[102X( [3XN[103X, [3Xarrows[103X ) [32X function
  [29X[2XQuiver[102X( [3Xvertices[103X, [3Xarrows[103X ) [32X function
  [29X[2XQuiver[102X( [3Xadjacencymatrix[103X ) [32X function
  
  [33X[0;0YArguments:  First construction: [3XN[103X -- number of vertices, [3Xarrows[103X -- a list of
  arrows  to specify the graph [23X\Gamma[123X. Second construction: [3Xvertices[103X -- a list
  of  vertex  names,  [3Xarrows[103X -- a list of arrows. Third construction: takes an
  adjacency matrix for the graph [23X\Gamma[123X.[133X
  
  [6XReturns:[106X  [33X[0;10Ya quiver, which is an object from the category [2XIsQuiver[102X ([14X3.3-1[114X).[133X
  
  [33X[0;0YIn  the first and third constructions, the vertices are named `v1, v2, ...'.
  In  the second construction, unique vertex names are given as strings in the
  list  that  is  the  first  parameter.  Each arrow is a list consisting of a
  source vertex and a target vertex, followed optionally by an arrow name as a
  string.[133X
  
  [33X[0;0YVertices  and arrows are referenced as record components using the dot (`.')
  operator.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xq1 := 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 [27XVerticesOfQuiver(q1);[127X[104X
    [4X[28X[ u, v ][128X[104X
    [4X[25Xgap>[125X [27XArrowsOfQuiver(q1);[127X[104X
    [4X[28X[ a, b, c, d ][128X[104X
    [4X[25Xgap>[125X [27Xq2 := Quiver(2,[[1,1],[2,1],[1,2]]);[127X[104X
    [4X[28X<quiver with 2 vertices and 3 arrows>[128X[104X
    [4X[25Xgap>[125X [27XArrowsOfQuiver(q2);[127X[104X
    [4X[28X[ a1, a2, a3 ][128X[104X
    [4X[25Xgap>[125X [27XVerticesOfQuiver(q2);[127X[104X
    [4X[28X[ v1, v2 ][128X[104X
    [4X[25Xgap>[125X [27Xq3 := Quiver(2,[[1,1,"a"],[2,1,"b"],[1,2,"c"]]);[127X[104X
    [4X[28X<quiver with 2 vertices and 3 arrows>[128X[104X
    [4X[25Xgap>[125X [27XArrowsOfQuiver(q3);[127X[104X
    [4X[28X[ a, b, c ][128X[104X
    [4X[25Xgap>[125X [27Xq4 := Quiver([[1,1],[2,1]]);[127X[104X
    [4X[28X<quiver with 2 vertices and 5 arrows>[128X[104X
    [4X[25Xgap>[125X [27XVerticesOfQuiver(q4);[127X[104X
    [4X[28X[ v1, v2 ][128X[104X
    [4X[25Xgap>[125X [27XArrowsOfQuiver(q4);[127X[104X
    [4X[28X[ a1, a2, a3, a4, a5 ][128X[104X
    [4X[25Xgap>[125X [27XSourceOfPath(q4.a2);[127X[104X
    [4X[28Xv1[128X[104X
    [4X[25Xgap>[125X [27XTargetOfPath(q4.a2);[127X[104X
    [4X[28Xv2[128X[104X
  [4X[32X[104X
  
  [1X3.2-2 DynkinQuiver[101X
  
  [29X[2XDynkinQuiver[102X( [3XDelta[103X, [3Xn[103X, [3Xorientation[103X ) [32X operation
  
  [33X[0;0YArguments: [3XDelta[103X, [3Xn[103X, [3Xorientation[103X -- a character (A,D,E), a positive integer,
  and a list giving the orientation.[133X
  
  [6XReturns:[106X  [33X[0;10Ya  Dynkin quiver of type [3XDelta[103X ("A", "D", or "E") with index [3Xn[103X and
            orientation of the arrows given by the list [3Xorientation[103X.[133X
  
  [33X[0;0YIf  [3XDelta[103X  is equal to "A" with index [3Xn[103X, then the list [3Xorientation[103X is of the
  form  [10X["r",  "l",  "l",  ...,"r",  "l"][110X  of  length [3Xn-1[103X, where "l" or "r" in
  coordinate  [22Xi[122X  means  that  the  arrow [22Xa_i[122X is oriented to the left or to the
  right,  respectively.  The  vertices  and  the  arrows  are  named as in the
  following   diagram  [22Xxymatrix1ar@-[r]^-a_1  &  2ar@-[r]^-a_2  &  ar@--[r]  &
  ar@-[r]^-a_n-2} & n - 1 ar@-[r]^-a_n-1} & n[122X[133X
  [33X[0;0YIf  [3XDelta[103X is equal to "D" with index [3Xn[103X and [3Xn[103X greater or equal to [23X4[123X, then the
  list [3Xorientation[103X is of the form [10X["r", "l", "l", ...,"r", "l"][110X of length [3Xn-1[103X,
  where "l" or "r" in coordinate [22Xi[122X means that the arrow [22Xa_i[122X is oriented to the
  left or to the right, respectively. The vertices and the arrows are named as
  in  the  following diagram [22Xxymatrix1ar@-[dr]^-a_1 & & & & & & 3ar@-[r]^a_3 &
  ar@--[r]  & ar@-[r]^-a_n-2} & n - 1 ar@-[r]^-a_n-1} & n 2ar@-[ur]_-a_2 & & &
  & &[122X[133X
  [33X[0;0YIf  [3XDelta[103X  is  equal  to  "E"  with  index [3Xn[103X and [3Xn[103X in [23X[6,7,8][123X, then the list
  [3Xorientation[103X  is of the form [10X["r", "l", "l", ...,"r", "l","d"][110X of length [3Xn-1[103X,
  where  "l"  or  "r" in the [3Xn - 2[103X first coordinates and at coordinate [22Xi[122X means
  that  the  arrow  [22Xa_i[122X is oriented to the left or to the right, respectively,
  and  the  last  orientation  parameter is "d" or "u" indicating if the arrow
  [22Xa_n-1[122X  is  oriented  down or up. The vertices and the arrows are named as in
  the  following diagram [22Xxymatrix & & nar@-[d]^a_n-1} & & & & & 1ar@-[r]^a_1 &
  2ar@-[r]^a_2 & 3ar@-[r]^-a_3 & ar@--[r] &ar@-[r] & n - 2 ar@-[r]^-a_n-2} & n
  - 1[122X[133X
  
  [1X3.2-3 OrderedBy[101X
  
  [29X[2XOrderedBy[102X( [3Xquiver[103X, [3Xordering[103X ) [32X function
  [6XReturns:[106X  [33X[0;10Ya  copy  of  [3Xquiver[103X  whose  elements  are ordered by [3Xordering[103X. The
            default  ordering  of  a  quiver is length left lexicographic. See
            Section [14X3.4[114X for more information.[133X
  
  
  [1X3.3 [33X[0;0YCategories and Properties of Quivers[133X[101X
  
  [1X3.3-1 IsQuiver[101X
  
  [29X[2XIsQuiver[102X( [3Xobject[103X ) [32X category
  [6XReturns:[106X  [33X[0;10Ytrue when [3Xobject[103X is a quiver.[133X
  
  [1X3.3-2 IsAcyclicQuiver[101X
  
  [29X[2XIsAcyclicQuiver[102X( [3Xquiver[103X ) [32X property
  [6XReturns:[106X  [33X[0;10Ytrue when [3Xquiver[103X is a quiver with no oriented cycles.[133X
  
  [1X3.3-3 IsUAcyclicQuiver[101X
  
  [29X[2XIsUAcyclicQuiver[102X( [3Xquiver[103X ) [32X property
  [6XReturns:[106X  [33X[0;10Ytrue  when  [3Xquiver[103X is a quiver with no unoriented cycles. Note: an
            oriented cycle is also an unoriented cycle![133X
  
  [1X3.3-4 IsConnectedQuiver[101X
  
  [29X[2XIsConnectedQuiver[102X( [3Xquiver[103X ) [32X property
  [6XReturns:[106X  [33X[0;10Ytrue when [3Xquiver[103X is a connected quiver (i.e. each pair of vertices
            is connected by an unoriented path in [3Xquiver[103X).[133X
  
  [1X3.3-5 IsTreeQuiver[101X
  
  [29X[2XIsTreeQuiver[102X( [3Xquiver[103X ) [32X property
  [6XReturns:[106X  [33X[0;10Ytrue  when  [3Xquiver[103X  is a tree as a graph (i.e. it is connected and
            contains no unoriented cycles).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xq1 := Quiver(2,[[1,2]]);[127X[104X
    [4X[28X<quiver with 2 vertices and 1 arrows>[128X[104X
    [4X[25Xgap>[125X [27XIsQuiver("v1");[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XIsQuiver(q1);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsAcyclicQuiver(q1); IsUAcyclicQuiver(q1); [127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsConnectedQuiver(q1); IsTreeQuiver(q1);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xq2 := Quiver(["u","v"],[["u","v"],["v","u"]]);[127X[104X
    [4X[28X<quiver with 2 vertices and 2 arrows>[128X[104X
    [4X[25Xgap>[125X [27XIsAcyclicQuiver(q2); IsUAcyclicQuiver(q2); [127X[104X
    [4X[28Xfalse[128X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XIsConnectedQuiver(q2); IsTreeQuiver(q2);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27Xq3 := Quiver(["u","v"],[["u","v"],["u","v"]]);[127X[104X
    [4X[28X<quiver with 2 vertices and 2 arrows>[128X[104X
    [4X[25Xgap>[125X [27XIsAcyclicQuiver(q3); IsUAcyclicQuiver(q3); [127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XIsConnectedQuiver(q3); IsTreeQuiver(q3); [127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27Xq4 := Quiver(2, []);[127X[104X
    [4X[28X<quiver with 2 vertices and 0 arrows>[128X[104X
    [4X[25Xgap>[125X [27XIsAcyclicQuiver(q4); IsUAcyclicQuiver(q4); [127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsConnectedQuiver(q4); IsTreeQuiver(q4);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[28Xfalse[128X[104X
  [4X[32X[104X
  
  [1X3.3-6 IsDynkinQuiver[101X
  
  [29X[2XIsDynkinQuiver[102X( [3Xquiver[103X ) [32X property
  [6XReturns:[106X  [33X[0;10Ytrue  when  [3Xquiver[103X  is  a  Dynkin  quiver  (more  precisely,  when
            underlying undirected graph of [3Xquiver[103X is a Dynkin diagram).[133X
  
  [33X[0;0YThis  function  prints  an  additional  information.  If it returns true, it
  prints  the Dynkin type of [3Xquiver[103X, i.e. A_n, D_m, E_6, E_7 or E_8. Moreover,
  in  case  [3Xquiver[103X  is  not  connected  or  contains  an unoriented cycle, the
  function also prints a respective info.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xq1 := Quiver(4,[[1,4],[4,2],[3,4]]);[127X[104X
    [4X[28X<quiver with 4 vertices and 3 arrows>[128X[104X
    [4X[25Xgap>[125X [27XIsDynkinQuiver(q1);[127X[104X
    [4X[28XD_4[128X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xq2 := Quiver(2,[[1,2],[1,2]]);[127X[104X
    [4X[28X<quiver with 2 vertices and 2 arrows>[128X[104X
    [4X[25Xgap>[125X [27XIsDynkinQuiver(q2);[127X[104X
    [4X[28XQuiver contains an (un)oriented cycle.[128X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27Xq3 := Quiver(5,[[1,5],[2,5],[3,5],[4,5]]);[127X[104X
    [4X[28X<quiver with 5 vertices and 4 arrows>[128X[104X
  [4X[32X[104X
  
  
  [1X3.4 [33X[0;0YOrderings of paths in a quiver[133X[101X
  
  [33X[0;0YThe  only  supported  ordering  on  the  paths  in  a  quiver is length left
  lexicographic  ordering.  The  reason for this is that [5XQPA[105X does not have its
  own  functions for computing Groebner basis. Instead they are computed using
  the  [5XGAP[105X-package [5XGBNP[105X. The interface with this package, which is provided by
  the  [5XQPA[105X,  only supports the length left lexicographic ordering, even though
  [5XGBNP[105X supports more orderings.[133X
  
  [33X[0;0YFor  constructing a quiver, there are three different methods. TODO: Explain
  how the vertices and arrows are ordered.[133X
  
  
  [1X3.5 [33X[0;0YAttributes and Operations for Quivers[133X[101X
  
  [1X3.5-1 .[101X
  
  [29X[2X.[102X( [3XQ[103X, [3Xelement[103X ) [32X operation
  
  [33X[0;0YArguments: [3XQ[103X -- a quiver, and [3Xelement[103X -- a vertex or an arrow.[133X
  
  [33X[0;0YThe operation [2X.[102X allows access to generators of the quiver. If you have named
  your  vertices and arrows then the access looks like `[3XQ[103X.[3Xname of element[103X'. If
  you  have  not  named the elements of the quiver, then the default names are
  v1, v2, ... and a1, a2, ... in the order they are created.[133X
  
  [1X3.5-2 VerticesOfQuiver[101X
  
  [29X[2XVerticesOfQuiver[102X( [3Xquiver[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ya list of paths that are vertices in [3Xquiver[103X.[133X
  
  [1X3.5-3 ArrowsOfQuiver[101X
  
  [29X[2XArrowsOfQuiver[102X( [3Xquiver[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ya list of paths that are arrows in [3Xquiver[103X.[133X
  
  [1X3.5-4 AdjacencyMatrixOfQuiver[101X
  
  [29X[2XAdjacencyMatrixOfQuiver[102X( [3Xquiver[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ythe adjacency matrix of [3Xquiver[103X.[133X
  
  [1X3.5-5 GeneratorsOfQuiver[101X
  
  [29X[2XGeneratorsOfQuiver[102X( [3Xquiver[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ya list of the vertices and the arrows in [3Xquiver[103X.[133X
  
  [1X3.5-6 NumberOfVertices[101X
  
  [29X[2XNumberOfVertices[102X( [3Xquiver[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ythe number of vertices in [3Xquiver[103X.[133X
  
  [1X3.5-7 NumberOfArrows[101X
  
  [29X[2XNumberOfArrows[102X( [3Xquiver[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ythe number of arrows in [3Xquiver[103X.[133X
  
  [1X3.5-8 OrderingOfQuiver[101X
  
  [29X[2XOrderingOfQuiver[102X( [3Xquiver[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ythe ordering used to order elements in [3Xquiver[103X. See Section [14X3.4[114X for
            more information.[133X
  
  [1X3.5-9 OppositeQuiver[101X
  
  [29X[2XOppositeQuiver[102X( [3Xquiver[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ythe  opposite  quiver  of  [3Xquiver[103X, where the vertices are labelled
            "name  in  original  quiver"  +  "_op" and the arrows are labelled
            "name in orginal quiver" + "_op".[133X
  
  [33X[0;0YThis  attribute  contains the opposite quiver of a quiver, that is, a quiver
  which is the same except that every arrow goes in the opposite direction.[133X
  
  [33X[0;0YThe  operation  [2XOppositePath[102X  ([14X4.15-1[114X)  takes  a  path  in  a  quiver to the
  corresponding path in the opposite quiver.[133X
  
  [33X[0;0YThe  opposite  of  the opposite of a quiver [22XQ[122X is isomorphic to [22XQ[122X. In QPA, we
  regard    these    two    quivers    to   be   the   same,   so   the   call
  [10XOppositeQuiver(OppositeQuiver(Q))[110X returns the object [10XQ[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xq1 := 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 [27Xq1.a;[127X[104X
    [4X[28Xa[128X[104X
    [4X[25Xgap>[125X [27Xq1.v;[127X[104X
    [4X[28Xv[128X[104X
    [4X[25Xgap>[125X [27XVerticesOfQuiver(q1);[127X[104X
    [4X[28X[ u, v ][128X[104X
    [4X[25Xgap>[125X [27XArrowsOfQuiver(q1);[127X[104X
    [4X[28X[ a, b, c, d ][128X[104X
    [4X[25Xgap>[125X [27XAdjacencyMatrixOfQuiver(q1);[127X[104X
    [4X[28X[ [ 1, 1 ], [ 1, 1 ] ][128X[104X
    [4X[25Xgap>[125X [27XGeneratorsOfQuiver(q1);[127X[104X
    [4X[28X[ u, v, a, b, c, d ][128X[104X
    [4X[25Xgap>[125X [27XNumberOfVertices(q1);[127X[104X
    [4X[28X2[128X[104X
    [4X[25Xgap>[125X [27XNumberOfArrows(q1);[127X[104X
    [4X[28X4[128X[104X
    [4X[25Xgap>[125X [27XOrderingOfQuiver(q1);[127X[104X
    [4X[28X<length left lexicographic ordering>[128X[104X
    [4X[25Xgap>[125X [27Xq1_op := OppositeQuiver(q1);[127X[104X
    [4X[28X<quiver with 2 vertices and 4 arrows>[128X[104X
    [4X[25Xgap>[125X [27XVerticesOfQuiver(q1_op);[127X[104X
    [4X[28X[ u_op, v_op ][128X[104X
    [4X[25Xgap>[125X [27XArrowsOfQuiver(q1_op);[127X[104X
    [4X[28X[ a_op, b_op, c_op, d_op ][128X[104X
  [4X[32X[104X
  
  [1X3.5-10 FullSubquiver[101X
  
  [29X[2XFullSubquiver[102X( [3Xquiver[103X, [3Xlist[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10YThis  function  returns  a  quiver  which is a full subquiver of a
            [3Xquiver[103X induced by the [3Xlist[103X of its vertices.[133X
  
  [33X[0;0YThe names of vertices and arrows in resulting (sub)quiver remain the same as
  in original one. The function checks if [3Xlist[103X consists of vertices of [3Xquiver[103X.[133X
  
  [1X3.5-11 ConnectedComponentsOfQuiver[101X
  
  [29X[2XConnectedComponentsOfQuiver[102X( [3Xquiver[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10YThis  function  returns  a list of quivers which are all connected
            components of a [3Xquiver[103X.[133X
  
  [33X[0;0YThe names of vertices and arrows in resulting (sub)quiver remain the same as
  in original one. The function sets the property [2XIsConnectedQuiver[102X ([14X3.3-4[114X) to
  true for all the components.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XQ := Quiver(6, [ [1,2],[1,1],[3,2],[4,5],[4,5] ]);[127X[104X
    [4X[28X<quiver with 6 vertices and 5 arrows>[128X[104X
    [4X[25Xgap>[125X [27XVerticesOfQuiver(Q);[127X[104X
    [4X[28X[ v1, v2, v3, v4, v5, v6 ][128X[104X
    [4X[25Xgap>[125X [27XFullSubquiver(Q, [Q.v1, Q.v2]);[127X[104X
    [4X[28X<quiver with 2 vertices and 2 arrows>[128X[104X
    [4X[25Xgap>[125X [27XConnectedComponentsOfQuiver(Q);[127X[104X
    [4X[28X[ <quiver with 3 vertices and 3 arrows>, [128X[104X
    [4X[28X  <quiver with 2 vertices and 2 arrows>, [128X[104X
    [4X[28X  <quiver with 1 vertices and 0 arrows> ][128X[104X
  [4X[32X[104X
  
  [1X3.5-12 SeparatedQuiver[101X
  
  [29X[2XSeparatedQuiver[102X( [3Xquiver[103X ) [32X attribute
  
  [33X[0;0YArguments: [3Xquiver[103X -- a quiver.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe separated quiver of [3Xquiver[103X.[133X
  
  [33X[0;0YThe vertices in the separated quiver are labelled [22Xv[122X and [22Xv'[122X for each vertex [22Xv[122X
  in  [3Xquiver[103X,  and  for  each  arrow  [22Xa:  v -> w[122X in [3Xquiver[103X the arrow [22Xv-> w'[122X is
  labelled [22Xa[122X.[133X
  
  
  [1X3.6 [33X[0;0YCategories and Properties of Paths[133X[101X
  
  [1X3.6-1 IsPath[101X
  
  [29X[2XIsPath[102X( [3Xobject[103X ) [32X category
  
  [33X[0;0YAll path objects are in this category.[133X
  
  [1X3.6-2 IsQuiverVertex[101X
  
  [29X[2XIsQuiverVertex[102X( [3Xobject[103X ) [32X category
  
  [33X[0;0YAll vertices are in this category.[133X
  
  [1X3.6-3 IsArrow[101X
  
  [29X[2XIsArrow[102X( [3Xobject[103X ) [32X category
  
  [33X[0;0YAll arrows are in this category.[133X
  
  [1X3.6-4 IsZeroPath[101X
  
  [29X[2XIsZeroPath[102X( [3Xobject[103X ) [32X property
  
  [33X[0;0Yis true when [3Xobject[103X is the zero path.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xq1 := 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 [27XIsPath(q1.b);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsPath(q1.u);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsQuiverVertex(q1.c);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XIsZeroPath(q1.d);[127X[104X
    [4X[28Xfalse[128X[104X
  [4X[32X[104X
  
  
  [1X3.7 [33X[0;0YAttributes and Operations of Paths[133X[101X
  
  [1X3.7-1 SourceOfPath[101X
  
  [29X[2XSourceOfPath[102X( [3Xpath[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ythe source (first) vertex of [3Xpath[103X.[133X
  
  [1X3.7-2 TargetOfPath[101X
  
  [29X[2XTargetOfPath[102X( [3Xpath[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ythe target (last) vertex of [3Xpath[103X.[133X
  
  [1X3.7-3 LengthOfPath[101X
  
  [29X[2XLengthOfPath[102X( [3Xpath[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ythe length of [3Xpath[103X.[133X
  
  [1X3.7-4 WalkOfPath[101X
  
  [29X[2XWalkOfPath[102X( [3Xpath[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ya list of the arrows that constitute [3Xpath[103X in order.[133X
  
  [1X3.7-5 *[101X
  
  [29X[2X*[102X( [3Xp[103X, [3Xq[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xp[103X and [3Xq[103X -- two paths in the same quiver.[133X
  
  [6XReturns:[106X  [33X[0;10Ythe  multiplication of the paths. If the paths are not in the same
            quiver  an  error is returned. If the target of [3Xp[103X differs from the
            source  of  [3Xq[103X,  then  the  result  is the zero path. Otherwise, if
            either  path  is  a  vertex,  then  the  result is the other path.
            Finally,  if  both are paths of length at least 1, then the result
            is the concatenation of the walks of the two paths.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xq1 := 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 [27XSourceOfPath(q1.v);[127X[104X
    [4X[28Xv[128X[104X
    [4X[25Xgap>[125X [27Xp1:=q1.a*q1.b*q1.d*q1.d;[127X[104X
    [4X[28Xa*b*d^2[128X[104X
    [4X[25Xgap>[125X [27XTargetOfPath(p1);[127X[104X
    [4X[28Xv[128X[104X
    [4X[25Xgap>[125X [27Xp2:=q1.b*q1.b;[127X[104X
    [4X[28X0[128X[104X
    [4X[25Xgap>[125X [27XWalkOfPath(p1);[127X[104X
    [4X[28X[ a, b, d, d ][128X[104X
    [4X[25Xgap>[125X [27XWalkOfPath(q1.a);[127X[104X
    [4X[28X[ a ][128X[104X
    [4X[25Xgap>[125X [27XLengthOfPath(p1);[127X[104X
    [4X[28X4[128X[104X
    [4X[25Xgap>[125X [27XLengthOfPath(q1.v);[127X[104X
    [4X[28X0[128X[104X
  [4X[32X[104X
  
  [1X3.7-6 =[101X
  
  [29X[2X=[102X( [3Xp[103X, [3Xq[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xp[103X and [3Xq[103X -- two paths in the same quiver.[133X
  
  [6XReturns:[106X  [33X[0;10Ytrue  if the two paths are equal. Two paths are equal if they have
            the  same  source  and  the  same target and if they have the same
            walks.[133X
  
  [1X3.7-7 <[101X
  
  [29X[2X<[102X( [3Xp[103X, [3Xq[103X ) [32X operation
  
  [33X[0;0YArguments: [3Xp[103X and [3Xq[103X -- two paths in the same quiver.[133X
  
  [6XReturns:[106X  [33X[0;10Ya  comparison of the two paths with respect to the ordering of the
            quiver.[133X
  
  
  [1X3.8 [33X[0;0YAttributes of Vertices[133X[101X
  
  [1X3.8-1 IncomingArrowsOfVertex[101X
  
  [29X[2XIncomingArrowsOfVertex[102X( [3Xvertex[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ya  list  of  arrows  having  [3Xvertex[103X  as target. Only meaningful if
            [3Xvertex[103X is in a quiver.[133X
  
  [1X3.8-2 OutgoingArrowsOfVertex[101X
  
  [29X[2XOutgoingArrowsOfVertex[102X( [3Xvertex[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ya list of arrows having [3Xvertex[103X as source.[133X
  
  [1X3.8-3 InDegreeOfVertex[101X
  
  [29X[2XInDegreeOfVertex[102X( [3Xvertex[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ythe  number  of arrows having [3Xvertex[103X as target. Only meaningful if
            [3Xvertex[103X is in a quiver.[133X
  
  [1X3.8-4 OutDegreeOfVertex[101X
  
  [29X[2XOutDegreeOfVertex[102X( [3Xvertex[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ythe number of arrows having [3Xvertex[103X as source.[133X
  
  [1X3.8-5 NeighborsOfVertex[101X
  
  [29X[2XNeighborsOfVertex[102X( [3Xvertex[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ya  list of neighbors of [3Xvertex[103X, that is, vertices that are targets
            of arrows having [3Xvertex[103X as source.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xq1 := 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 [27XOutgoingArrowsOfVertex(q1.u);[127X[104X
    [4X[28X[ a, b ][128X[104X
    [4X[25Xgap>[125X [27XInDegreeOfVertex(q1.u);[127X[104X
    [4X[28X2[128X[104X
    [4X[25Xgap>[125X [27XNeighborsOfVertex(q1.v);[127X[104X
    [4X[28X[ u, v ][128X[104X
  [4X[32X[104X
  
