diff --git a/experimental/GModule/Brueckner.jl b/experimental/GModule/Brueckner.jl index b943de1edbd8..808145e05a3f 100644 --- a/experimental/GModule/Brueckner.jl +++ b/experimental/GModule/Brueckner.jl @@ -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) @@ -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 @@ -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. =# diff --git a/experimental/GModule/Cohomology.jl b/experimental/GModule/Cohomology.jl index aa32aae0ae39..75d4548d7c0f 100644 --- a/experimental/GModule/Cohomology.jl +++ b/experimental/GModule/Cohomology.jl @@ -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 diff --git a/experimental/GModule/test/runtests.jl b/experimental/GModule/test/runtests.jl index c379e59525ff..d688fae66d2c 100644 --- a/experimental/GModule/test/runtests.jl +++ b/experimental/GModule/test/runtests.jl @@ -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])