Documentation

Monlib.LinearAlgebra.Matrix.StarOrderedRing

Matrix algebras are star ordered rings #

This file contains the instance of star_ordered_ring for matrix n n ℂ.

Main definitions #

You need to open_locale matrix_order to use these instances.

theorem Matrix.eq_zero_iff {n : Type u_1} [Fintype n] [DecidableEq n] {x : Matrix n n } :
x = 0 ∀ (a : n), Matrix.dotProduct (star a) (x.mulVec a) = 0
@[reducible]
def Matrix.LE {n : Type u_1} [Fintype n] [DecidableEq n] :
LE (Matrix n n )
Equations
  • Matrix.LE = { le := fun (x y : Matrix n n ) => (y - x).PosSemidef }
Instances For
    def Matrix.NegSemidef {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] (x : Matrix n n 𝕜) :
    Equations
    Instances For
      def Matrix.NegDef {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] (x : Matrix n n 𝕜) :
      Equations
      Instances For
        theorem Matrix.IsHermitian.neg_iff {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] (x : Matrix n n 𝕜) :
        (-x).IsHermitian x.IsHermitian
        theorem Matrix.negSemidef_iff_neg_posSemidef {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] (x : Matrix n n 𝕜) :
        x.NegSemidef (-x).PosSemidef
        theorem Matrix.negDef_iff_neg_posDef {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] (x : Matrix n n 𝕜) :
        x.NegDef (-x).PosDef
        theorem Matrix.NegDef.re_dotProduct_neg {n : Type u_1} {𝕜 : Type u_2} [RCLike 𝕜] [Fintype n] {M : Matrix n n 𝕜} (hM : M.NegDef) {x : n𝕜} (hx : x 0) :
        RCLike.re (Matrix.dotProduct (star x) (M.mulVec x)) < 0
        theorem Matrix.NegSemidef.nonpos_eigenvalues {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] {x : Matrix n n 𝕜} (hx : x.NegSemidef) (i : n) :
        .eigenvalues i 0
        theorem Matrix.NegDef.neg_eigenvalues {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] {x : Matrix n n 𝕜} (hx : x.NegDef) (i : n) :
        .eigenvalues i < 0
        theorem Matrix.IsHermitian.eigenvalues_eq_zero_iff {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] {x : Matrix n n 𝕜} (hx : x.IsHermitian) :
        RCLike.ofReal hx.eigenvalues = 0 x = 0
        theorem Matrix.posSemidef_and_negSemidef_iff_eq_zero {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] {x : Matrix n n 𝕜} :
        x.PosSemidef x.NegSemidef x = 0
        theorem Matrix.not_posDef_and_negDef {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] [Nonempty n] (x : Matrix n n 𝕜) :
        ¬(x.PosDef x.NegDef)
        theorem Matrix.diagonal_posSemidef_iff {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] (x : n𝕜) :
        (Matrix.diagonal x).PosSemidef 0 x
        theorem Matrix.diagonal_negSemidef_iff {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] (x : n𝕜) :
        (Matrix.diagonal x).NegSemidef x 0
        theorem Matrix.diagonal_posDef_iff {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] (x : n𝕜) :
        (Matrix.diagonal x).PosDef ∀ (i : n), 0 < x i
        theorem Matrix.diagonal_negDef_iff {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] (x : n𝕜) :
        (Matrix.diagonal x).NegDef ∀ (i : n), x i < 0
        theorem Matrix.posSemidef_iff_of_isHermitian {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] {x : Matrix n n 𝕜} (hx : x.IsHermitian) :
        x.PosSemidef 0 hx.eigenvalues
        theorem Matrix.posSemidef_iff_isHermitian_and_nonneg_spectrum {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] {x : Matrix n n 𝕜} :
        x.PosSemidef x.IsHermitian spectrum 𝕜 (Matrix.toLin' x) {x : 𝕜 | 0 x}
        theorem Matrix.posDef_iff_of_isHermitian {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] {x : Matrix n n 𝕜} (hx : x.IsHermitian) :
        x.PosDef ∀ (i : n), 0 < hx.eigenvalues i
        theorem Matrix.posDef_iff_isHermitian_and_pos_spectrum {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] {x : Matrix n n 𝕜} :
        x.PosDef x.IsHermitian spectrum 𝕜 (Matrix.toLin' x) {x : 𝕜 | 0 < x}
        theorem Matrix.posSemidef_iff_commute {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] {x : Matrix n n 𝕜} {y : Matrix n n 𝕜} (hx : x.PosSemidef) (hy : y.PosSemidef) :
        Commute x y (x * y).PosSemidef
        theorem Matrix.innerAut_negSemidef_iff {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] (U : (Matrix.unitaryGroup n 𝕜)) {a : Matrix n n 𝕜} :
        ((Matrix.innerAut U) a).NegSemidef a.NegSemidef
        theorem Matrix.innerAut_negDef_iff {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] (U : (Matrix.unitaryGroup n 𝕜)) {x : Matrix n n 𝕜} :
        ((Matrix.innerAut U) x).NegDef x.NegDef

        $f_U(x)$ is negative definite if and only if $x$ is negative definite

        theorem Matrix.negSemidef_iff_of_isHermitian {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] {x : Matrix n n 𝕜} (hx : x.IsHermitian) :
        x.NegSemidef hx.eigenvalues 0
        theorem Matrix.negDef_iff_of_isHermitian {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] {x : Matrix n n 𝕜} (hx : x.IsHermitian) :
        x.NegDef ∀ (i : n), hx.eigenvalues i < 0
        theorem Matrix.posDef_of_posSemidef {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] {x : Matrix n n 𝕜} (hx : x.PosSemidef) :
        x.PosDef ∀ (i : n), .eigenvalues i 0
        theorem Matrix.negDef_of_negSemidef {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] {x : Matrix n n 𝕜} (hx : x.NegSemidef) :
        x.NegDef ∀ (i : n), .eigenvalues i 0
        @[reducible]
        Equations
        Instances For
          theorem Matrix.le_iff {n : Type u_1} [Fintype n] [DecidableEq n] {x : Matrix n n } {y : Matrix n n } :
          x y (y - x).PosSemidef
          @[reducible]
          noncomputable def Matrix.starOrderedRing {n : Type u_1} [Fintype n] [DecidableEq n] :
          Equations
          • =
          Instances For
            theorem Matrix.Pi.le_iff_sub_nonneg {ι : Type u_1} [Fintype ι] [DecidableEq ι] {n : ιType u_2} [(i : ι) → Fintype (n i)] [(i : ι) → DecidableEq (n i)] (x : PiMat ι n) (y : PiMat ι n) :
            x y ∃ (z : PiMat ι n), y = x + star z * z
            @[reducible]
            noncomputable def Matrix.PiStarOrderedRing {ι : Type u_1} [Fintype ι] [DecidableEq ι] {n : ιType u_2} [(i : ι) → Fintype (n i)] [(i : ι) → DecidableEq (n i)] :
            Equations
            • =
            Instances For
              theorem Matrix.negSemidef_iff_nonpos {n : Type u_1} [Fintype n] [DecidableEq n] (x : Matrix n n ) :
              x.NegSemidef x 0
              theorem Matrix.PosSemidef.conj_by_isHermitian_posSemidef {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] {x : Matrix n n 𝕜} {y : Matrix n n 𝕜} (hx : x.PosSemidef) (hy : y.IsHermitian) :
              (y * x * y).PosSemidef
              theorem Matrix.IsHermitian.conj_by_isHermitian_posSemidef {𝕜 : Type u_1} {n : Type u_2} [RCLike 𝕜] [Fintype n] [DecidableEq n] {x : Matrix n n 𝕜} {y : Matrix n n 𝕜} (hx : x.IsHermitian) (hy : y.PosSemidef) :
              (x * y * x).PosSemidef
              theorem Matrix.isHermitian_mul_iff {α : Type u_1} {n : Type u_4} [NonUnitalSemiring α] [StarRing α] [Fintype n] {A : Matrix n n α} {B : Matrix n n α} (hA : A.IsHermitian) (hB : B.IsHermitian) :
              Commute A B (A * B).IsHermitian

              Alias of Matrix.commute_iff.

              theorem StarAlgEquiv.map_pow {R : Type u_1} {A₁ : Type u_2} {A₂ : Type u_3} [CommSemiring R] [Semiring A₁] [Semiring A₂] [Algebra R A₁] [Algebra R A₂] [Star A₁] [Star A₂] (e : A₁ ≃⋆ₐ[R] A₂) (x : A₁) (n : ) :
              e (x ^ n) = e x ^ n
              theorem Matrix.innerAut.map_pow {n : Type u_1} [Fintype n✝] [DecidableEq n✝] {𝕜 : Type u_2} [RCLike 𝕜] (U : (Matrix.unitaryGroup n✝ 𝕜)) (x : Matrix n✝ n✝ 𝕜) (n : ) :
              (Matrix.innerAut U) x ^ n = (Matrix.innerAut U) (x ^ n)