Documentation

Monlib.LinearAlgebra.Ips.MatIps

The inner product space on finite dimensional C*-algebras #

This file contains some basic results on the inner product space on finite dimensional C*-algebras.

theorem linear_functional_right_hMul {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] [StarMul A] {φ : A →ₗ[R] R} (x y z : A) :
φ (star (x * y) * z) = φ (star y * (star x * z))

A lemma that states the right multiplication property of a linear functional.

theorem linear_functional_left_hMul {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] [StarMul A] {φ : A →ₗ[R] R} (x y z : A) :
φ (star x * (y * z)) = φ (star (star y * x) * z)

A lemma that states the left multiplication property of a linear functional.

noncomputable def Module.Dual.pi.matrixBlock {k : Type u_2} [Fintype k] [DecidableEq k] {s : k → Type u_3} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] (ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)) (i : k) :
Matrix (s i) (s i) ℂ

A function that returns the direct sum of matrices for each index of type 'i'.

Equations
Instances For
    theorem inner_pi_eq_sum {k : Type u_3} [Fintype k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Module.Dual ℂ (Matrix (s i) (s i) ℂ)} [∀ (i : k), (ψ i).IsFaithfulPosMap] (x y : PiMat ℂ k s) :
    inner ℂ x y = ∑ i : k, inner ℂ (x i) (y i)

    A lemma that states the inner product of two direct sum matrices is the sum of the inner products of their components.

    theorem blockDiagonal'_includeBlock_trace' {R : Type u_2} {k : Type u_3} [CommSemiring R] [Fintype k] [DecidableEq k] {s : k → Type u_4} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] (j : k) (x : Matrix (s j) (s j) R) :
    theorem Module.Dual.pi.matrixBlock_apply {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} {i : k} :
    matrixBlock ψ i = (ψ i).matrix
    def inclPi {k : Type u_2} [DecidableEq k] {s : k → Type u_3} {i : k} (x : s i → ℂ) :
    (j : k) × s j → ℂ
    Equations
    Instances For
      def exclPi {k : Type u_2} {s : k → Type u_3} (x : (j : k) × s j → ℂ) (i : k) :
      s i → ℂ
      Equations
      Instances For
        theorem Module.Dual.pi.apply'' {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] (ψ : (i : k) → Matrix (s i) (s i) ℂ →ₗ[ℂ] ℂ) (x : PiMat ℂ k s) :
        theorem Module.Dual.pi.apply_eq_of {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] (ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)) (x : PiMat ℂ k s) (h : ∀ (a : PiMat ℂ k s), (pi ψ) a = (Matrix.blockDiagonal' x * Matrix.blockDiagonal' a).trace) :
        theorem unitary.inj_hMul {A : Type u_2} [Monoid A] [StarMul A] (U : ↥(unitary A)) (x y : A) :
        x = y ↔ x * ↑U = y * ↑U

        Section single_block #

        Equations
        • ⋯ = ⋯
        Instances For
          theorem Module.Dual.IsFaithfulPosMap.hMul_right {n : Type u_2} [DecidableEq n] [Fintype n] {φ : Dual ℂ (Matrix n n ℂ)} (hφ : φ.IsFaithfulPosMap) (x y z : Matrix n n ℂ) :
          φ (x.conjTranspose * (y * z)) = φ ((x * (φ.matrix * z.conjTranspose * φ.matrix⁻¹)).conjTranspose * y)
          theorem Module.Dual.IsFaithfulPosMap.inner_left_conj {n : Type u_2} [DecidableEq n] [Fintype n] {φ : Dual ℂ (Matrix n n ℂ)} (hφ : φ.IsFaithfulPosMap) (x y z : Matrix n n ℂ) :
          inner ℂ x (y * z) = inner ℂ (x * (φ.matrix * z.conjTranspose * φ.matrix⁻¹)) y
          theorem Module.Dual.IsFaithfulPosMap.hMul_left {n : Type u_2} [DecidableEq n] [Fintype n] {φ : Dual ℂ (Matrix n n ℂ)} (hφ : φ.IsFaithfulPosMap) (x y z : Matrix n n ℂ) :
          φ ((x * y).conjTranspose * z) = φ (x.conjTranspose * (z * (φ.matrix * y.conjTranspose * φ.matrix⁻¹)))
          theorem Module.Dual.IsFaithfulPosMap.inner_right_conj {n : Type u_2} [DecidableEq n] [Fintype n] {φ : Dual ℂ (Matrix n n ℂ)} (hφ : φ.IsFaithfulPosMap) (x y z : Matrix n n ℂ) :
          inner ℂ (x * y) z = inner ℂ x (z * (φ.matrix * y.conjTranspose * φ.matrix⁻¹))

          The adjoint of a star-algebraic equivalence $f$ on matrix algebras is given by $$f^*\colon x \mapsto f^{-1}(x Q) Q^{-1},$$ where $Q$ is hφ.matrix.

          Let f be a star-algebraic equivalence on matrix algebras. Then tfae:

          • f φ.matrix = φ.matrix,
          • f.adjoint = f⁻¹,
          • φ ∘ f = φ,
          • ∀ x y, ⟪f x, f y⟫_ℂ = ⟪x, y⟫_ℂ,
          • ∀ x, ‖f x‖ = ‖x‖,
          • φ.matrix commutes with f.unitary.
          noncomputable def Module.Dual.IsFaithfulPosMap.basis {n : Type u_2} [DecidableEq n] [Fintype n] {φ : Dual ℂ (Matrix n n ℂ)} (hφ : φ.IsFaithfulPosMap) :
          Basis (n × n) ℂ (Matrix n n ℂ)
          Equations
          Instances For
            theorem Module.Dual.IsFaithfulPosMap.basis_apply {n : Type u_2} [DecidableEq n] [Fintype n] {φ : Dual ℂ (Matrix n n ℂ)} (hφ : φ.IsFaithfulPosMap) (ij : n × n) :
            hφ.basis ij = Matrix.single ij.1 ij.2 1 * ⋯.rpow (-(1 / 2))
            noncomputable def Module.Dual.IsFaithfulPosMap.toMatrixLinEquiv {n : Type u_2} {n₂ : Type u_3} [DecidableEq n] [DecidableEq n₂] [Fintype n] [Fintype n₂] {φ : Dual ℂ (Matrix n n ℂ)} {ψ : Dual ℂ (Matrix n₂ n₂ ℂ)} (hφ : φ.IsFaithfulPosMap) (hψ : ψ.IsFaithfulPosMap) :
            (Matrix n n ℂ →ₗ[ℂ] Matrix n₂ n₂ ℂ) ≃ₗ[ℂ] Matrix (n₂ × n₂) (n × n) ℂ
            Equations
            Instances For
              noncomputable def Module.Dual.IsFaithfulPosMap.toMatrix {n : Type u_2} [DecidableEq n] [Fintype n] {φ : Dual ℂ (Matrix n n ℂ)} (hφ : φ.IsFaithfulPosMap) :
              Equations
              Instances For
                noncomputable def Module.Dual.IsFaithfulPosMap.orthonormalBasis {n : Type u_2} [DecidableEq n] [Fintype n] {φ : Dual ℂ (Matrix n n ℂ)} (hφ : φ.IsFaithfulPosMap) :
                Equations
                Instances For
                  theorem Module.Dual.IsFaithfulPosMap.orthonormalBasis_apply {n : Type u_2} [DecidableEq n] [Fintype n] {φ : Dual ℂ (Matrix n n ℂ)} (hφ : φ.IsFaithfulPosMap) (ij : n × n) :
                  hφ.orthonormalBasis ij = Matrix.single ij.1 ij.2 1 * ⋯.rpow (-(1 / 2))
                  theorem Module.Dual.IsFaithfulPosMap.inner_coord {n : Type u_2} [DecidableEq n] [Fintype n] {φ : Dual ℂ (Matrix n n ℂ)} (hφ : φ.IsFaithfulPosMap) (ij : n × n) (y : Matrix n n ℂ) :
                  inner ℂ (hφ.orthonormalBasis ij) y = (y * ⋯.rpow (1 / 2)) ij.1 ij.2
                  theorem Module.Dual.IsFaithfulPosMap.basis_repr_apply {n : Type u_2} [DecidableEq n] [Fintype n] {φ : Dual ℂ (Matrix n n ℂ)} (hφ : φ.IsFaithfulPosMap) (x : Matrix n n ℂ) (ij : n × n) :
                  (hφ.basis.repr x) ij = inner ℂ (hφ.basis ij) x
                  theorem Module.Dual.IsFaithfulPosMap.toMatrixLinEquiv_symm_apply {n : Type u_2} {n₂ : Type u_3} [DecidableEq n] [DecidableEq n₂] [Fintype n] [Fintype n₂] {φ : Dual ℂ (Matrix n n ℂ)} {ψ : Dual ℂ (Matrix n₂ n₂ ℂ)} (hφ : φ.IsFaithfulPosMap) (hψ : ψ.IsFaithfulPosMap) (x : Matrix (n₂ × n₂) (n × n) ℂ) :
                  (hφ.toMatrixLinEquiv hψ).symm x = ↑(∑ i : n₂, ∑ j : n₂, ∑ k : n, ∑ l : n, x (i, j) (k, l) • ((rankOne ℂ) (hψ.basis (i, j))) (hφ.basis (k, l)))
                  @[simp]
                  theorem AlgEquiv.toLinearEquiv_coe {R : Type u_2} {M₁ : Type u_3} {M₂ : Type u_4} [CommSemiring R] [Semiring M₁] [Algebra R M₁] [Semiring M₂] [Algebra R M₂] (φ : M₁ ≃ₐ[R] M₂) :
                  φ.toLinearEquiv = ↑φ
                  theorem Module.Dual.IsFaithfulPosMap.toMatrix_symm_apply {n : Type u_2} [DecidableEq n] [Fintype n] {φ : Dual ℂ (Matrix n n ℂ)} (hφ : φ.IsFaithfulPosMap) (x : Matrix (n × n) (n × n) ℂ) :
                  hφ.toMatrix.symm x = ↑(∑ i : n, ∑ j : n, ∑ k : n, ∑ l : n, x (i, j) (k, l) • ((rankOne ℂ) (hφ.basis (i, j))) (hφ.basis (k, l)))
                  theorem Module.Dual.eq_rankOne_of_faithful_pos_map {n : Type u_2} {n₂ : Type u_3} [DecidableEq n] [DecidableEq n₂] [Fintype n] [Fintype n₂] {φ : Dual ℂ (Matrix n n ℂ)} {ψ : Dual ℂ (Matrix n₂ n₂ ℂ)} (hφ : φ.IsFaithfulPosMap) (hψ : ψ.IsFaithfulPosMap) (x : Matrix n n ℂ →ₗ[ℂ] Matrix n₂ n₂ ℂ) :
                  x = ↑(∑ i : n₂, ∑ j : n₂, ∑ k : n, ∑ l : n, (hφ.toMatrixLinEquiv hψ) x (i, j) (k, l) • ((rankOne ℂ) (hψ.basis (i, j))) (hφ.basis (k, l)))

                  Section direct_sum #

                  theorem LinearMap.sum_single_comp_proj {R : Type u_2} {ι : Type u_3} [Fintype ι] [DecidableEq ι] [Semiring R] {φ : ι → Type u_4} [(i : ι) → AddCommMonoid (φ i)] [(i : ι) → Module R (φ i)] :
                  ∑ i : ι, single R φ i ∘ₗ proj i = id
                  theorem LinearMap.lrsum_eq_single_proj_lrcomp {k : Type u_3} {k₂ : Type u_4} [Fintype k] [Fintype k₂] [DecidableEq k] [DecidableEq k₂] {s : k → Type u_2} {s₂ : k₂ → Type u_1} (f : PiMat ℂ k s →ₗ[ℂ] PiMat ℂ k₂ s₂) :
                  ∑ r : k₂, ∑ p : k, single ℂ (fun (r : k₂) => Mat ℂ (s₂ r)) r ∘ₗ proj r ∘ₗ f ∘ₗ single ℂ (fun (j : k) => Mat ℂ (s j)) p ∘ₗ proj p = f
                  theorem Module.Dual.pi.IsFaithfulPosMap.inner_eq {k : Type u_3} [Fintype k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} [∀ (i : k), (ψ i).IsFaithfulPosMap] (x y : PiMat ℂ k s) :
                  inner ℂ x y = (pi ψ) (star x * y)
                  theorem Module.Dual.pi.IsFaithfulPosMap.inner_eq' {k : Type u_3} [Fintype k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} [∀ (i : k), (ψ i).IsFaithfulPosMap] (x y : PiMat ℂ k s) :
                  inner ℂ x y = ∑ i : k, ((ψ i).matrix * Matrix.conjTranspose (x i) * y i).trace
                  theorem Module.Dual.pi.IsFaithfulPosMap.inner_left_hMul {k : Type u_3} [Fintype k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} [∀ (i : k), (ψ i).IsFaithfulPosMap] (x y z : PiMat ℂ k s) :
                  inner ℂ (x * y) z = inner ℂ y (star x * z)
                  theorem Module.Dual.pi.IsFaithfulPosMap.hMul_right {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) (x y z : PiMat ℂ k s) :
                  (pi ψ) (star x * (y * z)) = (pi ψ) (star (x * (matrixBlock ψ * star z * (matrixBlock ψ)⁻¹)) * y)
                  theorem Module.Dual.pi.IsFaithfulPosMap.inner_left_conj {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] (x y z : PiMat ℂ k s) :
                  inner ℂ x (y * z) = inner ℂ (x * (matrixBlock ψ * star z * (matrixBlock ψ)⁻¹)) y
                  theorem Module.Dual.pi.IsFaithfulPosMap.inner_right_hMul {k : Type u_3} [Fintype k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} [∀ (i : k), (ψ i).IsFaithfulPosMap] (x y z : PiMat ℂ k s) :
                  inner ℂ x (y * z) = inner ℂ (star y * x) z
                  theorem Module.Dual.pi.IsFaithfulPosMap.adjoint_eq {k : Type u_3} [Fintype k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] :
                  noncomputable def Module.Dual.pi.IsFaithfulPosMap.basis {k : Type u_2} [Fintype k] {s : k → Type u_3} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) :
                  Basis ((i : k) × s i × s i) ℂ (PiMat ℂ k s)
                  Equations
                  Instances For
                    theorem Module.Dual.pi.IsFaithfulPosMap.basis_apply {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) (ijk : (i : k) × s i × s i) :
                    (IsFaithfulPosMap.basis hψ) ijk = Matrix.includeBlock (Matrix.single ijk.snd.1 ijk.snd.2 1 * ⋯.rpow (-(1 / 2)))
                    theorem Module.Dual.pi.IsFaithfulPosMap.basis_apply' {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) (i : k) (j l : s i) :
                    theorem Module.Dual.pi.IsFaithfulPosMap.includeBlock_left_inner {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) {i : k} (x : Matrix (s i) (s i) ℂ) (y : PiMat ℂ k s) :
                    theorem Module.Dual.pi.IsFaithfulPosMap.includeBlock_inner_same {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] {i : k} {x y : Matrix (s i) (s i) ℂ} :
                    theorem Module.Dual.pi.IsFaithfulPosMap.includeBlock_inner_same' {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] {i j : k} {x : Matrix (s i) (s i) ℂ} {y : Matrix (s j) (s j) ℂ} (h : i = j) :
                    theorem Module.Dual.pi.IsFaithfulPosMap.includeBlock_inner_block_left {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] {j : k} {x : PiMat ℂ k s} {y : Matrix (s j) (s j) ℂ} {i : k} :
                    theorem Module.Dual.pi.IsFaithfulPosMap.includeBlock_inner_ne_same {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] {i j : k} {x : Matrix (s i) (s i) ℂ} {y : Matrix (s j) (s j) ℂ} (h : i ≠ j) :
                    theorem Module.Dual.pi.IsFaithfulPosMap.basis.apply_cast_eq_mpr {k : Type u_3} {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) {i j : k} {a : s j × s j} (h : i = j) :
                    ⋯.basis (⋯.mpr a) = ⋯.mpr (⋯.basis a)
                    theorem Module.Dual.pi.IsFaithfulPosMap.basis_is_orthonormal {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] :
                    noncomputable def Module.Dual.pi.IsFaithfulPosMap.orthonormalBasis {k : Type u_2} [Fintype k] [DecidableEq k] {s : k → Type u_3} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) :
                    OrthonormalBasis ((i : k) × s i × s i) ℂ (PiMat ℂ k s)
                    Equations
                    Instances For
                      theorem Module.Dual.pi.IsFaithfulPosMap.orthonormalBasis_apply {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) {ijk : (i : k) × s i × s i} :
                      theorem Module.Dual.pi.IsFaithfulPosMap.orthonormalBasis_apply' {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) {i : k} {j l : s i} :
                      theorem Module.Dual.pi.IsFaithfulPosMap.inner_coord {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) (ijk : (i : k) × s i × s i) (y : PiMat ℂ k s) :
                      inner ℂ ((IsFaithfulPosMap.basis hψ) ijk) y = (y ijk.fst * ⋯.rpow (1 / 2)) ijk.snd.1 ijk.snd.2
                      theorem Module.Dual.pi.IsFaithfulPosMap.basis_repr_apply {k : Type u_3} [Fintype k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] (x : PiMat ℂ k s) (ijk : (i : k) × s i × s i) :
                      ((IsFaithfulPosMap.basis hψ).repr x) ijk = inner ℂ (⋯.basis ijk.snd) (x ijk.fst)
                      theorem Module.Dual.pi.IsFaithfulPosMap.MatrixBlock.isSelfAdjoint {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) :
                      noncomputable def Module.Dual.pi.IsFaithfulPosMap.matrixBlockInvertible {k : Type u_2} [Fintype k] [DecidableEq k] {s : k → Type u_3} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) :
                      Equations
                      Instances For
                        theorem Module.Dual.pi.IsFaithfulPosMap.matrixBlock_inv_hMul_self {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] :
                        theorem Module.Dual.pi.IsFaithfulPosMap.matrixBlock_self_hMul_inv {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) :
                        noncomputable def Module.Dual.pi.IsFaithfulPosMap.toMatrixLinEquiv {k : Type u_2} {k₂ : Type u_3} [Fintype k] [Fintype k₂] [DecidableEq k] {s : k → Type u_4} {s₂ : k₂ → Type u_1} [(i : k) → Fintype (s i)] [(i : k₂) → Fintype (s₂ i)] [(i : k) → DecidableEq (s i)] [(i : k₂) → DecidableEq (s₂ i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} {φ : (i : k₂) → Dual ℂ (Matrix (s₂ i) (s₂ i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) (hφ : ∀ (i : k₂), (φ i).IsFaithfulPosMap) :
                        (PiMat ℂ k s →ₗ[ℂ] PiMat ℂ k₂ s₂) ≃ₗ[ℂ] Matrix ((i : k₂) × s₂ i × s₂ i) ((i : k) × s i × s i) ℂ
                        Equations
                        Instances For
                          noncomputable def Module.Dual.pi.IsFaithfulPosMap.toMatrix {k : Type u_2} [Fintype k] [DecidableEq k] {s : k → Type u_3} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) :
                          (PiMat ℂ k s →ₗ[ℂ] PiMat ℂ k s) ≃ₐ[ℂ] Matrix ((i : k) × s i × s i) ((i : k) × s i × s i) ℂ
                          Equations
                          Instances For
                            theorem Module.Dual.pi.IsFaithfulPosMap.toMatrixLinEquiv_eq_toMatrix {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) :
                            noncomputable def Module.Dual.pi.IsFaithfulPosMap.isBlockDiagonalBasis {k : Type u_2} [Fintype k] [DecidableEq k] {s : k → Type u_3} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) :
                            Basis ((i : k) × s i × s i) ℂ { x : Matrix ((i : k) × s i) ((i : k) × s i) ℂ // x.IsBlockDiagonal }
                            Equations
                            Instances For
                              @[simp]
                              theorem Module.Dual.pi.IsFaithfulPosMap.isBlockDiagonalBasis_repr {k : Type u_2} [Fintype k] [DecidableEq k] {s : k → Type u_3} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} (hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap) :
                              theorem Module.Dual.pi.IsFaithfulPosMap.toMatrixLinEquiv_apply' {k : Type u_3} {k₂ : Type u_4} [Fintype k] [Fintype k₂] [DecidableEq k] {s : k → Type u_2} {s₂ : k₂ → Type u_1} [(i : k) → Fintype (s i)] [(i : k₂) → Fintype (s₂ i)] [(i : k) → DecidableEq (s i)] [(i : k₂) → DecidableEq (s₂ i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} {φ : (i : k₂) → Dual ℂ (Matrix (s₂ i) (s₂ i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] [hφ : ∀ (i : k₂), (φ i).IsFaithfulPosMap] (f : PiMat ℂ k s →ₗ[ℂ] PiMat ℂ k₂ s₂) (r : (r : k₂) × s₂ r × s₂ r) (l : (r : k) × s r × s r) :
                              (toMatrixLinEquiv hψ hφ) f r l = (f (Matrix.includeBlock (⋯.basis l.snd)) r.fst * ⋯.rpow (1 / 2)) r.snd.1 r.snd.2
                              theorem Module.Dual.pi.IsFaithfulPosMap.toMatrix_apply' {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] (f : PiMat ℂ k s →ₗ[ℂ] PiMat ℂ k s) (r l : (r : k) × s r × s r) :
                              (toMatrix ⋯) f r l = (f (Matrix.includeBlock (⋯.basis l.snd)) r.fst * ⋯.rpow (1 / 2)) r.snd.1 r.snd.2
                              theorem inner_single_left {n : Type u_2} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (i j : n) (x : Matrix n n ℂ) :
                              inner ℂ (Matrix.single i j 1) x = (x * φ.matrix) i j
                              theorem inner_single_single {n : Type u_2} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (i j k l : n) :
                              inner ℂ (Matrix.single i j 1) (Matrix.single k l 1) = if i = k then φ.matrix l j else 0
                              theorem LinearMap.mul'_adjoint {n : Type u_2} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x : Matrix n n ℂ) :
                              (adjoint (mul' ℂ (Matrix n n ℂ))) x = ∑ i : n, ∑ j : n, ∑ k : n, ∑ l : n, (x i l * φ.matrix⁻¹ k j) • Matrix.single i j 1 ⊗ₜ[ℂ] Matrix.single k l 1
                              theorem Matrix.linearMap_ext_iff_inner_map {n : Type u_2} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] {x y : Matrix n n ℂ →ₗ[ℂ] Matrix n n ℂ} :
                              x = y ↔ ∀ (u v : Matrix n n ℂ), inner ℂ (x u) v = inner ℂ (y u) v
                              theorem Matrix.linearMap_ext_iff_map_inner {n : Type u_2} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] {x y : Matrix n n ℂ →ₗ[ℂ] Matrix n n ℂ} :
                              x = y ↔ ∀ (u v : Matrix n n ℂ), inner ℂ v (x u) = inner ℂ v (y u)
                              theorem Matrix.inner_conj_Q {n : Type u_2} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (a x : Matrix n n ℂ) :
                              theorem Matrix.inner_star_right {n : Type u_2} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (b y : Matrix n n ℂ) :
                              theorem Matrix.inner_star_left {n : Type u_2} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (a x : Matrix n n ℂ) :
                              theorem one_inner {n : Type u_2} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (a : Matrix n n ℂ) :
                              inner ℂ 1 a = (φ.matrix * a).trace
                              theorem Module.Dual.IsFaithfulPosMap.map_star {n : Type u_2} [Fintype n] [DecidableEq n] {φ : Dual ℂ (Matrix n n ℂ)} (hφ : φ.IsFaithfulPosMap) (x : Matrix n n ℂ) :
                              φ (star x) = star (φ x)
                              theorem includeBlock_adjoint {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Module.Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] {i : k} (x : PiMat ℂ k s) :
                              theorem pi_inner_single_left {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Module.Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] (i : k) (j l : s i) (x : PiMat ℂ k s) :
                              inner ℂ (Matrix.single ⟨i, j⟩ ⟨i, l⟩ 1).blockDiag' x = (x i * (ψ i).matrix) j l
                              theorem eq_mpr_single {k : Type u_2} {s : k → Type u_3} [(i : k) → DecidableEq (s i)] {i j : k} {b c : s j} (h₁ : i = j) :
                              ⋯.mpr (Matrix.single b c 1) = Matrix.single (⋯.mpr b) (⋯.mpr c) 1
                              theorem pi_inner_single_single {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Module.Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] {i j : k} (a b : s i) (c d : s j) :
                              inner ℂ (Matrix.single ⟨i, a⟩ ⟨i, b⟩ 1).blockDiag' (Matrix.single ⟨j, c⟩ ⟨j, d⟩ 1).blockDiag' = if h : i = j then if a = ⋯.mpr c then (ψ i).matrix (⋯.mpr d) b else 0 else 0
                              theorem pi_inner_single_single_same {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Module.Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] {i : k} (a b c d : s i) :
                              theorem pi_inner_single_single_ne {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Module.Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] {i j : k} (h : i ≠ j) (a b : s i) (c d : s j) :
                              theorem LinearMap.pi_mul'_adjoint_single_block {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Module.Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] {i : k} (x : Matrix (s i) (s i) ℂ) :
                              theorem LinearMap.pi_mul'_adjoint {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Module.Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] (x : PiMat ℂ k s) :
                              (adjoint (mul' ℂ (PiMat ℂ k s))) x = ∑ r : k, ∑ a : s r, ∑ b : s r, ∑ c : s r, ∑ d : s r, (x r a d * (Module.Dual.pi.matrixBlock ψ r)⁻¹ c b) • (Matrix.single ⟨r, a⟩ ⟨r, b⟩ 1).blockDiag' ⊗ₜ[ℂ] (Matrix.single ⟨r, c⟩ ⟨r, d⟩ 1).blockDiag'
                              theorem LinearMap.pi_mul'_apply_includeBlock {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {i : k} (x : TensorProduct ℂ (Matrix (s i) (s i) ℂ) (Matrix (s i) (s i) ℂ)) :
                              theorem LinearMap.pi_mul'_comp_mul'_adjoint {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Module.Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] (x : PiMat ℂ k s) :
                              (mul' ℂ (PiMat ℂ k s)) ((adjoint (mul' ℂ (PiMat ℂ k s))) x) = ∑ i : k, (ψ i).matrix⁻¹.trace • Matrix.includeBlock (x i)
                              theorem Matrix.smul_inj_mul_one {n : Type u_2} [Fintype n] [DecidableEq n] [Nonempty n] (x y : ℂ) :
                              x • 1 = y • 1 ↔ x = y
                              theorem LinearMap.pi_mul'_comp_mul'_adjoint_eq_smul_id_iff {k : Type u_3} [Fintype k] [DecidableEq k] {s : k → Type u_2} [(i : k) → Fintype (s i)] [(i : k) → DecidableEq (s i)] {ψ : (i : k) → Module.Dual ℂ (Matrix (s i) (s i) ℂ)} [hψ : ∀ (i : k), (ψ i).IsFaithfulPosMap] [∀ (i : k), Nontrivial (s i)] (α : ℂ) :
                              mul' ℂ (PiMat ℂ k s) ∘ₗ adjoint (mul' ℂ (PiMat ℂ k s)) = α • 1 ↔ ∀ (i : k), (ψ i).matrix⁻¹.trace = α