[GAP Forum] All Homomorphisms

Rudolf Zlabinger Rudolf.Zlabinger at chello.at
Fri Mar 16 10:08:29 GMT 2007


There is included a short function for creating all nontrivial homomorphisms 
between two groups small enough, up to conjucacy in the target group.

Is there a nicer and more efficient way to do the same task in GAP?

May be MorClassLoop can do similar things, an example would be welcome.
If only  factor groups isomorphic to a given target group are required, 
there is the function GQuotients, so far I know.

This question is somewhat related to the recent message of Michael Fridman 
about homomorphisms.

Thank you, Rudolf Zlabinger 
-------------- next part --------------
AllHomomorphismsRepresentative:=function(fromgroup,togroup)

 
 local nfromgroup,hfromgroup,ffromgroup,isgfromgrouptogroup,isgfromgrouptogroupp,homslist
 ; 

 nfromgroup:=NormalSubgroups(fromgroup);;
 nfromgroup:=Filtered(nfromgroup,x->x<>fromgroup);;             # the trivial homomorphism is not returned
 
 if nfromgroup = [] then return [[]]; fi;                       # the trivial homomorphism is not returned
 
 ffromgroup:=List(nfromgroup,x->FactorGroup(fromgroup,x));;
 hfromgroup:=List(nfromgroup,x->NaturalHomomorphismByNormalSubgroup(fromgroup,x));;
 isgfromgrouptogroup:=List(ffromgroup,x->IsomorphicSubgroups(togroup,x));
 isgfromgrouptogroupp:=Filtered([1..Length(isgfromgrouptogroup)],x->isgfromgrouptogroup[x]<>[]);
 
 if isgfromgrouptogroupp = [] then return [[]]; fi; 
 
 isgfromgrouptogroup:=isgfromgrouptogroup{isgfromgrouptogroupp};
 hfromgroup:=hfromgroup{isgfromgrouptogroupp};
 homslist:=List([1..Length(hfromgroup)],x->hfromgroup[x]*isgfromgrouptogroup[x]);
 
 return homslist;

end;


More information about the Forum mailing list