[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