Skip to content

Add accessors group and subgroup for SubgroupTransversal#4839

Merged
fingolfin merged 7 commits intooscar-system:masterfrom
mjrodgers:Transversals
May 20, 2025
Merged

Add accessors group and subgroup for SubgroupTransversal#4839
fingolfin merged 7 commits intooscar-system:masterfrom
mjrodgers:Transversals

Conversation

@mjrodgers
Copy link
Copy Markdown
Collaborator

@mjrodgers mjrodgers commented Apr 28, 2025

We add the following accessors for T::SubgroupTransversal a (left or right) transversal of a subgroup H in G:

  • group(T) for T.G
  • acting_group(T) subgroup(T) for T.H
    along with docstrings that are easy to find in the main documentation.

These accessor names are consistent with those for a GroupCoset.

Closes #4296

Comment thread src/Groups/cosets.jl Outdated
Comment thread src/Groups/cosets.jl
acting_group(T::SubgroupTransversal)

Return the group `H` such that `T` is a (left or right)
transversal of `H`.
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.

But in how far is this group "acting"? If we look at the (right) cosets in $G/H = { Ha \mid a \in G }$ then I'd say this is a $G$-set, not an $H$-set (well, since $H$ is a subgroup, of course it would be valid to "restrict it" to $H$, but the most general starting point is to view it as a $G$-set.

Of course now we talk about a "transversal", which in general is neither a $G$-set nor an $H$-set. But one can in principle try to "fix" this, as follows: for `$r\in T$ and $g\in G$, define $r.g$ as the element $r' \in T$ for which $Hrg = Hr'$ (and at that point $rg/r'$ is a Schreier generator of $H$). This again suggests $G$ as acting group. Don't get me wrong: I am not saying we should implement such an action. Rather, I am trying to find with a rational for this naming, and coming up empty.

What am I missing?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

hm, I see your point. I wanted to use the same method names as for the individual cosets; but I agree, in this context G is the group that would be acting on the cosets.

I'm not really sure what would be a well-motivated way to name these methods (Magma doesn't have anything analogous, since they just treat a transversal as a generic ordered set)

@fingolfin
Copy link
Copy Markdown
Member

@ThomasBreuer and me will think about it and try to make a suggestion

@ThomasBreuer
Copy link
Copy Markdown
Member

I would say G == group(T) and H == subgroup(T) are suitable, if there is really need for such functions.

(Technically, one needs G in order to set it as the parent of an element when one asks for T[i], but this is only for internal use. Logically, a transversal is just a list of group elements, and the same transversal can be used for different subgroups. In this sense, fetching H from a transversal T is a bit artificial.)

@mjrodgers
Copy link
Copy Markdown
Collaborator Author

Ok, this has been renamed - as long as all tests still pass, it should be ready to merge.

Comment thread src/Groups/cosets.jl
Sym(3) in
Sym(5)

julia> subgroup(T) == H
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.

Doctests fail because subgroup is not exported

@fingolfin fingolfin enabled auto-merge (squash) May 19, 2025 23:40
@fingolfin fingolfin changed the title Transversal accessors and documentation Add accessors group and subgroup for SubgroupTransversal May 19, 2025
@fingolfin fingolfin added enhancement New feature or request release notes: use title For PRs: the title of this PR is suitable for direct use in the release notes labels May 19, 2025
@fingolfin fingolfin merged commit 65cd5e3 into oscar-system:master May 20, 2025
26 of 32 checks passed
@codecov
Copy link
Copy Markdown

codecov Bot commented May 20, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 84.89%. Comparing base (4ea3c46) to head (9d3c70b).
Report is 50 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4839      +/-   ##
==========================================
+ Coverage   84.74%   84.89%   +0.14%     
==========================================
  Files         683      683              
  Lines       91579    91942     +363     
==========================================
+ Hits        77613    78053     +440     
+ Misses      13966    13889      -77     
Files with missing lines Coverage Δ
src/Groups/cosets.jl 95.81% <100.00%> (+0.04%) ⬆️

... and 81 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request 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.

Better subgroup transversal accessors & documentation

4 participants