Documentation

Monlib.LinearAlgebra.QuantumSet.Basic

Quantum Set #

This file defines the structure of a quantum set.

A quantum set is defined as a star-algebra A over with a positive element Q such that Q is invertible and a sum of rank-one operators (in other words, positive definite). The quantum set is also equipped with a faithful positive linear functional φ on A, which is used to define the inner product on A, i.e., ⟪x, y⟫_ℂ = φ (star x * y). The quantum set is also equipped with a trace functional on A such that φ x = trace (Q * x).

Main definitions #

@[reducible]
class starAlgebra (A : Type u_1) extends Ring A, Algebra A, StarRing A, StarModule A :
Type u_1
Instances
    @[simp]
    theorem starAlgebra.modAut_zero {A : Type u_1} [hA : starAlgebra A] :
    modAut 0 = 1
    @[simp]
    theorem starAlgebra.modAut_apply_modAut {A : Type u_1} [ha : starAlgebra A] (t r : ) (a : A) :
    (modAut t) ((modAut r) a) = (modAut (t + r)) a
    @[simp]
    theorem starAlgebra.modAut_symm {A : Type u_1} [ha : starAlgebra A] (r : ) :
    class InnerProductAlgebra (A : Type u_1) [starAlgebra A] extends Norm A, MetricSpace A, Inner A, IsBoundedSMul A :
    Type u_1
    Instances
      class QuantumSet (A : Type u_2) [ha : starAlgebra A] extends InnerProductAlgebra A :
      Type (max (u_1 + 1) u_2)
      Instances
        instance n_isFinite {A : Type u_1} [ha : starAlgebra A] [QuantumSet A] :
        Finite (n A)
        instance QuantumSet.toFinite {A : Type u_1} [ha : starAlgebra A] [hA : QuantumSet A] :
        theorem QuantumSet.modAut_apply_modAut {A : Type u_1} [ha : starAlgebra A] (t r : ) (a : A) :
        (modAut t) ((modAut r) a) = (modAut (t + r)) a

        Alias of starAlgebra.modAut_apply_modAut.

        Equations
        • One or more equations did not get rendered due to their size.
        noncomputable instance Complex.quantumSet :
        Equations
        • One or more equations did not get rendered due to their size.
        @[simp]
        theorem RCLike.inner_tmul {𝕜 : Type u_2} [RCLike 𝕜] (x y z w : 𝕜) :
        inner (x ⊗ₜ[𝕜] y) (z ⊗ₜ[𝕜] w) = inner (x * y) (z * w)
        theorem TensorProduct.singleton_tmul {R : Type u_2} {E : Type u_3} {F : Type u_4} [CommSemiring R] [AddCommGroup E] [Module R E] [AddCommGroup F] [Module R F] (x : TensorProduct R E F) (b₁ : Basis (Fin 1) R E) (b₂ : Basis (Fin 1) R F) :
        ∃ (a : E) (b : F), x = a ⊗ₜ[R] b
        theorem RCLike.inner_tensor_apply {𝕜 : Type u_2} [RCLike 𝕜] (x y : TensorProduct 𝕜 𝕜 𝕜) :
        inner x y = inner ((LinearMap.mul' 𝕜 𝕜) x) ((LinearMap.mul' 𝕜 𝕜) y)
        Equations
        • =
        Instances For
          theorem lmul_adjoint {B : Type u_2} [hb : starAlgebra B] [hB : QuantumSet B] (a : B) :
          theorem QuantumSet.inner_eq_counit' {B : Type u_2} [hb : starAlgebra B] [hB : QuantumSet B] :
          (fun (x : B) => inner 1 x) = CoalgebraStruct.counit
          theorem QuantumSet.inner_conj {A : Type u_2} [ha : starAlgebra A] [hA : QuantumSet A] (a b : A) :
          inner a b = inner (star b) ((modAut (-(2 * k A) - 1)) (star a))
          theorem QuantumSet.inner_conj' {A : Type u_2} [ha : starAlgebra A] [hA : QuantumSet A] (a b : A) :
          inner a b = inner ((modAut (-(2 * k A) - 1)) (star b)) (star a)
          theorem QuantumSet.inner_modAut_right_conj {A : Type u_2} [ha : starAlgebra A] [hA : QuantumSet A] (a b : A) :
          inner a ((modAut (-k A)) (star b)) = inner b ((modAut (-k A - 1)) (star a))
          theorem QuantumSet.inner_conj'' {A : Type u_2} [ha : starAlgebra A] [hA : QuantumSet A] (a b : A) :
          inner a b = inner ((modAut ((-(2 * k A) - 1) / 2)) (star b)) ((modAut ((-(2 * k A) - 1) / 2)) (star a))
          theorem QuantumSet.inner_eq_counit {B : Type u_2} [hb : starAlgebra B] [hB : QuantumSet B] (x y : B) :
          theorem counit_mul_modAut_symm' {A : Type u_2} [ha : starAlgebra A] [hA : QuantumSet A] (a b : A) (r : ) :
          theorem rmul_adjoint {B : Type u_2} [hb : starAlgebra B] [hB : QuantumSet B] (a : B) :
          noncomputable def QuantumSet.Psi_toFun {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (t r : ) :
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem QuantumSet.Psi_toFun_apply {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (t r : ) (b : A) (a : B) :
            (Psi_toFun t r) (((rankOne ) a) b) = (modAut t) a ⊗ₜ[] MulOpposite.op (star ((modAut r) b))
            noncomputable def QuantumSet.Psi_invFun {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (t r : ) :
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem QuantumSet.Psi_invFun_apply {A : Type u_3} {B : Type u_2} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (t r : ) (x : A) (y : Bᵐᵒᵖ) :
              (Psi_invFun t r) (x ⊗ₜ[] y) = (((rankOne ) ((modAut (-t)) x)) ((modAut (-r)) (star (MulOpposite.unop y))))
              theorem QuantumSet.Psi_left_inv {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (t r : ) (x : A) (y : B) :
              (Psi_invFun t r) ((Psi_toFun t r) (((rankOne ) x) y)) = (((rankOne ) x) y)
              theorem QuantumSet.Psi_right_inv {A : Type u_3} {B : Type u_2} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (t r : ) (x : A) (y : Bᵐᵒᵖ) :
              (Psi_toFun t r) ((Psi_invFun t r) (x ⊗ₜ[] y)) = x ⊗ₜ[] y
              noncomputable def QuantumSet.Psi {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (t r : ) :
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem QuantumSet.Psi_symm_apply {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (t r : ) (x : TensorProduct B Aᵐᵒᵖ) :
                (Psi t r).symm x = (Psi_invFun t r) x
                @[simp]
                theorem QuantumSet.Psi_apply {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (t r : ) (x : A →ₗ[] B) :
                (Psi t r) x = (Psi_toFun t r) x
                theorem LinearMap.adjoint_real_eq {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (f : A →ₗ[] B) :
                theorem rankOne_real {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (a : A) (b : B) :
                (↑(((rankOne ) a) b)).real = (((rankOne ) (star a)) ((modAut (-(2 * k B) - 1)) (star b)))
                theorem QuantumSet.counit_tensor_star_left_eq_bra {A : Type u_2} [ha : starAlgebra A] [hA : QuantumSet A] (x : A) :
                (CoalgebraStruct.counit (LinearMap.mul' A) fun (x_1 : A) => (modAut (-k A)) (star x) ⊗ₜ[] x_1) = ((bra ) x)
                theorem QuantumSet.mul_comp_tensor_left_unit_eq_ket {A : Type u_2} [ha : starAlgebra A] [hA : QuantumSet A] (x : A) :
                (LinearMap.mul' A) (fun (x_1 : A) => x ⊗ₜ[] x_1) (Algebra.linearMap A) = ((ket ) x)
                theorem ket_real {𝕜 : Type u_2} {A : Type u_3} [RCLike 𝕜] [NormedAddCommGroup A] [InnerProductSpace 𝕜 A] [StarAddMonoid A] [StarModule 𝕜 A] (x : A) :
                (↑((ket 𝕜) x)).real = ((ket 𝕜) (star x))
                theorem bra_real {A : Type u_2} [ha : starAlgebra A] [hA : QuantumSet A] (x : A) :
                (↑((bra ) x)).real = ((bra ) ((modAut (-(2 * k A) - 1)) (star x)))
                theorem ket_toMatrix {𝕜 : Type u_2} {A : Type u_3} [RCLike 𝕜] [NormedAddCommGroup A] [InnerProductSpace 𝕜 A] {ι : Type u_4} [Fintype ι] (b : Basis ι 𝕜 A) (x : A) :
                (LinearMap.toMatrix (Basis.singleton Unit 𝕜) b) ((ket 𝕜) x) = Matrix.col Unit (b.repr x)
                theorem bra_toMatrix {𝕜 : Type u_2} {A : Type u_3} [RCLike 𝕜] [NormedAddCommGroup A] [InnerProductSpace 𝕜 A] {ι : Type u_4} [Fintype ι] [DecidableEq ι] (b : OrthonormalBasis ι 𝕜 A) (x : A) :
                theorem lmul_toMatrix_apply {n : Type u_2} [Fintype n] [DecidableEq n] (x : n) (i j : n) :
                theorem rankOne_trace {𝕜 : Type u_2} {A : Type u_3} [RCLike 𝕜] [NormedAddCommGroup A] [InnerProductSpace 𝕜 A] [Module.Finite 𝕜 A] (x y : A) :
                (LinearMap.trace 𝕜 A) (((rankOne 𝕜) x) y) = inner y x
                theorem LinearMap.apply_eq_id {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [Module R M] {f : M →ₗ[R] M} :
                (∀ (x : M), f x = x) f = 1
                theorem QuantumSet.starAlgEquiv_is_isometry_tfae {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (f : A ≃⋆ₐ[] B) :
                [LinearMap.adjoint f.toLinearMap = f.symm.toLinearMap, ∀ (x y : A), inner (f x) (f y) = inner x y, ∀ (x : A), f x = x, Isometry f].TFAE
                theorem QuantumSet.starAlgEquiv_isometry_iff_coalgHom {A : Type u_3} {B : Type u_5} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (gns₁ : k A = 0) (gns₂ : k B = 0) {f : A ≃⋆ₐ[] B} :
                theorem StarAlgEquiv.isReal {R : Type u_2} {A : Type u_3} {B : Type u_4} [Semiring R] [AddCommMonoid A] [AddCommMonoid B] [Mul A] [Mul B] [Module R A] [Module R B] [Star A] [Star B] (f : A ≃⋆ₐ[R] B) :
                theorem AlgEquiv.linearMap_comp_eq_iff {R : Type u_2} {E₁ : Type u_3} {E₂ : Type u_4} {E₃ : Type u_5} [CommSemiring R] [Semiring E₁] [Semiring E₂] [AddCommMonoid E₃] [Algebra R E₁] [Algebra R E₂] [Module R E₃] (f : E₁ ≃ₐ[R] E₂) (x : E₂ →ₗ[R] E₃) (y : E₁ →ₗ[R] E₃) :
                theorem AlgEquiv.comp_linearMap_eq_iff {R : Type u_2} {E₁ : Type u_3} {E₂ : Type u_4} {E₃ : Type u_5} [CommSemiring R] [Semiring E₁] [Semiring E₂] [AddCommMonoid E₃] [Algebra R E₁] [Algebra R E₂] [Module R E₃] (f : E₁ ≃ₐ[R] E₂) (x : E₃ →ₗ[R] E₁) (y : E₃ →ₗ[R] E₂) :
                theorem QuantumSet.starAlgEquiv_commutes_with_modAut_of_isometry {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] {f : A ≃⋆ₐ[] B} (hf : Isometry f) :
                (modAut (2 * k A + 1)).trans f.toAlgEquiv = f.toAlgEquiv.trans (modAut (2 * k B + 1))
                theorem tenSwap_lTensor_comul_one_eq_Psi {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (f : A →ₗ[] B) :
                theorem map_op_comul_one_eq_Psi {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (f : A →ₗ[] B) :
                theorem tenSwap_apply_lTensor {R : Type u_2} {A : Type u_3} {B : Type u_4} {C : Type u_5} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid C] [Module R A] [AddCommMonoid B] [Module R B] [Module R C] (f : B →ₗ[R] C) (x : TensorProduct R A Bᵐᵒᵖ) :
                theorem QuantumSet.Psi_apply_one_one {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (t r : ) :
                (Psi t r) (((rankOne ) 1) 1) = 1
                theorem QuantumSet.Psi_symm_apply_one {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (t r : ) :
                (Psi t r).symm 1 = (((rankOne ) 1) 1)
                @[reducible, inline]
                noncomputable abbrev Upsilon {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] :
                Equations
                Instances For
                  @[simp]
                  theorem Upsilon_apply {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (a✝ : A →ₗ[] B) :
                  @[simp]
                  theorem Upsilon_symm_apply {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (a✝ : TensorProduct A B) :
                  theorem Upsilon_apply_one_one {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] :
                  Upsilon (((rankOne ) 1) 1) = 1
                  theorem Upsilon_symm_apply_one {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] :
                  Upsilon.symm 1 = (((rankOne ) 1) 1)
                  theorem Upsilon_rankOne {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (a : A) (b : B) :
                  Upsilon (((rankOne ) a) b) = (modAut (-k B - 1)) (star b) ⊗ₜ[] a
                  theorem Upsilon_symm_tmul {A : Type u_2} {B : Type u_3} [hb : starAlgebra B] [ha : starAlgebra A] [hA : QuantumSet A] [hB : QuantumSet B] (a : A) (b : B) :
                  Upsilon.symm (a ⊗ₜ[] b) = (((rankOne ) b) ((modAut (-k A - 1)) (star a)))