Skip to content

Commit

Permalink
Try to sort out the homs
Browse files Browse the repository at this point in the history
  • Loading branch information
lgoettgens committed May 3, 2024
1 parent 46da87f commit 551da26
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 29 deletions.
4 changes: 2 additions & 2 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
cohomCalg_jll = "5558cf25-a90e-53b0-b813-cadaa3ae7ade"

[compat]
AbstractAlgebra = "0.41.2"
AbstractAlgebra = "0.41.3"
AlgebraicSolving = "0.4.11"
Distributed = "1.6"
DocStringExtensions = "0.8, 0.9"
GAP = "0.10.2"
Hecke = "0.31.0"
Hecke = "0.31.3"
JSON = "^0.20, ^0.21"
JSON3 = "1.13.2"
LazyArtifacts = "1.6"
Expand Down
6 changes: 3 additions & 3 deletions experimental/GModule/Cohomology.jl
Original file line number Diff line number Diff line change
Expand Up @@ -380,8 +380,8 @@ function Oscar.direct_product(C::GModule...; task::Symbol = :none)
@assert all(x->x.G == G, C)
mM, pro, inj = direct_product([x.M for x = C]..., task = :both)

mC = gmodule(G, [hom(mM, mM, [action(C[i], g) for i=1:length(C)]) for g = gens(G)])
mC.iac = [hom(mM, mM, [action(C[i], inv(g)) for i=1:length(C)]) for g = gens(G)]
mC = gmodule(G, [hom_direct_sum(mM, mM, [action(C[i], g) for i=1:length(C)]) for g = gens(G)])
mC.iac = [hom_direct_sum(mM, mM, [action(C[i], inv(g)) for i=1:length(C)]) for g = gens(G)]

if task == :none
return mC
Expand All @@ -403,7 +403,7 @@ function Oscar.tensor_product(C::GModule{<:Any, FinGenAbGroup}...; task::Symbol
@assert all(x->x.G == C[1].G, C)

T, mT = Oscar.tensor_product([x.M for x = C]...; task = :map)
TT = gmodule(T, C[1].G, [hom(T, T, [action(C[i], g) for i=1:length(C)]) for g = gens(C[1].G)])
TT = gmodule(T, C[1].G, [hom_tensor(T, T, [action(C[i], g) for i=1:length(C)]) for g = gens(C[1].G)])
if task == :map
return TT, mT
else
Expand Down
21 changes: 0 additions & 21 deletions experimental/GModule/Misc.jl
Original file line number Diff line number Diff line change
Expand Up @@ -247,27 +247,6 @@ Hecke.extend(::Hecke.QQEmb, mp::MapFromFunc{QQField, AbsSimpleNumField}) = compl

Hecke.restrict(::Hecke.NumFieldEmb, ::Map{QQField, AbsSimpleNumField}) = complex_embeddings(QQ)[1]

"""
hom(G::FinGenAbGroup, H::FinGenAbGroup, V::Vector{<:Map{FinGenAbGroup, FinGenAbGroup}})
For groups `G = prod G_i` and `H = prod H_i` as well as maps `V_i: G_i -> H_i`,
build the induced map from `G -> H`.
"""
function Oscar.hom(G::FinGenAbGroup, H::FinGenAbGroup, V::Vector{<:Map{FinGenAbGroup, FinGenAbGroup}})
dG = get_attribute(G, :direct_product)
dH = get_attribute(H, :direct_product)

if dG === nothing || dH === nothing
error("both groups need to be direct products")
end
@assert length(V) == length(dG) == length(dH)

@assert all(i -> domain(V[i]) == dG[i] && codomain(V[i]) == dH[i], 1:length(V))
h = hom(G, H, cat([matrix(V[i]) for i=1:length(V)]..., dims=(1,2)), check = !true)
return h

end

#XXX: have a type for an implicit field - in Hecke?
# add all(?) the other functions to it
function relative_field(m::Map{<:AbstractAlgebra.Field, <:AbstractAlgebra.Field})
Expand Down
5 changes: 2 additions & 3 deletions experimental/LieAlgebras/src/LieAlgebras.jl
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,9 @@ import ..Oscar:
gen,
gens,
height,
hom_tensor,
hom,
hom_direct_sum,
hom_tensor,
ideal,
identity_map,
image,
Expand Down Expand Up @@ -131,7 +132,6 @@ export exterior_power
export fundamental_weight
export fundamental_weights
export general_linear_lie_algebra
export hom_direct_sum
export induced_map_on_symmetric_power
export induced_map_on_tensor_power
export is_cartan_matrix
Expand Down Expand Up @@ -260,7 +260,6 @@ export exterior_power
export fundamental_weight
export fundamental_weights
export general_linear_lie_algebra
export hom_direct_sum
export induced_map_on_symmetric_power
export induced_map_on_tensor_power
export is_cartan_matrix
Expand Down

0 comments on commit 551da26

Please sign in to comment.