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
@[instance]
theorem
pos_def_one_rpow
(n : Type u_1)
[fintype n]
[decidable_eq n]
(r : ℝ) :
matrix.pos_def_one.rpow r = 1
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) :
(matrix.std_basis_matrix i j 1).transpose = matrix.std_basis_matrix j i 1
obviously, n × unit → R
is linearly equiv to n → R
matrix.col
written as a linear equivalence
Equations
theorem
col_mul_col_conj_transpose_is_kronecker_of_vectors
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
{p : Type u_4}
{q : Type u_5}
[semiring R]
[has_star R]
(x : matrix m n R)
(y : matrix p q R) :
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₃) :
f.to_alg_equiv.to_linear_map.comp x = y ↔ x = f.symm.to_alg_equiv.to_linear_map.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] :
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)
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
matrix.is_hermitian.eigenvalues_eq_zero_iff
{n : Type u_1}
[fintype n]
[decidable_eq n]
{x : matrix n n ℂ}
(hx : x.is_hermitian) :
theorem
spectra_fin_two
{x : matrix (fin 2) (fin 2) ℂ}
(hx : x.is_almost_hermitian) :
hx.spectra = {hx.eigenvalues 0, hx.eigenvalues 1}
theorem
spectra_fin_two'
{x : matrix (fin 2) (fin 2) ℂ}
(hx : x.is_almost_hermitian) :
hx.spectra = ↑[hx.eigenvalues 0, hx.eigenvalues 1]
theorem
spectra_fin_two''
{α : Type u_1}
(a : fin 2 → α) :
multiset.map a finset.univ.val = {a 0, a 1}
@[instance]
Equations
- multiset.has_smul = {smul := λ (a : ℂ) (s : multiset α), multiset.map (has_smul.smul a) s}
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
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)
noncomputable
def
matrix.is_almost_hermitian.eigenvector_matrix
{n : Type u_1}
[fintype n]
[decidable_eq n]
{x : matrix n n ℂ}
(hx : x.is_almost_hermitian) :
Equations
theorem
matrix.is_almost_hermitian.eigenvector_matrix_eq
{n : Type u_1}
[fintype n]
[decidable_eq n]
{x : matrix n n ℂ}
(hx : x.is_almost_hermitian) :
theorem
matrix.is_almost_hermitian.eigenvector_matrix_mem_unitary_group
{n : Type u_1}
[fintype n]
[decidable_eq n]
{x : matrix n n ℂ}
(hx : x.is_almost_hermitian) :
theorem
matrix.is_almost_hermitian.spectral_theorem'
{n : Type u_1}
[fintype n]
[decidable_eq n]
{x : matrix n n ℂ}
(hx : x.is_almost_hermitian) :
x = hx.scalar • ⇑(matrix.inner_aut ⟨_.eigenvector_matrix, _⟩) (matrix.diagonal (coe ∘ _.eigenvalues))
theorem
matrix.is_almost_hermitian.eigenvalues_eq
{n : Type u_1}
[fintype n]
[decidable_eq n]
{x : matrix n n ℂ}
(hx : x.is_almost_hermitian) :
hx.eigenvalues = hx.scalar • coe ∘ _.eigenvalues
theorem
matrix.is_almost_hermitian.spectral_theorem
{n : Type u_1}
[fintype n]
[decidable_eq n]
{x : matrix n n ℂ}
(hx : x.is_almost_hermitian) :
x = ⇑(matrix.inner_aut ⟨hx.eigenvector_matrix, _⟩) (matrix.diagonal hx.eigenvalues)
theorem
matrix.is_almost_hermitian.eigenvalues_eq_zero_iff
{n : Type u_1}
[fintype n]
[decidable_eq n]
{x : matrix n n ℂ}
(hx : x.is_almost_hermitian) :
hx.eigenvalues = 0 ↔ x = 0
theorem
matrix.diagonal_eq_zero_iff
{n : Type u_1}
[fintype n]
[decidable_eq n]
{x : n → ℂ} :
matrix.diagonal x = 0 ↔ x = 0
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) :
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) :
qam.iso A B