<p>A quiver <span class="Math">Q</span> is a set derived from a labeled directed multigraph with loops <span class="Math">\Gamma</span>. An element of <span class="Math">Q</span> is called a *path*, and falls into one of three classes. The first class is the set of *vertices* of <span class="Math">\Gamma</span>. The second class is the set of *walks* in <span class="Math">\Gamma</span> of length at least one, each of which is represented by the corresponding sequence of *arrows* in <span class="Math">\Gamma</span>. The third class is the singleton set containing the distinguished *zero path*, usually denoted <span class="Math">0</span>. An associative multiplication is defined on <span class="Math">Q</span>.</p>
<p>This chapter describes the functions in <strong class="pkg">QPA</strong> that deal with paths and quivers. The functions for constructing paths in Section <a href="chap4.html#X848A225A84A15B1E"><span class="RefLink">4.2</span></a> are normally not useful in isolation; typically, they are invoked by the functions for constructing quivers in Section <a href="chap3.html#X860B15D57EAB46D7"><span class="RefLink">3.2</span></a>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ InfoQuiver</code></td><td class="tdright">( info class )</td></tr></table></div>
<p>is the info class for functions dealing with quivers.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Quiver</code>( <var class="Arg">N</var>, <var class="Arg">arrows</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Quiver</code>( <var class="Arg">vertices</var>, <var class="Arg">arrows</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Quiver</code>( <var class="Arg">adjacencymatrix</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Arguments: First construction: <var class="Arg">N</var> -- number of vertices, <var class="Arg">arrows</var> -- a list of arrows to specify the graph <span class="Math">\Gamma</span>. Second construction: <var class="Arg">vertices</var> -- a list of vertex names, <var class="Arg">arrows</var> -- a list of arrows. Third construction: takes an adjacency matrix for the graph <span class="Math">\Gamma</span>. <br /></p>
<p>Returns: a quiver, which is an object from the category <code class="func">IsQuiver</code> (<a href="chap3.html#X7E9C03497FD7778B"><span class="RefLink">3.3-1</span></a>).</p>
<p>In 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.
<p>Vertices and arrows are referenced as record components using the dot (`.') operator.
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">q1 := Quiver(["u","v"],[["u","u","a"],["u","v","b"], </span>
<span class="GAPprompt">></span> <span class="GAPinput"> ["v","u","c"],["v","v","d"]]);</span>
<quiver with 2 vertices and 4 arrows>
<span class="GAPprompt">gap></span> <span class="GAPinput">VerticesOfQuiver(q1);</span>
[ u, v ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ArrowsOfQuiver(q1);</span>
[ a, b, c, d ]
<span class="GAPprompt">gap></span> <span class="GAPinput">q2 := Quiver(2,[[1,1],[2,1],[1,2]]);</span>
<quiver with 2 vertices and 3 arrows>
<span class="GAPprompt">gap></span> <span class="GAPinput">ArrowsOfQuiver(q2);</span>
[ a1, a2, a3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">VerticesOfQuiver(q2);</span>
[ v1, v2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">q3 := Quiver(2,[[1,1,"a"],[2,1,"b"],[1,2,"c"]]);</span>
<quiver with 2 vertices and 3 arrows>
<span class="GAPprompt">gap></span> <span class="GAPinput">ArrowsOfQuiver(q3);</span>
[ a, b, c ]
<span class="GAPprompt">gap></span> <span class="GAPinput">q4 := Quiver([[1,1],[2,1]]);</span>
<quiver with 2 vertices and 5 arrows>
<span class="GAPprompt">gap></span> <span class="GAPinput">VerticesOfQuiver(q4);</span>
[ v1, v2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ArrowsOfQuiver(q4);</span>
[ a1, a2, a3, a4, a5 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">SourceOfPath(q4.a2);</span>
v1
<span class="GAPprompt">gap></span> <span class="GAPinput">TargetOfPath(q4.a2);</span>
v2
</pre></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DynkinQuiver</code>( <var class="Arg">Delta</var>, <var class="Arg">n</var>, <var class="Arg">orientation</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">Delta</var>, <var class="Arg">n</var>, <var class="Arg">orientation</var> -- a character (A,D,E), a positive integer, and a list giving the orientation. <br /></p>
<p>Returns: a Dynkin quiver of type <var class="Arg">Delta</var> ("A", "D", or "E") with index <var class="Arg">n</var> and orientation of the arrows given by the list <var class="Arg">orientation</var>.</p>
<p>If <var class="Arg">Delta</var> is equal to "A" with index <var class="Arg">n</var>, then the list <var class="Arg">orientation</var> is of the form <code class="code">["r", "l", "l", ...,"r", "l"]</code> of length <var class="Arg">n-1</var>, where "l" or "r" in coordinate <span class="SimpleMath">i</span> means that the arrow <span class="SimpleMath">a_i</span> is oriented to the left or to the right, respectively. The vertices and the arrows are named as in the following diagram <span class="SimpleMath">xymatrix1ar@-[r]^-a_1 & 2ar@-[r]^-a_2 & ar@--[r] & ar@-[r]^-a_n-2} & n - 1 ar@-[r]^-a_n-1} & n</span><br /> If <var class="Arg">Delta</var> is equal to "D" with index <var class="Arg">n</var> and <var class="Arg">n</var> greater or equal to <span class="Math">4</span>, then the list <var class="Arg">orientation</var> is of the form <code class="code">["r", "l", "l", ...,"r", "l"]</code> of length <var class="Arg">n-1</var>, where "l" or "r" in coordinate <span class="SimpleMath">i</span> means that the arrow <span class="SimpleMath">a_i</span> is oriented to the left or to the right, respectively. The vertices and the arrows are named as in the following diagram <span class="SimpleMath">xymatrix1ar@-[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 & & & & &</span> <br /> If <var class="Arg">Delta</var> is equal to "E" with index <var class="Arg">n</var> and <var class="Arg">n</var> in <span class="Math">[6,7,8]</span>, then the list <var class="Arg">orientation</var> is of the form <code class="code">["r", "l", "l", ...,"r", "l","d"]</code> of length <var class="Arg">n-1</var>, where "l" or "r" in the <var class="Arg">n - 2</var> first coordinates and at coordinate <span class="SimpleMath">i</span> means that the arrow <span class="SimpleMath">a_i</span> is oriented to the left or to the right, respectively, and the last orientation parameter is "d" or "u" indicating if the arrow <span class="SimpleMath">a_n-1</span> is oriented down or up. The vertices and the arrows are named as in the following diagram <span class="SimpleMath">xymatrix & & 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</span> <br /></p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ OrderedBy</code>( <var class="Arg">quiver</var>, <var class="Arg">ordering</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: a copy of <var class="Arg">quiver</var> whose elements are ordered by <var class="Arg">ordering</var>. The default ordering of a quiver is length left lexicographic. See Section <a href="chap3.html#X78BBB63B828EB9FB"><span class="RefLink">3.4</span></a> for more information.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsAcyclicQuiver</code>( <var class="Arg">quiver</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: true when <var class="Arg">quiver</var> is a quiver with no oriented cycles.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsUAcyclicQuiver</code>( <var class="Arg">quiver</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: true when <var class="Arg">quiver</var> is a quiver with no unoriented cycles. Note: an oriented cycle is also an unoriented cycle!</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsConnectedQuiver</code>( <var class="Arg">quiver</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: true when <var class="Arg">quiver</var> is a connected quiver (i.e. each pair of vertices is connected by an unoriented path in <var class="Arg">quiver</var>).</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsTreeQuiver</code>( <var class="Arg">quiver</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: true when <var class="Arg">quiver</var> is a tree as a graph (i.e. it is connected and contains no unoriented cycles).</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsDynkinQuiver</code>( <var class="Arg">quiver</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: true when <var class="Arg">quiver</var> is a Dynkin quiver (more precisely, when underlying undirected graph of <var class="Arg">quiver</var> is a Dynkin diagram).</p>
<p>This function prints an additional information. If it returns true, it prints the Dynkin type of <var class="Arg">quiver</var>, i.e. A_n, D_m, E_6, E_7 or E_8. Moreover, in case <var class="Arg">quiver</var> is not connected or contains an unoriented cycle, the function also prints a respective info.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">q1 := Quiver(4,[[1,4],[4,2],[3,4]]);</span>
<quiver with 4 vertices and 3 arrows>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsDynkinQuiver(q1);</span>
D_4
true
<span class="GAPprompt">gap></span> <span class="GAPinput">q2 := Quiver(2,[[1,2],[1,2]]);</span>
<quiver with 2 vertices and 2 arrows>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsDynkinQuiver(q2);</span>
Quiver contains an (un)oriented cycle.
false
<span class="GAPprompt">gap></span> <span class="GAPinput">q3 := Quiver(5,[[1,5],[2,5],[3,5],[4,5]]);</span>
<quiver with 5 vertices and 4 arrows>
</pre></div>
<h4>3.4 <span class="Heading">Orderings of paths in a
quiver</span></h4>
<p>The only supported ordering on the paths in a quiver is length left lexicographic ordering. The reason for this is that <strong class="pkg">QPA</strong> does not have its own functions for computing Groebner basis. Instead they are computed using the <strong class="pkg">GAP</strong>-package <strong class="pkg">GBNP</strong>. The interface with this package, which is provided by the <strong class="pkg">QPA</strong>, only supports the length left lexicographic ordering, even though <strong class="pkg">GBNP</strong> supports more orderings.</p>
<p>For constructing a quiver, there are three different methods. TODO: Explain how the vertices and arrows are ordered.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ .</code>( <var class="Arg">Q</var>, <var class="Arg">element</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">Q</var> -- a quiver, and <var class="Arg">element</var> -- a vertex or an arrow.</p>
<p>The operation <code class="func">.</code> allows access to generators of the quiver. If you have named your vertices and arrows then the access looks like `<var class="Arg">Q</var>.<var class="Arg">name of element</var>'. 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.
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ VerticesOfQuiver</code>( <var class="Arg">quiver</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a list of paths that are vertices in <var class="Arg">quiver</var>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ArrowsOfQuiver</code>( <var class="Arg">quiver</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a list of paths that are arrows in <var class="Arg">quiver</var>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GeneratorsOfQuiver</code>( <var class="Arg">quiver</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a list of the vertices and the arrows in <var class="Arg">quiver</var>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ OrderingOfQuiver</code>( <var class="Arg">quiver</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: the ordering used to order elements in <var class="Arg">quiver</var>. See Section <a href="chap3.html#X78BBB63B828EB9FB"><span class="RefLink">3.4</span></a> for more information.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ OppositeQuiver</code>( <var class="Arg">quiver</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: the opposite quiver of <var class="Arg">quiver</var>, where the vertices are labelled "name in original quiver" + "_op" and the arrows are labelled "name in original quiver" + "_op".</p>
<p>This 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.</p>
<p>The operation <code class="func">OppositePath</code> (<a href="chap4.html#X85794BE082B632B9"><span class="RefLink">4.16-1</span></a>) takes a path in a quiver to the corresponding path in the opposite quiver.</p>
<p>The opposite of the opposite of a quiver <span class="SimpleMath">Q</span> is isomorphic to <spanclass="SimpleMath">Q</span>. In QPA, we regard these two quivers to be the same, so the call <code class="code">OppositeQuiver(OppositeQuiver(Q))</code> returns the object <code class="code">Q</code>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">q1 := Quiver(["u","v"],[["u","u","a"],["u","v","b"],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> ["v","u","c"],["v","v","d"]]);</span>
<quiver with 2 vertices and 4 arrows>
<span class="GAPprompt">gap></span> <span class="GAPinput">q1.a;</span>
a
<span class="GAPprompt">gap></span> <span class="GAPinput">q1.v;</span>
v
<span class="GAPprompt">gap></span> <span class="GAPinput">VerticesOfQuiver(q1);</span>
[ u, v ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ArrowsOfQuiver(q1);</span>
[ a, b, c, d ]
<span class="GAPprompt">gap></span> <span class="GAPinput">AdjacencyMatrixOfQuiver(q1);</span>
[ [ 1, 1 ], [ 1, 1 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneratorsOfQuiver(q1);</span>
[ u, v, a, b, c, d ]
<span class="GAPprompt">gap></span> <span class="GAPinput">NumberOfVertices(q1);</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">NumberOfArrows(q1);</span>
4
<span class="GAPprompt">gap></span> <span class="GAPinput">OrderingOfQuiver(q1);</span>
<length left lexicographic ordering>
<span class="GAPprompt">gap></span> <span class="GAPinput">q1_op := OppositeQuiver(q1);</span>
<quiver with 2 vertices and 4 arrows>
<span class="GAPprompt">gap></span> <span class="GAPinput">VerticesOfQuiver(q1_op);</span>
[ u_op, v_op ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ArrowsOfQuiver(q1_op);</span>
[ a_op, b_op, c_op, d_op ]
</pre></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ FullSubquiver</code>( <var class="Arg">quiver</var>, <var class="Arg">list</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: This function returns a quiver which is a full subquiver of a <var class="Arg">quiver</var> induced by the <var class="Arg">list</var> of its vertices.</p>
<p>The names of vertices and arrows in resulting (sub)quiver remain the same as in original one. The function checks if <var class="Arg">list</var> consists of vertices of <var class="Arg">quiver</var>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ConnectedComponentsOfQuiver</code>( <var class="Arg">quiver</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: This function returns a list of quivers which are all connected components of a <var class="Arg">quiver</var>.</p>
<p>The names of vertices and arrows in resulting (sub)quiver remain the same as in original one. The function sets the property <code class="func">IsConnectedQuiver</code> (<a href="chap3.html#X7909BF627C5D0D4A"><span class="RefLink">3.3-4</span></a>) to true for all the components.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Q := Quiver(6, [ [1,2],[1,1],[3,2],[4,5],[4,5] ]);</span>
<quiver with 6 vertices and 5 arrows>
<span class="GAPprompt">gap></span> <span class="GAPinput">VerticesOfQuiver(Q);</span>
[ v1, v2, v3, v4, v5, v6 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">FullSubquiver(Q, [Q.v1, Q.v2]);</span>
<quiver with 2 vertices and 2 arrows>
<span class="GAPprompt">gap></span> <span class="GAPinput">ConnectedComponentsOfQuiver(Q);</span>
[ <quiver with 3 vertices and 3 arrows>,
<quiver with 2 vertices and 2 arrows>,
<quiver with 1 vertices and 0 arrows> ]
</pre></div>
<p>Returns: the double quiver of <var class="Arg">quiver</var>.</p>
<p>The vertices in the double quiver are labelled by the same labels as in the original quiver. The "old" arrows in the double quiver are labelled by the same labels as in the original, and the "new"arrows in the double quiver are labelled by the same labels as in the original quiver with the string "bar" added.</p>
<p>Returns: the separated quiver of <var class="Arg">quiver</var>.</p>
<p>The vertices in the separated quiver are labelled <span class="SimpleMath">v</span> and <span class="SimpleMath">v' for each vertex v in quiver, and for each arrow a: v -> w in quiver the arrow v-> w'</span> is labelled <span class="SimpleMath">a</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ WalkOfPath</code>( <var class="Arg">path</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a list of the arrows that constitute <var class="Arg">path</var> in order.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ *</code>( <var class="Arg">p</var>, <var class="Arg">q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">p</var> and <var class="Arg">q</var> -- two paths in the same quiver. <br/></p>
<p>Returns: the multiplication of the paths. If the paths are not in the same quiver an error is returned. If the target of <var class="Arg">p</var> differs from the source of <var class="Arg">q</var>, 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.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">q1 := Quiver(["u","v"],[["u","u","a"],["u","v","b"],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> ["v","u","c"],["v","v","d"]]);</span>
<quiver with 2 vertices and 4 arrows>
<span class="GAPprompt">gap></span> <span class="GAPinput">SourceOfPath(q1.v);</span>
v
<span class="GAPprompt">gap></span> <span class="GAPinput">p1:=q1.a*q1.b*q1.d*q1.d;</span>
a*b*d^2
<span class="GAPprompt">gap></span> <span class="GAPinput">TargetOfPath(p1);</span>
v
<span class="GAPprompt">gap></span> <span class="GAPinput">p2:=q1.b*q1.b;</span>
0
<span class="GAPprompt">gap></span> <span class="GAPinput">WalkOfPath(p1);</span>
[ a, b, d, d ]
<span class="GAPprompt">gap></span> <span class="GAPinput">WalkOfPath(q1.a);</span>
[ a ]
<span class="GAPprompt">gap></span> <span class="GAPinput">LengthOfPath(p1);</span>
4
<span class="GAPprompt">gap></span> <span class="GAPinput">LengthOfPath(q1.v);</span>
0
</pre></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IncomingArrowsOfVertex</code>( <var class="Arg">vertex</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a list of arrows having <var class="Arg">vertex</var> as target. Only meaningful if <varclass="Arg">vertex</var> is in a quiver.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ OutgoingArrowsOfVertex</code>( <var class="Arg">vertex</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a list of arrows having <var class="Arg">vertex</var> as source.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ InDegreeOfVertex</code>( <var class="Arg">vertex</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: the number of arrows having <var class="Arg">vertex</var> as target. Only meaningful if <var class="Arg">vertex</var> is in a quiver.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ OutDegreeOfVertex</code>( <var class="Arg">vertex</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: the number of arrows having <var class="Arg">vertex</var> as source.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ NeighborsOfVertex</code>( <var class="Arg">vertex</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a list of neighbors of <var class="Arg">vertex</var>, that is, vertices that are targets of arrows having <var class="Arg">vertex</var> as source.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">q1 := Quiver(["u","v"],[["u","u","a"],["u","v","b"],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> ["v","u","c"],["v","v","d"]]);</span>
<quiver with 2 vertices and 4 arrows>
<span class="GAPprompt">gap></span> <span class="GAPinput">OutgoingArrowsOfVertex(q1.u);</span>
[ a, b ]
<span class="GAPprompt">gap></span> <span class="GAPinput">InDegreeOfVertex(q1.u);</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">NeighborsOfVertex(q1.v);</span>
[ u, v ]
</pre></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Poset</code>( <var class="Arg">P</var>, <var class="Arg">rel</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">P</var> a list and <var class="Arg">rel</var> -- a list of pairs from <varclass="Arg">P</var>. <br /></p>
<p>Returns: the poset defined on the points <var class="Arg">P</var> and the relations generated by <var class="Arg">rel</var>.</p>
<p>The elements in <var class="Arg">P</var> is given as a list, and for example <code class="code">["a", "b", "c", "d"]</code> and the relations are given as a list of lists, for instance in the above case: <code class="code">[ ["a", "b", "c"], ["b", "d"], ["c", "d"]].</code> The first list means that <span class="SimpleMath">a < b</span> and <span class="SimpleMath">a < c</span>, and the second one means <span class="SimpleMath">b < d</span> and finally the last one means <span class="SimpleMath">c < d</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Size</code>( <var class="Arg">P</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: the number of elements of the poset <var class="Arg">P</var>.</p>
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.