Documentation

LeanPool.HasseMinkowski.Basic

Layer 0 of the Hasse–Minkowski development #

Mathlib 4.33 has the abstract theory of quadratic maps: QuadraticMap.Anisotropic, QuadraticMap.Nondegenerate, weightedSumSquares, the orthogonal sum QuadraticMap.prod and base change QuadraticForm.baseChange. The theory of quadratic forms over number fields needs the dual notions: isotropy, representation of a value, and the interaction of nondegeneracy with orthogonal sums and base change. This file supplies them.

Main definitions #

Main results #

Isotropic quadratic maps #

def HasseMinkowski.Isotropic {R : Type u_1} {M : Type u_2} {N : Type u_3} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (Q : QuadraticMap R M N) :

A quadratic map is isotropic if it vanishes on some nonzero vector.

Equations
Instances For
    def HasseMinkowski.IsotropicFn {M : Type u_1} {N : Type u_2} [Zero M] [Zero N] (f : M → N) :

    Function-level isotropy: a function vanishing at a nonzero vector.

    This is needed to speak about a translate x ↦ Q x - a of a quadratic form, which is not a quadratic map (it does not vanish at 0 when a ≠ 0).

    Equations
    Instances For

      Representing values #

      def HasseMinkowski.represents {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) (a : R) :

      A quadratic form represents a if it takes the value a on a nonzero vector.

      For a ≠ 0 the restriction to nonzero vectors is immaterial, since Q 0 = 0; for a = 0 it makes the notion agree with isotropy, as in the classical theory.

      Equations
      Instances For
        theorem HasseMinkowski.represents_iff_sub_isotropic {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) (a : R) :
        represents Q a ↔ IsotropicFn fun (x : M) => Q x - a

        Rank-one forms #

        Nondegeneracy #

        theorem HasseMinkowski.nondegenerate_prod {R : Type u_1} {M₁ : Type u_2} {M₂ : Type u_3} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [Module R M₁] [Module R M₂] [Invertible 2] {Q₁ : QuadraticForm R M₁} {Q₂ : QuadraticForm R M₂} (h₁ : QuadraticMap.Nondegenerate) (h₂ : QuadraticMap.Nondegenerate) :

        Rank-zero forms #

        Indefinite real forms #

        A real quadratic form is indefinite if it takes both a negative and a positive value.

        Equations
        Instances For

          Base change of isometries #

          These belong to the QuadraticMap namespace so that e.baseChange works by dot notation for an isometry equivalence e, in the same way as the rest of Mathlib's quadratic-form API.

          noncomputable def QuadraticMap.IsometryEquiv.baseChange {R : Type u_1} {A : Type u_2} {M₁ : Type u_3} {M₂ : Type u_4} [CommRing R] [CommRing A] [Algebra R A] [AddCommGroup M₁] [AddCommGroup M₂] [Module R M₁] [Module R M₂] [Invertible 2] {Q₁ : QuadraticForm R M₁} {Q₂ : QuadraticForm R M₂} (e : IsometryEquiv Q₁ Q₂) :

          Base change sends an isometry equivalence of quadratic forms to one.

          Equations
          Instances For
            theorem QuadraticMap.Equivalent.baseChange {R : Type u_1} {A : Type u_2} {M₁ : Type u_3} {M₂ : Type u_4} [CommRing R] [CommRing A] [Algebra R A] [AddCommGroup M₁] [AddCommGroup M₂] [Module R M₁] [Module R M₂] [Invertible 2] {Q₁ : QuadraticForm R M₁} {Q₂ : QuadraticForm R M₂} (h : Equivalent Q₁ Q₂) :

            Dot-notation aliases #

            The generic API above lives in HasseMinkowski; these aliases let Q.Isotropic and Q.represents a be used directly for a quadratic map Q, matching Mathlib's convention for Q.Anisotropic and QuadraticMap.prod.

            @[reducible, inline]
            abbrev QuadraticMap.Isotropic {R : Type u_1} {M : Type u_2} {N : Type u_3} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (Q : QuadraticMap R M N) :

            Dot-notation alias for HasseMinkowski.Isotropic: the quadratic map vanishes on some nonzero vector.

            Equations
            Instances For
              @[reducible, inline]
              abbrev QuadraticMap.represents {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) (a : R) :

              Dot-notation alias for HasseMinkowski.represents: the quadratic form takes the value a on some nonzero vector.

              Equations
              Instances For