Documentation

Mathlib.LinearAlgebra.Matrix.Nondegenerate

Matrices associated with non-degenerate bilinear forms #

Main definitions #

def Matrix.SeparatingRight {m : Type u_1} {n : Type u_2} {R : Type u_3} [CommRing R] [Finite m] [Finite n] (M : Matrix m n R) :

A matrix M is right-separating if for all w โ‰  0, there is a v with v * M * w โ‰  0.

Instances For
    def Matrix.SeparatingLeft {m : Type u_1} {n : Type u_2} {R : Type u_3} [CommRing R] [Finite m] [Finite n] (M : Matrix m n R) :

    A matrix M is right-separating if for all v โ‰  0, there is a w with v * M * w โ‰  0.

    Instances For
      structure Matrix.Nondegenerate {m : Type u_1} {n : Type u_2} {R : Type u_3} [CommRing R] [Finite m] [Finite n] (M : Matrix m n R) :

      A matrix M is nondegenerate if it is both left-separating and right-separating.

      Instances For
        theorem Matrix.separatingRight_def {m : Type u_1} {n : Type u_2} {R : Type u_3} [CommRing R] [Fintype m] [Fintype n] {M : Matrix m n R} :
        M.SeparatingRight โ†” โˆ€ (w : n โ†’ R), (โˆ€ (v : m โ†’ R), v โฌแตฅ M.mulVec w = 0) โ†’ w = 0
        theorem Matrix.separatingLeft_def {m : Type u_1} {n : Type u_2} {R : Type u_3} [CommRing R] [Fintype m] [Fintype n] {M : Matrix m n R} :
        M.SeparatingLeft โ†” โˆ€ (v : m โ†’ R), (โˆ€ (w : n โ†’ R), v โฌแตฅ M.mulVec w = 0) โ†’ v = 0
        theorem Matrix.nondegenerate_def {m : Type u_1} {n : Type u_2} {R : Type u_3} [CommRing R] [Fintype m] [Fintype n] {M : Matrix m n R} :
        M.Nondegenerate โ†” (โˆ€ (v : m โ†’ R), (โˆ€ (w : n โ†’ R), v โฌแตฅ M.mulVec w = 0) โ†’ v = 0) โˆง โˆ€ (w : n โ†’ R), (โˆ€ (v : m โ†’ R), v โฌแตฅ M.mulVec w = 0) โ†’ w = 0
        theorem Matrix.Nondegenerate.eq_zero_of_ortho {m : Type u_1} {n : Type u_2} {R : Type u_3} [CommRing R] [Fintype m] [Fintype n] {M : Matrix m n R} (hM : M.Nondegenerate) {v : m โ†’ R} (hv : โˆ€ (w : n โ†’ R), v โฌแตฅ M.mulVec w = 0) :
        v = 0

        If M is nondegenerate and w * M * v = 0 for all w, then v = 0.

        theorem Matrix.Nondegenerate.exists_not_ortho_of_ne_zero {m : Type u_1} {n : Type u_2} {R : Type u_3} [CommRing R] [Fintype m] [Fintype n] {M : Matrix m n R} (hM : M.Nondegenerate) {v : m โ†’ R} (hv : v โ‰  0) :
        โˆƒ (w : n โ†’ R), v โฌแตฅ M.mulVec w โ‰  0

        If M is nondegenerate and v โ‰  0, then there is some w such that w * M * v โ‰  0.

        theorem Matrix.Nondegenerate.eq_zero_of_ortho' {m : Type u_1} {n : Type u_2} {R : Type u_3} [CommRing R] [Fintype m] [Fintype n] {M : Matrix m n R} (hM : M.Nondegenerate) {w : n โ†’ R} (hw : โˆ€ (v : m โ†’ R), v โฌแตฅ M.mulVec w = 0) :
        w = 0

        If M is nondegenerate and w * M * v = 0 for all v, then w = 0.

        theorem Matrix.Nondegenerate.exists_not_ortho_of_ne_zero' {m : Type u_1} {n : Type u_2} {R : Type u_3} [CommRing R] [Fintype m] [Fintype n] {M : Matrix m n R} (hM : M.Nondegenerate) {w : n โ†’ R} (hw : w โ‰  0) :
        โˆƒ (v : m โ†’ R), v โฌแตฅ M.mulVec w โ‰  0

        If M is nondegenerate and w โ‰  0, then there is some v such that v * M * w โ‰  0.

        theorem Matrix.nondegenerate_of_det_ne_zero {m : Type u_1} {A : Type u_4} [Fintype m] [CommRing A] [IsDomain A] [DecidableEq m] {M : Matrix m m A} (hM : M.det โ‰  0) :

        If M is square and has nonzero determinant, then M as a bilinear form on n โ†’ A is nondegenerate. The "iff" implication, nondegenerate_iff_det_ne_zero, is proved in a later file.

        See also BilinForm.nondegenerateOfDetNeZero' and BilinForm.nondegenerateOfDetNeZero.

        theorem Matrix.eq_zero_of_vecMul_eq_zero {m : Type u_1} {A : Type u_4} [Fintype m] [CommRing A] [IsDomain A] [DecidableEq m] {M : Matrix m m A} (hM : M.det โ‰  0) {v : m โ†’ A} (hv : vecMul v M = 0) :
        v = 0
        theorem Matrix.eq_zero_of_mulVec_eq_zero {m : Type u_1} {A : Type u_4} [Fintype m] [CommRing A] [IsDomain A] [DecidableEq m] {M : Matrix m m A} (hM : M.det โ‰  0) {v : m โ†’ A} (hv : M.mulVec v = 0) :
        v = 0
        theorem LinearIndependent.sum_smul_of_nondegenerate {ฮน : Type u_1} {ฮบ : Type u_2} {R : Type u_3} {M : Type u_4} [Fintype ฮน] [Finite ฮบ] [CommRing R] [AddCommGroup M] [Module R M] {v : ฮน โ†’ M} (hv : LinearIndependent R v) {A : Matrix ฮบ ฮน R} (hA : A.Nondegenerate) :
        LinearIndependent R fun (i : ฮบ) => โˆ‘ j : ฮน, A i j โ€ข v j