Skip to content

Use GroupHomset_libgap for permutation groups, as well #26750

@soehms

Description

@soehms

At the moment the construction of group homomorphisms between groups implemented under the classes ParentLibGAP and PermutationGroup_generic (and vice versa) is not possible in sage using the method hom. For example, it isn't possible to construct the natural projection from symplectic groups onto the corresponding projective group although this is possible using GAP:

sage: Sp43 = Sp(4,3)
sage: PSp43 = PSp(4,3)
sage: natProj = Sp43.hom(PSp43.gens())
Traceback (most recent call last):
...
TypeError: unable to convert [(3,4)(6,7)(9,10)(12,13)(17,20)(18,21)(19,22)(23,32)(24,33)(25,34)(26,38)(27,39)(28,40)(29,35)(30,36)(31,37), (1,5,14,17,27,22,19,36,3)(2,6,32)(4,7,23,20,37,13,16,26,40)(8,24,29,30,39,10,33,11,34)(9,15,35)(12,25,38)(21,28,31)] to an element of Set of Morphisms from Symplectic Group of degree 4 over Finite Field of size 3 to The projective symplectic linear group of degree 4 over Finite Field of size 3 in Category of finite groups

The reason for this is that the constructor of the class GroupHomset_libgap explicitly checks both groups to be instances of ParentLibGAP. So an easy way to have hom work in such cases, as well, would be to allow PermutationGroup_generic additionally.

An alternative option is to shift PermutationGroup_generic into the ParentLibGAP framework. But this would cause a lot of work to have all doctests pass through. The main problem here is that the element class of PermutationGroup_generic still has parent as second (optional) argument (in opposite to ParentLibGAP).

Therefore, this ticket will follow the first option!

Depends on #26420

CC: @tscrim @simonbrandhorst

Component: group theory

Keywords: permutation group, homomorphism, libgap

Author: Sebastian Oehms

Branch: 66ceb94

Reviewer: Simon Brandhorst

Issue created by migration from https://trac.sagemath.org/ticket/26750

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions