Skip to content

Make isomorphism(PcGroup, A) for infinite abelian A work#4319

Merged
fingolfin merged 1 commit intooscar-system:masterfrom
ThomasBreuer:TB_iso_infinite_abelian
Nov 15, 2024
Merged

Make isomorphism(PcGroup, A) for infinite abelian A work#4319
fingolfin merged 1 commit intooscar-system:masterfrom
ThomasBreuer:TB_iso_infinite_abelian

Conversation

@ThomasBreuer
Copy link
Copy Markdown
Member

The documentation claimed that this is not supported, but in fact GAP's pcp groups can deal with this case.

The code looks horrible,
due to the fact that GAP supports the decomposition of elements in abelian groups w.r.t. independent generators only for special such generating sets.
(This happens for abelian permutation groups.)

Note that this is generic code.
Perhaps we should add special methods for the case that we ask for a FPGroup or a PcGroup, then also the functions for computing (pre)images can be more efficient.

resolves #4318

The documentation claimed that this is not supported,
but in fact GAP's pcp groups can deal with this case.

The code looks horrible,
due to the fact that GAP supports the decomposition
of elements in abelian groups w.r.t. independent generators
only for special such generating sets.
(This happens for abelian permutation groups.)

Note that this is generic code.
Perhaps we should add special methods for the case that we ask for
a `FPGroup` or a `PcGroup`, then also the functions for computing
(pre)images can be more efficient.
@codecov
Copy link
Copy Markdown

codecov Bot commented Nov 15, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 84.49%. Comparing base (499f7ce) to head (042e707).
Report is 248 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #4319   +/-   ##
=======================================
  Coverage   84.49%   84.49%           
=======================================
  Files         645      645           
  Lines       85589    85592    +3     
=======================================
+ Hits        72321    72325    +4     
+ Misses      13268    13267    -1     
Files with missing lines Coverage Δ
src/Groups/homomorphisms.jl 91.41% <100.00%> (+0.24%) ⬆️

# `T == PcGroup`, hence we cannot call `abelian_group(T, exponents)`.
if 0 in exponents
GapG = GAP.Globals.AbelianPcpGroup(length(exponents), GapObj(exponents; recursive = true))
G = PcGroup(GapG)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

For Pcp groups the given exponents actually do correspond 1-1 to the given exponent vector.

On the other hand IndependentGeneratorsOfAbelianGroup output looks horrible:

gap> G:=AbelianPcpGroup([3,0,3,9,15]);
Pcp-group with orders [ 3, 0, 3, 9, 15 ]
gap> gens:=GeneratorsOfGroup(G);
[ g1, g2, g3, g4, g5 ]
gap> List(gens, Order);
[ 3, infinity, 3, 9, 15 ]
gap> IndependentGeneratorsOfAbelianGroup(G);
[ g2*g3^2*g4, g1, g3*g5^5, g4^6*g5^10, g5^6, g4^5*g5^10 ]

So I think we should avoid IndependentGeneratorsOfAbelianGroup and IndependentGeneratorExponents for pcp groups.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

That is what I meant when I wrote that special methods for FPGroup and PcGroup would make sense.

@fingolfin fingolfin merged commit 14fc59c into oscar-system:master Nov 15, 2024
@ThomasBreuer ThomasBreuer deleted the TB_iso_infinite_abelian branch November 15, 2024 20:02
@lgoettgens lgoettgens added the release notes: use title For PRs: the title of this PR is suitable for direct use in the release notes label Feb 27, 2025
@lgoettgens lgoettgens changed the title make isomorphism(PcGroup, A) for infinite abelian A work Make isomorphism(PcGroup, A) for infinite abelian A work Feb 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release notes: use title For PRs: the title of this PR is suitable for direct use in the release notes topic: groups

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Error converting infinite abelian group to PcGroup

3 participants