<Chapter Label="AR-theory"><Heading>Auslander-Reiten theory</Heading>

This chapter describes the functions implemented for almost split sequences and 
Auslander-Reiten theory in QPA.<P/> 


<Section><Heading>Almost split sequences and AR-quivers</Heading>

<ManSection>
  <Attr Name="AlmostSplitSequence" Arg="M" Comm=""/>
  <Attr Name="AlmostSplitSequence" Arg="M, e" Comm=""/>
  <Description>
    Arguments: <Arg>M</Arg> - an indecomposable non-projective
    module, <Arg>e</Arg> - either l = left or r = right<Br />
  </Description>
  <Returns>the almost split sequence ending in the
  module <Arg>M</Arg> if it is indecomposable and not projective, for
  the first variant.  The second variant finds the almost split
  sequence starting or ending in  the module  <Arg>M</Arg>  depending
  on whether the second argument  <Arg>e</Arg>  is  l or r (l =
  almost split sequence starting with  <Arg>M</Arg>, or  r = almost
  split sequence ending in  <Arg>M</Arg>), if the module is
  indecomposable and not injective or not projective, respectively.  
  It returns fail if the module is injective (l) or projective (r). 
  </Returns>
  <Description>
    The almost split sequence is returned as a pair of maps, the
    monomorphism and the epimorphism.  The function assumes that the
    module <Arg>M</Arg> is indecomposable, and the source of the
    monomorphism (l) or the range of the epimorphism (r) is a module
    that is isomorphic to <Arg>M</Arg>, not necessarily identical.
  </Description>
</ManSection>

<ManSection>
  <Oper Name="AlmostSplitSequenceInPerpT" Arg="T, M" Comm=""/>
  <Description>
    Arguments: <Arg>T</Arg> - a cotilting module, <Arg>M</Arg> - an indecomposable non-projective
    module<Br />
  </Description>
  <Returns>the almost split sequence in <Math>^\perp T</Math> ending
  in the module <Arg>M</Arg>, if the module is indecomposable. It
  returns fail if the module is in <Math>\add T</Math> projective.
  The almost split sequence is returned as a pair of maps, the
  monomorphism and the epimorphism. 
  </Returns>
  <Description> The function assumes that the module <Arg>M</Arg> is
  indecomposable and in <Math>^\perp T</Math>, and the range of the
  epimorphism is a module that is isomorphic to the input, not
  necessarily identical.
  </Description>
</ManSection>

<ManSection>
  <Attr Name="IrreducibleMorphismsEndingIn" Arg="M" Comm=""/>
  <Attr Name="IrreducibleMorphismsStartingIn" Arg="M" Comm=""/>
  <Description>
    Arguments: <Arg>M</Arg> - an indecomposable module<Br />
  </Description>
  <Returns>the collection of irreducible morphisms ending and starting
  in the module <Arg>M</Arg>, respectively.  The argument is assumed
  to be an indecomposable module.
  </Returns>
  <Description>
    The irreducible morphisms are returned as a list of maps.  Even in
    the case of only one irreducible morphism, it is returned as a
    list.  The function assumes that the module <Arg>M</Arg> is
    indecomposable over a quiver algebra with a finite field as the
    ground ring.
  </Description>
</ManSection>

<ManSection>
     <Oper Name="IsTauPeriodic" Arg="M, n" Comm="for a
   PathAlgebraMatModule and a positive integer"/>
   <Description> 
    Arguments: <Arg>M</Arg> -- a path algebra module
    (<C>PathAlgebraMatModule</C>), <Arg>n</Arg> -- be a positive integer.
   <Br /></Description>
   <Returns><C>i</C>, where <C>i</C> is the smallest positive integer
     less or equal <C>n</C> such that the representation <Arg>M</Arg> is isomorphic
     to the <M>\tau^i(M)</M>, and false otherwise.
   </Returns>
</ManSection>

<ManSection>
   <Oper Name="PredecessorOfModule" Arg="M, n" Comm=""/>
   <Description>
     Arguments: <Arg>M</Arg> - an indecomposable non-projective module
     and <Arg>n</Arg> - a positive integer.<Br />
   </Description>
   <Returns>the predecessors of the module <Arg>M</Arg> in the
    AR-quiver of the algebra <Arg>M</Arg> is given over of distance
    less or equal to <Arg>n</Arg>. 
   </Returns>
   <Description>
    It returns two lists, the first is the indecomposable modules in
    the different layers and the second is the valuations for the
    arrows in the AR-quiver.  The different entries in the first list
    are the modules at distance zero, one, two, three, and so on, until
    layer  <Arg>n</Arg>. The <C>m</C>-th entry in the second list is 
    the valuations of the irreducible morphism from indecomposable 
    module number <C>i</C> in layer <C>m+1</C> to indecomposable module
    number <C>j</C> in layer <C>m</C> for the values of <C>i</C> and 
    <C>j</C> there is an irreducible morphism. Whenever <C>false</C> 
    occur in the output, it means that this valuation has not been 
    computed. 

    The function assumes that the module <Arg>M</Arg> is indecomposable 
    and that the quotient of the path algebra is given over a finite field. 
   </Description>
</ManSection>

<Example><![CDATA[
gap> A := KroneckerAlgebra(GF(4),2);       
<GF(2^2)[<quiver with 2 vertices and 2 arrows>]>
gap> S := SimpleModules(A)[1];             
<[ 1, 0 ]>
gap> ass := AlmostSplitSequence(S);   
[ <<[ 3, 2 ]> ---> <[ 4, 2 ]>>
    , <<[ 4, 2 ]> ---> <[ 1, 0 ]>>
     ]
gap> DecomposeModule(Range(ass[1]));
[ <[ 2, 1 ]>, <[ 2, 1 ]> ]
gap> PredecessorsOfModule(S,5);   
[ [ [ <[ 1, 0 ]> ], [ <[ 2, 1 ]> ], [ <[ 3, 2 ]> ], [ <[ 4, 3 ]> ], 
      [ <[ 5, 4 ]> ], [ <[ 6, 5 ]> ] ], 
  [ [ [ 1, 1, [ 2, false ] ] ], [ [ 1, 1, [ 2, 2 ] ] ], 
      [ [ 1, 1, [ 2, 2 ] ] ], [ [ 1, 1, [ 2, 2 ] ] ], 
      [ [ 1, 1, [ false, 2 ] ] ] ] ]
gap> A:=NakayamaAlgebra([5,4,3,2,1],GF(4));
<GF(2^2)[<quiver with 5 vertices and 4 arrows>]>
gap> S := SimpleModules(A)[1];             
<[ 1, 0, 0, 0, 0 ]>
gap> PredecessorsOfModule(S,5);
[ [ [ <[ 1, 0, 0, 0, 0 ]> ], [ <[ 1, 1, 0, 0, 0 ]> ], 
      [ <[ 0, 1, 0, 0, 0 ]>, <[ 1, 1, 1, 0, 0 ]> ], 
      [ <[ 0, 1, 1, 0, 0 ]>, <[ 1, 1, 1, 1, 0 ]> ], 
      [ <[ 0, 0, 1, 0, 0 ]>, <[ 0, 1, 1, 1, 0 ]>, <[ 1, 1, 1, 1, 1 ]> 
         ], [ <[ 0, 0, 1, 1, 0 ]>, <[ 0, 1, 1, 1, 1 ]> ] ], 
  [ [ [ 1, 1, [ 1, false ] ] ], 
      [ [ 1, 1, [ 1, 1 ] ], [ 2, 1, [ 1, false ] ] ], 
      [ [ 1, 1, [ 1, 1 ] ], [ 1, 2, [ 1, 1 ] ], 
          [ 2, 2, [ 1, false ] ] ], 
      [ [ 1, 1, [ 1, 1 ] ], [ 2, 1, [ 1, 1 ] ], [ 2, 2, [ 1, 1 ] ], 
          [ 3, 2, [ 1, false ] ] ], 
      [ [ 1, 1, [ false, 1 ] ], [ 1, 2, [ false, 1 ] ], 
          [ 2, 2, [ false, 1 ] ], [ 2, 3, [ false, 1 ] ] ] ] ] ]]>
</Example>
</Section>
</Chapter>
