Some results on the Hilbert space on finite-dimensional C*-algebras #
This file contains some results on the Hilbert space on finite-dimensional C*-algebras (so just a direct sum of matrix algebras over ℂ).
Section single_block #
theorem
inner_std_basis_matrix_left
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(i j : n)
(x : matrix n n ℂ) :
has_inner.inner (matrix.std_basis_matrix i j 1) x = x.mul φ.matrix i j
theorem
inner_std_basis_matrix_std_basis_matrix
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(i j k l : n) :
has_inner.inner (matrix.std_basis_matrix i j 1) (matrix.std_basis_matrix k l 1) = ite (i = k) (φ.matrix l j) 0
theorem
linear_map.mul'_adjoint
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(x : matrix n n ℂ) :
⇑(⇑linear_map.adjoint (linear_map.mul' ℂ (matrix n n ℂ))) x = finset.univ.sum (λ (i : n), finset.univ.sum (λ (j : n), finset.univ.sum (λ (k : n), finset.univ.sum (λ (l : n), (x i l * (φ.matrix)⁻¹ k j) • matrix.std_basis_matrix i j 1 ⊗ₜ[ℂ] matrix.std_basis_matrix k l 1))))
we can expres the nontracial adjoint of linear_map.mul'
by
$$m^*(x) = \sum_{i,j,k,l} x_{il}Q^{-1}_{kj}(e_{ij} \otimes_t e_{kl})$$
theorem
matrix.linear_map_ext_iff_inner_map
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
{x y : matrix n n ℂ →ₗ[ℂ] matrix n n ℂ} :
x = y ↔ ∀ (u v : matrix n n ℂ), has_inner.inner (⇑x u) v = has_inner.inner (⇑y u) v
theorem
matrix.linear_map_ext_iff_map_inner
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
{x y : matrix n n ℂ →ₗ[ℂ] matrix n n ℂ} :
x = y ↔ ∀ (u v : matrix n n ℂ), has_inner.inner v (⇑x u) = has_inner.inner v (⇑y u)
theorem
matrix.inner_conj_Q
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(a x : matrix n n ℂ) :
has_inner.inner x ((φ.matrix.mul a).mul (φ.matrix)⁻¹) = has_inner.inner (x.mul a.conj_transpose) 1
theorem
matrix.inner_star_right
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(b y : matrix n n ℂ) :
has_inner.inner b y = has_inner.inner 1 (b.conj_transpose.mul y)
theorem
matrix.inner_star_left
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(a x : matrix n n ℂ) :
has_inner.inner a x = has_inner.inner (x.conj_transpose.mul a) 1
theorem
one_inner
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(a : matrix n n ℂ) :
has_inner.inner 1 a = (φ.matrix.mul a).trace
theorem
module.dual.is_faithful_pos_map.map_star
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
(hφ : φ.is_faithful_pos_map)
(x : matrix n n ℂ) :
⇑φ (has_star.star x) = has_star.star (⇑φ x)
theorem
nontracial.unit_adjoint_eq
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map] :
⇑linear_map.adjoint (algebra.linear_map ℂ (matrix n n ℂ)) = φ
theorem
qam.nontracial.mul_comp_mul_adjoint
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map] :
theorem
module.dual.is_faithful_pos_map.inner_coord'
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(ij : n × n)
(x : matrix n n ℂ) :
theorem
rank_one_to_matrix
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(a b : matrix n n ℂ) :
⇑(_.to_matrix) ↑(rank_one a b) = (matrix.col (⇑matrix.reshape (a.mul (_.rpow (1 / 2))))).mul (matrix.col (⇑matrix.reshape (b.mul (_.rpow (1 / 2))))).conj_transpose
noncomputable
def
module.dual.is_faithful_pos_map.sig
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
(hφ : φ.is_faithful_pos_map)
(z : ℝ) :
theorem
module.dual.is_faithful_pos_map.sig_symm_eq
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
(hφ : φ.is_faithful_pos_map)
(z : ℝ) :
noncomputable
def
module.dual.is_faithful_pos_map.Psi_to_fun'
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
(hφ : φ.is_faithful_pos_map)
(t s : ℝ) :
Equations
- hφ.Psi_to_fun' t s = {to_fun := λ (x : matrix n n ℂ →ₗ[ℂ] matrix n n ℂ), finset.univ.sum (λ (i : n), finset.univ.sum (λ (j : n), finset.univ.sum (λ (k : n), finset.univ.sum (λ (l : n), ⇑(hφ.to_matrix) x (i, j) (k, l) • ⇑(hφ.sig t) (⇑(hφ.basis) (i, j)) ⊗ₜ[ℂ] ⇑op (⇑(hφ.sig s) (⇑(hφ.basis) (k, l))).conj_transpose)))), map_add' := _, map_smul' := _}
theorem
module.dual.is_faithful_pos_map.sig_conj_transpose
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
(hφ : φ.is_faithful_pos_map)
(t : ℝ)
(x : matrix n n ℂ) :
(⇑(hφ.sig t) x).conj_transpose = ⇑(hφ.sig (-t)) x.conj_transpose
theorem
module.dual.is_faithful_pos_map.Psi_to_fun'_apply
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(t s : ℝ)
(x y : matrix n n ℂ) :
noncomputable
def
module.dual.is_faithful_pos_map.Psi_inv_fun'
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
(hφ : φ.is_faithful_pos_map)
(t s : ℝ) :
Equations
- hφ.Psi_inv_fun' t s = let _inst : fact φ.is_faithful_pos_map := _ in {to_fun := λ (x : tensor_product ℂ (matrix n n ℂ) (matrix n n ℂ)ᵐᵒᵖ), (finset.univ ×ˢ finset.univ).sum (λ (i : n × n), (finset.univ ×ˢ finset.univ).sum (λ (j : n × n), ⇑(⇑((hφ.basis.tensor_product hφ.basis.mul_opposite).repr) x) (i, j) • ↑(rank_one (⇑(hφ.sig (-t)) (⇑(hφ.basis) (i.fst, i.snd))) (⇑(hφ.sig (-s)) (⇑(hφ.basis) (j.fst, j.snd)).conj_transpose)))), map_add' := _, map_smul' := _}
theorem
module.dual.is_faithful_pos_map.Psi_inv_fun'_apply
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(t s : ℝ)
(x : matrix n n ℂ)
(y : (matrix n n ℂ)ᵐᵒᵖ) :
theorem
module.dual.is_faithful_pos_map.sig_zero
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
(hφ : φ.is_faithful_pos_map)
(x : matrix n n ℂ) :
theorem
module.dual.is_faithful_pos_map.Psi_left_inv'
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
(hφ : φ.is_faithful_pos_map)
(t s : ℝ)
(A : matrix n n ℂ →ₗ[ℂ] matrix n n ℂ) :
⇑(hφ.Psi_inv_fun' t s) (⇑(hφ.Psi_to_fun' t s) A) = A
theorem
module.dual.is_faithful_pos_map.Psi_right_inv'
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
(hφ : φ.is_faithful_pos_map)
(t s : ℝ)
(x : matrix n n ℂ)
(y : (matrix n n ℂ)ᵐᵒᵖ) :
@[simp]
theorem
module.dual.is_faithful_pos_map.Psi_apply
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
(hφ : φ.is_faithful_pos_map)
(t s : ℝ)
(x : matrix n n ℂ →ₗ[ℂ] matrix n n ℂ) :
⇑(hφ.Psi t s) x = ⇑(hφ.Psi_to_fun' t s) x
noncomputable
def
module.dual.is_faithful_pos_map.Psi
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
(hφ : φ.is_faithful_pos_map)
(t s : ℝ) :
this defines the linear equivalence from linear maps on $M_n$ to $M_n\otimes M_n^\textnormal{op}$, i.e., $$\Psi_{t,s}\colon \mathcal{L}(M_n) \cong_{\texttt{l}} M_n \otimes M_n^\textnormal{op}$$
@[simp]
theorem
module.dual.is_faithful_pos_map.Psi_symm_apply
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
(hφ : φ.is_faithful_pos_map)
(t s : ℝ)
(x : tensor_product ℂ (matrix n n ℂ) (matrix n n ℂ)ᵐᵒᵖ) :
theorem
module.dual.is_faithful_pos_map.Psi_0_0_eq
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(x : matrix n n ℂ →ₗ[ℂ] matrix n n ℂ) :
⇑(_.Psi 0 0) x = ⇑(tensor_product.map x op) (⇑(⇑linear_map.adjoint (linear_map.mul' ℂ (matrix n n ℂ))) 1)
theorem
module.dual.is_faithful_pos_map.Psi_eq
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(t s : ℝ)
(x : matrix n n ℂ →ₗ[ℂ] matrix n n ℂ) :
⇑(_.Psi t s) x = ⇑(tensor_product.map (_.sig t).to_linear_map (op.comp ((_.sig (-s)).to_linear_map.comp unop))) (⇑(tensor_product.map x op) (⇑(⇑linear_map.adjoint (linear_map.mul' ℂ (matrix n n ℂ))) 1))
theorem
linear_map.mul_left_to_matrix
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
(hφ : φ.is_faithful_pos_map)
(x : matrix n n ℂ) :
⇑(hφ.to_matrix) (linear_map.mul_left ℂ x) = matrix.kronecker_map has_mul.mul x 1
theorem
linear_map.mul_right_to_matrix
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(x : matrix n n ℂ) :
⇑(_.to_matrix) (linear_map.mul_right ℂ x) = matrix.kronecker_map has_mul.mul 1 (⇑(_.sig (1 / 2)) x).transpose
theorem
nontracial.inner_symm
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(x y : matrix n n ℂ) :
has_inner.inner x y = has_inner.inner (⇑(_.sig (-1)) y.conj_transpose) x.conj_transpose
theorem
module.dual.is_faithful_pos_map.sig_adjoint
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
{t : ℝ} :
⇑linear_map.adjoint (_.sig t).to_linear_map = (_.sig t).to_linear_map
theorem
nontracial.inner_symm'
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(x y : matrix n n ℂ) :
has_inner.inner x y = has_inner.inner (⇑(_.sig (-(1 / 2))) y.conj_transpose) (⇑(_.sig (-(1 / 2))) x.conj_transpose)
theorem
module.dual.is_faithful_pos_map.basis_apply'
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(i j : n) :
theorem
sig_apply_pos_def_matrix
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(t s : ℝ) :
theorem
sig_apply_pos_def_matrix'
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(t : ℝ) :
theorem
linear_functional_comp_sig
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(t : ℝ) :
linear_map.comp φ (_.sig t).to_linear_map = φ
theorem
linear_functional_apply_sig
{n : Type u_1}
[fintype n]
[decidable_eq n]
{φ : module.dual ℂ (matrix n n ℂ)}
[hφ : fact φ.is_faithful_pos_map]
(t : ℝ)
(x : matrix n n ℂ) :
Section direct_sum #
theorem
include_block_adjoint
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
{i : k}
(x : Π (j : k), matrix (s j) (s j) ℂ) :
@[protected, instance]
def
pi.tensor_product_finite_dimensional
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)] :
finite_dimensional ℂ (tensor_product ℂ (Π (i : k), matrix (s i) (s i) ℂ) (Π (i : k), matrix (s i) (s i) ℂ))
theorem
pi_inner_std_basis_matrix_left
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(i : k)
(j l : s i)
(x : Π (i : k), matrix (s i) (s i) ℂ) :
has_inner.inner (matrix.std_basis_matrix ⟨i, j⟩ ⟨i, l⟩ 1).block_diag' x = (x i * (ψ i).matrix) j l
theorem
eq_mpr_std_basis_matrix
{k : Type u_1}
{s : k → Type u_2}
[Π (i : k), decidable_eq (s i)]
{i j : k}
{b c : s j}
(h₁ : i = j) :
_.mpr (matrix.std_basis_matrix b c 1) = matrix.std_basis_matrix (_.mpr b) (_.mpr c) 1
theorem
pi_inner_std_basis_matrix_std_basis_matrix
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
{i j : k}
(a b : s i)
(c d : s j) :
has_inner.inner (matrix.std_basis_matrix ⟨i, a⟩ ⟨i, b⟩ 1).block_diag' (matrix.std_basis_matrix ⟨j, c⟩ ⟨j, d⟩ 1).block_diag' = dite (i = j) (λ (h : i = j), ite (a = _.mpr c) ((ψ i).matrix (_.mpr d) b) 0) (λ (h : ¬i = j), 0)
theorem
pi_inner_std_basis_matrix_std_basis_matrix_same
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
{i : k}
(a b c d : s i) :
has_inner.inner (matrix.std_basis_matrix ⟨i, a⟩ ⟨i, b⟩ 1).block_diag' (matrix.std_basis_matrix ⟨i, c⟩ ⟨i, d⟩ 1).block_diag' = ite (a = c) ((ψ i).matrix d b) 0
theorem
pi_inner_std_basis_matrix_std_basis_matrix_ne
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
{i j : k}
(h : i ≠ j)
(a b : s i)
(c d : s j) :
has_inner.inner (matrix.std_basis_matrix ⟨i, a⟩ ⟨i, b⟩ 1).block_diag' (matrix.std_basis_matrix ⟨j, c⟩ ⟨j, d⟩ 1).block_diag' = 0
theorem
linear_map.pi_mul'_adjoint_single_block
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
{i : k}
(x : matrix (s i) (s i) ℂ) :
⇑(⇑linear_map.adjoint (linear_map.mul' ℂ (Π (i : k), matrix (s i) (s i) ℂ))) (⇑matrix.include_block x) = ⇑(tensor_product.map matrix.include_block matrix.include_block) (⇑(⇑linear_map.adjoint (linear_map.mul' ℂ (matrix (s i) (s i) ℂ))) x)
theorem
linear_map.pi_mul'_adjoint
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(x : Π (i : k), matrix (s i) (s i) ℂ) :
⇑(⇑linear_map.adjoint (linear_map.mul' ℂ (Π (i : k), matrix (s i) (s i) ℂ))) x = finset.univ.sum (λ (r : k), finset.univ.sum (λ (a : s r), finset.univ.sum (λ (b : s r), finset.univ.sum (λ (c : s r), finset.univ.sum (λ (d : s r), (x r a d * (module.dual.pi.matrix_block ψ r)⁻¹ c b) • (matrix.std_basis_matrix ⟨r, a⟩ ⟨r, b⟩ 1).block_diag' ⊗ₜ[ℂ] (matrix.std_basis_matrix ⟨r, c⟩ ⟨r, d⟩ 1).block_diag')))))
theorem
linear_map.pi_mul'_apply_include_block
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{i : k}
(x : tensor_product ℂ (matrix (s i) (s i) ℂ) (matrix (s i) (s i) ℂ)) :
⇑(linear_map.mul' ℂ (Π (i : k), matrix (s i) (s i) ℂ)) (⇑(tensor_product.map matrix.include_block matrix.include_block) x) = ⇑matrix.include_block (⇑(linear_map.mul' ℂ (matrix (s i) (s i) ℂ)) x)
theorem
linear_map.pi_mul'_comp_mul'_adjoint
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(x : Π (i : k), matrix (s i) (s i) ℂ) :
⇑(linear_map.mul' ℂ (Π (i : k), matrix (s i) (s i) ℂ)) (⇑(⇑linear_map.adjoint (linear_map.mul' ℂ (Π (i : k), matrix (s i) (s i) ℂ))) x) = finset.univ.sum (λ (i : k), ((ψ i).matrix)⁻¹.trace • ⇑matrix.include_block (x i))
theorem
linear_map.pi_mul'_comp_mul'_adjoint_eq_smul_id_iff
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
[∀ (i : k), nontrivial (s i)]
(α : ℂ) :
theorem
module.dual.pi.is_faithful_pos_map.inner_coord'
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
{i : k}
(ij : s i × s i)
(x : Π (i : k), matrix (s i) (s i) ℂ) :
has_inner.inner (⇑(module.dual.pi.is_faithful_pos_map.basis _) ⟨i, ij⟩) x = (x * λ (j : k), _.rpow (1 / 2)) i ij.fst ij.snd
theorem
module.dual.pi.is_faithful_pos_map.map_star
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
(hψ : ∀ (i : k), (ψ i).is_faithful_pos_map)
(x : Π (i : k), matrix (s i) (s i) ℂ) :
⇑(module.dual.pi ψ) (has_star.star x) = has_star.star (⇑(module.dual.pi ψ) x)
theorem
nontracial.pi.unit_adjoint_eq
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map] :
⇑linear_map.adjoint (algebra.linear_map ℂ (Π (i : k), matrix (s i) (s i) ℂ)) = module.dual.pi ψ
def
module.dual.pi.is_faithful_pos_map.matrix_is_pos_def
{k : Type u_1}
{s : k → Type u_2}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
(hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map)
(i : k) :
theorem
pi.pos_def.rpow_mul_rpow
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{a : Π (i : k), matrix (s i) (s i) ℂ}
(ha : ∀ (i : k), (a i).pos_def)
(r₁ r₂ : ℝ) :
pi.pos_def.rpow ha r₁ * pi.pos_def.rpow ha r₂ = pi.pos_def.rpow ha (r₁ + r₂)
theorem
pi.pos_def.rpow_zero
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{a : Π (i : k), matrix (s i) (s i) ℂ}
(ha : ∀ (i : k), (a i).pos_def) :
pi.pos_def.rpow ha 0 = 1
theorem
module.dual.pi.is_faithful_pos_map.include_block_right_inner
{k : Type u_1}
[fintype k]
[decidable_eq k]
{s : k → Type u_2}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
{i : k}
(y : Π (j : k), matrix (s j) (s j) ℂ)
(x : matrix (s i) (s i) ℂ) :
has_inner.inner y (⇑matrix.include_block x) = has_inner.inner (y i) x
theorem
pi_include_block_right_rank_one
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(a : Π (i : k), matrix (s i) (s i) ℂ)
{i : k}
(b : matrix (s i) (s i) ℂ)
(c : Π (i : k), matrix (s i) (s i) ℂ)
(j : k) :
⇑(rank_one a (⇑matrix.include_block b)) c j = has_inner.inner b (c i) • a j
theorem
pi_include_block_left_rank_one
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(b : Π (i : k), matrix (s i) (s i) ℂ)
{i : k}
(a : matrix (s i) (s i) ℂ)
(c : Π (i : k), matrix (s i) (s i) ℂ)
(j : k) :
noncomputable
def
module.dual.pi.is_faithful_pos_map.sig
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
(hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map)
(z : ℝ) :
Equations
- module.dual.pi.is_faithful_pos_map.sig hψ z = let hQ : ∀ (i : k), (ψ i).matrix.pos_def := _ in {to_fun := λ (x : Π (i : k), matrix (s i) (s i) ℂ), pi.pos_def.rpow hQ (-z) * x * pi.pos_def.rpow hQ z, inv_fun := λ (x : Π (i : k), matrix (s i) (s i) ℂ), pi.pos_def.rpow hQ z * x * pi.pos_def.rpow hQ (-z), left_inv := _, right_inv := _, map_mul' := _, map_add' := _, commutes' := _}
theorem
module.dual.pi.is_faithful_pos_map.sig_apply
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(z : ℝ)
(x : Π (i : k), matrix (s i) (s i) ℂ) :
⇑(module.dual.pi.is_faithful_pos_map.sig hψ z) x = pi.pos_def.rpow _ (-z) * x * pi.pos_def.rpow _ z
theorem
module.dual.pi.is_faithful_pos_map.sig_symm_apply
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(z : ℝ)
(x : Π (i : k), matrix (s i) (s i) ℂ) :
⇑((module.dual.pi.is_faithful_pos_map.sig hψ z).symm) x = pi.pos_def.rpow _ z * x * pi.pos_def.rpow _ (-z)
theorem
module.dual.pi.is_faithful_pos_map.sig_symm_eq
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
(hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map)
(z : ℝ) :
theorem
module.dual.pi.is_faithful_pos_map.sig_apply_single_block
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
(hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map)
(z : ℝ)
{i : k}
(x : matrix (s i) (s i) ℂ) :
⇑(module.dual.pi.is_faithful_pos_map.sig hψ z) (⇑matrix.include_block x) = ⇑matrix.include_block (⇑(_.sig z) x)
theorem
module.dual.pi.is_faithful_pos_map.sig_eq_pi_blocks
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
(hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map)
(z : ℝ)
(x : Π (i : k), matrix (s i) (s i) ℂ)
{i : k} :
⇑(module.dual.pi.is_faithful_pos_map.sig hψ z) x i = ⇑(_.sig z) (x i)
theorem
pi.pos_def.rpow.is_pos_def
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{a : Π (i : k), matrix (s i) (s i) ℂ}
(ha : ∀ (i : k), (a i).pos_def)
(r : ℝ)
(i : k) :
(pi.pos_def.rpow ha r i).pos_def
theorem
pi.pos_def.rpow.is_self_adjoint
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{a : Π (i : k), matrix (s i) (s i) ℂ}
(ha : ∀ (i : k), (a i).pos_def)
(r : ℝ) :
has_star.star (pi.pos_def.rpow ha r) = pi.pos_def.rpow ha r
theorem
module.dual.pi.is_faithful_pos_map.sig_star
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
(hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map)
(z : ℝ)
(x : Π (i : k), matrix (s i) (s i) ℂ) :
has_star.star (⇑(module.dual.pi.is_faithful_pos_map.sig hψ z) x) = ⇑(module.dual.pi.is_faithful_pos_map.sig hψ (-z)) (has_star.star x)
theorem
module.dual.pi.is_faithful_pos_map.sig_apply_sig
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
(hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map)
(t r : ℝ)
(x : Π (i : k), matrix (s i) (s i) ℂ) :
⇑(module.dual.pi.is_faithful_pos_map.sig hψ t) (⇑(module.dual.pi.is_faithful_pos_map.sig hψ r) x) = ⇑(module.dual.pi.is_faithful_pos_map.sig hψ (t + r)) x
theorem
module.dual.pi.is_faithful_pos_map.sig_zero
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
(hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map)
(x : Π (i : k), matrix (s i) (s i) ℂ) :
⇑(module.dual.pi.is_faithful_pos_map.sig hψ 0) x = x
theorem
module.dual.pi.is_faithful_pos_map.to_matrix_apply''
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(f : (Π (i : k), matrix (s i) (s i) ℂ) →ₗ[ℂ] Π (i : k), matrix (s i) (s i) ℂ)
(r l : Σ (r : k), s r × s r) :
theorem
finset.sum_product_univ
{β : Type u_1}
{α : Type u_2}
{γ : Type u_3}
[add_comm_monoid β]
[fintype α]
[fintype γ]
{f : γ × α → β} :
finset.univ.sum (λ (x : γ × α), f x) = finset.univ.sum (λ (x : γ), finset.univ.sum (λ (y : α), f (x, y)))
theorem
module.dual.pi.is_faithful_pos_map.to_matrix_symm_apply'
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(x : matrix (Σ (i : k), s i × s i) (Σ (i : k), s i × s i) ℂ) :
⇑((module.dual.pi.is_faithful_pos_map.to_matrix _).symm) x = finset.univ.sum (λ (a : k), finset.univ.sum (λ (i : s a), finset.univ.sum (λ (j : s a), finset.univ.sum (λ (b : k), finset.univ.sum (λ (c : s b), finset.univ.sum (λ (d : s b), x ⟨a, (i, j)⟩ ⟨b, (c, d)⟩ • ↑(rank_one (⇑(module.dual.pi.is_faithful_pos_map.basis _) ⟨a, (i, j)⟩) (⇑(module.dual.pi.is_faithful_pos_map.basis _) ⟨b, (c, d)⟩))))))))
theorem
tensor_product.of_basis_eq_span
{𝕜 : Type u_1}
{E : Type u_2}
{F : Type u_3}
[is_R_or_C 𝕜]
[add_comm_group E]
[module 𝕜 E]
[add_comm_group F]
[module 𝕜 F]
(x : tensor_product 𝕜 E F)
{ι₁ : Type u_4}
{ι₂ : Type u_5}
[fintype ι₁]
[fintype ι₂]
(b₁ : basis ι₁ 𝕜 E)
(b₂ : basis ι₂ 𝕜 F) :
x = finset.univ.sum (λ (i : ι₁), finset.univ.sum (λ (j : ι₂), ⇑(⇑((b₁.tensor_product b₂).repr) x) (i, j) • ⇑b₁ i ⊗ₜ[𝕜] ⇑b₂ j))
theorem
module.dual.pi.is_faithful_pos_map.to_matrix_eq_orthonormal_basis_to_matrix
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(x : (Π (i : k), matrix (s i) (s i) ℂ) →ₗ[ℂ] Π (i : k), matrix (s i) (s i) ℂ) :
theorem
module.dual.pi.is_faithful_pos_map.linear_map_eq
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(t r : ℝ)
(x : (Π (i : k), matrix (s i) (s i) ℂ) →ₗ[ℂ] Π (i : k), matrix (s i) (s i) ℂ) :
x = finset.univ.sum (λ (a : Σ (i : k), (λ (i : k), s i) i × (λ (i : k), s i) i), finset.univ.sum (λ (b : Σ (i : k), (λ (i : k), s i) i × (λ (i : k), s i) i), ⇑(module.dual.pi.is_faithful_pos_map.to_matrix _) x a b • ↑(rank_one (⇑(module.dual.pi.is_faithful_pos_map.basis _) a) (⇑(module.dual.pi.is_faithful_pos_map.basis _) b))))
noncomputable
def
module.dual.pi.is_faithful_pos_map.Psi_to_fun'
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
(hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map)
(t r : ℝ) :
Equations
- module.dual.pi.is_faithful_pos_map.Psi_to_fun' hψ t r = {to_fun := λ (x : (Π (i : k), matrix (s i) (s i) ℂ) →ₗ[ℂ] Π (i : k), matrix (s i) (s i) ℂ), finset.univ.sum (λ (a : Σ (i : k), (λ (i : k), s i) i × (λ (i : k), s i) i), finset.univ.sum (λ (b : Σ (i : k), (λ (i : k), s i) i × (λ (i : k), s i) i), ⇑(module.dual.pi.is_faithful_pos_map.to_matrix _) x a b • ⇑(module.dual.pi.is_faithful_pos_map.sig hψ t) (⇑(module.dual.pi.is_faithful_pos_map.basis _) a) ⊗ₜ[ℂ] ⇑op (has_star.star (⇑(module.dual.pi.is_faithful_pos_map.sig hψ r) (⇑(module.dual.pi.is_faithful_pos_map.basis _) b))))), map_add' := _, map_smul' := _}
theorem
pi.is_faithful_pos_map.to_matrix.rank_one_apply
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(x y : Π (i : k), matrix (s i) (s i) ℂ) :
⇑(module.dual.pi.is_faithful_pos_map.to_matrix _) ↑(rank_one x y) = λ (i j : Σ (i : k), s i × s i), (matrix.col (⇑matrix.reshape ((x i.fst).mul (_.rpow (1 / 2))))).mul (matrix.col (⇑matrix.reshape ((y j.fst).mul (_.rpow (1 / 2))))).conj_transpose i.snd j.snd
theorem
module.dual.pi.is_faithful_pos_map.basis_repr_apply_apply
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(a : Π (i : k), matrix (s i) (s i) ℂ)
(x : Σ (i : k), s i × s i) :
theorem
module.dual.pi.is_faithful_pos_map.Psi_to_fun'_apply
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(t r : ℝ)
(a b : Π (i : k), matrix (s i) (s i) ℂ) :
⇑(module.dual.pi.is_faithful_pos_map.Psi_to_fun' hψ t r) ↑(rank_one a b) = ⇑(module.dual.pi.is_faithful_pos_map.sig hψ t) a ⊗ₜ[ℂ] ⇑op (has_star.star (⇑(module.dual.pi.is_faithful_pos_map.sig hψ r) b))
theorem
algebra.tensor_product.map_apply_map_apply
{R : Type u_1}
[comm_semiring R]
{A : Type u_2}
{B : Type u_3}
{C : Type u_4}
{D : Type u_5}
{E : Type u_6}
{F : Type u_7}
[semiring A]
[semiring B]
[semiring C]
[semiring D]
[semiring E]
[semiring F]
[algebra R A]
[algebra R B]
[algebra R C]
[algebra R D]
[algebra R E]
[algebra R F]
(f : A →ₐ[R] B)
(g : C →ₐ[R] D)
(z : B →ₐ[R] E)
(w : D →ₐ[R] F)
(x : tensor_product R A C) :
⇑(algebra.tensor_product.map z w) (⇑(algebra.tensor_product.map f g) x) = ⇑(algebra.tensor_product.map (z.comp f) (w.comp g)) x
theorem
tensor_product.map_apply_map_apply
{R : Type u_1}
[comm_semiring R]
{A : Type u_2}
{B : Type u_3}
{C : Type u_4}
{D : Type u_5}
{E : Type u_6}
{F : Type u_7}
[add_comm_monoid A]
[add_comm_monoid B]
[add_comm_monoid C]
[add_comm_monoid D]
[add_comm_monoid E]
[add_comm_monoid F]
[module R A]
[module R B]
[module R C]
[module R D]
[module R E]
[module R F]
(f : A →ₗ[R] B)
(g : C →ₗ[R] D)
(z : B →ₗ[R] E)
(w : D →ₗ[R] F)
(x : tensor_product R A C) :
⇑(tensor_product.map z w) (⇑(tensor_product.map f g) x) = ⇑(tensor_product.map (z.comp f) (w.comp g)) x
theorem
algebra.tensor_product.map_id
{R : Type u_1}
[comm_semiring R]
{A : Type u_2}
{B : Type u_3}
[semiring A]
[semiring B]
[algebra R A]
[algebra R B] :
algebra.tensor_product.map (alg_hom.id R A) (alg_hom.id R B) = alg_hom.id R (tensor_product R A B)
def
alg_equiv.tensor_product.map
{R : Type u_1}
[comm_semiring R]
{A : Type u_2}
{B : Type u_3}
{C : Type u_4}
{D : Type u_5}
[semiring A]
[semiring B]
[semiring C]
[semiring D]
[algebra R A]
[algebra R B]
[algebra R C]
[algebra R D]
(f : A ≃ₐ[R] B)
(g : C ≃ₐ[R] D) :
tensor_product R A C ≃ₐ[R] tensor_product R B D
Equations
- alg_equiv.tensor_product.map f g = {to_fun := λ (x : tensor_product R A C), ⇑(algebra.tensor_product.map f.to_alg_hom g.to_alg_hom) x, inv_fun := λ (x : tensor_product R B D), ⇑(algebra.tensor_product.map f.symm.to_alg_hom g.symm.to_alg_hom) x, left_inv := _, right_inv := _, map_mul' := _, map_add' := _, commutes' := _}
def
linear_equiv.tensor_product.map
{R : Type u_1}
[comm_semiring R]
{A : Type u_2}
{B : Type u_3}
{C : Type u_4}
{D : Type u_5}
[add_comm_monoid A]
[add_comm_monoid B]
[add_comm_monoid C]
[add_comm_monoid D]
[module R A]
[module R B]
[module R C]
[module R D]
(f : A ≃ₗ[R] B)
(g : C ≃ₗ[R] D) :
tensor_product R A C ≃ₗ[R] tensor_product R B D
Equations
- linear_equiv.tensor_product.map f g = {to_fun := λ (x : tensor_product R A C), ⇑(tensor_product.map ↑f ↑g) x, map_add' := _, map_smul' := _, inv_fun := λ (x : tensor_product R B D), ⇑(tensor_product.map ↑(f.symm) ↑(g.symm)) x, left_inv := _, right_inv := _}
@[simp]
theorem
linear_equiv.tensor_product.map_apply
{R : Type u_1}
[comm_semiring R]
{A : Type u_2}
{B : Type u_3}
{C : Type u_4}
{D : Type u_5}
[add_comm_monoid A]
[add_comm_monoid B]
[add_comm_monoid C]
[add_comm_monoid D]
[module R A]
[module R B]
[module R C]
[module R D]
(f : A ≃ₗ[R] B)
(g : C ≃ₗ[R] D)
(x : tensor_product R A C) :
⇑(linear_equiv.tensor_product.map f g) x = ⇑(tensor_product.map ↑f ↑g) x
@[simp]
theorem
linear_equiv.tensor_product.map_symm_apply
{R : Type u_1}
[comm_semiring R]
{A : Type u_2}
{B : Type u_3}
{C : Type u_4}
{D : Type u_5}
[add_comm_monoid A]
[add_comm_monoid B]
[add_comm_monoid C]
[add_comm_monoid D]
[module R A]
[module R B]
[module R C]
[module R D]
(f : A ≃ₗ[R] B)
(g : C ≃ₗ[R] D)
(x : tensor_product R B D) :
⇑((linear_equiv.tensor_product.map f g).symm) x = ⇑(tensor_product.map ↑(f.symm) ↑(g.symm)) x
@[simp]
theorem
pi.transpose_alg_equiv_symm_apply
(p : Type u_1)
[fintype p]
[decidable_eq p]
(n : p → Type u_2)
[Π (i : p), fintype (n i)]
[Π (i : p), decidable_eq (n i)]
(A : (Π (i : p), matrix (n i) (n i) ℂ)ᵐᵒᵖ)
(i : p) :
⇑((pi.transpose_alg_equiv p n).symm) A i = (mul_opposite.unop A i).transpose
def
pi.transpose_alg_equiv
(p : Type u_1)
[fintype p]
[decidable_eq p]
(n : p → Type u_2)
[Π (i : p), fintype (n i)]
[Π (i : p), decidable_eq (n i)] :
Equations
- pi.transpose_alg_equiv p n = {to_fun := λ (A : Π (i : p), matrix (n i) (n i) ℂ), mul_opposite.op (λ (i : p), (A i).transpose), inv_fun := λ (A : (Π (i : p), matrix (n i) (n i) ℂ)ᵐᵒᵖ) (i : p), (mul_opposite.unop A i).transpose, left_inv := _, right_inv := _, map_mul' := _, map_add' := _, commutes' := _}
@[simp]
theorem
pi.transpose_alg_equiv_apply
(p : Type u_1)
[fintype p]
[decidable_eq p]
(n : p → Type u_2)
[Π (i : p), fintype (n i)]
[Π (i : p), decidable_eq (n i)]
(A : Π (i : p), matrix (n i) (n i) ℂ) :
⇑(pi.transpose_alg_equiv p n) A = mul_opposite.op (λ (i : p), (A i).transpose)
theorem
pi.transpose_alg_equiv_symm_op_apply
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
(A : Π (i : k), matrix (s i) (s i) ℂ) :
⇑((pi.transpose_alg_equiv k s).symm) (mul_opposite.op A) = λ (i : k), (A i).transpose
def
tensor_product_mul_op_equiv
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)] :
Equations
- tensor_product_mul_op_equiv = (alg_equiv.tensor_product.map 1 (pi.transpose_alg_equiv k s).symm).trans (f₂_equiv.trans f₃_equiv)
noncomputable
def
module.dual.pi.is_faithful_pos_map.Psi_inv_fun'
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
(hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map)
(t r : ℝ) :
Equations
- module.dual.pi.is_faithful_pos_map.Psi_inv_fun' hψ t r = {to_fun := λ (x : tensor_product ℂ (Π (i : k), matrix (s i) (s i) ℂ) (Π (i : k), matrix (s i) (s i) ℂ)ᵐᵒᵖ), finset.univ.sum (λ (a : Σ (i : k), s i × s i), finset.univ.sum (λ (b : Σ (i : k), s i × s i), ⇑(⇑(((module.dual.pi.is_faithful_pos_map.basis _).tensor_product (module.dual.pi.is_faithful_pos_map.basis _).mul_opposite).repr) x) (a, b) • ↑(rank_one (⇑(module.dual.pi.is_faithful_pos_map.sig hψ (-t)) (⇑(module.dual.pi.is_faithful_pos_map.basis _) a)) (⇑(module.dual.pi.is_faithful_pos_map.sig hψ (-r)) (has_star.star (⇑(module.dual.pi.is_faithful_pos_map.basis _) b)))))), map_add' := _, map_smul' := _}
theorem
rank_one_smul_smul
{𝕜 : Type u_1}
{E : Type u_2}
[is_R_or_C 𝕜]
[normed_add_comm_group E]
[inner_product_space 𝕜 E]
(x y : E)
(r₁ r₂ : 𝕜) :
theorem
rank_one_lm_smul_smul
{𝕜 : Type u_1}
{E : Type u_2}
[is_R_or_C 𝕜]
[normed_add_comm_group E]
[inner_product_space 𝕜 E]
(x y : E)
(r₁ r₂ : 𝕜) :
theorem
rank_one_sum_sum
{𝕜 : Type u_1}
{E : Type u_2}
[is_R_or_C 𝕜]
[normed_add_comm_group E]
[inner_product_space 𝕜 E]
{ι₁ : Type u_3}
{ι₂ : Type u_4}
[fintype ι₁]
[fintype ι₂]
(f : ι₁ → E)
(g : ι₂ → E) :
rank_one (finset.univ.sum (λ (i : ι₁), f i)) (finset.univ.sum (λ (i : ι₂), g i)) = finset.univ.sum (λ (i : ι₁), finset.univ.sum (λ (j : ι₂), rank_one (f i) (g j)))
theorem
rank_one_lm_sum_sum
{𝕜 : Type u_1}
{E : Type u_2}
[is_R_or_C 𝕜]
[normed_add_comm_group E]
[inner_product_space 𝕜 E]
{ι₁ : Type u_3}
{ι₂ : Type u_4}
[fintype ι₁]
[fintype ι₂]
(f : ι₁ → E)
(g : ι₂ → E) :
↑(rank_one (finset.univ.sum (λ (i : ι₁), f i)) (finset.univ.sum (λ (i : ι₂), g i))) = finset.univ.sum (λ (i : ι₁), finset.univ.sum (λ (j : ι₂), ↑(rank_one (f i) (g j))))
theorem
module.dual.pi.is_faithful_pos_map.Psi_inv_fun'_apply
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(t r : ℝ)
(x : Π (i : k), matrix (s i) (s i) ℂ)
(y : (Π (i : k), matrix (s i) (s i) ℂ)ᵐᵒᵖ) :
⇑(module.dual.pi.is_faithful_pos_map.Psi_inv_fun' hψ t r) (x ⊗ₜ[ℂ] y) = ↑(rank_one (⇑(module.dual.pi.is_faithful_pos_map.sig hψ (-t)) x) (⇑(module.dual.pi.is_faithful_pos_map.sig hψ (-r)) (has_star.star (mul_opposite.unop y))))
theorem
module.dual.pi.is_faithful_pos_map.Psi_left_inv
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(t r : ℝ)
(x y : Π (i : k), matrix (s i) (s i) ℂ) :
⇑(module.dual.pi.is_faithful_pos_map.Psi_inv_fun' hψ t r) (⇑(module.dual.pi.is_faithful_pos_map.Psi_to_fun' hψ t r) ↑(rank_one x y)) = ↑(rank_one x y)
theorem
module.dual.pi.is_faithful_pos_map.Psi_right_inv
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(t r : ℝ)
(x : Π (i : k), matrix (s i) (s i) ℂ)
(y : (Π (i : k), matrix (s i) (s i) ℂ)ᵐᵒᵖ) :
noncomputable
def
module.dual.pi.is_faithful_pos_map.Psi
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
(hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map)
(t r : ℝ) :
Equations
- module.dual.pi.is_faithful_pos_map.Psi hψ t r = let _inst : ∀ (i : k), fact (ψ i).is_faithful_pos_map := hψ in {to_fun := λ (x : (Π (i : k), matrix (s i) (s i) ℂ) →ₗ[ℂ] Π (i : k), matrix (s i) (s i) ℂ), ⇑(module.dual.pi.is_faithful_pos_map.Psi_to_fun' hψ t r) x, map_add' := _, map_smul' := _, inv_fun := λ (x : tensor_product ℂ (Π (i : k), matrix (s i) (s i) ℂ) (Π (i : k), matrix (s i) (s i) ℂ)ᵐᵒᵖ), ⇑(module.dual.pi.is_faithful_pos_map.Psi_inv_fun' hψ t r) x, left_inv := _, right_inv := _}
@[simp]
theorem
module.dual.pi.is_faithful_pos_map.Psi_apply
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
(hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map)
(t r : ℝ)
(x : (Π (i : k), matrix (s i) (s i) ℂ) →ₗ[ℂ] Π (i : k), matrix (s i) (s i) ℂ) :
⇑(module.dual.pi.is_faithful_pos_map.Psi hψ t r) x = ⇑(module.dual.pi.is_faithful_pos_map.Psi_to_fun' hψ t r) x
@[simp]
theorem
module.dual.pi.is_faithful_pos_map.Psi_symm_apply
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
(hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map)
(t r : ℝ)
(x : tensor_product ℂ (Π (i : k), matrix (s i) (s i) ℂ) (Π (i : k), matrix (s i) (s i) ℂ)ᵐᵒᵖ) :
⇑((module.dual.pi.is_faithful_pos_map.Psi hψ t r).symm) x = ⇑(module.dual.pi.is_faithful_pos_map.Psi_inv_fun' hψ t r) x
theorem
pi.inner_symm
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(x y : Π (i : k), matrix (s i) (s i) ℂ) :
has_inner.inner x y = has_inner.inner (⇑(module.dual.pi.is_faithful_pos_map.sig hψ (-1)) (has_star.star y)) (has_star.star x)
theorem
module.dual.pi.is_faithful_pos_map.sig_adjoint
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
{t : ℝ} :
theorem
module.dual.is_faithful_pos_map.norm_eq
{n : Type u_1}
[fintype n]
[decidable_eq n]
{ψ : module.dual ℂ (matrix n n ℂ)}
[hψ : fact ψ.is_faithful_pos_map]
(x : matrix n n ℂ) :
‖x‖ = real.sqrt (⇑is_R_or_C.re (⇑ψ (x.conj_transpose.mul x)))
theorem
module.dual.pi.is_faithful_pos_map.norm_eq
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(x : Π (i : k), matrix (s i) (s i) ℂ) :
‖x‖ = real.sqrt (⇑is_R_or_C.re (⇑(module.dual.pi ψ) (has_star.star x * x)))
theorem
norm_mul_norm_eq_norm_tmul
{𝕜 : Type u_1}
{B : Type u_2}
{C : Type u_3}
[is_R_or_C 𝕜]
[normed_add_comm_group B]
[normed_add_comm_group C]
[inner_product_space 𝕜 B]
[inner_product_space 𝕜 C]
[finite_dimensional 𝕜 B]
[finite_dimensional 𝕜 C]
(x : B)
(y : C) :
@[protected, instance]
@[protected, instance]
def
matrix.is_star_module
{n : Type u_1}
[fintype n]
[decidable_eq n] :
star_module ℂ (matrix n n ℂ)
@[protected, instance]
def
pi.matrix.is_fd
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)] :
finite_dimensional ℂ (Π (i : k), matrix (s i) (s i) ℂ)
@[protected, instance]
def
pi.matrix.is_star_module
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)] :
star_module ℂ (Π (i : k), matrix (s i) (s i) ℂ)
@[protected, instance]
def
pi.matrix.is_topological_add_group
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)] :
topological_add_group (Π (i : k), matrix (s i) (s i) ℂ)
@[protected, instance]
def
pi.matrix.has_continuous_smul
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)] :
has_continuous_smul ℂ (Π (i : k), matrix (s i) (s i) ℂ)
theorem
pi.rank_one_lm_real_apply
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(x y : Π (i : k), matrix (s i) (s i) ℂ) :
(rank_one_lm x y).real = rank_one_lm (has_star.star x) (⇑(module.dual.pi.is_faithful_pos_map.sig hψ (-1)) (has_star.star y))
theorem
pi.pos_def.rpow_one_eq_self
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{Q : Π (i : k), matrix (s i) (s i) ℂ}
(hQ : ∀ (i : k), (Q i).pos_def) :
pi.pos_def.rpow hQ 1 = Q
theorem
pi.pos_def.rpow_neg_one_eq_inv_self
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{Q : Π (i : k), matrix (s i) (s i) ℂ}
(hQ : ∀ (i : k), (Q i).pos_def) :
pi.pos_def.rpow hQ (-1) = Q⁻¹
theorem
module.dual.pi.is_faithful_pos_map.inner_left_conj'
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(a b c : Π (i : k), matrix (s i) (s i) ℂ) :
has_inner.inner a (b * c) = has_inner.inner (a * ⇑(module.dual.pi.is_faithful_pos_map.sig hψ (-1)) (has_star.star c)) b
theorem
module.dual.pi.is_faithful_pos_map.inner_right_conj'
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(a b c : Π (i : k), matrix (s i) (s i) ℂ) :
has_inner.inner (a * c) b = has_inner.inner a (b * ⇑(module.dual.pi.is_faithful_pos_map.sig hψ (-1)) (has_star.star c))
theorem
moudle.dual.pi.is_faithful_pos_map.sig_trans_sig
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(x y : ℝ) :
theorem
module.dual.pi.is_faithful_pos_map.sig_comp_sig
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(x y : ℝ) :
theorem
module.dual.pi.is_faithful_pos_map.sig_zero'
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map] :
theorem
pi.comp_sig_eq_iff
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(t : ℝ)
(f g : (Π (i : k), matrix (s i) (s i) ℂ) →ₗ[ℂ] Π (i : k), matrix (s i) (s i) ℂ) :
f.comp (module.dual.pi.is_faithful_pos_map.sig hψ t).to_linear_map = g ↔ f = g.comp (module.dual.pi.is_faithful_pos_map.sig hψ (-t)).to_linear_map
theorem
pi.sig_comp_eq_iff
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(t : ℝ)
(f g : (Π (i : k), matrix (s i) (s i) ℂ) →ₗ[ℂ] Π (i : k), matrix (s i) (s i) ℂ) :
(module.dual.pi.is_faithful_pos_map.sig hψ t).to_linear_map.comp f = g ↔ f = (module.dual.pi.is_faithful_pos_map.sig hψ (-t)).to_linear_map.comp g
theorem
rank_one_lm_eq_rank_one
{𝕜 : Type u_1}
{E : Type u_2}
[is_R_or_C 𝕜]
[normed_add_comm_group E]
[inner_product_space 𝕜 E]
(x y : E) :
rank_one_lm x y = ↑(rank_one x y)
theorem
linear_map.pi.adjoint_real_eq
{k : Type u_2}
[fintype k]
[decidable_eq k]
{s : k → Type u_3}
[Π (i : k), fintype (s i)]
[Π (i : k), decidable_eq (s i)]
{ψ : Π (i : k), module.dual ℂ (matrix (s i) (s i) ℂ)}
[hψ : ∀ (i : k), fact (ψ i).is_faithful_pos_map]
(f : (Π (i : k), matrix (s i) (s i) ℂ) →ₗ[ℂ] Π (i : k), matrix (s i) (s i) ℂ) :