gap-packages / qpa

GAP package for quivers and path algebras
https://folk.ntnu.no/oyvinso/QPA/
GNU General Public License v2.0
30 stars 13 forks source link

Brief comment on PullBack vs. Pullback #31

Open cdwensley opened 5 years ago

cdwensley commented 5 years ago

This is a report on what I have been doing elsewhere, just for your information, and not requesting any changes to QPA. On finding I needed a pullback function for group homomorphisms in XMod, I did a "gap> ?Pullback" and found only the PullBack function in QPA. Although the QPA manual states "Arguments: f,g - two homomorphisms with a common range", the declaration is:

DeclareOperation( "PullBack", [ IsPathAlgebraMatModuleHomomorphism, IsPathAlgebraMatModuleHomomorphism ] );

and the implementation uses:

AplusC := DirectSumOfQPAModules([A,C]);

so it was apparent that PullBack would not suit my purposes. Because the notion of pullback could have wider application, I have added a Pullback function to Utils (version 0.61 released today) rather than to XMod. This operation currently takes two group homomorphisms with a common range as input. Following the examples of DirectProduct and SemidirectProduct, Pullback returns the pullback group (which is the subgroup of a direct product rather than a direct sum) and this group P has an attribute given by "info := PullbackInfo(P)", a record with fields info!.directProduct and info!.projections. (QPA's PullBack returns the two projections.) This addition to Utils is somewhat experimental, and any suggestions would be very welcome. For a more comprehensive implementation, one could envisage a global function Pullback which could call operations PullbackForGroups; PullbackForModules; etc., but the demand is probably not there at the moment, and PullBack/Pullback can coexist quite happily.