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

Another method for minimum generating set for finite groups #5716

Open
wants to merge 25 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
2b74d1d
Added a method to deal with non solvable groups
pranav-joshi-iitgn May 17, 2024
3534ad7
Removed the Error log
pranav-joshi-iitgn May 17, 2024
5d00602
Minor Changes
pranav-joshi-iitgn May 17, 2024
af0531f
Minor Changes
pranav-joshi-iitgn May 17, 2024
9ee8e9a
Small Changes
pranav-joshi-iitgn May 17, 2024
25ed7d8
Fixed an error
pranav-joshi-iitgn May 17, 2024
99bd539
Small Changes
pranav-joshi-iitgn May 17, 2024
e4234d1
Changed location of function
pranav-joshi-iitgn May 17, 2024
d0259db
Changed location of code
pranav-joshi-iitgn May 17, 2024
257e077
Small Change
pranav-joshi-iitgn May 17, 2024
db92d52
Removed `mingenset_km1_reps`
pranav-joshi-iitgn May 18, 2024
47ab818
small changes
pranav-joshi-iitgn May 19, 2024
5fb927b
Very small change
pranav-joshi-iitgn May 19, 2024
a826f27
Reintroduced the error log
pranav-joshi-iitgn May 22, 2024
6193173
Reintroduced the error log
pranav-joshi-iitgn May 22, 2024
ee8c073
Fixed a mistake and added some tests
pranav-joshi-iitgn May 28, 2024
0175fb0
small change
pranav-joshi-iitgn May 28, 2024
19b88a3
Removed the check
pranav-joshi-iitgn May 28, 2024
b436972
Updated tests
pranav-joshi-iitgn May 28, 2024
afc2a9d
fixed linting error
pranav-joshi-iitgn May 28, 2024
1d2677d
Mentioned the function in the documentation
pranav-joshi-iitgn Jun 4, 2024
d520f2b
Very small change
pranav-joshi-iitgn Jun 4, 2024
848b2f9
Merge branch 'gap-system:master' into master
pranav-joshi-iitgn Jun 7, 2024
fd35ad2
Merge branch 'gap-system:master' into master
pranav-joshi-iitgn Jul 9, 2024
5a399d6
Merge branch 'gap-system:master' into master
pranav-joshi-iitgn Aug 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Small Changes
  • Loading branch information
pranav-joshi-iitgn committed May 17, 2024
commit 99bd539f9a0be01bc4b7f119ff1fb01f76dfd57f
18 changes: 11 additions & 7 deletions lib/grp.gi
Original file line number Diff line number Diff line change
Expand Up @@ -144,19 +144,21 @@ function(G)
if IsGroup(G) and IsSolvableGroup(G) then
TryNextMethod();
elif IsGroup(G) and IsFinite(G) then
#This algorithm is described in the paper
#"The Minimum Generating Set Problem" by Dhara Thakar and Andrea Lucchini.
#link : https://arxiv.org/abs/2306.07633
cs := ChiefSeries(G);
pranav-joshi-iitgn marked this conversation as resolved.
Show resolved Hide resolved
phi_GbyG1 := NaturalHomomorphismByNormalSubgroup(G,cs[2]);
GbyG1 := ImagesSource(phi_GbyG1);
mingenset_k_reps := List(MinimalGeneratingSet(GbyG1), x -> PreImagesRepresentative(phi_GbyG1, x));
# GbyG1 is a simple group, so it can be handelled by GbyG1
# GbyG1 is a simple group, so it has a 2 size generating set which can be found easily.
for k in [3..Length(cs)] do # Lifting
mingenset_km1_reps := mingenset_k_reps;
pranav-joshi-iitgn marked this conversation as resolved.
Show resolved Hide resolved
phi_GbyGk := NaturalHomomorphismByNormalSubgroup(G,cs[k]);
phi_Gkm1byGk := NaturalHomomorphismByNormalSubgroup(cs[k-1],cs[k]);
Gkm1byGk := ImagesSource(phi_Gkm1byGk);
GbyGk := ImagesSource(phi_GbyGk);
check := gx -> GbyGk = GroupByGenerators(ImagesSet(phi_GbyGk,gx));
Gkm1byGk_elem_reps := List(AsList(Gkm1byGk),x -> PreImagesRepresentative(phi_Gkm1byGk,x));
Gkm1byGk_gen := SmallGeneratingSet(Gkm1byGk);
Gkm1byGk_gen_reps := List(Gkm1byGk_gen,x -> PreImagesRepresentative(phi_Gkm1byGk,x));
g := ShallowCopy(mingenset_km1_reps);
Expand Down Expand Up @@ -185,11 +187,11 @@ function(G)
fi;
fi;
else
Gkm1byGk_elem_reps := List(Gkm1byGk,x -> PreImagesRepresentative(phi_Gkm1byGk,x));
g0 := ShallowCopy(mingenset_km1_reps);
g := ShallowCopy(mingenset_km1_reps);
Add(g,Gkm1byGk_elem_reps[1]);
g1 := ShallowCopy(g);
for g in [g0,g1] do
g1 := ShallowCopy(mingenset_km1_reps);
Add(g1,Gkm1byGk_elem_reps[1]);
for g in [g0,g1] do
if stop then break;fi;
l := Length(g);
L := Length(Gkm1byGk_elem_reps);
Expand Down Expand Up @@ -222,7 +224,9 @@ function(G)
od;
fi;
od;
if G = GroupByGenerators(mingenset_k_reps) then return mingenset_k_reps; fi;
if not G = GroupByGenerators(mingenset_k_reps) then
Error("The algorithm is failing. (Computed generating set doesn't generate G)");
fi;
return mingenset_k_reps;
else
Error("MinimalGeneratingSet assumes that input group is",
Expand Down