-
Notifications
You must be signed in to change notification settings - Fork 125
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
inner_direct_product #349
Comments
Yeah sorry, this name is simply wrong (my fault, in the end). It should just be called direct_product. Overall the code for direct products needs to be overhauled once again |
Currently, both Just to note it somewhere, one can make the current julia> G = symmetric_group(3)
Sym( [ 1 .. 3 ] )
julia> inner_direct_product(Union{PcGroup,FPGroup}[PcGroup(G),FPGroup(G)])
ERROR: MethodError: no method matching Union{FPGroup, PcGroup}(::GAP.GapObj)
Closest candidates are:
(::Type{T})(::GrpGen) where T<:Oscar.GAPGroup
@ Oscar ~/code/Oscar.jl/src/Groups/homomorphisms.jl:808
(::Type{T})(::GrpAbFinGen) where T<:Oscar.GAPGroup
@ Oscar ~/code/Oscar.jl/src/Groups/homomorphisms.jl:750
(::Type{S})(::T) where {S<:Union{GrpAbFinGen, Oscar.GAPGroup}, T<:Oscar.GAPGroup}
@ Oscar ~/code/Oscar.jl/src/Groups/homomorphisms.jl:746
Stacktrace:
[1] inner_direct_product(L::Vector{Union{FPGroup, PcGroup}}; morphisms::Bool)
@ Oscar ~/code/Oscar.jl/src/Groups/directproducts.jl:82
[2] inner_direct_product(L::Vector{Union{FPGroup, PcGroup}})
@ Oscar ~/code/Oscar.jl/src/Groups/directproducts.jl:77
[3] top-level scope
@ REPL[10]:1 |
I.e follow the pattern here:
|
I think we decided against that in #3059 (comment). |
Similar for semidirect products and wreath products, I guess? And if the groups are of different types, we can still return direct product objects For matrix groups, we either can't get this type stable (if the factors are defined over different fields/rings (e.g. one over |
@thofma thanks for the reminder. I'll amend my comment to "do whatever we decided to do for controlling which maps to return or not" |
@mjrodgers and @ThomasBreuer can you two work together on this? |
@fingolfin Sure, happy to work on this - just following the guidance of the linked comment? |
Wait a moment.
Why are the embeddings not returned? |
You get both embeddings and projections with |
Then I think we want to support (If I understand the comment about constructing the embeddings at a later time right then the idea is that the first embedding can be created as the inverse of the restriction of the first projection to the kernel of the second projection; I think this is not what one wants to propose in practice, since the direct product construction gives one the necessary information in an easier way.) |
We should have all three out of consistentcy with other types.
No, that's not what I meant here. For groups, there is |
Thanks, now I understand your comment. Calling |
I think the problem is that there is a mismatch between names. For modules (edit: and abelian groups):
For groups:
There is no biproduct of groups (in general) |
@thofma So for now should I just remove the |
Now I am getting confused. |
These three things are categorical concepts (product, coproduct and biproduct). They exist for modules and abelian gorups. But there is no mathematical biproduct for groups. I am just wondering, whether we then want to extend this to groups then. |
O.k., then it is "just" a question of function names, and we need names for functions that return a direct product of groups, with or without embeddings and projections. Are we perhaps back to Or we can argue that the currently available groups ( |
To have I would argue that we should have only a |
I agree with @mjrodgers that the easiest solution is to have just However, this |
while I was (am) very happy to have found this function, I always thought an inner product combines sub-objects only? This sees to me an out product with maps (which is why I am happy)
The text was updated successfully, but these errors were encountered: