Documentation

LeanPool.Monlib4.QuantumGraph.PiMat

LeanPool.Monlib4.QuantumGraph.PiMat #

Imported Lean Pool material for LeanPool.Monlib4.QuantumGraph.PiMat.

Introduce the quantum-set instances for a product of matrix blocks in a proof.

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

    Introduce the quantum-set instances for a single matrix algebra in a proof.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      noncomputable def PiMat.transposeStarAlgEquiv (ι : Type u_3) (p : ιType u_4) [(i : ι) → Fintype (p i)] :

      Transpose each matrix block of a PiMat as a star-algebra equivalence to the opposite algebra.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem PiMat.transposeStarAlgEquiv_apply (ι : Type u_3) (p : ιType u_4) [(i : ι) → Fintype (p i)] (x : PiMat ι p) :
        @[simp]
        theorem PiMat.transposeStarAlgEquiv_symm_apply (ι : Type u_3) (p : ιType u_4) [(i : ι) → Fintype (p i)] (x : (PiMat ι p)ᵐᵒᵖ) (i : ι) :
        @[reducible, inline]

        Matrix algebra as endomorphisms of Euclidean space, as a star-algebra equivalence.

        Equations
        Instances For
          noncomputable def PiMatTensorProductEquiv {ι₁ : Type u_3} {ι₂ : Type u_4} {p₁ : ι₁Type u_5} {p₂ : ι₂Type u_6} [Fintype ι₁] [DecidableEq ι₁] [Fintype ι₂] [DecidableEq ι₂] [(i : ι₁) → Fintype (p₁ i)] [(i : ι₁) → DecidableEq (p₁ i)] [(i : ι₂) → Fintype (p₂ i)] [(i : ι₂) → DecidableEq (p₂ i)] :
          TensorProduct (PiMat ι₁ p₁) (PiMat ι₂ p₂) ≃⋆ₐ[] PiMat (ι₁ × ι₂) fun (i : ι₁ × ι₂) => p₁ i.1 × p₂ i.2

          Tensor-product equivalence for direct products of matrix algebras.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem PiMatTensorProductEquiv_apply {ι₁ : Type u_3} {ι₂ : Type u_4} {p₁ : ι₁Type u_5} {p₂ : ι₂Type u_6} [Fintype ι₁] [DecidableEq ι₁] [Fintype ι₂] [DecidableEq ι₂] [(i : ι₁) → Fintype (p₁ i)] [(i : ι₁) → DecidableEq (p₁ i)] [(i : ι₂) → Fintype (p₂ i)] [(i : ι₂) → DecidableEq (p₂ i)] (a✝ : TensorProduct ((i : ι₁) → Mat (p₁ i)) ((i : ι₂) → Mat (p₂ i))) (i : ι₁ × ι₂) :
            @[simp]
            theorem PiMatTensorProductEquiv_symm_apply {ι₁ : Type u_3} {ι₂ : Type u_4} {p₁ : ι₁Type u_5} {p₂ : ι₂Type u_6} [Fintype ι₁] [DecidableEq ι₁] [Fintype ι₂] [DecidableEq ι₂] [(i : ι₁) → Fintype (p₁ i)] [(i : ι₁) → DecidableEq (p₁ i)] [(i : ι₂) → Fintype (p₂ i)] [(i : ι₂) → DecidableEq (p₂ i)] (a✝ : PiMat (ι₁ × ι₂) fun (i : ι₁ × ι₂) => p₁ i.1 × p₂ i.2) :
            theorem PiMatTensorProductEquiv_tmul_apply {ι₁ : Type u_3} {ι₂ : Type u_4} {p₁ : ι₁Type u_5} {p₂ : ι₂Type u_6} [Fintype ι₁] [DecidableEq ι₁] [Fintype ι₂] [DecidableEq ι₂] [(i : ι₁) → Fintype (p₁ i)] [(i : ι₁) → DecidableEq (p₁ i)] [(i : ι₂) → Fintype (p₂ i)] [(i : ι₂) → DecidableEq (p₂ i)] (x : PiMat ι₁ p₁) (y : PiMat ι₂ p₂) (r : ι₁ × ι₂) (a b : p₁ r.1 × p₂ r.2) :
            PiMatTensorProductEquiv (x ⊗ₜ[] y) r a b = x r.1 a.1 b.1 * y r.2 a.2 b.2
            theorem PiMatTensorProductEquiv_tmul {ι₁ : Type u_3} {ι₂ : Type u_4} {p₁ : ι₁Type u_5} {p₂ : ι₂Type u_6} [Fintype ι₁] [DecidableEq ι₁] [Fintype ι₂] [DecidableEq ι₂] [(i : ι₁) → Fintype (p₁ i)] [(i : ι₁) → DecidableEq (p₁ i)] [(i : ι₂) → Fintype (p₂ i)] [(i : ι₂) → DecidableEq (p₂ i)] (x : PiMat ι₁ p₁) (y : PiMat ι₂ p₂) :
            PiMatTensorProductEquiv (x ⊗ₜ[] y) = fun (r : ι₁ × ι₂) => Matrix.kroneckerMap (fun (x1 x2 : ) => x1 * x2) (x r.1) (y r.2)
            theorem PiMatTensorProductEquiv_tmul_apply' {ι₁ : Type u_3} {ι₂ : Type u_4} {p₁ : ι₁Type u_5} {p₂ : ι₂Type u_6} [Fintype ι₁] [DecidableEq ι₁] [Fintype ι₂] [DecidableEq ι₂] [(i : ι₁) → Fintype (p₁ i)] [(i : ι₁) → DecidableEq (p₁ i)] [(i : ι₂) → Fintype (p₂ i)] [(i : ι₂) → DecidableEq (p₂ i)] (x : PiMat ι₁ p₁) (y : PiMat ι₂ p₂) (r : ι₁ × ι₂) (a c : p₁ r.1) (b d : p₂ r.2) :
            PiMatTensorProductEquiv (x ⊗ₜ[] y) r (a, b) (c, d) = x r.1 a c * y r.2 b d
            noncomputable def ContinuousLinearMap.toLinearMapStarAlgEquiv {𝕜 : Type u_3} {B : Type u_4} [RCLike 𝕜] [NormedAddCommGroup B] [InnerProductSpace 𝕜 B] [FiniteDimensional 𝕜 B] [CompleteSpace B] :
            (B →L[𝕜] B) ≃⋆ₐ[𝕜] B →ₗ[𝕜] B

            The forgetful equivalence from continuous endomorphisms to linear endomorphisms, as a star algebra equivalence.

            Equations
            Instances For
              @[reducible, inline]
              noncomputable abbrev PiMatToEuclideanLM {ι : Type u_1} {p : ιType u_2} [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] :

              Convert each block of a PiMat to a Euclidean-space linear map.

              Equations
              Instances For
                @[reducible, inline]
                noncomputable abbrev PiMat.traceLinearMap {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] :

                Trace functional on a product of matrix blocks.

                Equations
                Instances For
                  @[simp]
                  theorem PiMat.traceLinearMap_apply {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] (x : PiMat ι p) :
                  @[reducible]
                  noncomputable def PiMat.finiteDimensionalHilbertCoalgebraStruct {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] :

                  Coalgebra structure on a finite product of matrix blocks.

                  Equations
                  Instances For
                    theorem QuantumGraph.PiMat_existsSubmoduleIsProj {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {f : PiMat ι p →ₗ[] PiMat ι p} :
                    QuantumGraph (PiMat ι p) f∀ (t r : ), ∃ (u : (i : ι × ι) → Submodule (EuclideanSpace (p i.1 × p i.2))), ∀ (i : ι × ι), LinearMap.IsProj (u i) (PiMatToEuclideanLM (PiMatTensorProductEquiv ((StarAlgEquiv.lTensor (PiMat ι p) (PiMat.transposeStarAlgEquiv ι p).symm) ((QuantumSet.Psi t r) f))) i)
                    noncomputable def QuantumGraph.PiMatSubmodule {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {f : PiMat ι p →ₗ[] PiMat ι p} :
                    QuantumGraph (PiMat ι p) f(i : ι × ι) → Submodule (EuclideanSpace (p i.1 × p i.2))

                    Submodules associated to the block components of a PiMat quantum graph.

                    Equations
                    Instances For
                      theorem QuantumGraph.PiMatSubmoduleIsProj {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {f : PiMat ι p →ₗ[] PiMat ι p} (hf : QuantumGraph (PiMat ι p) f) (t r : ) (i : ι × ι) :
                      theorem QuantumGraph.PiMatSubmoduleIsProj_codRestrict {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {f : PiMat ι p →ₗ[] PiMat ι p} (hf : QuantumGraph (PiMat ι p) f) (t r : ) (i : ι × ι) :
                      noncomputable def QuantumGraph.dimOfPiMatSubmodule {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {f : PiMat ι p →ₗ[] PiMat ι p} :
                      QuantumGraph (PiMat ι p) f

                      Sum of the dimensions of the block submodules associated to a PiMat quantum graph.

                      Equations
                      Instances For
                        theorem PiMat.transposeStarAlgEquiv_symm_is_tracePreserving {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] (x : (PiMat ι p)ᵐᵒᵖ) :
                        theorem QuantumGraph.dimOfPiMatSubmodule_eq_trace {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {f : PiMat ι p →ₗ[] PiMat ι p} (hf : QuantumGraph (PiMat ι p) f) :
                        theorem StarAlgEquiv.lTensor_toLinearMap {R : Type u_3} {A : Type u_4} {B : Type u_5} {C : Type u_6} [RCLike R] [Ring A] [Ring B] [Ring C] [Algebra R A] [Algebra R B] [Algebra R C] [StarAddMonoid A] [StarAddMonoid B] [StarAddMonoid C] [StarModule R A] [StarModule R B] [StarModule R C] [Module.Finite R A] [Module.Finite R B] [Module.Finite R C] (f : A ≃⋆ₐ[R] B) :
                        @[implicit_reducible]
                        noncomputable instance TensorProduct.instCoalgebraStruct' {R : Type u_3} {S : Type u_4} {A : Type u_5} {B : Type u_6} [CommSemiring R] [CommSemiring S] [AddCommMonoid A] [AddCommMonoid B] [Algebra R S] [Module R A] [Module S A] [Module R B] [CoalgebraStruct R B] [CoalgebraStruct S A] [IsScalarTower R S A] :
                        Equations
                        • One or more equations did not get rendered due to their size.
                        theorem QuantumGraph.dimOfPiMatSubmodule_eq_trace_counit {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] :
                        theorem QuantumGraph.dimOfPiMatSubmodule_eq_numOfEdges_of_trace_counit {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] :
                        theorem QuantumGraph.dimOfPiMatSubmodule_eq_rank_top_iff {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {f : PiMat ι p →ₗ[] PiMat ι p} (hf : QuantumGraph (PiMat ι p) f) :
                        hf.dimOfPiMatSubmodule = i : ι × ι, Fintype.card (p i.1) * Fintype.card (p i.2) f = Qam.completeGraph (PiMat ι p) (PiMat ι p)
                        theorem QuantumGraph.CompleteGraph_dimOfPiMatSubmodule {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] :
                        .dimOfPiMatSubmodule = i : ι × ι, Fintype.card (p i.1) * Fintype.card (p i.2)
                        theorem Algebra.linearMap_adjoint_eq_dual {ι : Type u_1} {p : ιType u_2} [Fintype ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] :
                        theorem exists_dimOfPiMatSubmodule_ne_inner_one_map_one_of_IsFaithfulState {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] :
                        theorem QuantumGraph.Real.PiMat_isOrthogonalProjection {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {A : PiMat ι p →ₗ[] PiMat ι p} :
                        noncomputable def QuantumGraph.Real.PiMatSubmodule {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {A : PiMat ι p →ₗ[] PiMat ι p} :
                        Real (PiMat ι p) A(i : ι × ι) → Submodule (EuclideanSpace (p i.1 × p i.2))

                        Block submodules associated to a real PiMat quantum graph.

                        Equations
                        Instances For
                          theorem QuantumGraph.Real.PiMatSubmoduleOrthogonalProjection {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {A : PiMat ι p →ₗ[] PiMat ι p} (hA : Real (PiMat ι p) A) (i : ι × ι) :
                          noncomputable def QuantumGraph.Real.PiMatOrthonormalBasis {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {A : PiMat ι p →ₗ[] PiMat ι p} (hA : Real (PiMat ι p) A) (i : ι × ι) :

                          Orthonormal basis of a block submodule associated to a real PiMat quantum graph.

                          Equations
                          Instances For
                            theorem QuantumSet.PiMat_n {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] :
                            n (PiMat ι p) = ((i : ι) × p i × p i)
                            @[simp]
                            theorem Matrix.ite_kronecker {α : Type u_3} {n : Type u_4} {m : Type u_5} {p : Type u_6} {q : Type u_7} [MulZeroClass α] (x₁ : Matrix n m α) (x₂ : Matrix p q α) (P : Prop) [Decidable P] :
                            kroneckerMap (fun (x1 x2 : α) => x1 * x2) (if P then x₁ else 0) x₂ = if P then kroneckerMap (fun (x1 x2 : α) => x1 * x2) x₁ x₂ else 0
                            @[simp]
                            theorem Matrix.dite_kronecker {α : Type u_3} {n : Type u_4} {m : Type u_5} {p : Type u_6} {q : Type u_7} [MulZeroClass α] (P : Prop) [Decidable P] (x₁ : PMatrix n m α) (x₂ : Matrix p q α) :
                            kroneckerMap (fun (x1 x2 : α) => x1 * x2) (if p : P then x₁ p else 0) x₂ = if p_1 : P then kroneckerMap (fun (x1 x2 : α) => x1 * x2) (x₁ p_1) x₂ else 0
                            @[simp]
                            theorem Matrix.kronecker_ite {α : Type u_3} {n : Type u_4} {m : Type u_5} {p : Type u_6} {q : Type u_7} [MulZeroClass α] (x₁ : Matrix n m α) (x₂ : Matrix p q α) (P : Prop) [Decidable P] :
                            kroneckerMap (fun (x1 x2 : α) => x1 * x2) x₁ (if P then x₂ else 0) = if P then kroneckerMap (fun (x1 x2 : α) => x1 * x2) x₁ x₂ else 0
                            @[simp]
                            theorem Matrix.kronecker_dite {α : Type u_3} {n : Type u_4} {m : Type u_5} {p : Type u_6} {q : Type u_7} [MulZeroClass α] (x₁ : Matrix n m α) (P : Prop) [Decidable P] (x₂ : PMatrix p q α) :
                            kroneckerMap (fun (x1 x2 : α) => x1 * x2) x₁ (if p : P then x₂ p else 0) = if p_1 : P then kroneckerMap (fun (x1 x2 : α) => x1 * x2) x₁ (x₂ p_1) else 0
                            theorem Matrix.vecMulVec_kronecker_vecMulVec {α : Type u_3} {n : Type u_4} {m : Type u_5} {p : Type u_6} {q : Type u_7} [CommSemiring α] (x : nα) (y : mα) (z : pα) (w : qα) :
                            kroneckerMap (fun (x1 x2 : α) => x1 * x2) (vecMulVec x y) (vecMulVec z w) = vecMulVec (reshape (vecMulVec x z)) (reshape (vecMulVec y w))
                            @[simp]
                            theorem Matrix.vecMulVec_conj {α : Type u_3} {n : Type u_4} {m : Type u_5} [CommSemiring α] [StarMul α] (x : nα) (y : mα) :
                            theorem Matrix.includeBlock_apply_block {R : Type u_3} {k : Type u_4} [CommSemiring R] [DecidableEq k] {s : kType u_5} {i : k} (x : Matrix (s i) (s i) R) (j : k) :
                            includeBlock x j = if h : i = j then .mp x else 0
                            noncomputable def TensorProduct.chooseFinset {R : Type u_3} {M : Type u_4} {N : Type u_5} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (x : TensorProduct R M N) :
                            Finset (M × N)

                            A chosen finite support representation of a tensor.

                            Equations
                            Instances For
                              theorem TensorProduct.chooseFinset_spec {R : Type u_3} {M : Type u_4} {N : Type u_5} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (x : TensorProduct R M N) :
                              x = sx.chooseFinset, s.1 ⊗ₜ[R] s.2
                              noncomputable def EuclideanSpace.prodChoose {n : Type u_3} {m : Type u_4} [Fintype n] [DecidableEq n] [Fintype m] [DecidableEq m] (x : EuclideanSpace (n × m)) :

                              A product-coordinate decomposition of Euclidean space vectors.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                theorem EuclideanSpace.sum_apply {n : Type u_3} {𝕜 : Type u_4} [RCLike 𝕜] {ι : Type u_5} (s : Finset ι) (x : ιEuclideanSpace 𝕜 n) (j : n) :
                                (∑ is, x i).ofLp j = is, (x i).ofLp j
                                theorem Module.Basis.tensorProduct_repr_tmul_apply' {R : Type u_3} {M : Type u_4} {N : Type u_5} {ι : Type u_6} {κ : Type u_7} [CommSemiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] (b : Basis ι R M) (c : Basis κ R N) (m : M) (n : N) (i : ι × κ) :
                                ((b.tensorProduct c).repr (m ⊗ₜ[R] n)) i = (c.repr n) i.2 * (b.repr m) i.1
                                theorem EuclideanSpace.prodChoose_spec {n : Type u_3} {m : Type u_4} [Fintype n] [DecidableEq n] [Fintype m] [DecidableEq m] (x : EuclideanSpace (n × m)) :
                                x = s : n × m, euclideanSpaceTensor' ((x.prodChoose s).1 ⊗ₜ[] (x.prodChoose s).2)
                                theorem QuantumGraph.Real.PiMat_eq {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {A : PiMat ι p →ₗ[] PiMat ι p} (hA : Real (PiMat ι p) A) :
                                have S := fun (i : ι × ι) (j : Fin (Module.finrank (hA.PiMatSubmodule i))) => (↑((hA.PiMatOrthonormalBasis i) j)).prodChoose; A = (∑ i : ι × ι, j : Fin (Module.finrank (hA.PiMatSubmodule i)), s : p i.1 × p i.2, l : p i.1 × p i.2, ((rankOne ) (Matrix.includeBlock (Matrix.vecMulVec (S i j s).1.ofLp (star (S i j l).1.ofLp)))) ((modAut (-(1 / 2))) (Matrix.includeBlock (Matrix.vecMulVec (S i j s).2.ofLp (star (S i j l).2.ofLp)).conj)))
                                theorem QuantumGraph.trivialGraph {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {d : } [Nonempty ι] [hφ₂ : Fact (∀ (i : ι), (φ i).matrix⁻¹.trace = d)] [∀ (i : ι), Nontrivial (p i)] :
                                theorem PiMat.piAlgEquiv_trace_apply {ι : Type u_1} {p : ιType u_2} [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] (f : (i : ι) → Matrix (p i) (p i) ≃ₐ[] Matrix (p i) (p i) ) (x : PiMat ι p) (a : ι) :
                                theorem PiMat.modAut_trace_apply {ι : Type u_1} {p : ιType u_2} [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] [Finite ι] (r : ) (x : PiMat ι p) (a : ι) :
                                theorem PiMat.orthonormalBasis_trace {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] (a : n (PiMat ι p)) (i : ι) :
                                Matrix.trace (onb a i) = if a.fst = i then .rpow (-(1 / 2)) a.snd.2 a.snd.1 else 0
                                theorem QuantumGraph.trivialGraph_dimOfPiMatSubmodule {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {d : } [Nonempty ι] [hφ₂ : Fact (∀ (i : ι), (φ i).matrix⁻¹.trace = d)] [∀ (i : ι), Nontrivial (p i)] :
                                theorem StarAlgEquiv.piCongrRight_symm {R : Type u_3} {ι : Type u_4} {A₁ : ιType u_5} {A₂ : ιType u_6} [(i : ι) → Add (A₁ i)] [(i : ι) → Add (A₂ i)] [(i : ι) → Mul (A₁ i)] [(i : ι) → Mul (A₂ i)] [(i : ι) → Star (A₁ i)] [(i : ι) → Star (A₂ i)] [(i : ι) → SMul R (A₁ i)] [(i : ι) → SMul R (A₂ i)] (e : (i : ι) → A₁ i ≃⋆ₐ[R] A₂ i) :
                                (piCongrRight e).symm = piCongrRight fun (i : ι) => (e i).symm
                                theorem Matrix.k {n : Type u_3} [Fintype n] [DecidableEq n] {φ : Module.Dual (Matrix n n )} [φ.IsFaithfulPosMap] :
                                theorem unitary.mul_inv_eq_iff {A : Type u_3} [Monoid A] [StarMul A] (U : (unitary A)) (x y : A) :
                                x * U⁻¹ = y x = y * U
                                @[reducible, inline]
                                noncomputable abbrev piInnerAut {ι : Type u_1} {p : ιType u_2} [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] (U : (i : ι) → (Matrix.unitaryGroup (p i) )) :

                                Blockwise inner automorphism of a PiMat.

                                Equations
                                Instances For
                                  theorem piInnerAut_apply_dualMatrix_iff' {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} {U : (i : ι) → (Matrix.unitaryGroup (p i) )} :
                                  theorem piInnerAut_apply_dualMatrix_iff {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} {U : (i : ι) → (Matrix.unitaryGroup (p i) )} :
                                  (piInnerAut U) (Module.Dual.pi.matrixBlock φ) = Module.Dual.pi.matrixBlock φ ∀ (a : ι), (U a) * (φ a).matrix = (φ a).matrix * (U a)
                                  theorem innerAutStarAlg_adjoint_eq_symm_of {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {U : (i : ι) → (Matrix.unitaryGroup (p i) )} :
                                  theorem QuantumGraph.Real.piMat_conj_unitary {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {A : PiMat ι p →ₗ[] PiMat ι p} :

                                  Real quantum graphs on PiMat are preserved by blockwise unitary conjugation.

                                  @[reducible, inline]

                                  A unitary matrix as a linear equivalence of Euclidean space.

                                  Equations
                                  Instances For

                                    A unitary matrix as a linear isometry equivalence of Euclidean space.

                                    Equations
                                    Instances For
                                      @[reducible, inline]
                                      noncomputable abbrev unitaryTensorEuclidean {ι : Type u_1} {p : ιType u_2} [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] (U : (i : ι) → (Matrix.unitaryGroup (p i) )) (i : ι × ι) :

                                      Tensor-product Euclidean isometry induced by a pair of blockwise unitaries.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        theorem unitaryTensorEuclidean_apply {ι : Type u_1} {p : ιType u_2} [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {U : (i : ι) → (Matrix.unitaryGroup (p i) )} (i : ι × ι) (x : EuclideanSpace (p i.1)) (y : EuclideanSpace (p i.2)) :
                                        theorem unitaryTensorEuclidean_apply' {ι : Type u_1} {p : ιType u_2} [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {U : (i : ι) → (Matrix.unitaryGroup (p i) )} (i : ι × ι) (x : EuclideanSpace (p i.1 × p i.2)) :
                                        (unitaryTensorEuclidean U i) x = j : p i.1 × p i.2, euclideanSpaceTensor' (WithLp.toLp 2 ((↑(U i.1)).mulVec (x.prodChoose j).1.ofLp) ⊗ₜ[] WithLp.toLp 2 ((↑(U i.2)).conj.mulVec (x.prodChoose j).2.ofLp))
                                        theorem unitaryTensorEuclidean_symm_apply {ι : Type u_1} {p : ιType u_2} [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {U : (i : ι) → (Matrix.unitaryGroup (p i) )} (i : ι × ι) (x : EuclideanSpace (p i.1)) (y : EuclideanSpace (p i.2)) :
                                        theorem QuantumGraph.Real.PiMatSubmodule_eq_submodule_iff {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {A B : PiMat ι p →ₗ[] PiMat ι p} (hA : Real (PiMat ι p) A) (hB : Real (PiMat ι p) B) :
                                        (∀ (i : ι × ι), hA.PiMatSubmodule i = hB.PiMatSubmodule i) A = B
                                        theorem Matrix.kronecker_mulVec_euclideanSpaceTensor' {n : Type u_3} {m : Type u_4} [Fintype n] [Fintype m] [DecidableEq n] [DecidableEq m] (A : Matrix n n ) (B : Matrix m m ) (x : EuclideanSpace n) (y : EuclideanSpace m) :
                                        (kroneckerMap (fun (x1 x2 : ) => x1 * x2) A B).mulVec ((WithLp.equiv 2 (n × m)) (euclideanSpaceTensor' (x ⊗ₜ[] y))) = (WithLp.equiv 2 ((i : n × m) → (fun (x : n × m) => ) i)) (euclideanSpaceTensor' (WithLp.toLp 2 (A.mulVec x.ofLp) ⊗ₜ[] WithLp.toLp 2 (B.mulVec y.ofLp)))
                                        theorem StarAlgEquiv.piCongrRight_apply_includeBlock {ι : Type u_3} {p : ιType u_4} [(i : ι) → Fintype (p i)] [DecidableEq ι] (f : (i : ι) → Matrix (p i) (p i) ≃⋆ₐ[] Matrix (p i) (p i) ) (i : ι) (x : Matrix (p i) (p i) ) :
                                        (piCongrRight fun (a : ι) => f a) (Matrix.includeBlock x) = Matrix.includeBlock ((f i) x)
                                        theorem Matrix.innerAutStarAlg_apply_vecMulVec {n : Type u_3} {𝕜 : Type u_4} [Fintype n] [Field 𝕜] [StarRing 𝕜] [DecidableEq n] (U : (unitaryGroup n 𝕜)) (x y : n𝕜) :
                                        (innerAutStarAlg U) (vecMulVec x y) = vecMulVec ((↑U).mulVec x) ((↑U).conj.mulVec y)
                                        theorem Matrix.innerAutStarAlg_apply_vecMulVec_star {n : Type u_3} {𝕜 : Type u_4} [Fintype n] [Field 𝕜] [StarRing 𝕜] [DecidableEq n] (U : (unitaryGroup n 𝕜)) (x y : n𝕜) :
                                        (innerAutStarAlg U) (vecMulVec x (star y)) = vecMulVec ((↑U).mulVec x) (star ((↑U).mulVec y))
                                        theorem Matrix.innerAutStarAlg_apply_star_vecMulVec {n : Type u_3} {𝕜 : Type u_4} [Fintype n] [Field 𝕜] [StarRing 𝕜] [DecidableEq n] (U : (unitaryGroup n 𝕜)) (x y : n𝕜) :
                                        (innerAutStarAlg U) (vecMulVec (star x) y) = (vecMulVec ((↑U).conj.mulVec x) (star ((↑U).conj.mulVec y))).conj
                                        theorem Matrix.PosSemidef.eq_iff_sq_eq_sq {n : Type u_3} [Fintype n] [DecidableEq n] {A : Matrix n n } (hA : A.PosSemidef) {B : Matrix n n } (hB : B.PosSemidef) :
                                        A ^ 2 = B ^ 2 A = B
                                        theorem innerAutStarAlg_apply_dualMatrix_eq_iff_eq_sqrt {ι : Type u_1} {p : ιType u_2} [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {i : ι} (U : (Matrix.unitaryGroup (p i) )) :
                                        (Matrix.innerAutStarAlg U) (φ i).matrix = (φ i).matrix (Matrix.innerAutStarAlg U) (.rpow (1 / 2)) = .rpow (1 / 2)
                                        theorem PiMat.modAut {ι : Type u_1} {p : ιType u_2} [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] [Finite ι] (r : ) (x : PiMat ι p) (i : ι) :
                                        (starAlgebra.modAut r) x i = (sig r) (x i)
                                        theorem PiMat.counit_eq_dual {ι : Type u_1} {p : ιType u_2} [Fintype ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] :
                                        theorem modAut_eq_id_iff {ι : Type u_1} {p : ιType u_2} [Fintype ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] (r : ) :
                                        theorem unitary.mul_inj {A : Type u_3} [Monoid A] [StarMul A] (U : (unitary A)) (x y : A) :
                                        U * x = U * y x = y
                                        theorem piInnerAut_modAut_commutes_of {ι : Type u_1} {p : ιType u_2} [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] [Finite ι] {U : (i : ι) → (Matrix.unitaryGroup (p i) )} {r : } :
                                        (∀ (i : ι), (Matrix.innerAutStarAlg (U i)) (.rpow r) = .rpow r)∀ (x : PiMat ι p), (piInnerAut U) ((modAut (-r)) x) = (modAut (-r)) ((piInnerAut U) x)
                                        theorem QuantumGraph.Real.PiMat_applyConjInnerAut {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {A : PiMat ι p →ₗ[] PiMat ι p} (hA : Real (PiMat ι p) A) {U : (i : ι) → (Matrix.unitaryGroup (p i) )} :
                                        (piInnerAut U) (Module.Dual.pi.matrixBlock φ) = Module.Dual.pi.matrixBlock φhave S := fun (i : ι × ι) (j : Fin (Module.finrank (hA.PiMatSubmodule i))) => (↑((hA.PiMatOrthonormalBasis i) j)).prodChoose; (piInnerAut U).toLinearMap ∘ₗ A ∘ₗ LinearMap.adjoint (piInnerAut U).toLinearMap = (∑ i : ι × ι, j : Fin (Module.finrank (hA.PiMatSubmodule i)), s : p i.1 × p i.2, l : p i.1 × p i.2, ((rankOne ) (Matrix.includeBlock (Matrix.vecMulVec ((↑(U i.1)).mulVec (S i j s).1.ofLp) (star ((↑(U i.1)).mulVec (S i j l).1.ofLp))))) ((modAut (-(1 / 2))) (Matrix.includeBlock (Matrix.vecMulVec ((↑(U i.2)).conj.mulVec (S i j s).2.ofLp) (star ((↑(U i.2)).conj.mulVec (S i j l).2.ofLp))).conj)))
                                        theorem QuantumGraph.Real.PiMat_conj_unitary_submodule_eq_map {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {A : PiMat ι p →ₗ[] PiMat ι p} (hA : Real (PiMat ι p) A) {U : (i : ι) → (Matrix.unitaryGroup (p i) )} (hU : (piInnerAut U) (Module.Dual.pi.matrixBlock φ) = Module.Dual.pi.matrixBlock φ) (i : ι × ι) :
                                        theorem LinearMap.proj_apply_includeBlock {ι : Type u_1} {p : ιType u_2} [DecidableEq ι] (i j : ι) (x : Matrix (p j) (p j) ) :
                                        (proj i) (Matrix.includeBlock x) = if h : j = i then .mpr x else 0
                                        theorem PiMat.modAut_includeBlock {ι : Type u_1} {p : ιType u_2} [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] [Finite ι] (r : ) (j : ι) (x : Matrix (p j) (p j) ) :
                                        theorem PiMat.modAut_proj {ι : Type u_1} {p : ιType u_2} [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] [Finite ι] (r : ) (j : ι) (x : PiMat ι p) :
                                        theorem EuclideanSpace.prodChoose_zero_fst {n : Type u_3} {m : Type u_4} [Fintype n] [DecidableEq n] [Fintype m] [DecidableEq m] (i : n × m) :
                                        (prodChoose 0 i).1 = 0
                                        theorem QuantumGraph.Real.PiMatSubmodule_eq_bot_iff_proj_comp_adjoint_proj_eq_zero {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {A : PiMat ι p →ₗ[] PiMat ι p} (hA : Real (PiMat ι p) A) {i : ι × ι} :
                                        theorem QuantumGraph.Real.PiMatSubmodule_eq_top_iff_proj_comp_adjoint_proj_eq_rankOne_one_one {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {A : PiMat ι p →ₗ[] PiMat ι p} (hA : Real (PiMat ι p) A) {i : ι × ι} :
                                        theorem Matrix.trace_piMatTensorProductEquiv_lTensor_unop_map_modAut {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] (x : TensorProduct (PiMat ι p) (PiMat ι p)ᵐᵒᵖ) (i : ι × ι) :
                                        theorem Matrix.trace_piMatTensorProductEquiv_lTensor_unop_tenSwap {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] (x : TensorProduct (PiMat ι p) (PiMat ι p)ᵐᵒᵖ) (i : ι × ι) :
                                        def LinearIsometryEquiv.ofLinearEquiv {𝕜 : Type u_3} {E : Type u_4} {F : Type u_5} [RCLike 𝕜] [NormedAddCommGroup E] [NormedAddCommGroup F] [InnerProductSpace 𝕜 E] [InnerProductSpace 𝕜 F] [FiniteDimensional 𝕜 E] [FiniteDimensional 𝕜 F] (f : E ≃ₗ[𝕜] F) (hf : LinearMap.adjoint f = f.symm) :
                                        E ≃ₗᵢ[𝕜] F

                                        Build a linear isometry equivalence from a linear equivalence whose adjoint is its inverse.

                                        Equations
                                        Instances For
                                          theorem LinearIsometryEquiv.ofLinearEquiv_apply {𝕜 : Type u_3} {E : Type u_4} {F : Type u_5} [RCLike 𝕜] [NormedAddCommGroup E] [NormedAddCommGroup F] [InnerProductSpace 𝕜 E] [InnerProductSpace 𝕜 F] [FiniteDimensional 𝕜 E] [FiniteDimensional 𝕜 F] (f : E ≃ₗ[𝕜] F) (hf : LinearMap.adjoint f = f.symm) (x : E) :
                                          (ofLinearEquiv f hf) x = f x
                                          noncomputable def TensorProduct.commLinearIsometryEquiv (𝕜 : Type u_3) (E : Type u_4) (F : Type u_5) [RCLike 𝕜] [NormedAddCommGroup E] [NormedAddCommGroup F] [InnerProductSpace 𝕜 E] [InnerProductSpace 𝕜 F] [FiniteDimensional 𝕜 E] [FiniteDimensional 𝕜 F] :

                                          Tensor-product commutativity as a linear isometry equivalence.

                                          Equations
                                          Instances For
                                            theorem TensorProduct.commLinearIsometryEquiv_apply {𝕜 : Type u_3} {E : Type u_4} {F : Type u_5} [RCLike 𝕜] [NormedAddCommGroup E] [NormedAddCommGroup F] [InnerProductSpace 𝕜 E] [InnerProductSpace 𝕜 F] [FiniteDimensional 𝕜 E] [FiniteDimensional 𝕜 F] (x : E) (y : F) :
                                            (commLinearIsometryEquiv 𝕜 E F) (x ⊗ₜ[𝕜] y) = y ⊗ₜ[𝕜] x
                                            theorem QuantumGraph.Real.piMat_submodule_finrank_eq_swap_of_adjoint {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {f : PiMat ι p →ₗ[] PiMat ι p} (hf : Real (PiMat ι p) f) :
                                            theorem QuantumGraph.Real.PiMatSubmodule_eq_bot_iff_swap_eq_bot_of_adjoint {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {A : PiMat ι p →ₗ[] PiMat ι p} (hA : Real (PiMat ι p) A) :
                                            LinearMap.adjoint A = A∀ (i : ι × ι), hA.PiMatSubmodule i = hA.PiMatSubmodule i.swap =
                                            theorem QuantumGraph.Real.PiMatSubmodule_eq_top_iff_swap_eq_top_of_adjoint {ι : Type u_1} {p : ιType u_2} [Fintype ι] [DecidableEq ι] [(i : ι) → Fintype (p i)] [(i : ι) → DecidableEq (p i)] {φ : (i : ι) → Module.Dual (Matrix (p i) (p i) )} [ : ∀ (i : ι), (φ i).IsFaithfulPosMap] {A : PiMat ι p →ₗ[] PiMat ι p} (hA : Real (PiMat ι p) A) :
                                            LinearMap.adjoint A = A∀ (i : ι × ι), hA.PiMatSubmodule i = hA.PiMatSubmodule i.swap =