-
Notifications
You must be signed in to change notification settings - Fork 126
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
Questions and concerns regarding type GroupCoset #118
Comments
To see whether a coset I don't remember why it is a mutable structure: it was probably part of an experiment, but as far as I see now, it doesn't need to be mutable, so I can modify it, and adding the function multiplication and the documentation. |
I would suggest |
@thofma could you elaborate as to why you think this is better? (honest question, I am not disagreeing, just wondering) BTW, I note that we already have |
@GDeFranceschi wrote:
Yes, but that doesn't help me if I need to write code that has to distinguish the two, and doesn't allow for method dispatch either! |
For the same reason we don't have It also prevents ducktyping, although in this case it probably won't matter. |
Where do I document it? Just on the manual, or also on the docstring in the src file? |
@GDeFranceschi in the docstrings, and then make sure the docstrings are included in the manual |
Note that GAP doesn't really use RightCoset much, nor does it implement much functionality. So, I think we should perhaps consider not using it in our coset type. Instead, we can simply directly wrap a pair of a GAPGroup and a GAPGroupElem. I.e. something like this (pseudo code): abstract type GroupCoset{T <: GAPGroup}
G::T
repr::GAPGroupElem{T}
isleft::Bool
end |
Just now (when dealing with #3297) I stumbled over a problem with left cosets, which strengthens the above old comment by @fingolfin: Currently a left coset in Oscar stores in its It would be much better to simply omit the (I think that this |
It would be fine by me to remove the |
Yes, that would be my proposal: Create group cosets in Oscar without an underlying GAP coset. |
Most of this seems to have been addressed in #3899 . |
I am OK with closing this. The one unresolved checkbox in my original list is bike shedding about types, and as long as it works... shrug or in other words: we can deal with it if and when we observe it to be an actual issue. Everything else indeed seems to be resolved. |
Right now, there is a single type
GroupCoset
which is used to both represent right cosets (the "native" GAP way) and left cosets. I have some concerns and questions about that:given a
GroupCoset
there seems to be no good way to find out whether it is left or right; best I can do is directly access itsside
field, it seems better to have test methods likeisleftcoset
/isrightcoset
however, perhaps it would be better to have two types for that, LeftGroupCoset and RightGroupCoset (or just
LeftCoset
/RightCoset
but then I am not sure if people want cosets in e.g. modules, leading to a potential conflict?). As a variant, the "side" could be part of the parametric typeWhy is
GroupCoset
mutable?Once we can distinguish left/right cosets, it would be nice to be able to multiply
Some internal documentation should be added, which explains what we do to "fake" left cosets, even though GAP only support right cosets
The text was updated successfully, but these errors were encountered: