Skip to content

Commit

Permalink
internal consistency of GModule objects
Browse files Browse the repository at this point in the history
- add an assertion in the constructor,
- fix the test where this assertion did not hold
  • Loading branch information
ThomasBreuer committed Apr 11, 2024
1 parent 3b3a806 commit e10eb6e
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 10 deletions.
8 changes: 6 additions & 2 deletions experimental/GModule/Brueckner.jl
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ Note: the reps are NOT necessarily over the smallest field.
Note: the field is NOT extended - but it throws an error if it was too small.
Note: `group(M)` for the returned gmodules `M` will have a pcgs of `G` as
its `gens` value, thus these generators will in general differ from
the generators of `G`.
Implements: Brueckner, Chap 1.2.3
"""
function reps(K, G::Oscar.GAPGroup)
Expand Down Expand Up @@ -91,7 +95,7 @@ function reps(K, G::Oscar.GAPGroup)
# xX for x in the field., hence Xp = X^p is defined up
# to p-th powers: x^p Xp, so
# C x^p Xp = Y
# appliying det:
# applying det:
# det(C x^p Xp) = C^n x^(pn) det(Xp) = det(Y) = root-of-1
# so I think that shows that C is (up to p-th powers)
# also a root-of-1
Expand All @@ -114,7 +118,7 @@ function reps(K, G::Oscar.GAPGroup)
z[1:n,(p-1)*n+1:end] = Y
#= This is wrong in Brueckner - or he's using a different
conjugation. Max figured out what to do: the identity block
needs to be lower left, and ubbber right the inverse.
needs to be lower left, and upper right the inverse.
He might have been doing other conjugations s.w.
=#
Expand Down
1 change: 1 addition & 0 deletions experimental/GModule/Cohomology.jl
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ Base.hash(a::MultGrpElem, u::UInt = UInt(1235)) = hash(a.data. u)
r.ac = ac
r.M = M
@assert all(x -> domain(x) == codomain(x) == r.M, ac)
@assert length(ac) == number_of_generators(G)
@hassert :GroupCohomology 1 is_consistent(r)
return r
end
Expand Down
9 changes: 1 addition & 8 deletions experimental/GModule/test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -57,20 +57,13 @@ end
L = [
matrix(F, [0 0 1; 1 0 0; 0 1 0]),
matrix(F, [2 0 0; 0 1 0; 0 0 2]),
matrix(F, [2 0 0; 0 2 0; 0 0 1]),
matrix(F, [1 0 0; 0 1 0; 0 0 1])
]
m = free_module(F, 3)
M = GModule(m, G, [hom(m, m, a) for a in L])

E = GF(3,6)
phi = embed(F, E)
LE = [
matrix(E, [0 0 1; 1 0 0; 0 1 0]),
matrix(E, [2 0 0; 0 1 0; 0 0 2]),
matrix(E, [2 0 0; 0 2 0; 0 0 1]),
matrix(E, [1 0 0; 0 1 0; 0 0 1])
]
LE = [map_entries(phi, x) for x in L]
mE = free_module(E, 3)

@test extension_of_scalars(M, phi) == GModule(mE, G, [hom(mE, mE, a) for a in LE])
Expand Down

0 comments on commit e10eb6e

Please sign in to comment.