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

SemidirectProduct error if group has no generators #4089

Closed
ignatsoroko opened this issue Aug 3, 2020 · 6 comments · Fixed by #4095
Closed

SemidirectProduct error if group has no generators #4089

ignatsoroko opened this issue Aug 3, 2020 · 6 comments · Fixed by #4095

Comments

@ignatsoroko
Copy link

ignatsoroko commented Aug 3, 2020

Observed behaviour

gap> G:=SymmetricGroup(3);;
gap> H:=SubgroupProperty(G,x->Order(x)=1);
Group(())
gap> T:=Group(());
Group(())
gap> H=T;
true
gap> GeneratorsOfGroup(H);
[  ]
gap> GeneratorsOfGroup(T);
[ () ]
gap> T=Group(GeneratorsOfGroup(T));
true
gap> H=Group(GeneratorsOfGroup(H));
Error, usage: Group(<gen>,...), Group(<gens>), Group(<gens>,<id>) at /proc/cygdrive/C/gap-4.10.0-x86_64/lib/grp.gi:4563 called from
<function "Group">( <arguments> )
 called from read-eval loop at *stdin*:9
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk> quit;

Expected behaviour

gap> H=Group(GeneratorsOfGroup(H));
true

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

 ┌───────┐   GAP 4.10.0 of 01-Nov-2018
 │  GAP  │   https://www.gap-system.org
 └───────┘   Architecture: x86_64-unknown-cygwin-default64
 Configuration:  gmp 6.1.0, readline
 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, Browse 1.8.8, 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, IO 4.5.4,
             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
 Try '??help' for help. See also '?copyright', '?cite' and '?authors'
@ChrisJefferson
Copy link
Contributor

ChrisJefferson commented Aug 3, 2020

This is related to some previous issues ,for example #1239

The fix for this is to pass the identity as the optional second argument of group, say Group(GeneratorsOfGroup(H, () ), or in general Group(GeneratorsOfGroup(H), Identity(H)).

@hulpke
Copy link
Contributor

hulpke commented Aug 4, 2020

Just to add to @ChrisJefferson's remark: If the generator list is (potentially) empty, the identity needs to be given, as GAP otherwise has no way of finding out what it would be (identity permutation, matrix, idword, ...)

I suggest we close this.

@ignatsoroko
Copy link
Author

ignatsoroko commented Aug 4, 2020

I am sorry to bring up this semi-trivial issue, but there are situations where it does cause error. For instance, continuing with the example above,

gap> A:=AutomorphismGroup(H);
<trivial group>
gap> S:=SemidirectProduct(A,H);
Error, usage: Group(<gen>,...), Group(<gens>), Group(<gens>,<id>) at /proc/cygdrive/C/gap-4.10.0-x86_64/lib/grp.gi:4563 called from
Group( GeneratorsOfGroup( P ) ) at /proc/cygdrive/C/gap-4.10.0-x86_64/lib/gprd.gi:1115 called from
SemidirectProduct( G, IdentityMapping( G ), N ) at /proc/cygdrive/C/gap-4.10.0-x86_64/lib/gprd.gi:1077 called from
<function "unknown">( <arguments> )
 called from read-eval loop at *stdin*:38
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue

hulpke added a commit to hulpke/gap that referenced this issue Aug 4, 2020
Need to give identity element in addition to generators.

This closes gap-system#4089
@hulpke
Copy link
Contributor

hulpke commented Aug 4, 2020

@ignatsoroko Yes, but that is an issue in SemidirectProduct which call just with the generator list. I will submit a fix.

@hulpke hulpke changed the title SubgroupProperty returns an unusual trivial group SemidirectProduct error if group has no generators Aug 4, 2020
@ignatsoroko
Copy link
Author

ignatsoroko commented Aug 5, 2020

You may also would like to change Group(GeneratorsOfGroup(...)) in files:

gap\lib\gprd.gi (SubdirectProduct)
gap\lip\grp.gi
gap\lib\maxsub.gi
gap\lib\oprtglat.gi

@hulpke
Copy link
Contributor

hulpke commented Aug 5, 2020

You may also would like to change Group(GeneratorsOfGroup(...)) in files:

Thanks. will fix.

gap\lib\gprd.gi (SubdirectProduct)
gap\lip\grp.gi
gap\lib\maxsub.gi

Here it can't happen, as the group is nonabelian simple.

gap\lib\oprtglat.gi

hulpke added a commit to hulpke/gap that referenced this issue Aug 5, 2020
Need to give identity element in addition to generators.

Ditto for related uses.

This closes gap-system#4089
hulpke added a commit to hulpke/gap that referenced this issue Aug 6, 2020
Need to give identity element in addition to generators.

Ditto for related uses.

This closes gap-system#4089
hulpke added a commit to hulpke/gap that referenced this issue Aug 7, 2020
Need to give identity element in addition to generators.

Ditto for related uses.

This closes gap-system#4089
hulpke added a commit that referenced this issue Aug 10, 2020
* FIX: SemidirectProduct case of trivial groups.

Need to give identity element in addition to generators.
Ditto for related uses.

This closes #4089

* ENHANCE: More efforts on automorphism lifting

Reduce the chance to be caught in unlucky bad case.

Also Allow option in autsr to skip radical automorphism group
which can be expensive in rare cases

* ENHANCE: RandomUnimodularMat allows for option of entry range

as Random(Integers) only selects from [-10..10].
hulpke added a commit to hulpke/gap that referenced this issue Aug 10, 2020
Need to give identity element in addition to generators.

Ditto for related uses.

This closes gap-system#4089
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants