Skip to content

Commit aa41156

Browse files
authored
improvements for cosets (#4302)
* improvements for cosets - access defining data via functions not fields - rename `acting_domain` to `acting_group` - improve documentation - `in` for left/right cosets now delegates to a membership test in a group - iterator for left/right cosets now uses a group iterator * address a comment * change parameterization of the `GroupCoset` type Add the type of the *subgroup* as a parameter, then we can prescribe a better `Base.IteratorSize(::Type{<:GroupCoset})`, as proposed in #4289. Note that in principle, we could omit the type of the *big group* from the parameters since it is the `parent_type` of the element type parameter. (The design of the `GroupCoset` type dates back to the times when we thought that a group has the same type as its subgroups. At the time when this idea was given up, I should have changed `GroupCoset` to take the *subgroup* type as a parameter.) * make `@inferred` happy This was tricky: The error messages were misleading, the problem occurred on a lower level.
1 parent 5076ad2 commit aa41156

File tree

10 files changed

+258
-71
lines changed

10 files changed

+258
-71
lines changed

docs/src/Groups/subgroups.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -112,24 +112,31 @@ subgroup_classes(G::GAPGroup)
112112

113113
```@docs
114114
GroupCoset
115+
group(C::GroupCoset)
116+
acting_group(C::GroupCoset)
117+
representative(C::GroupCoset)
115118
right_coset(H::GAPGroup, g::GAPGroupElem)
116119
left_coset(H::GAPGroup, g::GAPGroupElem)
117-
is_right(c::GroupCoset)
118-
is_left(c::GroupCoset)
119-
is_bicoset(C::GroupCoset)
120-
acting_domain(C::GroupCoset)
121-
representative(C::GroupCoset)
120+
is_right(C::GroupCoset)
121+
is_left(C::GroupCoset)
122122
right_cosets(G::GAPGroup, H::GAPGroup; check::Bool=true)
123123
left_cosets(G::GAPGroup, H::GAPGroup; check::Bool=true)
124124
right_transversal(G::T1, H::T2; check::Bool=true) where T1 <: GAPGroup where T2 <: GAPGroup
125125
left_transversal(G::T1, H::T2; check::Bool=true) where T1 <: GAPGroup where T2 <: GAPGroup
126+
is_bicoset(C::GroupCoset)
127+
```
128+
129+
```@docs
126130
GroupDoubleCoset{T <: GAPGroup, S <: GAPGroupElem}
127-
double_coset(G::GAPGroup, g::GAPGroupElem, H::GAPGroup)
128-
double_cosets(G::T, H::GAPGroup, K::GAPGroup; check::Bool=true) where T <: GAPGroup
131+
group(C::GroupDoubleCoset)
129132
left_acting_group(C::GroupDoubleCoset)
130133
right_acting_group(C::GroupDoubleCoset)
131134
representative(C::GroupDoubleCoset)
135+
double_coset(G::GAPGroup, g::GAPGroupElem, H::GAPGroup)
136+
double_cosets(G::T, H::GAPGroup, K::GAPGroup; check::Bool=true) where T <: GAPGroup
137+
```
138+
139+
```@docs
132140
order(C::Union{GroupCoset,GroupDoubleCoset})
133141
Base.rand(C::Union{GroupCoset,GroupDoubleCoset})
134-
intersect(V::AbstractVector{Union{<: GAPGroup, GroupCoset, GroupDoubleCoset}})
135142
```

docs/src/Groups/tom.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ Therefore a table of marks is sometimes called a *Burnside matrix*.
1111
The table of marks of a finite group ``G`` is a matrix whose rows and columns
1212
are labelled by the conjugacy classes of subgroups of ``G`` and where for
1313
two subgroups ``H`` and ``K`` the ``(H, K)``-entry is the number of
14-
fixed points of ``K`` in the transitive action of ``G`` on the cosets of ``H``
15-
in ``G``.
14+
fixed points of ``K`` in the transitive action of ``G`` on the right cosets
15+
of ``H`` in ``G``.
1616
So the table of marks characterizes the set of all permutation representations
1717
of ``G``.
1818
Moreover, the table of marks gives a compact description of the

0 commit comments

Comments
 (0)