Documentation

TauCeti.LinearAlgebra.BilinearForm.Orthogonal

Orthogonal complements of bilinear forms #

This file records facts about the orthogonal complement LinearMap.BilinForm.orthogonal that Mathlib lacks. A vector lies in the orthogonal complement of the span of one or two vectors exactly when it is orthogonal to each of them. Adjoining a vector x whose self-pairing is a non-zero-divisor dividing all its pairings (over a field: a non-isotropic vector) to an orthogonal basis of the orthogonal complement of x gives an orthogonal basis of the whole module, for a reflexive form; this is the inductive step of every diagonalization argument, over a field as over a valuation ring. Adjoining an orthogonal vector whose self-pairing is a right non-zero-divisor to a left-separating subspace of a reflexive bilinear space produces a nondegenerate restriction; this is the structural step used when a Cartan--Dieudonne argument enlarges a fixed subspace.

Main results #

theorem LinearMap.BilinForm.mem_orthogonal_span_singleton_iff {K : Type u_1} {V : Type u_2} [CommSemiring K] [AddCommMonoid V] [Module K V] (B : LinearMap.BilinForm K V) {x y : V} :
y ∈ B.orthogonal (K ∙ x) ↔ (B x) y = 0

A vector is orthogonal to the span of a vector x exactly when it is orthogonal to x.

theorem LinearMap.BilinForm.mem_orthogonal_span_pair_iff {K : Type u_1} {V : Type u_2} [CommSemiring K] [AddCommMonoid V] [Module K V] (B : LinearMap.BilinForm K V) {x y z : V} :
z ∈ B.orthogonal (Submodule.span K {x, y}) ↔ (B x) z = 0 ∧ (B y) z = 0

A vector is orthogonal to the span of two vectors exactly when it is orthogonal to both.

theorem TauCeti.BilinForm.restrict_nondegenerate_sup_span_singleton {K : Type u_1} {V : Type u_2} [CommSemiring K] [AddCommMonoid V] [Module K V] (B : LinearMap.BilinForm K V) (hB : B.IsRefl) (W : Submodule K V) (hW : LinearMap.SeparatingLeft (B.restrict W)) (x : V) (hxx : (B x) x ∈ nonZeroDivisorsRight K) (hx : x ∈ B.orthogonal W) :
(B.restrict (W ⊔ K ∙ x)).Nondegenerate

Adjoining a vector whose self-pairing is a right non-zero-divisor from the orthogonal complement of a left-separating subspace preserves nondegeneracy.

A submodule with perfect flipped restricted pairing is complementary to its right orthogonal complement.

A submodule with perfect symmetric restricted pairing is complementary to its orthogonal complement.

Unit self-pairing makes the restricted pairing on the cyclic span perfect.

theorem LinearMap.BilinForm.isCompl_span_singleton_orthogonal_of_dvd {R : Type u} {M : Type v} [CommRing R] [AddCommGroup M] [Module R M] (B : LinearMap.BilinForm R M) {x : M} (hx : (B x) x ∈ nonZeroDivisors R) (hdvd : ∀ (y : M), (B x) x ∣ (B x) y) :
IsCompl (R ∙ x) (B.orthogonal (R ∙ x))

A vector x whose self-pairing B x x is a non-zero-divisor dividing every pairing B x y spans an orthogonal direct summand. Over a field this is the condition B x x ≠ 0; over a valuation ring it says that B x x has minimal valuation among the pairings of x.

theorem LinearMap.BilinForm.IsRefl.exists_orthogonal_basis_of_orthogonal_span_singleton {R : Type u} {M : Type v} [CommRing R] [AddCommGroup M] [Module R M] {B : LinearMap.BilinForm R M} (hB : B.IsRefl) {x : M} (hx : (B x) x ∈ nonZeroDivisors R) (hdvd : ∀ (y : M), (B x) x ∣ (B x) y) {d : ℕ} {v : Module.Basis (Fin d) R ↥(B.orthogonal (R ∙ x))} (hv : (B.restrict (B.orthogonal (R ∙ x))).iIsOrtho ⇑v) :
∃ (b : Module.Basis (Fin (d + 1)) R M), B.iIsOrtho ⇑b

Adjoining a vector x to an orthogonal basis of the orthogonal complement of x gives an orthogonal basis of the whole module, for a reflexive form, provided the self-pairing B x x is a non-zero-divisor dividing every pairing B x y. Over a field this says B x x ≠ 0.

theorem LinearMap.BilinForm.isCompl_span_singleton_orthogonal_of_isUnit {R : Type u} {M : Type v} [CommRing R] [AddCommGroup M] [Module R M] (B : LinearMap.BilinForm R M) (x : M) (hx : IsUnit ((B x) x)) :
IsCompl (R ∙ x) (B.orthogonal (R ∙ x))

A vector with unit self-pairing spans an orthogonal direct summand.