What is implemented so far for working with the bounded derived category \(\mathcal{D}^{b}( \modc A )\). We use the isomorphism \(\mathcal{D}^{b}( \modc A ) \cong \mathcal{K}^{-,b}(\proj A)\), and will hence need a way to describe complexes where all objectives are projective (or, dually, injective).

`‣ InjectiveResolution` ( M ) | ( operation ) |

Arguments: `M` -- a module.

Returns: The injective resolution of `M` with `M` in degree \(-1\).

`‣ IsProjectiveComplex` ( C ) | ( property ) |

Arguments: `C` -- a complex.

Returns: true if `C` is either a finite complex of projectives or an infinite complex of projectives constructed as a projective resolution (`ProjectiveResolutionOfComplex`

(11.2-1)), false otherwise.

A complex for which this property is true, will be printed in a different manner than ordinary complexes. Instead of writing the dimension vector of the objects in each degree, the indecomposable direct summands are listed (for instance `P1`

, `P2`

… , where \(P_i\) is the indecomposable projective module corresponding to vertex \(i\) of the quiver). Note that if a complex is both projective and injective, it is printed as a projective complex.

`‣ IsInjectiveComplex` ( C ) | ( property ) |

Arguments: `C` -- a complex.

Returns: true if `C` is either a finite complex of injectives or an infinite complex of injectives constructed as \(D\mathrm{Hom}_{A}(-,A)\) of a projective complex (`ProjectiveToInjectiveComplex`

(11.2-2)), false otherwise.

A complex for which this property is true, will be printed in a different manner than ordinary complexes. Instead of writing the dimension vector of the objects in each degree, the indecomposable direct summands are listed (for instance `I1`

, `I2`

… , where \(I_i\) is the indecomposable injective module corresponding to vertex \(i\) of the quiver). Note that if a complex is both projective and injective, it is printed as a projective complex.

`‣ ProjectiveResolution` ( M ) | ( operation ) |

Arguments: `M` -- a module.

Returns: The projective resolution of `M` with `M` in degree \(-1\).

Let \(\mathcal{D}^{b}( \modc A )\) denote the bounded derived category. If \(C\) is an element of \(\mathcal{D}^{b}( \modc A )\), that is, a bounded complex of \(A\)-modules, there exists a projective resolution \(P\) of \(C\) which is a complex of projective \(A\)-modules quasi-isomorphic to \(C\). Moreover, there exists such a \(P\) with the following properties:

\(P\) is minimal (in the homotopy category).

\(C\) is bounded, so \(C_i = 0\) for \(i < k\) for a lower bound \(k\) and \(C_i = 0\) for \(i > j\) for an upper bound \(j\). Then \(P_i = 0\) for \(i < k\), and \(P\) is exact in degree \(i\) for \(i > j\).

The function `ProjectiveResolutionOfComplex`

computes such a projective resolution of any bounded complex. If \(A\) has finite global dimension, then \(\mathcal{D}^{b}( \modc A )\) has AR-triangles, and there exists an algorithm for computing the AR-translation of a complex \(C \in \mathcal{D}^{b}( \modc A )\):

Compute a projective resolution \(P'\) of \(C\).

Shift \(P'\) one degree to the right.

Compute \(I = D\mathrm{Hom}_{A}(P',A)\) to get a complex of injectives.

Compute a projective resolution \(P\) of \(I\).

Then \(P\) is the AR-translation of \(C\), sometimes written \(\tau(C)\). The following documents the **QPA** functions for working with complexes in the derived category.

`‣ ProjectiveResolutionOfComplex` ( C ) | ( operation ) |

Arguments: `C` -- a finite complex.

Returns: A projective complex \(P\) which is the projective resolution of \(C\), as described in the introduction to this section.

If the algebra has infinite global dimension, the projective resolution of \(C\) could possibly be infinite.

`‣ ProjectiveToInjectiveComplex` ( P ) | ( operation ) |

`‣ ProjectiveToInjectiveFiniteComplex` ( P ) | ( operation ) |

Arguments: `P` -- a bounded below projective complex.

Returns: An injective complex \(I = D\mathrm{Hom}_{A}(P,A)\).

\(P\) and \(I\) will always have the same length. Especially, if \(P\) is unbounded above, then so is \(I\). If \(P\) is a finite complex (that is; `LengthOfComplex(P)`

is an integer) then the simpler method `ProjectiveToInjectiveFiniteComplex`

is used.

`‣ TauOfComplex` ( C ) | ( operation ) |

Arguments: `C` -- a finite complex over an algebra of finite global dimension.

Returns: A projective complex \(P\) which is the AR-translation of `C`.

This function only works when the algebra has finite global dimension. It will always assume that both the projective resolutions computed are finite.

The following example illustrates the above mentioned functions and properties. Note that both `ProjectiveResolutionOfComplex`

and `ProjectiveToInjectiveComplex`

return complexes with a nonzero *positive* part, whereas `TauOfComplex`

always returns a complex for which `IsFiniteComplex`

returns true. Also note that after the complex `C`

in the example is found to have the `IsInjectiveComplex`

property, the printing of the complex changes.

The algebra in the example is \(kQ/I\), where \(Q\) is the quiver \(1 \longrightarrow 2 \longrightarrow 3\) and \(I\) is generated by the composition of the arrows. We construct \(C\) as the stalk complex with the injective \(I_1\) in degree 0.

gap> alg; <Rationals[<quiver with 3 vertices and 2 arrows>]/ <two-sided ideal in <Rationals[<quiver with 3 vertices and 2 arrows>]>, (1 generators)>> gap> cat := CatOfRightAlgebraModules(alg); <cat: right modules over algebra> gap> C := StalkComplex(cat, IndecInjectiveModules(alg)[1], 0); 0 -> 0:(1,0,0) -> 0 gap> ProjC := ProjectiveResolutionOfComplex(C); --- -> 0: P1 -> 0 gap> InjC := ProjectiveToInjectiveComplex(ProjC); --- -> 1: I2 -> 0: I1 -> 0 gap> TauC := TauOfComplex(C); 0 -> 1: P3 -> 0 gap> IsProjectiveComplex(C); false gap> IsInjectiveComplex(C); true gap> C; 0 -> 0: I1 -> 0

`‣ StarOfMapBetweenProjectives` ( f, list_i, list_j ) | ( operation ) |

`‣ StarOfMapBetweenIndecProjectives` ( f, i, list_j ) | ( operation ) |

`‣ StarOfMapBetweenDecompProjectives` ( f, list_i, list_j ) | ( operation ) |

Arguments: `f` -- a map between to projective modules \(P = \bigoplus P_i\) and \(Q = \bigoplus Q_j\), each of which were constructed as direct sums of indecomposable projective modules; `list_i` -- describes the summands of \(P\); `list_j` -- describes the summands of \(Q\). If \(P = P_1 \oplus P_3 \oplus P_3\) (where \(P_i\) is the indecomposable projective representation in vertex \(i\)), then `list_i` is [1,3,3].

Returns: The map \(f^* = \Hom_A(f,A): \Hom_A(Q,A) \rightarrow \Hom_A(P,A)\) in \(A^{\mathrm{op}}\) (where \(A\) is the original algebra).

The function `StarOfMapBetweenProjectives`

is supposed to be called from within the `ProjectiveToInjectiveComplex`

method, and might not do as expected when called from somewhere else.

The other similarly named functions are called from within the first.

generated by GAPDoc2HTML