-
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
some ==
issues for group elements and related objects
#4191
Comments
But why do we need that, where do we compare group elems like that? The one legit case I can think of are PcGroupElems vs. SubPcGroupElems (and similar for fp groups) but for those we could provide dedicated methods? |
On Thu, Oct 10, 2024 at 07:24:02AM -0700, Thomas Breuer wrote:
The change proposed in Nemocas/AbstractAlgebra.jl#1853 has raised some questions about perhaps missing `==` methods in Oscar's code for groups.
- We have `==` methods for two `BasisGAPGroupElem`s and for two `MatrixGroupElem`s. Other cases were handled up to now by a generic method that returns `false`, but with Nemocas/AbstractAlgebra.jl#1853 we will have to deal with more cases. One addition can be a `==` method for two `GAPGroupElem`s that returns `false`.
- A more subtle question (which is interesting independent of Nemocas/AbstractAlgebra.jl#1853) is about the relation between elements of automorphism groups and the corresponding group homomorphisms.
- It is likely that users want to compare an automorphism group element and a group homomorphism via `==` --our tests contain already such cases. We want to return `false` (this happens now) or throw an exception (but then with a meaningful error message). Thus we need special methods for this situation.
- It is documented that `h in A` shall return `false` for a group homomorphism `h` and a group `A` of automorphisms, also if there is an element of `A` that is equal to `h` as a map on `A`.
If we want to keep this definition then what is a good way to decide if `A(h)` will throw an exception or return the corresponding element of `A`?
(In the related situation `g in H` where `H` is a subgroup of the parent of `g`, we had decided that `g in H` should return `true` if `H(g)` would be successful, i.e., that `g in H` is the natural way to ask this question.)
- A related question about elements of automorphism groups:
They can be used as maps in the sense that they have a `domain`, and one can ask for images and preimages. But they aren't `Map`s (and they do not have a `codomain`) -- is there a good reason why?
The entire design of the automorphim groups is dubious and against the
"Oscar idea": the plan was to not have elements of the group act as
automorphisms at all, but have the interpretation map in between, thus
removing most of those questions.
I think this needs revisiting
…
--
Reply to this email directly or view it on GitHub:
#4191
You are receiving this because you are subscribed to this thread.
Message ID: ***@***.***>
|
For consistency reasons:
Either we forbid |
We need to forbid the spurious "false", in general they mask programming errors |
O.k., then the breaking change from Nemocas/AbstractAlgebra.jl#1853 is the right opportunity for this change. I will create a pull request for that. |
The change proposed in Nemocas/AbstractAlgebra.jl/pull/1853 has raised some questions about perhaps missing
==
methods in Oscar's code for groups.==
methods for twoBasisGAPGroupElem
s and for twoMatrixGroupElem
s. Other cases were handled up to now by a generic method that returnsfalse
, but with Add generic == error Nemocas/AbstractAlgebra.jl#1853 we will have to deal with more cases. One addition can be a==
method for twoGAPGroupElem
s that returnsfalse
.==
--our tests contain already such cases. We want to returnfalse
(this happens now) or throw an exception (but then with a meaningful error message). Thus we need special methods for this situation.h in A
shall returnfalse
for a group homomorphismh
and a groupA
of automorphisms, also if there is an element ofA
that is equal toh
as a map onA
.If we want to keep this definition then what is a good way to decide if
A(h)
will throw an exception or return the corresponding element ofA
?(In the related situation
g in H
whereH
is a subgroup of the parent ofg
, we had decided thatg in H
should returntrue
ifH(g)
would be successful, i.e., thatg in H
is the natural way to ask this question.)They can be used as maps in the sense that they have a
domain
, and one can ask for images and preimages. But they aren'tMap
s (and they do not have acodomain
) -- is there a good reason why?The text was updated successfully, but these errors were encountered: