[GAP Forum] Question concerning the GAP package qpa and injective modules of quotients of path algebras
Oeyvind Solberg
oyvind.solberg at math.ntnu.no
Mon Nov 4 07:46:34 GMT 2013
Bernhard Boehmler <bernhard.boehmler at ...> writes:
>
> Dear GAP forum,
>
> I would like to test with the qpa package (qpa=quivers and path algebras),
> whether a projective A-module is isomorphic to the dual of another
> projective module (as modules).
>
> Here, A=kQ/I is a quotient of a path algebra by an admissible ideal I.
>
> I have projective A-modules P_1 and P_2 and its dual
> I_2:=DualOfModule(P_2), but
>
> when I use the command IsomorphicModules(P_1,I_2), I get an error massage,
> because I_2 is not an A-module, but an A^op – module.
>
> Therefore, I would like to ask, if anybody knows, how to circumvent this
> problem.
>
> Thank you very much.
>
> Kind regards,
>
> Bernhard
>
Dear Bernhard and the GAP Forum,
The vector space duality will induce a duality from mod A
to mod A^op. Even if A and A^op are isomorphic, A and
A^op will be different objects in GAP. So if you want to
compare an (indecomposable) projective module and its dual,
one has to construct the indecomposable projective modules
over A^op, and then apply the duality. This can also be
done directly with the command IndecInjectiveModules().
Alternatively, to check that a projective module is isomorphic
to the dual of some projective module, this is the same as
asking if the projective module also is injective.
An example with a Nakayama algebra with four indecomposable
projectives:
gap> A := NakayamaAlgebra(Rationals, [3,3,3,3]);
<Rationals[<quiver with 4 vertices and 4 arrows>]/
<two-sided ideal in <Rationals[<quiver with 4 vertices and 4 arrows>]>, (4
generators)>>
gap> P := IndecProjectiveModules(A);
[ <[ 1, 1, 1, 0 ]>, <[ 0, 1, 1, 1 ]>, <[ 1, 0, 1, 1 ]>, <[ 1, 1, 0, 1 ]> ]
gap> Aop := OppositeAlgebra(A);
<Rationals[<quiver with 4 vertices and 4 arrows>]/
<two-sided ideal in <Rationals[<quiver with 4 vertices and 4 arrows>]>, (4
generators)>>
gap> Pop := IndecProjectiveModules(Aop);
[ <[ 1, 0, 1, 1 ]>, <[ 1, 1, 0, 1 ]>, <[ 1, 1, 1, 0 ]>, <[ 0, 1, 1, 1 ]> ]
gap> DPop := List(Pop, p -> DualOfModule(p));
[ <[ 1, 0, 1, 1 ]>, <[ 1, 1, 0, 1 ]>, <[ 1, 1, 1, 0 ]>, <[ 0, 1, 1, 1 ]> ]
gap> IsomorphicModules(P[1], DPop[1]);
false
gap> IsomorphicModules(P[1], DPop[2]);
false
gap> IsomorphicModules(P[1], DPop[3]);
true
gap> IsomorphicModules(P[1], DPop[4]);
false
gap> # or alternatively
gap> IsInjectiveModule(P[1]);
true
Best regards, Oeyvind.
More information about the Forum
mailing list