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

first attempt to isomorphism #1182

Merged
merged 1 commit into from
Mar 23, 2022
Merged

first attempt to isomorphism #1182

merged 1 commit into from
Mar 23, 2022

Conversation

ThomasBreuer
Copy link
Member

This code deals only with finite abelian GAPGroups.

Apparently GAP does not support other infinite abelian groups than abelian f. p. groups, and even with these groups one has to be careful.

In particular, the example about the infinite abelian matrix group in issue #1178 causes problems. (The quo call from which it arises works only because the function that constructs the epimorphism notices that it can return the identity mapping.)

@simonbrandhorst
Copy link
Collaborator

I did something similar a while ago:

function _isomorphic_gap_group(A::GrpAbFinGen; T=PcGroup)

@fingolfin
Copy link
Member

@simonbrandhorst I think your code is in the reverse direction, right? Nevertheless, we should also make it available in the same fashion, so e.g. isomorphism(PcGroup, someGrapAbFinGen).

Maybe @ThomasBreuer can take care of that (or else feel free to submit a PR ;-) ).

@fingolfin fingolfin merged commit b0e94fe into oscar-system:master Mar 23, 2022
@ThomasBreuer ThomasBreuer deleted the TB_isomorphism branch March 23, 2022 11:48
@ThomasBreuer ThomasBreuer mentioned this pull request Apr 5, 2022
fingolfin pushed a commit that referenced this pull request Apr 7, 2022
This is a follow-up to #1182.

- deprecate
  `isomorphic_fp_group(G::GAPGroup)`,
  `isomorphic_pc_group(G::GAPGroup)`,
  `isomorphic_perm_group(G::GAPGroup)`
  in favour of
  `isomorphism(::Type{FPGroup}, G::GAPGroup)`
  `isomorphism(::Type{PcGroup}, G::GAPGroup)`
  `isomorphism(::Type{PermGroup}, G::GAPGroup)`

- deprecate also (the undocumented) `isomorphic_group(::Type{T}, G::GAPGroup)`
  (does not occur in tests) in favour of `isomorphism`

- added
  `isomorphism(::Type{FPGroup}, A::GrpAbFinGen)`
  `isomorphism(::Type{PcGroup}, A::GrpAbFinGen)`
  `isomorphism(::Type{PermGroup}, A::GrpAbFinGen)`

- moved `_get_iso_function` and `isomorphic_group`
  from `sub.jl` to `homomorphisms.jl`

- added tests for new conversions

- adjusted tests to use `isomorphism` instead of the deprecated versions

- added (::Type{T})(G::GAPGroup)
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 this pull request may close these issues.

None yet

3 participants