Documentation

LeanPool.Monlib4.QuantumGraph.QamA

Single-edged quantum graphs #

This file defines the single-edged quantum graph, and proves that it is a QAM.

noncomputable def qamA {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} (hφ : φ.IsFaithfulPosMap) (x : { x : Matrix n n ℂ // x ≠ 0 }) :

The rank-one quantum adjacency map associated to a nonzero matrix.

Equations
Instances For
    theorem qamA_eq {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x : { x : Matrix n n ℂ // x ≠ 0 }) :
    theorem qamA.toMatrix {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x : { x : Matrix n n ℂ // x ≠ 0 }) :
    hφ.toMatrix (qamA hφ x) = (1 / ↑‖↑x‖ ^ 2) • Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) (↑x * φ.matrix) (⋯.rpow (1 / 2) * ↑x * ⋯.rpow (1 / 2)).conj
    @[reducible]
    noncomputable instance hasSmul.unitsMatrixNeZero {n : Type u_1} :
    SMul ℂˣ { x : Matrix n n ℂ // x ≠ 0 }
    Equations
    theorem qamA.ne_zero {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x : { x : Matrix n n ℂ // x ≠ 0 }) :
    qamA hφ x ≠ 0

    given a non-zero matrix $x$, we always get $A(x)$ is non-zero

    theorem qamA.smul {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x : { x : Matrix n n ℂ // x ≠ 0 }) (α : ℂˣ) :
    qamA hφ (α • x) = qamA hφ x

    Given any non-zero matrix $x$ and non-zero $\alpha\in\mathbb{C}$ we have $$A(\alpha x)=A(x),$$ in other words, it is not injective. However, it is_almost_injective (see qam_A.is_almost_injective).

    theorem qamA.is_idempotent {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x : { x : Matrix n n ℂ // x ≠ 0 }) :
    (Qam.reflIdempotent hφ (qamA hφ x)) (qamA hφ x) = qamA hφ x
    theorem Psi.schurMul_faithful {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (r₁ r₂ : ℝ) (f g : Matrix n n ℂ →ₗ[ℂ] Matrix n n ℂ) :
    (hφ.psi r₁ r₂) (f •ₛ g) = (hφ.psi r₁ r₂) f * (hφ.psi r₁ r₂) g
    theorem qamA.isReal {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x : { x : Matrix n n ℂ // x ≠ 0 }) :
    theorem Qam.RankOne.symmetric_eq {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x : Matrix n n ℂ) :
    (symmMap ℂ (Matrix n n ℂ) (Matrix n n ℂ)) ↑(((rankOne ℂ) x) x) = ↑(((rankOne ℂ) ((hφ.sig (-1)) x.conjTranspose)) x.conjTranspose)
    theorem Qam.RankOne.symmetric'_eq {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x : Matrix n n ℂ) :
    (symmMap ℂ (Matrix n n ℂ) (Matrix n n ℂ)).symm ↑(((rankOne ℂ) x) x) = ↑(((rankOne ℂ) x.conjTranspose) ((hφ.sig (-1)) x.conjTranspose))
    theorem sig_comp_eq_iff_eq_sig_inv_comp {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (r : ℝ) (a b : Matrix n n ℂ →ₗ[ℂ] Matrix n n ℂ) :
    (hφ.sig r).toLinearMap ∘ₗ a = b ↔ a = (hφ.sig (-r)).toLinearMap ∘ₗ b
    theorem sig_eq_iff_eq_sig_inv {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (r : ℝ) (a b : Matrix n n ℂ) :
    (hφ.sig r) a = b ↔ a = (hφ.sig (-r)) b
    theorem comp_sig_eq_iff_eq_comp_sig_inv {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (r : ℝ) (a b : Matrix n n ℂ →ₗ[ℂ] Matrix n n ℂ) :
    a ∘ₗ (hφ.sig r).toLinearMap = b ↔ a = b ∘ₗ (hφ.sig (-r)).toLinearMap
    theorem sig_eq_self_iff_commute {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x : Matrix n n ℂ) :
    (hφ.sig 1) x = x ↔ Commute φ.matrix x
    theorem qamA.of_is_self_adjoint {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x : { x : Matrix n n ℂ // x ≠ 0 }) (h : LinearMap.adjoint (qamA hφ x) = qamA hφ x) :
    theorem qamA.is_self_adjoint_of {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x : { x : Matrix n n ℂ // x ≠ 0 }) (hx₁ : (↑x).IsAlmostHermitian) (hx₂ : Commute φ.matrix ↑x) :
    theorem qamA.is_self_adjoint_iff {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x : { x : Matrix n n ℂ // x ≠ 0 }) :
    theorem qamA.isRealQam {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x : { x : Matrix n n ℂ // x ≠ 0 }) :
    RealQam hφ (qamA hφ x)
    theorem Matrix.PosDef.ne_zero {n : Type u_1} [Finite n] [Nontrivial n] {Q : Matrix n n ℂ} (hQ : Q.PosDef) :
    Q ≠ 0
    theorem qamA.edges {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x : { x : Matrix n n ℂ // x ≠ 0 }) :
    ⋯.edges = 1
    theorem qamA.is_irreflexive_iff {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] [Nontrivial n] (x : { x : Matrix n n ℂ // x ≠ 0 }) :
    (Qam.reflIdempotent hφ (qamA hφ x)) 1 = 0 ↔ (↑x).trace = 0
    theorem qamA.is_almost_injective {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] (x y : { x : Matrix n n ℂ // x ≠ 0 }) :
    qamA hφ x = qamA hφ y ↔ ∃ (α : ℂˣ), ↑x = ↑α • ↑y
    theorem qamA.is_reflexive_iff {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] [Nontrivial n] (x : { x : Matrix n n ℂ // x ≠ 0 }) :
    (Qam.reflIdempotent hφ (qamA hφ x)) 1 = 1 ↔ ∃ (α : ℂˣ), ↑x = ↑α • φ.matrix⁻¹
    theorem Qam.unique_one_edge_and_refl {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] [Nontrivial n] [Nonempty n] {A : Matrix n n ℂ →ₗ[ℂ] Matrix n n ℂ} (hA : RealQam hφ A) :
    hA.edges = 1 ∧ (reflIdempotent hφ A) 1 = 1 ↔ A = trivialGraph (Matrix n n ℂ)
    theorem qamA.iso_iff {n : Type u_1} [Fintype n] [DecidableEq n] {φ : Module.Dual ℂ (Matrix n n ℂ)} [hφ : φ.IsFaithfulPosMap] {x y : { x : Matrix n n ℂ // x ≠ 0 }} :
    Qam.Iso (qamA hφ x) (qamA hφ y) ↔ ∃ (U : ↥(Matrix.unitaryGroup n ℂ)), (∃ (β : ℂˣ), ↑x = (Matrix.innerAut U) (↑β • ↑y)) ∧ Commute φ.matrix ↑U