mathlib3 documentation

monlib / quantum_graph.qam_A_example

Examples of single-edged quantum graph #

This file contains examples of single-edged quantum graphs over M₂(ℂ). The main result is that all single-edged quantum graphs over M₂(ℂ) are isomorphic each other.

def trace_module_dual {𝕜 : Type u_1} {n : Type u_2} [fintype n] [is_R_or_C 𝕜] :
module.dual 𝕜 (matrix n n 𝕜)
Equations
theorem pos_def_one_rpow (n : Type u_1) [fintype n] [decidable_eq n] (r : ) :
theorem matrix.std_basis_matrix.transpose {R : Type u_1} {n : Type u_2} {m : Type u_3} [decidable_eq n] [decidable_eq m] [semiring R] (i : n) (j : m) :
def pi_prod_unit_equiv_pi {R : Type u_1} {n : Type u_2} [semiring R] :
(n × unit R) ≃ₗ[R] n R

obviously, n × unit → R is linearly equiv to n → R

Equations
def matrix.of_col {R : Type u_1} {n : Type u_2} [semiring R] :

matrix.col written as a linear equivalence

Equations
def matrix_prod_unit_right {R : Type u_1} {n : Type u_2} {m : Type u_3} [semiring R] :
matrix n (m × unit) R ≃ₗ[R] matrix n m R

obviously, matrix n (m × unit) is linearly equivalent to matrix n m R

Equations

vec_mul_vec (reshape x) (star (reshape y)) written as a kronecker product of their corresponding vectors (via reshape).

theorem star_alg_equiv.eq_comp_iff {R : Type u_1} {E₁ : Type u_2} {E₂ : Type u_3} {E₃ : Type u_4} [comm_semiring R] [semiring E₂] [semiring E₃] [add_comm_monoid E₁] [algebra R E₂] [algebra R E₃] [module R E₁] [has_star E₂] [has_star E₃] (f : E₂ ≃⋆ₐ[R] E₃) (x : E₁ →ₗ[R] E₂) (y : E₁ →ₗ[R] E₃) :
theorem ite_comp {R : Type u_1} {U : Type u_2} {V : Type u_3} {W : Type u_4} [semiring R] [add_comm_monoid U] [add_comm_monoid V] [add_comm_monoid W] [module R U] [module R V] [module R W] {P : Prop} [decidable P] {x y : W →ₗ[R] U} {f : V →ₗ[R] W} :
(ite P x y).comp f = ite P (x.comp f) (y.comp f)
theorem comp_ite {R : Type u_1} {U : Type u_2} {V : Type u_3} {W : Type u_4} [semiring R] [add_comm_monoid U] [add_comm_monoid V] [add_comm_monoid W] [module R U] [module R V] [module R W] {P : Prop} [decidable P] {x y : W →ₗ[R] U} {f : U →ₗ[R] V} :
f.comp (ite P x y) = ite P (f.comp x) (f.comp y)
theorem qam.iso_preserves_ir_reflexive {n : Type u_1} [fintype n] [decidable_eq n] [nontrivial n] {φ : module.dual (matrix n n )} [hφ : fact φ.is_faithful_pos_map] {x y : matrix n n →ₗ[] matrix n n } (hxhy : qam.iso x y) (ir_reflexive : Prop) [decidable ir_reflexive] :
((qam.refl_idempotent _) x) 1 = ite ir_reflexive 1 0 ((qam.refl_idempotent _) y) 1 = ite ir_reflexive 1 0
def function.is_almost_injective {A : Type u_1} {B : Type u_2} (f : A B) [has_smul ˣ A] :
Prop

a function f : A → B is almost injective if for all $x, y \in A$, if $f(x)=f(y)$ then there exists some $0\neq\alpha \in \mathbb{C}$ such that $x = \alpha y$ (in other words, $x$ and $y$ are co-linear)

Equations
theorem matrix.is_almost_hermitian.spectrum {n : Type u_1} [fintype n] [decidable_eq n] {x : matrix n n } (hx : x.is_almost_hermitian) :
spectrum (matrix.to_lin' x) = {x_1 : | (i : n), hx.eigenvalues i = x_1}
theorem spectra_fin_two {x : matrix (fin 2) (fin 2) } (hx : x.is_almost_hermitian) :
theorem spectra_fin_two' {x : matrix (fin 2) (fin 2) } (hx : x.is_almost_hermitian) :
theorem spectra_fin_two'' {α : Type u_1} (a : fin 2 α) :
theorem list.coe_inj {α : Type u_1} (l₁ l₂ : list α) :
l₁ = l₂ l₁ ~ l₂
theorem spectra_fin_two_ext_aux {A : Type u_1} (α β γ : A) :
{α, α} = {β, γ} α = β α = γ
theorem spectra_fin_two_ext {α : Type u_1} (α₁ α₂ β₁ β₂ : α) :
{α₁, α₂} = {β₁, β₂} α₁ = β₁ α₂ = β₂ α₁ = β₂ α₂ = β₁
@[instance]
def multiset.has_smul {α : Type u_1} [has_smul α] :
Equations
theorem multiset.smul_fin_two {α : Type u_1} [has_smul α] (a b : α) (c : ) :
c {a, b} = {c a, c b}
theorem is_almost_hermitian.smul_eq {n : Type u_1} [fintype n] [decidable_eq n] {x : matrix n n } (hx : x.is_almost_hermitian) (c : ) :
theorem spectra_fin_two_ext_of_traceless {α₁ α₂ β₁ β₂ : } (hα₂ : α₂ 0) (hβ₂ : β₂ 0) (h₁ : α₁ = -α₂) (h₂ : β₁ = -β₂) :
(c : ˣ), {α₁, α₂} = c {β₁, β₂}
theorem matrix.is_almost_hermitian.trace {n : Type u_1} [fintype n] [decidable_eq n] {x : matrix n n } (hx : x.is_almost_hermitian) :
x.trace = finset.univ.sum (λ (i : n), hx.eigenvalues i)
theorem matrix.diagonal_eq_zero_iff {n : Type u_1} [fintype n] [decidable_eq n] {x : n } :
theorem qam_A.fin_two_iso (x y : {x // x 0}) (hx1 : is_self_adjoint (qam_A _ x)) (hx2 : ((qam.refl_idempotent _) (qam_A _ x)) 1 = 0) (hy1 : is_self_adjoint (qam_A _ y)) (hy2 : ((qam.refl_idempotent _) (qam_A _ y)) 1 = 0) :
qam.iso (qam_A _ x) (qam_A _ y)
theorem qam.fin_two_iso_of_single_edge {A B : matrix (fin 2) (fin 2) →ₗ[] matrix (fin 2) (fin 2) } (hx0 : real_qam _ A) (hy0 : real_qam _ B) (hx : hx0.edges = 1) (hy : hy0.edges = 1) (hx1 : is_self_adjoint A) (hx2 : ((qam.refl_idempotent _) A) 1 = 0) (hy1 : is_self_adjoint B) (hy2 : ((qam.refl_idempotent _) B) 1 = 0) :