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

Slightly extend MinimalGeneratingSet for groups #1755

Merged
merged 2 commits into from
Oct 2, 2017

Conversation

wilfwilson
Copy link
Member

@wilfwilson wilfwilson commented Sep 29, 2017

Currently, MinimalGeneratingSet only supports soluble groups. Cyclic groups are soluble, and so a group that is not soluble requires at least two generators. Therefore, in MinimalGeneratingSet, we can add a special case for groups that aren't soluable but already a generating set of size two.

So this behaviour:

gap> MinimalGeneratingSet(SymmetricGroup(5));
Error, `MinimalGeneratingSet' currently assumes that the group must be solvable.
In general, try `SmallGeneratingSet' instead, which returns a generating
set that is small but not of guarateed smallest cardinality

now becomes:

gap> MinimalGeneratingSet(SymmetricGroup(5));
[ (1,2,3,4,5), (1,2) ]

I'm wondering, do people think this is worth doing? And if so, have I gone about it the right way?

Currently, `MinimalGeneratingSet` only supports soluble groups. Cyclic
groups are soluble, and so a group that is not soluable requires at
least two generators.  Therefore, in `MinimalGeneratingSet`, we can add
a special case for groups that have two generators.  Once we have found
that they are not soluble, if they only have two generators, then that
generating set must have minimal size, and we can return it.
@wilfwilson wilfwilson added the kind: enhancement Label for issues suggesting enhancements; and for pull requests implementing enhancements label Sep 29, 2017
@codecov
Copy link

codecov bot commented Sep 29, 2017

Codecov Report

Merging #1755 into master will decrease coverage by <.01%.
The diff coverage is 57.14%.

@@            Coverage Diff             @@
##           master    #1755      +/-   ##
==========================================
- Coverage   63.43%   63.43%   -0.01%     
==========================================
  Files        1000     1000              
  Lines      322760   322766       +6     
  Branches    13015    13038      +23     
==========================================
- Hits       204757   204756       -1     
- Misses     115361   115369       +8     
+ Partials     2642     2641       -1
Impacted Files Coverage Δ
lib/grp.gi 84.13% <57.14%> (-0.01%) ⬇️
lib/queue.g 66.4% <0%> (-3.2%) ⬇️
hpcgap/lib/hpc/stdtasks.g 38.61% <0%> (-0.26%) ⬇️
src/funcs.c 71.01% <0%> (-0.15%) ⬇️
src/hpc/threadapi.c 34.36% <0%> (-0.1%) ⬇️
src/hpc/traverse.c 78.29% <0%> (+0.08%) ⬆️
src/lists.c 55.08% <0%> (+0.11%) ⬆️

@markuspf
Copy link
Member

markuspf commented Oct 2, 2017

I think this is worth doing. Maybe @hulpke or @stevelinton have opinions on this too?

Copy link
Member

@fingolfin fingolfin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me

@ChrisJefferson ChrisJefferson merged commit cfc0b0d into gap-system:master Oct 2, 2017
@wilfwilson wilfwilson deleted the minimal-generating-set branch October 19, 2017 12:03
@fingolfin fingolfin added the release notes: added PRs introducing changes that have since been mentioned in the release notes label Dec 13, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind: enhancement Label for issues suggesting enhancements; and for pull requests implementing enhancements release notes: added PRs introducing changes that have since been mentioned in the release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants