mathlib3 documentation

monlib / quantum_graph.example

Basic examples on quantum adjacency matrices #

This file contains elementary examples of quantum adjacency matrices, such as the complete graph and the trivial graph.

theorem pi.qam.complete_graph_eq' {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] :
qam.complete_graph (Π (i : p), matrix (n i) (n i) ℂ) = (algebra.linear_map ℂ (Π (i : p), matrix (n i) (n i) ℂ)).comp (⇑linear_map.adjoint (algebra.linear_map ℂ (Π (i : p), matrix (n i) (n i) ℂ)))
theorem pi.qam.nontracial.complete_graph.is_real {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] :
(qam.complete_graph (Π (i : p), matrix (n i) (n i) ℂ)).is_real
theorem pi.qam.nontracial.complete_graph.is_symm {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] :
⇑(linear_equiv.symm_map ℂ (Π (i : p), matrix (n i) (n i) ℂ)) (qam.complete_graph (Π (i : p), matrix (n i) (n i) ℂ)) = qam.complete_graph (Π (i : p), matrix (n i) (n i) ℂ)
theorem linear_map.pi_mul'_comp_mul'_adjoint_of_delta_form {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) :
(linear_map.mul' ℂ (Π (i : p), matrix (n i) (n i) ℂ)).comp (⇑linear_map.adjoint (linear_map.mul' ℂ (Π (i : p), matrix (n i) (n i) ℂ))) = δ • 1
theorem qam.nontracial.delta_ne_zero {p : Type u_1} [fintype p] [decidable_eq p] [nonempty p] {φ : module.dual ℂ (matrix p p ℂ)} {δ : ℂ} [hφ : fact φ.is_faithful_pos_map] (hφ₂ : (φ.matrix)⁻¹.trace = δ) :
δ ≠ 0
theorem pi.qam.nontracial.delta_ne_zero {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) :
δ ≠ 0
@[instance]
noncomputable def pi.qam.nontracial.mul'_comp_mul'_adjoint.invertible {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) :
invertible ((linear_map.mul' ℂ (Π (i : p), matrix (n i) (n i) ℂ)).comp (⇑linear_map.adjoint (linear_map.mul' ℂ (Π (i : p), matrix (n i) (n i) ℂ))))
Equations
noncomputable def pi.qam.trivial_graph {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} (hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map) (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) :
(Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ
Equations
theorem qam.trivial_graph_eq {p : Type u_1} [fintype p] [decidable_eq p] [nonempty p] {φ : module.dual ℂ (matrix p p ℂ)} [hφ : fact φ.is_faithful_pos_map] {δ : ℂ} (hφ₂ : (φ.matrix)⁻¹.trace = δ) :
qam.trivial_graph hφ hφ₂ = δ⁻¹ • 1
theorem pi.qam.trivial_graph_eq {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) :
theorem qam.nontracial.trivial_graph.qam {p : Type u_1} [fintype p] [decidable_eq p] [nonempty p] {φ : module.dual ℂ (matrix p p ℂ)} [hφ : fact φ.is_faithful_pos_map] {δ : ℂ} (hφ₂ : (φ.matrix)⁻¹.trace = δ) :
theorem pi.qam.nontracial.trivial_graph.qam {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) :
theorem pi.qam.nontracial.trivial_graph.qam.is_self_adjoint {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) :
theorem qam.nontracial.trivial_graph {p : Type u_1} [fintype p] [decidable_eq p] [nonempty p] {φ : module.dual ℂ (matrix p p ℂ)} [hφ : fact φ.is_faithful_pos_map] {δ : ℂ} (hφ₂ : (φ.matrix)⁻¹.trace = δ) :
theorem pi.qam.nontracial.trivial_graph {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) :
theorem qam.refl_idempotent_one_one_of_delta {p : Type u_1} [fintype p] [decidable_eq p] [nonempty p] {φ : module.dual ℂ (matrix p p ℂ)} [hφ : fact φ.is_faithful_pos_map] {δ : ℂ} (hφ₂ : (φ.matrix)⁻¹.trace = δ) :
theorem pi.qam.refl_idempotent_one_one_of_delta {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) :
theorem pi.qam.lm.nontracial.is_unreflexive_iff_reflexive_add_one {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) (x : (Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ) :
theorem pi.qam.nontracial.complement'.qam.is_real {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (x : (Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ) :
noncomputable def qam.complement'' {p : Type u_1} [fintype p] [decidable_eq p] [nonempty p] {φ : module.dual ℂ (matrix p p ℂ)} {δ : ℂ} (hφ : fact φ.is_faithful_pos_map) (hφ₂ : (φ.matrix)⁻¹.trace = δ) (x : matrix p p ℂ →ₗ[ℂ] matrix p p ℂ) :
Equations
noncomputable def pi.qam.complement'' {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} (hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map) (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) (x : (Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ) :
(Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ
Equations
theorem pi.schur_idempotent_reflexive_of_is_real {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] {x : (Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ} (hx : x.is_real) :
theorem qam.complement''_is_irreflexive_iff {p : Type u_1} [fintype p] [decidable_eq p] [nonempty p] {φ : module.dual ℂ (matrix p p ℂ)} {δ : ℂ} [hφ : fact φ.is_faithful_pos_map] (hφ₂ : (φ.matrix)⁻¹.trace = δ) {x : matrix p p ℂ →ₗ[ℂ] matrix p p ℂ} (hx : x.is_real) :
theorem pi.qam.complement''_is_irreflexive_iff {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) {x : (Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ} (hx : x.is_real) :
noncomputable def pi.qam.irreflexive_complement {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} (hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map) (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) (x : (Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ) :
(Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ
Equations
noncomputable def pi.qam.reflexive_complement {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} (hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map) (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) (x : (Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ) :
(Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ
Equations
theorem qam.nontracial.trivial_graph.is_real {p : Type u_1} [fintype p] [decidable_eq p] [nonempty p] {φ : module.dual ℂ (matrix p p ℂ)} [hφ : fact φ.is_faithful_pos_map] {δ : ℂ} (hφ₂ : (φ.matrix)⁻¹.trace = δ) :
theorem pi.qam.nontracial.trivial_graph.is_real {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) :
theorem pi.qam.irreflexive_complement.is_real {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) {x : (Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ} (hx : x.is_real) :
theorem pi.qam.reflexive_complement.is_real {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) {x : (Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ} (hx : x.is_real) :
theorem pi.qam.irreflexive_complement_irreflexive_complement {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) {x : (Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ} :
theorem pi.qam.reflexive_complement_reflexive_complement {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) {x : (Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ} :
theorem pi.qam.trivial_graph_reflexive_complement_eq_complete_graph {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) :
pi.qam.reflexive_complement hφ hφ₂ (pi.qam.trivial_graph hφ hφ₂) = qam.complete_graph (Π (i : p), matrix (n i) (n i) ℂ)
theorem pi.qam.complete_graph_reflexive_complement_eq_trivial_graph {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) :
pi.qam.reflexive_complement hφ hφ₂ (qam.complete_graph (Π (i : p), matrix (n i) (n i) ℂ)) = pi.qam.trivial_graph hφ hφ₂
theorem pi.qam.irreflexive_complement_is_irreflexive_qam_iff_irreflexive_qam {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) {x : (Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ} (hx : x.is_real) :
theorem pi.qam.reflexive_complment_is_reflexive_qam_iff_reflexive_qam {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)] {φ : Π (i : p), module.dual ℂ (matrix (n i) (n i) ℂ)} [nonempty p] [∀ (i : p), nontrivial (n i)] {δ : ℂ} [hφ : ∀ (i : p), fact (φ i).is_faithful_pos_map] (hφ₂ : ∀ (i : p), ((φ i).matrix)⁻¹.trace = δ) {x : (Π (i : p), matrix (n i) (n i) ℂ) →ₗ[ℂ] Π (i : p), matrix (n i) (n i) ℂ} (hx : x.is_real) :