Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem with SubdirectProducts of FP Groups (inter alia) #3431

Closed
stevelinton opened this issue Apr 30, 2019 · 1 comment · Fixed by #3485
Closed

Problem with SubdirectProducts of FP Groups (inter alia) #3431

stevelinton opened this issue Apr 30, 2019 · 1 comment · Fixed by #3485
Labels
kind: bug: unexpected error Issues describing bugs in which computation unexpectedly encounters an error, and PRs fixing them kind: bug Issues describing general bugs, and PRs fixing them topic: library
Milestone

Comments

@stevelinton
Copy link
Contributor

Please use the following template to submit an issue
(you may delete lines which are not used). Thank You!

Observed behaviour

f:=FreeGroup("a", "b");
g:=f/[ f.1^6, f.2^4, f.1^3*f.2^(-2), f.2^(-1)*f.1*f.2*f.1];
Size(g);
g0:=Subgroup(g, [g.1^2]);
g1:=g/g0;
ff:=FreeGroup("c");
h:=ff/[ff.1^12];
h0:=Subgroup(h,[h.1^4]);
h1:=h/h0;
ng:=NaturalHomomorphismByNormalSubgroup(g,g0);
nh:=NaturalHomomorphismByNormalSubgroup(h,h0);
phi:=IsomorphismGroups(g1,h1);
ghom:=CompositionMapping(phi, ng);
hhom:=nh;
nn:=SubdirectProduct(g,h,ghom,hhom);

Gives a no method found for SubdirectProductOp from inside the final call.

Expected behaviour

This should work.

Copy and paste GAP banner (to tell us about your setup)

 ┌───────┐   GAP 4.10dev-1982-g203c7cf of today
 │  GAP  │   https://www.gap-system.org
 └───────┘   Architecture: x86_64-apple-darwin18.5.0-default64-kv6
 Configuration:  gmp 6.1.2, GASMAN
 Loading the library and packages ...
 Packages:   AClib 1.3.1, Alnuth 3.1.0, AtlasRep 1.5.1, AutoDoc 2018.09.20, 
             AutPGrp 1.10, CRISP 1.4.4, Cryst 4.1.18, CrystCat 1.1.8, 
             CTblLib 1.2.2, FactInt 1.6.2, FGA 1.4.0, GAPDoc 1.6.2, 
             IRREDSOL 1.4, LAGUNA 3.9.0, Polenta 1.3.8, Polycyclic 2.14, 
             PrimGrp 3.3.2, RadiRoot 2.8, ResClasses 4.7.1, SmallGrp 1.3, 
             Sophus 1.24, SpinSym 1.5, TomLib 1.2.7, TransGrp 2.0.4, 
             utils 0.59

Diagnosis

The key method is at lib/gprd.gi:525 this converts the two groups into a common representation and constructs new mappings to take the Subdirect product of the converted groups. These new mappings may not know that they are SingleValued and so do not lie in IsGroupHomomorphism. This makes the method that should apply fail to apply.

The function at line 499 addresses a similar issue, but in this case the problem arises with the InverseGeneralMapping call a bit later. The mappings returned by IsomorphismPcGroup do not have HasIsInjective (which is perhaps the real problem) and so their inverses do not get HasIsSingleValued.

Adding SetIsInjective(hom,true) around line seems to fix the problem and doesn't break testinstall.

@stevelinton
Copy link
Contributor Author

On a little more reflection, I wonder if there should be a method for SubdirectProductOp which only requires IsGeneralMapping for the third and fourth arguments and then tests the necessary properties, since they are not Categories.

@stevelinton stevelinton added kind: bug Issues describing general bugs, and PRs fixing them kind: bug: unexpected error Issues describing bugs in which computation unexpectedly encounters an error, and PRs fixing them topic: library labels Apr 30, 2019
@stevelinton stevelinton added this to the GAP 4.10.2 milestone May 1, 2019
stevelinton added a commit that referenced this issue May 4, 2019
…momorphisms

Fixes #3431
Also introduce a family predicare for SubdirectProductOp for robustness
hulpke added a commit to hulpke/gap that referenced this issue May 6, 2019
if source size is known and equals image size.

This fixes gap-system#3431
hulpke added a commit to hulpke/gap that referenced this issue May 6, 2019
if source size is known and equals image size.

This fixes gap-system#3431
hulpke added a commit to hulpke/gap that referenced this issue May 6, 2019
if source size is known and equals image size.

This fixes gap-system#3431
stevelinton added a commit to stevelinton/gap that referenced this issue May 9, 2019
…momorphisms

Fixes gap-system#3431
Also introduce a family predicare for SubdirectProductOp for robustness
hulpke added a commit to hulpke/gap that referenced this issue May 14, 2019
if source size is known and equals image size.

This fixes gap-system#3431
hulpke added a commit to hulpke/gap that referenced this issue May 21, 2019
if source size is known and equals image size.

This fixes gap-system#3431
hulpke added a commit to hulpke/gap that referenced this issue May 28, 2019
if source size is known and equals image size.

This fixes gap-system#3431
fingolfin pushed a commit to fingolfin/gap that referenced this issue Jun 4, 2019
fingolfin pushed a commit to fingolfin/gap that referenced this issue Jun 4, 2019
In particular, verify that bug gap-system#3431 is fixed
fingolfin added a commit to fingolfin/gap that referenced this issue Jun 4, 2019
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"
fingolfin pushed a commit to fingolfin/gap that referenced this issue Jun 4, 2019
In particular, verify that bug gap-system#3431 is fixed
fingolfin added a commit to fingolfin/gap that referenced this issue Jun 4, 2019
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"
fingolfin pushed a commit that referenced this issue Jun 5, 2019
In particular, verify that bug #3431 is fixed
fingolfin added a commit that referenced this issue Jun 5, 2019
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 #3431 "even more"
fingolfin pushed a commit that referenced this issue Jun 5, 2019
In particular, verify that bug #3431 is fixed
fingolfin added a commit that referenced this issue Jun 5, 2019
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 #3431 "even more"
hulpke added a commit to hulpke/gap that referenced this issue Jun 5, 2019
if source size is known and equals image size.

This fixes gap-system#3431
hulpke added a commit to hulpke/gap that referenced this issue Jun 18, 2019
if source size is known and equals image size.

This fixes gap-system#3431
hulpke added a commit to hulpke/gap that referenced this issue Jun 18, 2019
if source size is known and equals image size.

This fixes gap-system#3431
wilfwilson pushed a commit that referenced this issue Jun 25, 2019
if source size is known and equals image size.

This fixes #3431
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind: bug: unexpected error Issues describing bugs in which computation unexpectedly encounters an error, and PRs fixing them kind: bug Issues describing general bugs, and PRs fixing them topic: library
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant