Documentation

LeanPool.CompositionAlgebrasOverRings.QuadraticForm.OrthogonalComplement

Splitting off a regular submodule #

Let (M, q) be a quadratic form over a commutative ring and N ⊆ M a submodule on which the restriction of q is regular — its polar form is a bijection N ≃ N*. Then N splits off orthogonally:

M = N ⊕ Nᗮ and q = q|_N ⊥ q|_{Nᗮ},

where Nᗮ is the orthogonal complement of N for the polar form of q (mathlib's LinearMap.BilinForm.orthogonal).

Why regularity, and not less #

Regularity is used twice and both times essentially. Surjectivity of N → N* produces the projection: the functional n ↦ q(x, n) on N is realized by an actual element of N, and subtracting it lands x in Nᗮ. Injectivity gives N ∩ Nᗮ = 0. Neither follows from non-singularity of q on M, and over a field of characteristic 2 the difference is not cosmetic: the polar form of a non-singular form of odd rank has a kernel, so its span is a submodule that does not split off.

Nothing here needs M to be projective, finitely generated, or 2 to be invertible; those enter only in QuadraticForm.IsGPRNonsingular.comp_polarOrthogonal_subtype, where non-singularity of the complement is deduced by base change.

Main definitions #

Main results #

References #

@[reducible, inline]
abbrev QuadraticForm.polarOrthogonal {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) (N : Submodule R M) :

Nᗮ, the orthogonal complement of N for the polar form of Q.

This is mathlib's LinearMap.BilinForm.orthogonal applied to QuadraticMap.polarBilin Q; the abbreviation exists only so that statements about it are readable, and is reducible, so mathlib's LinearMap.BilinForm.mem_orthogonal_iff applies unchanged.

Equations
Instances For
    theorem QuadraticForm.mem_polarOrthogonal_iff {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {N : Submodule R M} {m : M} :
    m ∈ Q.polarOrthogonal N ↔ ∀ n ∈ N, QuadraticMap.polar (⇑Q) n m = 0
    noncomputable def QuadraticForm.polarProj {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {N : Submodule R M} (hreg : IsGPRRegular (QuadraticMap.comp Q N.subtype)) :
    M →ₗ[R] ↥N

    The orthogonal projection onto a regular submodule.

    x is sent to the unique element of N representing the functional n ↦ q(x, n) through the polar form of q|_N. Uniqueness — hence linearity — is exactly regularity of the restriction.

    Equations
    Instances For
      theorem QuadraticForm.polar_polarProj {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {N : Submodule R M} (hreg : IsGPRRegular (QuadraticMap.comp Q N.subtype)) (x : M) (n : ↥N) :
      QuadraticMap.polar ⇑Q ↑((polarProj hreg) x) ↑n = QuadraticMap.polar (⇑Q) x ↑n

      The defining property of the projection: it does not change the polar form against N.

      theorem QuadraticForm.sub_polarProj_mem_polarOrthogonal {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {N : Submodule R M} (hreg : IsGPRRegular (QuadraticMap.comp Q N.subtype)) (x : M) :
      x - ↑((polarProj hreg) x) ∈ Q.polarOrthogonal N

      Every x decomposes as its projection plus a vector orthogonal to N.

      theorem QuadraticForm.polarProj_coe {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {N : Submodule R M} (hreg : IsGPRRegular (QuadraticMap.comp Q N.subtype)) (a : ↥N) :
      (polarProj hreg) ↑a = a

      The projection is the identity on N, by injectivity of the restricted polar form.

      theorem QuadraticForm.polarProj_eq_zero {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {N : Submodule R M} (hreg : IsGPRRegular (QuadraticMap.comp Q N.subtype)) {b : M} (hb : b ∈ Q.polarOrthogonal N) :
      (polarProj hreg) b = 0

      The projection kills the orthogonal complement.

      noncomputable def QuadraticForm.orthogonalDecomposition {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {N : Submodule R M} (hreg : IsGPRRegular (QuadraticMap.comp Q N.subtype)) :
      (↥N × ↥(Q.polarOrthogonal N)) ≃ₗ[R] M

      M = N ⊕ Nᗮ. Addition is a linear equivalence N × Nᗮ ≃ₗ[R] M when the restriction of q to N is regular.

      Equations
      Instances For
        @[simp]
        theorem QuadraticForm.orthogonalDecomposition_apply {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {N : Submodule R M} (hreg : IsGPRRegular (QuadraticMap.comp Q N.subtype)) (p : ↥N × ↥(Q.polarOrthogonal N)) :
        (orthogonalDecomposition hreg) p = ↑p.1 + ↑p.2

        The orthogonal splitting of the form: q = q|_N ⊥ q|_{Nᗮ}.

        The cross term vanishes by the definition of Nᗮ, which is the whole point.

        The orthogonal decomposition packaged as an isometry between the orthogonal sum of the two restricted forms and the ambient form.

        Equations
        Instances For

          A regular submodule of a finitely generated module is finitely generated: it is a direct summand, being the image of the projection.

          A regular submodule of a projective module is projective.

          The complement of a regular submodule is finitely generated when the ambient module is.

          The complement of a regular submodule is projective when the ambient module is.

          The complement of a regular submodule in a non-singular form is non-singular.

          Base change the orthogonal splitting q ≅ q|_N ⊥ q|_{Nᗮ} to a field and read off the right summand (GN (C.8.3), QuadraticForm.IsGPRNonsingular.of_prod_right). This is the hypothesis the representation lemma GPR 11.26 consumes.

          The complement is visible in the rank. Over a field F ∈ R-alg in which N is strictly smaller than M, the base change of the complement is nonzero.

          Base change is exact on the splitting M = N ⊕ Nᗮ, so the three ranks add up; a vanishing complement would force the two ranks to agree. This is what supplies Module.HasFullSupport for the representation lemma GPR 11.26.

          theorem QuadraticForm.eq_top_of_isGPRRegular_of_rankAtStalk_eq {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] [Module.Finite R M] [Module.Projective R M] {Q : QuadraticForm R M} {N : Submodule R M} (hreg : IsGPRRegular (QuadraticMap.comp Q N.subtype)) {r : ℕ} (hM : Module.rankAtStalk M = fun (x : PrimeSpectrum R) => r) (hN : Module.rankAtStalk ↥N = fun (x : PrimeSpectrum R) => r) :
          N = ⊤

          A regular submodule of full rank is everything. If the restriction of Q to N is regular and N has the same constant rank as M at every prime, the orthogonal complement has rank zero, hence is trivial, hence N = ⊤.

          This is the criterion that turns a doubling that has run out of room into a surjection; the subalgebra form of it is ConicAlgebra.mem_of_isGPRRegular_of_rankAtStalk_eq.