The program Tetiva is written in order to provide a user with a tool to calculate those properties of quiver's representations that have importance for both Representation and Invariant theory. I want to emphasize the role of the Derksen-Weyman algorithm (see Generic (canonical) decomposition) for my motivation to write Tetiva. Actually, I was impressioned by this algorithm that solves in a very fast, elegant, and non-evident manner a useful and well-known problem. All other algorithms have been developed by myself in a similar spirit.
The working space is divided into two parts: the upper part is used to Draw and edit quiver and the lower one to present Calculations results with the current quiver. The current dimension vector is presented between the two parts.
You may use the upper space that you need to draw your quiver and the lower part will be adjusted to your choice.
Besides you have the menu panel with the items: File, Help, Edit/Calculation status, Calculations. The menu item File/New allows you to open as many documents as you need and you can proceed with defining quivers and calculations for those quivers in each window independently. The menu item File/Exit is the way to quit Tetiva. The menu item Help/Help Topics will forward you to this document.
When opened a new document you have the following situation: the quiver, the dimension vector, and the Calculations results are empty, you are in the Edit mode, so you start by drawing your quiver.
There are two modes of the program: in the first mode you can draw and edit quivers using the mouse buttons. In the second one you have your quiver defined and fixed, so that you can set an arbitrary dimension vector and call any calculation method for that dimension. You can switch between two modes by the menu item Edit/Calculation status. You also are informed about the current mode by a message just below your quiver.
Make sure that you are in the position to draw your quiver (see Edit/Calculation status for how to enable this mode).
Add a vertex. To add a new vertex to your quiver just click the left mouse button at the desired location and confirm your intention to the message box "Add vertex?". Then a small circle appears with its number inside. Also an additional position will be appended to the space of "Current dimension", with 0 inside. This position in the dimension vector will be corresponded to the new vertex. Not every position is available for drawing a new vertex: the position needs to be sufficiently far from the existing vertices and arrows; if you chosed an inappropriate position you will get a message Chosen point is too close to an existing vertex or arrow. Moreover, your click to an existing vertex will be considered as your wish to draw an arrow.
Add an arrow. To add an arrow click the left mouse button to the circle presenting its tail , confirm your intention to the message box "To add an arrow, press OK and select second vertex", and actually click the left mouse button to the head of the arrow. Then a new arrow will be drawn or, if another arrow existed with the same tail and head, the multiplicity of that arrow will be increased by 1. The multiplicity is drawn in a small box in the middle of the arrow; the absent multiplicity box means single arrow. However your wish to define this arrow may be rejected if this arrow would yield an oriented cycle (in particular, a loop) to the quiver. In this case you will get a message We do not support oriented cycles..
Delete a vertex. To delete a vertex click the right mouse button to the circle representing the vertex and confirm your intention to the message box Delete vertex?. Then the vertex wil dissapear together with all adjacent arrows. Also the numbering of the vertices will be recalculated.
Delete an arrow. To delete an arrow click the right mouse button to the picture of the arrow and confirm your intention to the message box Delete arrow?. Then the arrow will dissapear or, for a multiple arrow, the multiplicity of the arrow will be decreased by 1.
Make sure that you are in the position to set dimension vector (see Edit/Calculation status for how to enable this mode).
To change the dimension corresponding to a vertex click the left mouse button to the vertex. Then the corresponding position in the dimension vector will change color and remain in that color while you are editing that number, till you click another vertex. To edit the chosen dimension number you can use the 0,1,..,9 buttons and the Backspace button to erase the last digit.
Menu Calculation contains all available functions to calculate for the given quiver and dimension vector.
Generic (canonical) decomposition. For a dimension vector d of a quiver V.G.Kac introduced the notion of the canonical decomposition of d in the linear combination of Schur roots with natural coefficients, see Journal of algebra 78 (1982), 141-162. Almost in the same time C.M.Ringel used this term with another mathematical sense, so several authors prefer to use the term generic for Kac's decomposition, and it is meaningful, because this decomposition describes the generic representation of dimension d .
We calculate the generic decomposition using the algorithm of H.Derksen and J.Weyman from Compositio math. , 133 (2002), 245-265. The result is presented in the natural form with the keyword Generic before it. We also use square brackets to distinguish the summands being imaginary Schur roots, whereas for real roots we use parentheses.
Perpendicular category. For a representation U of a quiver Q without oriented cycles A.Schofield intoduced the notion of the right and the left perpendicular category , see J. London math.soc. 43 (1991), 385-395. For the case, when U has trivial self-extensions, Ext(U,U)=0 Schofield proved in loc.cit. that the perpendicular categories are isomorphic to those of quivers without oriented cycles and having n - s vertices, where n is the number of vertices of Q and s is the number of the indecomposable summands of U . I used the idea of the proof of this result to get an algorithm for calculating this data. Note that the representation U with the above property is completely defined by its dimension that has to be a prehomogeneous dimension vector having only real Schur roots in the generic decomposition. Note also that each of the perpendicular categories is completely defined by the dimensions of its simple objects that again have to be real Schur roots. So the output of our calculation of the right (the left) perpendicular category is the list of dimension vectors of those simple objects with the keyword RPerpCtgry ( LPerpCtgry ) before it.
On the other hand, A.Schofield proved in loc.cit. that those simple objects yield the generating semi-invariants of the action of SL(dimU) on the representatons of dimension dimU, those are determinantal semi-invariants; their weights are linear independent and are described in loc.cit. in terms of the dimensions. So our output can be easily transformed into invariant-theoretic terms.
Note also that our algorithm does not give anything for a non-prehomogeneous dimension vector, you will only get the message "Dimension is not prehomogeneous".
Generic locally semi-simple decomposition. For a dimension vector d of a quiver I introduced the notion of the generic locally semi-simple decomposition of d in the linear combination of Schur roots with natural coefficients, see Transformation groups 12 (2007). I also elaborate an algorithm for calculating such a decomposition based on those for generic decomposition, for perpendicular categories and additional ideas. The output is presented in the natural form with the keyword GenericSS before it.
It should be noted that this calculation has a clear and useful invariant-theoretic meaning. Namely assume that the generic locally semi-simple decomposition has the form d = m1*d1+...+ ms*ds. This means that the generic object V among the representations of dimension d with a closed SL( d)-orbit has such a decomposition into indecomposables and, moreover, its automorphism group is isomorphic to the direct product of GL(m1),...,GL(ms).
Tits form. The well-known Tits form plays crucial role in describing roots of quivers, in particular, to distinguish the real roots with form's value equal to 1 and the imaginary ones, with form's value less than or equal to 0. This easy calculation is provided for user's convenience.
The results of the calculations are presented in the text form with the numeration of each output item. The previous results remain visible to a user till the place occupied by that output will be necessary to print out the new one. When the user passes to the Edit mode all results for the previous quiver dissapear to give space for the new one.
Tetiva is a free software. Please refer to it when using the results of calculations with this program. The author, Dmitri Shmelkin, will appreciate your information about the bugs, as well as suggestions on improving it and your impression of using it. Please write to my mail box.