Physlib Documentation

QuantumInfo.ForMathlib.HermitianMat.LogExp

Properties of the matrix logarithm and exponential #

In particular, operator monotonicity and concavity of the matrix logarithm. These are proved using inv_antitone, so, first showing that the matrix inverse is operator antitone for positive definite matrices.

theorem Matrix.IsHermitian.log_smul_of_ne_zero {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {x : โ„} {A : Matrix d d ๐•œ} (hA : A.IsHermitian) (hx : x โ‰  0) :
cfc Real.log (x โ€ข A) = Real.log x โ€ข cfc (fun (x : โ„) => if x = 0 then 0 else 1) A + cfc Real.log A
def HermitianMat.exp {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] (A : HermitianMat d ๐•œ) :
HermitianMat d ๐•œ

Matrix exponential of a Hermitian matrix, as given by the continuous functional calculus with Real.exp

Equations
Instances For
    theorem Commute.exp_left' {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {A B : HermitianMat d ๐•œ} (hAB : Commute โ†‘A โ†‘B) :
    Commute โ†‘A.exp โ†‘B

    Primed because Commute.exp_left refers to NormedSpace.exp instead of HermitianMat.exp.

    theorem Commute.exp_right' {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {A B : HermitianMat d ๐•œ} (hAB : Commute โ†‘A โ†‘B) :
    Commute โ†‘A โ†‘B.exp

    Primed because Commute.exp_right refers to NormedSpace.exp instead of HermitianMat.exp.

    @[simp]
    theorem HermitianMat.reindex_exp {d : Type u_1} {dโ‚‚ : Type u_2} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [Fintype dโ‚‚] [DecidableEq dโ‚‚] [RCLike ๐•œ] {A : HermitianMat d ๐•œ} (e : d โ‰ƒ dโ‚‚) :
    (A.reindex e).exp = A.exp.reindex e
    instance HermitianMat.nonSingular_exp {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] (A : HermitianMat d ๐•œ) :
    theorem HermitianMat.exp_nonneg {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] (A : HermitianMat d ๐•œ) :

    The matrix exponential of a Hermitian matrix is nonnegative.

    theorem HermitianMat.exp_pos {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] [i : Nonempty d] (A : HermitianMat d ๐•œ) :
    0 < A.exp

    The matrix exponential of a Hermitian matrix is strictly positive (Loewner order). Requires Nonempty since over an empty index type every matrix equals zero and 0 < 0 is false.

    Positivity extension for HermitianMat.exp: always strictly positive if Nonempty d. TODO: We could add a fallback to give nonnegative if Nonempty d is not available, possibly also print a warning. (Users might often not have Nonempty d in context, and they probably want to.)

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def HermitianMat.log {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] (A : HermitianMat d ๐•œ) :
      HermitianMat d ๐•œ

      Matrix logarithm (base e) of a Hermitian matrix, as given by the elementwise real logarithm of the diagonal in a diagonalized form, using Real.log

      Note that this means that the nullspace of the image includes all of the nullspace of the original matrix. This contrasts to the standard definition, which is typically defined for positive definite matrices, and the nullspace of the image is exactly the (ฮป=1)-eigenspace of the original matrix. (We also get the (ฮป=-1)-eigenspace here!)

      It coincides with a standard definition if A is positive definite.

      Equations
      Instances For
        theorem Commute.log_left {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {A B : HermitianMat d ๐•œ} (hAB : Commute โ†‘A โ†‘B) :
        Commute โ†‘A.log โ†‘B
        theorem Commute.log_right {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {A B : HermitianMat d ๐•œ} (hAB : Commute โ†‘A โ†‘B) :
        Commute โ†‘A โ†‘B.log
        @[simp]
        theorem HermitianMat.reindex_log {d : Type u_1} {dโ‚‚ : Type u_2} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [Fintype dโ‚‚] [DecidableEq dโ‚‚] [RCLike ๐•œ] {A : HermitianMat d ๐•œ} (e : d โ‰ƒ dโ‚‚) :
        (A.reindex e).log = A.log.reindex e
        @[simp]
        theorem HermitianMat.log_zero {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] :
        log 0 = 0
        @[simp]
        theorem HermitianMat.log_one {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] :
        log 1 = 0
        theorem HermitianMat.log_smul_of_pos {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {x : โ„} (A : HermitianMat d ๐•œ) (hx : x โ‰  0) :
        theorem HermitianMat.log_smul {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {A : HermitianMat d ๐•œ} {x : โ„} (hx : x โ‰  0) [A.NonSingular] :
        theorem HermitianMat.inv_antitone {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {A B : HermitianMat d ๐•œ} (hA : (โ†‘A).PosDef) (h : A โ‰ค B) :
        theorem HermitianMat.Real.integral_inv_sub_inv_finite (x T : โ„) (hx : 0 < x) (hT : 0 < T) :
        โˆซ (t : โ„) in 0..T, 1 / (1 + t) - 1 / (x + t) = Real.log x + Real.log ((1 + T) / (x + T))

        The limit of $\log((1+T)/(x+T))$ as $T \to \infty$ is 0, for $x > 0$.

        theorem HermitianMat.logApprox_mono {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {x y : HermitianMat d ๐•œ} (hx : (โ†‘x).PosDef) (hy : (โ†‘y).PosDef) (hxy : x โ‰ค y) (T : โ„) (hT : 0 < T) :

        Monotonicity of the finite integral approximation of the logarithm.

        noncomputable def HermitianMat.logApprox {n : Type u_4} {๐•œ : Type u_5} [Fintype n] [DecidableEq n] [RCLike ๐•œ] (x : HermitianMat n ๐•œ) (T : โ„) :
        HermitianMat n ๐•œ
        Equations
        Instances For
          theorem HermitianMat.scalarLogApprox_eq (x T : โ„) (hx : 0 < x) (hT : 0 < T) :
          scalarLogApprox T x = Real.log x + Real.log ((1 + T) / (x + T))
          theorem HermitianMat.logApprox_eq_cfc_scalar {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] (x : HermitianMat d ๐•œ) (hx : (โ†‘x).PosDef) (T : โ„) (hT : 0 < T) :

          The matrix log approximation is the CFC of the scalar log approximation.

          theorem HermitianMat.logApprox_eq_log_add_error {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] (x : HermitianMat d ๐•œ) (hx : (โ†‘x).PosDef) (T : โ„) (hT : 0 < T) :
          x.logApprox T = x.log + x.cfc fun (u : โ„) => Real.log ((1 + T) / (u + T))

          The log approximation is the log plus an error term.

          theorem HermitianMat.tendsto_cfc_log_div_add_atTop {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] (x : HermitianMat d ๐•œ) :
          Filter.Tendsto (fun (T : โ„) => x.cfc fun (u : โ„) => Real.log ((1 + T) / (u + T))) Filter.atTop (nhds 0)

          The error term in the log approximation tends to 0 as T goes to infinity.

          theorem HermitianMat.tendsto_logApprox {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {x : HermitianMat d ๐•œ} (hx : (โ†‘x).PosDef) :

          The log approximation converges to the matrix logarithm.

          theorem HermitianMat.posDef_of_posDef_le {d : Type u_1} {๐•œ : Type u_3} [RCLike ๐•œ] {A B : HermitianMat d ๐•œ} (hA : (โ†‘A).PosDef) (hAB : A โ‰ค B) :
          (โ†‘B).PosDef
          theorem HermitianMat.log_mono {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {A B : HermitianMat d ๐•œ} (hA : (โ†‘A).PosDef) (hAB : A โ‰ค B) :

          The matrix logarithm is operator monotone.

          theorem HermitianMat.le_of_exp_commute {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {A B : HermitianMat d ๐•œ} (hABโ‚‚ : A.exp โ‰ค B.exp) :

          Monotonicity of exp on commuting operators.

          theorem HermitianMat.inv_convex {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {x y : HermitianMat d ๐•œ} (hx : (โ†‘x).PosDef) (hy : (โ†‘y).PosDef) โฆƒa b : โ„โฆ„ (ha : 0 โ‰ค a) (hb : 0 โ‰ค b) (hab : a + b = 1) :

          The inverse function is operator convex on positive definite matrices.

          theorem HermitianMat.inv_shift_convex {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {x y : HermitianMat d ๐•œ} (hx : (โ†‘x).PosDef) (hy : (โ†‘y).PosDef) โฆƒa b : โ„โฆ„ (ha : 0 โ‰ค a) (hb : 0 โ‰ค b) (hab : a + b = 1) (t : โ„) (ht : 0 โ‰ค t) :

          The shifted inverse function is operator convex on positive definite matrices.

          theorem HermitianMat.integrable_inv_shift {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {A : HermitianMat d ๐•œ} (hA : (โ†‘A).PosDef) (b : โ„) (hb : 0 โ‰ค b) :

          Definition of the approximation of the matrix logarithm.

          theorem HermitianMat.logApprox_concave {n : Type u_4} {๐•œ : Type u_5} [Fintype n] [DecidableEq n] [RCLike ๐•œ] {x y : HermitianMat n ๐•œ} (hx : (โ†‘x).PosDef) (hy : (โ†‘y).PosDef) โฆƒa b : โ„โฆ„ (ha : 0 โ‰ค a) (hb : 0 โ‰ค b) (hab : a + b = 1) (T : โ„) (hT : 0 โ‰ค T) :

          The finite integral approximation of the matrix logarithm is operator concave.

          theorem HermitianMat.log_concave {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {x y : HermitianMat d ๐•œ} (hx : (โ†‘x).PosDef) (hy : (โ†‘y).PosDef) โฆƒa b : โ„โฆ„ (ha : 0 โ‰ค a) (hb : 0 โ‰ค b) (hab : a + b = 1) :

          The matrix logarithm is operator concave.

          theorem HermitianMat.log_kron_diagonal {m : Type u_4} {n : Type u_5} {๐•œ : Type u_6} [Fintype m] [DecidableEq m] [Fintype n] [DecidableEq n] [RCLike ๐•œ] {dโ‚ : m โ†’ โ„} {dโ‚‚ : n โ†’ โ„} (hโ‚ : โˆ€ (i : m), 0 < dโ‚ i) (hโ‚‚ : โˆ€ (j : n), 0 < dโ‚‚ j) :
          ((diagonal ๐•œ dโ‚).kronecker (diagonal ๐•œ dโ‚‚)).log = (diagonal ๐•œ dโ‚).log.kronecker 1 + kronecker 1 (diagonal ๐•œ dโ‚‚).log
          theorem HermitianMat.log_conj_unitary {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] (A : HermitianMat d ๐•œ) (U : โ†ฅ(Matrix.unitaryGroup d ๐•œ)) :
          ((conj โ†‘U) A).log = (conj โ†‘U) A.log

          The logarithm of a Hermitian matrix conjugated by a unitary matrix is the conjugate of the logarithm.

          theorem HermitianMat.inner_log_smul_of {d : Type u_1} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [RCLike ๐•œ] {A B : HermitianMat d ๐•œ} [A.NonSingular] {x : โ„} (hx : x โ‰  0) :
          theorem HermitianMat.log_kron_diagonal_with_proj {d : Type u_1} {dโ‚‚ : Type u_2} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [Fintype dโ‚‚] [DecidableEq dโ‚‚] [RCLike ๐•œ] {f : d โ†’ โ„} {g : dโ‚‚ โ†’ โ„} :
          ((diagonal ๐•œ f).kronecker (diagonal ๐•œ g)).log = (diagonal ๐•œ f).log.kronecker (diagonal ๐•œ g).supportProj + (diagonal ๐•œ f).supportProj.kronecker (diagonal ๐•œ g).log
          theorem HermitianMat.log_kron_with_proj {d : Type u_1} {dโ‚‚ : Type u_2} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [Fintype dโ‚‚] [DecidableEq dโ‚‚] [RCLike ๐•œ] {A : HermitianMat d ๐•œ} {B : HermitianMat dโ‚‚ ๐•œ} :

          Generalization of HermitianMat.log_kron for possibly singular matrices.

          theorem HermitianMat.log_kron {d : Type u_1} {dโ‚‚ : Type u_2} {๐•œ : Type u_3} [Fintype d] [DecidableEq d] [Fintype dโ‚‚] [DecidableEq dโ‚‚] [RCLike ๐•œ] {A : HermitianMat d ๐•œ} {B : HermitianMat dโ‚‚ ๐•œ} [A.NonSingular] [B.NonSingular] :

          The matrix logarithm of the Kronecker product of two nonsingular Hermitian matrices is the sum of the Kronecker products of their logarithms with the identity matrix.