mathlib3 documentation

monlib / linear_algebra.my_ips.functional

Linear functionals #

This file contains results for linear functionals on the set of $n \times n$ matrices $M_n$ over $\mathbb{C}$.

Main results #

def module.dual.matrix {R : Type u_2} {n : Type u_3} [comm_semiring R] [fintype n] [decidable_eq n] (φ : module.dual R (matrix n n R)) :
matrix n n R

the matrix of a linear map φ : M_n →ₗ[R] R is given by ∑ i j, std_basis_matrix j i (φ (std_basis_matrix i j 1)).

Equations
theorem module.dual.apply {R : Type u_2} {n : Type u_3} [comm_semiring R] [fintype n] [decidable_eq n] (φ : module.dual R (matrix n n R)) (a : matrix n n R) :
φ a = (φ.matrix.mul a).trace

given any linear functional φ : M_n →ₗ[R] R, we get φ a = (φ.matrix ⬝ a).trace.

def module.dual.pi {R : Type u_2} [comm_semiring R] {k : Type u_1} [fintype k] {s : k Type u_3} (φ : Π (i : k), module.dual R (matrix (s i) (s i) R)) :
module.dual R (Π (i : k), matrix (s i) (s i) R)

we linear maps φ_i : M_[n_i] →ₗ[R] R, we define its direct sum as the linear map (Π i, M_[n_i]) →ₗ[R] R.

Equations
@[simp]
theorem module.dual.pi_apply {R : Type u_2} [comm_semiring R] {k : Type u_1} [fintype k] {s : k Type u_3} (φ : Π (i : k), module.dual R (matrix (s i) (s i) R)) (a : Π (i : k), matrix (s i) (s i) R) :
(module.dual.pi φ) a = finset.univ.sum (λ (i : k), (φ i) (a i))
theorem module.dual.pi.apply {R : Type u_2} [comm_semiring R] {k : Type u_1} [fintype k] {s : k Type u_3} [Π (i : k), fintype (s i)] [Π (i : k), decidable_eq (s i)] (φ : Π (i : k), module.dual R (matrix (s i) (s i) R)) (x : Π (i : k), matrix (s i) (s i) R) :
(module.dual.pi φ) x = finset.univ.sum (λ (i : k), ((φ i).matrix.mul (x i)).trace)

for direct sums, we get φ x = ∑ i, ((φ i).matrix ⬝ x i).trace

theorem module.dual.pi.apply' {R : Type u_2} [comm_semiring R] {k : Type u_1} [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 R (matrix (s i) (s i) R)) (x : Π (i : k), matrix (s i) (s i) R) :
theorem module.dual.apply_eq_of {R : Type u_2} {n : Type u_3} [comm_semiring R] [fintype n] [decidable_eq n] (φ : module.dual R (matrix n n R)) (x : matrix n n R) (h : (a : matrix n n R), φ a = (x.mul a).trace) :
x = φ.matrix
theorem module.dual.eq_trace_unique {R : Type u_2} {n : Type u_3} [comm_semiring R] [fintype n] [decidable_eq n] (φ : module.dual R (matrix n n R)) :
∃! (Q : matrix n n R), (a : matrix n n R), φ a = (Q.mul a).trace

Any linear functional $f$ on $M_n$ is given by a unique matrix $Q \in M_n$ such that $f(x)=\operatorname{Tr}(Qx)$ for any $x \in M_n$.

def module.dual.pi' {R : Type u_2} [comm_semiring R] {k : Type u_1} [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 R (matrix (s i) (s i) R)) :
Equations
theorem module.dual.pi.apply_single_block {R : Type u_2} [comm_semiring R] {k : Type u_1} [fintype k] [decidable_eq k] {s : k Type u_3} [Π (i : k), fintype (s i)] [Π (i : k), decidable_eq (s i)] (φ : Π (i : k), matrix (s i) (s i) R →ₗ[R] R) (x : Π (i : k), matrix (s i) (s i) R) (i : k) :

⨁_i φ_i ι_i (x_i) = φ_i (x_i)

def module.dual.is_pos_map {𝕜 : Type u_1} [is_R_or_C 𝕜] {A : Type u_2} [non_unital_semiring A] [star_ring A] [module 𝕜 A] (φ : module.dual 𝕜 A) :
Prop

A linear functional $φ$ on $M_n$ is positive if $0 ≤ φ (x^*x)$ for all $x \in M_n$.

Equations
def module.dual.is_unital {R : Type u_2} [comm_semiring R] {A : Type u_1} [add_comm_monoid A] [module R A] [has_one A] (φ : module.dual R A) :
Prop

A linear functional $φ$ on $M_n$ is unital if $φ(1) = 1$.

Equations
def module.dual.is_state {𝕜 : Type u_1} [is_R_or_C 𝕜] {A : Type u_2} [semiring A] [star_ring A] [module 𝕜 A] (φ : module.dual 𝕜 A) :
Prop

A linear functional is called a state if it is positive and unital

Equations
theorem module.dual.is_pos_map_of_matrix {𝕜 : Type u_1} {n : Type u_3} [is_R_or_C 𝕜] [fintype n] [decidable_eq n] (φ : module.dual 𝕜 (matrix n n 𝕜)) :
φ.is_pos_map (a : matrix n n 𝕜), a.pos_semidef 0 φ a
def module.dual.is_faithful {𝕜 : Type u_1} [is_R_or_C 𝕜] {A : Type u_2} [non_unital_semiring A] [star_ring A] [module 𝕜 A] (φ : module.dual 𝕜 A) :
Prop

A linear functional $f$ on $M_n$ is said to be faithful if $f(x^*x)=0$ if and only if $x=0$ for any $x \in M_n$.

Equations
theorem module.dual.is_faithful_of_matrix {𝕜 : Type u_1} {n : Type u_3} [is_R_or_C 𝕜] [fintype n] [decidable_eq n] (φ : module.dual 𝕜 (matrix n n 𝕜)) :
φ.is_faithful (a : matrix n n 𝕜), a.pos_semidef (φ a = 0 a = 0)

A linear functional $f$ is positive if and only if there exists a unique positive semi-definite matrix $Q\in M_n$ such $f(x)=\operatorname{Tr}(Qx)$ for all $x\in M_n$.

A linear functional $f$ is a state if and only if there exists a unique positive semi-definite matrix $Q\in M_n$ such that its trace equals $1$ and $f(x)=\operatorname{Tr}(Qx)$ for all $x\in M_n$.

A positive linear functional $f$ is faithful if and only if there exists a positive definite matrix such that $f(x)=\operatorname{Tr}(Qx)$ for all $x\in M_n$.

def module.dual.is_faithful_pos_map {𝕜 : Type u_1} [is_R_or_C 𝕜] {A : Type u_2} [non_unital_semiring A] [star_ring A] [module 𝕜 A] (φ : module.dual 𝕜 A) :
Prop
Equations
Instances for module.dual.is_faithful_pos_map

A linear functional $φ$ is a faithful and positive if and only if there exists a unique positive definite matrix $Q$ such that $φ(x)=\operatorname{Tr}(Qx)$ for all $x\in M_n$.

A state is faithful $f$ if and only if there exists a unique positive definite matrix $Q\in M_n$ with trace equal to $1$ and $f(x)=\operatorname{Tr}(Qx)$ for all $x \in M_n$.

def module.dual.is_tracial {𝕜 : Type u_1} [is_R_or_C 𝕜] {A : Type u_2} [non_unital_semiring A] [module 𝕜 A] (φ : module.dual 𝕜 A) :
Prop

A linear functional $f$ is tracial if and only if $f(xy)=f(yx)$ for all $x,y$.

Equations

A linear functional is tracial and positive if and only if there exists a non-negative real $α$ such that $f\colon x \mapsto \alpha \operatorname{Tr}(x)$.

A linear functional is tracial and positive if and only if there exists a unique non-negative real $α$ such that $f\colon x \mapsto \alpha \operatorname{Tr}(x)$.

A linear functional $f$ is tracial positive and faithful if and only if there exists a positive real number $\alpha$ such that $f\colon x\mapsto \alpha \operatorname{Tr}(x)$.

theorem matrix.ext_iff_trace' {R : Type u_1} {m : Type u_2} {n : Type u_3} [semiring R] [star_ring R] [fintype n] [fintype m] [decidable_eq n] [decidable_eq m] (A B : matrix m n R) :
( (x : matrix m n R), (x.conj_transpose.mul A).trace = (x.conj_transpose.mul B).trace) A = B
theorem module.dual.pi.is_pos_map.is_real {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), (ψ i).is_pos_map) :
def is_inner {𝕜 : Type u_1} [is_R_or_C 𝕜] {H : Type u_2} [add_comm_monoid H] [module 𝕜 H] (φ : H × H 𝕜) :
Prop

A function $H \times H \to 𝕜$ defines an inner product if it satisfies the following.

Equations

A linear functional $f$ on $M_n$ is positive and faithful if and only if $(x,y)\mapsto f(x^*y)$ defines an inner product on $M_n$.

@[instance, reducible]
noncomputable def module.dual.pi.normed_add_comm_group {k : Type u_1} [fintype 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] :
normed_add_comm_group (Π (i : k), matrix (s i) (s i) )
Equations
@[instance, reducible]
noncomputable def module.dual.pi.inner_product_space {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] :
inner_product_space (Π (i : k), matrix (s i) (s i) )
Equations