Commit 2024-12-09 13:51 b202b867
View on Github →feat: non-degeneracy of root pairing form without assuming ordered scalars (#19767)
The motivation, and headline item is the new lemma RootPairing.rootForm_restrict_nondegenerate_of_isAnisotropic
which establishes non-degeneracy of the root form without assuming ordered scalars, at the cost of requiring the crystallographic assumption and field coefficients. Since we also want to keep the old lemma (renamed to) RootPairing.rootForm_restrict_nondegenerate_of_ordered
which establishes the same result over an ordered ring, we need to do some work in order to unify things as much as possible.
With this in mind I have:
- Turned
RootPairing.IsCrystallographic
into a typeclass - Introduced
RootPairing.IsAnisotropic
(which I've just made up but seems to be a good way to unify things; I also considered the idea that the pairing should take values in an ordered subring but decided this was inferior) In order to prove the new results, a certain amount of API for bilinear forms needed to be added. This also enabled me to golf some of the proofs of the existing non-degeneracy result (for order scalars). I also included a small amount of golfing / moving, and to standardise onLinearMap.ker P.RootForm
rather thanLinearMap.ker P.Polarisation
(since it interfaced better with the bilinear form API). As compensation I added the convenience lemmaRootPairing.ker_polarization_eq_ker_rootForm
.