Bernhard Boehmler <bernhard.boehmler@...> 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. _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum