gap-system / gap

Main development repository for GAP - Groups, Algorithms, Programming, a System for Computational Discrete Algebra
https://www.gap-system.org
GNU General Public License v2.0
810 stars 160 forks source link

No suitable invariant bilinear/quadratic form pairs exist for `Omega(0,d,q)` with d odd, q even #2576

Closed fingolfin closed 6 years ago

fingolfin commented 6 years ago

I recently decided to try and add the InvariantBilinearForm and InvariantQuadraticForm attributes for Omega(e, d, q).

It turns out that for e=0 and q even, this is not possible?! Consider for example Omega(0,3,4); -- an exhaustive search over GF(4)^[3,3] reveals that the only non-trivial bilinear form preserved by this group in GAP is (up to scalars) given by the Gram matrix:

 . . .
 . 1 .
 . . .

Actually, this can be verified for Omega(0,3,q) for any even q>=4 with a simple hand calculation, by inspecting the two generators of the group.

But this matrix cannot be written as Q + Q^tr for some matrix Q over GF(4), as such a matrix always has only zeros on the diagonal. But this is required by the GAP manual entry for InvariantQuadraticForm.

I could fix this by using a different representation of the group (e.g. the one obtained via DerivedSubgroup(GO(e,d,q))), but that might break compatibility in unforeseen ways? See also issue #500.

Perhaps @ThomasBreuer @frankluebeck @hulpke have some insights on this?

fingolfin commented 6 years ago

To clarify, this concerns the function OmegaZero which was added by @ThomasBreuer on 2011-06-14, so I am hoping he has some additional insights?

ThomasBreuer commented 6 years ago

As far as I see, the generators given in the Rylands/Taylor paper are wrong, since they do not describe the claimed orthogonal group. Thus my proposal is as follows.

I can provide a pull request for these changes if you agree with them.

fingolfin commented 6 years ago

@ThomasBreuer Thanks for your analysis. I fully agree with it and the proposed plan, and would appreciate if you can indeed provide that pull request.

If we do this anyway, I wonder if we should also reconsider issue #500, and change Omega to always return subgroups of SO -- this is just a matter of conjugating by the right element. But of course this risks breaking code which relies on the specific output of Omega... so I guess the "right" solution would be to support an extended interface which allows specifying the desired form, or something like that... In any case, this surely goes beyond fixing the issue at hand, I merely mention it for completeness.