<p>This is an implementation of several tools for computing degeneration order for modules over algebras of finite type. It can be treated as a "subpackage" of QPA and used separately since the functions do not use any of QPA routines so far.<br /> This subpackage has a little bit different philosophy than QPA in general. Namely, the "starting point" is not an algebra A defined by a Gabriel quiver with relations but an Auslander-Reiten (A-R) quiver of the category mod A, defined by numerical data (see <code class="func">ARQuiverNumerical</code> (<a href="chap13.html#X841AD2EF7FD636B9"><span class="RefLink">13.3-1</span></a>)). All the indecomposables (actually their isoclasses) have unique natural numbers established at the beginning, by invoking <code class="func">ARQuiverNumerical</code> (<a href="chap13.html#X841AD2EF7FD636B9"><span class="RefLink">13.3-1</span></a>). This function should be used before all further computations. An arbitrary module M is identified by its multiplicity vector (the sequence of multiplicities of all the indecomposables appearing in a direct sum decomposition of M). <br /> Here we always assume that A is an algebra of finite representation type. Note that in this case deg-order coincide with Hom-order, and this fact is used in the algorithms of this subpackage. The main goal of this subpackage is to give tools for testing a deg-order relation between two A-modules and determining (direct) deg-order predecessors and successors (see <a href="chap13.html#X78ED07E37FC2BD46"><span class="RefLink">13.2</span></a> for basic definitions from this theory). As a side effect one can also obtain the dimensions of Hom-spaces between arbitrary modules (and in particular the dimension vectors of indecomposable modules).</p>
<p>Here we briefly recall the basic notions we use in all the functions from this chapter.</p>
<p>Let A be an algebra. We say that for two A-modules M and N of the same dimension vector d, M degenerates to N (N is a degeneration of M) iff N belongs to a Zariski closure of the orbit of M in a variety <span class="Math">mod_A(d)</span> of A-modules of dimension vector d. If it is the case, we write <span class="Math">M <= N</span>. It is well known that</p>
<p>(1) The relation <span class="Math"><=</span> is a partial order on the set of isomorphism classes of A-modules of dimension vector d.<br /> <br /> (2) If A is an algebra of finite representation type, <span class="Math"><=</span> coincides with so-called Hom-order <span class="Math"><=_{Hom}</span>, defined as follows: <span class="Math">M <=_{Hom} N</span> iff <span class="Math">[X,M] <= [X,N]</span> for all indecomposable A-modules X, where by <span class="Math">[Y,Z]</span> we denote always the dimension of a Hom-space between Y and Z.</p>
<p>Further, if <span class="Math">M < N</span> (i.e. <span class="Math">M <= N</span> and M is not isomorphic to N), we say that M is a deg-order predecessor of N (resp. N is a deg-order successor of M). Moreover, we say that M is a direct deg-order predecessor of N if <span class="Math">M < N</span> and there is no M' such that M < M' < N</span> (similarly for successors).</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ARQuiverNumerical</code>( <var class="Arg">ind</var>, <var class="Arg">proj</var>, <var class="Arg">list</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">‣ ARQuiverNumerical</code>( <var class="Arg">name</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">‣ ARQuiverNumerical</code>( <var class="Arg">name</var>, <var class="Arg">param1</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">‣ ARQuiverNumerical</code>( <var class="Arg">name</var>, <var class="Arg">param1</var>, <var class="Arg">param2</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Arguments: <var class="Arg">ind</var> - number of indecomposable modules in our category;<br /> <var class="Arg">proj</var> - number of indecomposable projective modules in our category;<br /> <varclass="Arg">list</var> - list of lists containing description of meshes in A-R quiver defined as follows:<br /> <var class="Arg">list</var>[i] = description of mesh ending in vertex (indec. mod.) number i having the shape [a1,...,an,t] where<br /> a1,...,an = numbers of direct predecessors of i in A-R quiver;<br /> t = number of tau(i), or 0 if tau i does not exist (iff i is projective).<br /> In particular if i is projective <var class="Arg">list</var>[i]=[a1,...,an,0] where a1,...,an are indec. summands of rad(i).</p>
<p>OR:<br /> <var class="Arg">list</var> second version - if the first element of <var class="Arg">list</var> is a string "orbits" then the remaining elements should provide an alternative (shorter than above) description of A-R quiver as follows. <br /> <var class="Arg">list</var>[2] is a list of descriptions of orbits identified by chosen representatives. We assume that in case an orbit is non-periodic, then a projective module is its representative. Each element of list <var class="Arg">list</var>[2] is a description of i-th orbit and has the shape:<br /> <code class="code">[l, [i1,t1], ... , [is,ts]]</code> where<br /> l = length of orbit - 1<br /> <code class="code">[i1,t1], ... , [is,ts]</code> all the direct predecessors of a representative of this orbit, of the shape tau^{-t1}(i1), and i1 denotes the representative of orbit no. i1, and so on.<br /> We assume first p elements of <var class="Arg">list</var>[2] are the orbits of projectives.</p>
<p>REMARK: we ALWAYS assume that indecomposables with numbers 1..<var class="Arg">proj</var> are projectives and the only projectives (further dimension vectors are interpreted according to this order of projectives!).</p>
<p>Alternative arguments:<br /> <var class="Arg">name</var> = string with the name of predefined A-R quiver;<br /> <var class="Arg">param1</var> = (optional) parameter for <var class="Arg">name</var>;<br /> <var class="Arg">param2</var> = (optional) second parameter for <var class="Arg">name</var>.<br /> <br /> Call ARQuiverNumerical("what") to get a description of all the names and parameters for currently available predefined A-R quivers.</p>
<p>Returns: an object from the category <code class="func">IsARQuiverNumerical</code> (<a href="chap13.html#X7CFA7C7D861B2D4E"><span class="RefLink">13.3-2</span></a>).</p>
<p>This function "initializes" Auslander-Reiten quiver and performs all necessary preliminary computations concerning mainly determining the matrix of dimensions of all Hom-spaces between indecomposables.</p>
<p>Examples.<br /> Below we define an A-R quiver of a path algebra of the Dynkin quiver D4 with subspace orientation of arrows.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">a := ARQuiverNumerical(12, 4, [ [0],[1,0],[1,0],[1,0],[2,3,4,1],[5,2],[5,3],[5,4],[6,7,8,5],[9,6],[9,7],[9,8] ]);</span>
<ARQuiverNumerical with 12 indecomposables and 4 projectives>
</pre></div>
<p>The same A-R quiver (with possibly little bit different enumeration of indecomposables) can be obtained by invoking:</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">a := ARQuiverNumerical("D4 subspace");</span>
<ARQuiverNumerical with 12 indecomposables and 4 projectives>
</pre></div>
<p>since this is one of the predefined A-R quivers. <br /> Another example of predefined A-R quiver: for an algebra from Bongartz-Gabriel list of maximal finite type algebras with two simple modules. This is an algebra with number 5 on this list.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">a := ARQuiverNumerical("BG", 5);</span>
<ARQuiverNumerical with 72 indecomposables and 2 projectives>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsARQuiverNumerical</code></td><td class="tdright">( category )</td></tr></table></div>
<p>Objects from this category represent Auslander-Reiten (finite) quivers and additionally contain all data necessary for further computations (as components accessed as usual by !.name-of-component):<br /> ARdesc = numerical description of AR quiver (as <var class="Arg">list</var> in <code class="func">ARQuiverNumerical</code> (<a href="chap13.html#X841AD2EF7FD636B9"><span class="RefLink">13.3-1</span></a>)),<br /> DimHomMat = matrix [dim Hom (i,j)] (=> rows 1..p contain dim. vectors of all indecomposables),<br /> Simples = list of numbers of simple modules.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DimensionVector</code>( <var class="Arg">AR</var>, <var class="Arg">M</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">AR</var> - an object from the category <code class="func">IsARQuiverNumerical</code> (<a href="chap13.html#X7CFA7C7D861B2D4E"><span class="RefLink">13.3-2</span></a>);<br /> <var class="Arg">M</var> - a number of an indecomposable module in <var class="Arg">AR</var> or a multiplicity vector (cf. <a href="chap13.html#X7DFB63A97E67C0A1"><span class="RefLink">13.1</span></a>).</p>
<p>Returns: a dimension vector of a module <var class="Arg">M</var> in the form of a list. The order of dimensions in this list corresponds to an order of projectives defined in <var class="Arg">AR</var> (cf. <code class="func">ARQuiverNumerical</code> (<a href="chap13.html#X841AD2EF7FD636B9"><span class="RefLink">13.3-1</span></a>)).</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DimHom</code>( <var class="Arg">AR</var>, <var class="Arg">M</var>, <var class="Arg">N</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">AR</var> - an object from the category <code class="func">IsARQuiverNumerical</code> (<a href="chap13.html#X7CFA7C7D861B2D4E"><span class="RefLink">13.3-2</span></a>);<br /> <var class="Arg">M</var> - a number of indecomposable module in <var class="Arg">AR</var> or a multiplicity vector;<br /> <var class="Arg">N</var> - a number of indecomposable module in <var class="Arg">AR</var> or a multiplicity vector (cf. <a href="chap13.html#X7DFB63A97E67C0A1"><span class="RefLink">13.1</span></a>).<br /></p>
<p>Returns: the dimension of the homomorphism space between modules <var class="Arg">M</var> and <var class="Arg">N</var>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ OrbitCodim</code>( <var class="Arg">AR</var>, <var class="Arg">M</var>, <var class="Arg">N</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">AR</var> - an object from the category <code class="func">IsARQuiverNumerical</code> (<a href="chap13.html#X7CFA7C7D861B2D4E"><span class="RefLink">13.3-2</span></a>);<br /> <var class="Arg">M</var> - a number of indecomposable module in <var class="Arg">AR</var> or a multiplicity vector;<br /> <var class="Arg">N</var> - a number of indecomposable module in <var class="Arg">AR</var> or a multiplicity vector (cf. <a href="chap13.html#X7DFB63A97E67C0A1"><span class="RefLink">13.1</span></a>).<br /></p>
<p>Returns: the codimension of orbits of modules <var class="Arg">M</var> and <var class="Arg">N</var> (= dim End(<var class="Arg">N</var>) - dim End(<var class="Arg">M</var>)). [explain more???]</p>
<p>NOTE: The function does not check if it makes sense, i.e. if <var class="Arg">M</var> and <var class="Arg">N</var> are in the same variety ( = dimension vectors coincide)!</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DegOrderLEQ</code>( <var class="Arg">AR</var>, <var class="Arg">M</var>, <var class="Arg">N</var> )</td><tdclass="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">AR</var> - an object from the category <code class="func">IsARQuiverNumerical</code> (<a href="chap13.html#X7CFA7C7D861B2D4E"><span class="RefLink">13.3-2</span></a>);<br /> <var class="Arg">M</var> - a number of indecomposable module in <var class="Arg">AR</var> or a multiplicity vector;<br /> <var class="Arg">N</var> - a number of indecomposable module in <var class="Arg">AR</var> or a multiplicity vector (cf. <a href="chap13.html#X7DFB63A97E67C0A1"><span class="RefLink">13.1</span></a>).<br /></p>
<p>Returns: true if <var class="Arg">M</var><span class="Math"><=</span><var class="Arg">N</var> in a degeneration order i.e. if <var class="Arg">N</var> is a degeneration of <var class="Arg">M</var> (see <a href="chap13.html#X78ED07E37FC2BD46"><span class="RefLink">13.2</span></a>), and false otherwise.</p>
<p>NOTE: Function checks if it makes sense, i.e. if <var class="Arg">M</var> and <var class="Arg">N</var> are in the same variety ( = dimension vectors coincide). If not, it returns false and additionally prints warning.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DegOrderLEQNC</code>( <var class="Arg">AR</var>, <var class="Arg">M</var>, <var class="Arg">N</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">AR</var> - an object from the category <code class="func">IsARQuiverNumerical</code> (<a href="chap13.html#X7CFA7C7D861B2D4E"><span class="RefLink">13.3-2</span></a>);<br /> <var class="Arg">M</var> - a number of indecomposable module in <var class="Arg">AR</var> or a multiplicity vector;<br /> <var class="Arg">N</var> - a number of indecomposable module in <var class="Arg">AR</var> or a multiplicity vector (cf. <a href="chap13.html#X7DFB63A97E67C0A1"><span class="RefLink">13.1</span></a>).<br /></p>
<p>Returns: true if <var class="Arg">M</var><span class="Math"><=</span><var class="Arg">N</var> in a degeneration order i.e. if <var class="Arg">N</var> is a degeneration of <var class="Arg">M</var> (see <a href="chap13.html#X78ED07E37FC2BD46"><span class="RefLink">13.2</span></a>), and false otherwise.</p>
<p>NOTE: Function does Not Check ("NC") if it makes sense, i.e. if <var class="Arg">M</var> and <var class="Arg">N</var> are in the same variety ( = dimension vectors coincide). If not, the result doesn't make sense! It is useful when one wants to speed up computations (does not need to check the dimension vectors).
<p>This function prints the multiplicity vector <var class="Arg">M</var> in a more "readable" way (especially useful if <var class="Arg">M</var> is long and sparse). It prints a "sum" of non-zero multiplicities in the form"multiplicity * (number-of-indecomposable)".</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PrintMultiplicityVectors</code>( <var class="Arg">list</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">list</var> - a list of multiplicity vectors (cf. <a href="chap13.html#X7DFB63A97E67C0A1"><span class="RefLink">13.1</span></a>).<br /></p>
<p>This function prints all the multiplicity vectors from the <var class="Arg">list</var> in a more "readable" way, as <code class="func">PrintMultiplicityVector</code> (<a href="chap13.html#X877D07357EEA1418"><span class="RefLink">13.4-8</span></a>).</p>
<h4>13.5 <span class="Heading">Operations returning families of modules</span></h4>
<p>The functions from this section use quite advanced algorithms on (potentially) big amount of data, so their runtimes can be long for "big" A-R quivers!</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ModulesOfDimVect</code>( <var class="Arg">AR</var>, <var class="Arg">which</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">AR</var> - an object from the category <code class="func">IsARQuiverNumerical</code> (<a href="chap13.html#X7CFA7C7D861B2D4E"><span class="RefLink">13.3-2</span></a>);<br /> <var class="Arg">which</var> - a number of an indecomposable module in <var class="Arg">AR</var> or a dimension vector (see <code class="func">DimensionVector</code> (<a href="chap13.html#X7C89E06784FB86C4"><span class="RefLink">13.4-1</span></a>)).</p>
<p>Returns: a list of all modules (= multiplicity vectors, see <a href="chap13.html#X7DFB63A97E67C0A1"><span class="RefLink">13.1</span></a>) with dimension vector equal to <var class="Arg">which</var>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DegOrderPredecessors</code>( <var class="Arg">AR</var>, <var class="Arg">M</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">AR</var> - an object from the category <code class="func">IsARQuiverNumerical</code> (<a href="chap13.html#X7CFA7C7D861B2D4E"><span class="RefLink">13.3-2</span></a>);<br /> <var class="Arg">M</var> - a number of indecomposable module in <var class="Arg">AR</var> or a multiplicity vector (cf. <a href="chap13.html#X7DFB63A97E67C0A1"><span class="RefLink">13.1</span></a>).<br /></p>
<p>Returns: a list of all modules (= multiplicity vectors) which are the predecessors of module <var class="Arg">M</var> in a degeneration order (see <a href="chap13.html#X78ED07E37FC2BD46"><span class="RefLink">13.2</span></a>).</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DegOrderDirectPredecessors</code>( <var class="Arg">AR</var>, <var class="Arg">M</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">AR</var> - an object from the category <code class="func">IsARQuiverNumerical</code> (<a href="chap13.html#X7CFA7C7D861B2D4E"><span class="RefLink">13.3-2</span></a>);<br /> <var class="Arg">M</var> - a number of indecomposable module in <var class="Arg">AR</var> or a multiplicity vector (cf. <a href="chap13.html#X7DFB63A97E67C0A1"><span class="RefLink">13.1</span></a>).<br /></p>
<p>Returns: a list of all modules (= multiplicity vectors) which are the direct predecessors of module <var class="Arg">M</var> in a degeneration order (see <a href="chap13.html#X78ED07E37FC2BD46"><span class="RefLink">13.2</span></a>).</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DegOrderPredecessorsWithDirect</code>( <var class="Arg">AR</var>, <var class="Arg">M</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">AR</var> - an object from the category <code class="func">IsARQuiverNumerical</code> (<a href="chap13.html#X7CFA7C7D861B2D4E"><span class="RefLink">13.3-2</span></a>);<br /> <var class="Arg">M</var> - a number of indecomposable module in <var class="Arg">AR</var> or a multiplicity vector (cf. <a href="chap13.html#X7DFB63A97E67C0A1"><span class="RefLink">13.1</span></a>).<br /></p>
<p>Returns: a pair (2-element list) [<var class="Arg">p</var>, <var class="Arg">dp</var>] where<br /> <var class="Arg">p</var> = the same as a result of <code class="func">DegOrderPredecessors</code> (<a href="chap13.html#X871CF6EE8579FEC8"><span class="RefLink">13.5-2</span></a>);<br /> <var class="Arg">dp</var> = the same as a result of <code class="func">DegOrderDirectPredecessors</code> (<a href="chap13.html#X7EBEA7DA85E645EB"><span class="RefLink">13.5-3</span></a>);<br /></p>
<p>The function generates predecessors only once, so the runtime is exactly the same as DegOrderDirectPredecessors.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DegOrderSuccessors</code>( <var class="Arg">AR</var>, <var class="Arg">M</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">AR</var> - an object from the category <code class="func">IsARQuiverNumerical</code> (<a href="chap13.html#X7CFA7C7D861B2D4E"><span class="RefLink">13.3-2</span></a>);<br /> <var class="Arg">M</var> - a number of indecomposable module in <var class="Arg">AR</var> or a multiplicity vector (cf. <a href="chap13.html#X7DFB63A97E67C0A1"><span class="RefLink">13.1</span></a>).<br /></p>
<p>Returns: a list of all modules (= multiplicity vectors) which are the successors of module <varclass="Arg">M</var> in a degeneration order (see <a href="chap13.html#X78ED07E37FC2BD46"><spanclass="RefLink">13.2</span></a>).</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DegOrderDirectSuccessors</code>( <var class="Arg">AR</var>, <var class="Arg">M</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">AR</var> - an object from the category <code class="func">IsARQuiverNumerical</code> (<a href="chap13.html#X7CFA7C7D861B2D4E"><span class="RefLink">13.3-2</span></a>);<br /> <var class="Arg">M</var> - a number of indecomposable module in <var class="Arg">AR</var> or a multiplicity vector (cf. <a href="chap13.html#X7DFB63A97E67C0A1"><span class="RefLink">13.1</span></a>).<br /></p>
<p>Returns: a list of all modules (= multiplicity vectors) which are the direct successors of module <var class="Arg">M</var> in a degeneration order (see <a href="chap13.html#X78ED07E37FC2BD46"><span class="RefLink">13.2</span></a>).</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DegOrderSuccessorsWithDirect</code>( <var class="Arg">AR</var>, <var class="Arg">M</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Arguments: <var class="Arg">AR</var> - an object from the category <code class="func">IsARQuiverNumerical</code> (<a href="chap13.html#X7CFA7C7D861B2D4E"><span class="RefLink">13.3-2</span></a>);<br /> <var class="Arg">M</var> - a number of indecomposable module in <var class="Arg">AR</var> or a multiplicity vector (cf. <a href="chap13.html#X7DFB63A97E67C0A1"><span class="RefLink">13.1</span></a>).<br /></p>
<p>Returns: a pair (2-element list) [<var class="Arg">s</var>, <var class="Arg">ds</var>] where<br /> <var class="Arg">s</var> = the same as a result of <code class="func">DegOrderSuccessors</code> (<a href="chap13.html#X7DB3AC3685859104"><span class="RefLink">13.5-5</span></a>);<br /> <var class="Arg">ds</var> = the same as a result of <code class="func">DegOrderDirectSuccessors</code> (<a href="chap13.html#X7C477F4E81CA6791"><span class="RefLink">13.5-6</span></a>);<br /></p>
<p>The function generates successors only once, so the runtime is exactly the same as DegOrderDirectSuccessors.</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.