Documentation

LeanPool.Monlib4.QuantumGraph.ToProjections

Quantum graphs as projections #

This file contains the definition of a quantum graph as a projection, and the proof that the

Elaborate projection/QAM statements with the matrix coalgebra induced by φ.

Equations
  • One or more equations did not get rendered due to their size.
Instances For

    Introduce the projection matrix coalgebra context induced by φ in a proof.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[reducible, inline]
      noncomputable abbrev FiniteDimensional.finrank (𝕜 : Type u_1) (E : Type u_2) [DivisionRing 𝕜] [AddCommGroup E] [Module 𝕜 E] :

      Compatibility spelling for the old FiniteDimensional.finrank namespace.

      Equations
      Instances For
        @[reducible, inline]
        noncomputable abbrev Qam.reflIdempotent {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} (hφ : φ.IsFaithfulPosMap) (A : Matrix p p ℂ →ₗ[ℂ] Matrix p p ℂ) :

        The reflexive idempotent product used in older Monlib quantum-graph files.

        Equations
        Instances For
          noncomputable def blockDiag'KroneckerEquiv {p : Type u_1} [Fintype p] [DecidableEq p] {n : p → Type u_2} [(i : p) → Fintype (n i)] [(i : p) → DecidableEq (n i)] {φ : (i : p) → Module.Dual ℂ (Matrix (n i) (n i) ℂ)} (hφ : ∀ (i : p), (φ i).IsFaithfulPosMap) :
          Matrix ((i : p) × n i × n i) ((i : p) × n i × n i) ℂ ≃ₗ[ℂ] TensorProduct ℂ { x : Matrix ((i : p) × n i) ((i : p) × n i) ℂ // x.IsBlockDiagonal } { x : Matrix ((i : p) × n i) ((i : p) × n i) ℂ // x.IsBlockDiagonal }

          Linear equivalence from block-diagonal matrix coordinates to the tensor product of block-diagonal matrices.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem Matrix.conj_conjTranspose' {R : Type u_1} {n₁ : Type u_2} {n₂ : Type u_3} [InvolutiveStar R] (A : Matrix n₁ n₂ R) :
            theorem toMatrix_mulLeft_mulRight_adjoint {p : Type u_2} [Fintype p] [DecidableEq p] {n : p → Type u_1} [(i : p) → Fintype (n i)] [(i : p) → DecidableEq (n i)] {φ : (i : p) → Module.Dual ℂ (Matrix (n i) (n i) ℂ)} (hφ : ∀ (i : p), (φ i).IsFaithfulPosMap) (x y : (i : p) → Matrix (n i) (n i) ℂ) :
            def Pi.LinearMap.apply {ι₁ : Type u_1} {ι₂ : Type u_2} {E₁ : ι₁ → Type u_3} [DecidableEq ι₁] [(i : ι₁) → AddCommMonoid (E₁ i)] [(i : ι₁) → Module ℂ (E₁ i)] {E₂ : ι₂ → Type u_4} [(i : ι₂) → AddCommMonoid (E₂ i)] [(i : ι₂) → Module ℂ (E₂ i)] (i : ι₁) (j : ι₂) :
            (((a : ι₁) → E₁ a) →ₗ[ℂ] (a : ι₂) → E₂ a) →ₗ[ℂ] E₁ i →ₗ[ℂ] E₂ j

            Apply a linear map between dependent products to a selected input and output component.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem Pi.LinearMap.apply_apply_apply {ι₁ : Type u_1} {ι₂ : Type u_2} {E₁ : ι₁ → Type u_3} [DecidableEq ι₁] [(i : ι₁) → AddCommMonoid (E₁ i)] [(i : ι₁) → Module ℂ (E₁ i)] {E₂ : ι₂ → Type u_4} [(i : ι₂) → AddCommMonoid (E₂ i)] [(i : ι₂) → Module ℂ (E₂ i)] (i : ι₁) (j : ι₂) (x : ((a : ι₁) → E₁ a) →ₗ[ℂ] (a : ι₂) → E₂ a) (a : E₁ i) :
              ((apply i j) x) a = x ((LinearMap.single ℂ E₁ i) a) j
              theorem orthogonal_projection_iff_lm {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] [FiniteDimensional 𝕜 E] {p : E →ₗ[𝕜] E} :
              theorem Matrix.conj_eq_transpose_conjTranspose {R : Type u_1} {n₁ : Type u_2} {n₂ : Type u_3} [Star R] (A : Matrix n₁ n₂ R) :
              theorem Matrix.conj_eq_conjTranspose_transpose {R : Type u_1} {n₁ : Type u_2} {n₂ : Type u_3} [Star R] (A : Matrix n₁ n₂ R) :
              theorem Matrix.star_transpose_eq_star_transpose {R : Type u_1} {n : Type u_2} [Star R] (A : Matrix n n R) :
              noncomputable def oneMapTranspose {p : Type u_1} [Fintype p] [DecidableEq p] :

              Star algebra equivalence between a matrix tensor product and matrices on product indices.

              Equations
              Instances For
                theorem toMatrix''_symm_map_star {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] (x : Matrix (p × p) (p × p) ℂ) :
                noncomputable def Qam.fdOrthogonalProjection {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] (U : Submodule ℂ (Matrix p p ℂ)) :

                The orthogonal projection onto a submodule, using the finite-dimensional matrix context.

                Equations
                Instances For
                  theorem Qam.fdOrthogonalProjection_eq_sum_rankOne {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] {ι : Type u_2} [Fintype ι] {U : Submodule ℂ (Matrix p p ℂ)} (b : OrthonormalBasis ι ℂ ↥U) :
                  fdOrthogonalProjection U = ∑ i : ι, ↑(((rankOne ℂ) ↑(b i)) ↑(b i))
                  noncomputable def Qam.submoduleOfIdempotentAndReal {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] {A : Matrix p p ℂ →ₗ[ℂ] Matrix p p ℂ} (hA1 : (reflIdempotent hφ A) A = A) (hA2 : LinearMap.IsReal A) :

                  The submodule associated to an idempotent real quantum adjacency map.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    A canonical orthonormal basis for the submodule associated to an idempotent real QAM.

                    Equations
                    Instances For
                      class RealQam {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} (hφ : φ.IsFaithfulPosMap) (A : Matrix p p ℂ →ₗ[ℂ] Matrix p p ℂ) :

                      Quantum adjacency maps that are both Schur-idempotent and real.

                      Instances
                        theorem RealQam_iff {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] {A : Matrix p p ℂ →ₗ[ℂ] Matrix p p ℂ} :
                        theorem RealQam.add_iff {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] {A B : Matrix p p ℂ →ₗ[ℂ] Matrix p p ℂ} (hA : RealQam hφ A) (hB : RealQam hφ B) :
                        RealQam hφ (A + B) ↔ (Qam.reflIdempotent hφ A) B + (Qam.reflIdempotent hφ B) A = 0
                        theorem RealQam.zero {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] :
                        RealQam hφ 0

                        The zero map as a real QAM.

                        @[reducible]
                        noncomputable instance RealQam.hasZero {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] :
                        Equations
                        theorem Qam.reflIdempotent_zero {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] (a : Matrix p p ℂ →ₗ[ℂ] Matrix p p ℂ) :
                        (reflIdempotent hφ a) 0 = 0
                        theorem Qam.zero_reflIdempotent {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] (a : Matrix p p ℂ →ₗ[ℂ] Matrix p p ℂ) :
                        (reflIdempotent hφ 0) a = 0
                        @[reducible]
                        noncomputable def RealQam.edges {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] {x : Matrix p p ℂ →ₗ[ℂ] Matrix p p ℂ} (hx : RealQam hφ x) :

                        Number of edges of a real QAM, computed as the rank of its associated submodule.

                        Equations
                        Instances For
                          @[reducible]
                          noncomputable def RealQam.edges' {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] :
                          { x : Matrix p p ℂ →ₗ[ℂ] Matrix p p ℂ // RealQam hφ x } → ℕ

                          Edge-count function on the subtype of real QAMs.

                          Equations
                          Instances For
                            theorem RealQam.edges_eq {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] {A : Matrix p p ℂ →ₗ[ℂ] Matrix p p ℂ} (hA : RealQam hφ A) :
                            ↑hA.edges = (A φ.matrix⁻¹).trace
                            theorem Qam.trivialGraph_edges {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] [Nonempty p] :
                            ⋯.edges = 1
                            theorem RealQam.edges_eq_zero_iff {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] {A : Matrix p p ℂ →ₗ[ℂ] Matrix p p ℂ} (hA : RealQam hφ A) :
                            hA.edges = 0 ↔ A = 0
                            theorem psi_apply_complete_graph {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] {t s : ℝ} :
                            (hφ.psi t s) ↑(((rankOne ℂ) 1) 1) = 1
                            theorem AlgEquiv.TensorProduct.map_toLinearMap' {R : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} {V : Type u_5} [CommSemiring R] [Semiring S] [Semiring T] [Semiring U] [Semiring V] [Algebra R S] [Algebra R T] [Algebra R U] [Algebra R V] (f : S ≃ₐ[R] T) (g : U ≃ₐ[R] V) :
                            theorem AlgEquiv.toLinearMap_one {R : Type u_1} {S : Type u_2} [CommSemiring R] [Semiring S] [Algebra R S] :
                            theorem RealQam.edges_eq_dim_iff {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] {A : Matrix p p ℂ →ₗ[ℂ] Matrix p p ℂ} (hA : RealQam hφ A) :
                            theorem RealQam.edges_eq_one_iff {p : Type u_1} [Fintype p] [DecidableEq p] {φ : Module.Dual ℂ (Matrix p p ℂ)} [hφ : φ.IsFaithfulPosMap] {A : Matrix p p ℂ →ₗ[ℂ] Matrix p p ℂ} (hA : RealQam hφ A) :
                            hA.edges = 1 ↔ ∃ (x : { x : Matrix p p ℂ // x ≠ 0 }), A = (1 / ↑‖↑x‖ ^ 2) • (LinearMap.mulLeft ℂ (↑x * φ.matrix) * LinearMap.adjoint (LinearMap.mulRight ℂ (φ.matrix * ↑x)))