Skip to content

Commit

Permalink
Make generic SubdirectProductOp more robust
Browse files Browse the repository at this point in the history
The generic SubdirectProductOp performs "recursion". But SubdirectProductOp in
general expects the mappings given to it be group homomorphisms, and also that
they "know" about this. Since it sometimes happens that mappings are produced
that do not "know" this information, explicitly check for this (just as
`SubdirectProduct` does).

Fixes gap-system#3431 "even more"
  • Loading branch information
fingolfin committed Jun 4, 2019
1 parent 088afb4 commit 8cd1035
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions lib/gprd.gi
Original file line number Diff line number Diff line change
Expand Up @@ -544,6 +544,11 @@ local gc,hc,S,info;
fi;
gh:=InverseGeneralMapping(gc)*gh;
hh:=InverseGeneralMapping(hc)*hh;
# the ...Op is installed for `IsGroupHomomorphism'. So we have to enforce
# the filter to be set.
if not IsGroupHomomorphism(gh) or not IsGroupHomomorphism(hh) then
Error("mappings are not homomorphisms");
fi;
S:=SubdirectProductOp(Image(gc,G),Image(hc,H),gh,hh);
info:=rec(groups:=[G,H],
homomorphisms:=[gh,hh],
Expand Down

0 comments on commit 8cd1035

Please sign in to comment.