Physlib Documentation

QuantumInfo.Finite.CPTPMap.Dual

Duals of matrix map #

Definitions and theorems about the dual of a matrix map.

@[irreducible]
def MatrixMap.dual {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] {R : Type u_3} [CommRing R] [DecidableEq dIn] [DecidableEq dOut] (M : MatrixMap dIn dOut R) :
MatrixMap dOut dIn R

The dual of a map between matrices, defined by Tr[A M(B)] = Tr[(dual M)(A) B]. Sometimes called the adjoint of the map instead.

Equations
Instances For
    theorem MatrixMap.Dual.trace_eq {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] {R : Type u_3} [CommRing R] [DecidableEq dIn] [DecidableEq dOut] (M : MatrixMap dIn dOut R) (A : Matrix dIn dIn R) (B : Matrix dOut dOut R) :
    (M A * B).trace = (A * M.dual B).trace

    The defining property of a dual map: inner products are preserved on the opposite argument.

    theorem MatrixMap.IsHermitianPreserving.dual {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] {𝕜 : Type u_4} [RCLike 𝕜] [DecidableEq dIn] [DecidableEq dOut] {M : MatrixMap dIn dOut 𝕜} (h : M.IsHermitianPreserving) :

    The dual of a IsHermitianPreserving map also IsHermitianPreserving.

    theorem Matrix.PosSemidef.trace_mul_nonneg {𝕜 : Type u_4} [RCLike 𝕜] {n : Type u_5} [Fintype n] [DecidableEq n] {A B : Matrix n n 𝕜} (hA : A.PosSemidef) (hB : B.PosSemidef) :
    0 (A * B).trace
    theorem MatrixMap.IsPositive.dual {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] {𝕜 : Type u_4} [RCLike 𝕜] [DecidableEq dIn] [DecidableEq dOut] {M : MatrixMap dIn dOut 𝕜} (h : M.IsPositive) :

    The dual of a IsPositive map also IsPositive.

    theorem MatrixMap.dual_Unital {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] {𝕜 : Type u_4} [RCLike 𝕜] [DecidableEq dIn] [DecidableEq dOut] {M : MatrixMap dIn dOut 𝕜} (h : M.IsTracePreserving) :

    The dual of TracePreserving map is not trace-preserving, it's unital, that is, M*(I) = I.

    theorem MatrixMap.IsTracePreserving.dual {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] {𝕜 : Type u_4} [RCLike 𝕜] [DecidableEq dIn] [DecidableEq dOut] {M : MatrixMap dIn dOut 𝕜} (h : M.IsTracePreserving) :

    Alias of MatrixMap.dual_Unital.


    The dual of TracePreserving map is not trace-preserving, it's unital, that is, M*(I) = I.

    theorem MatrixMap.dual_unique {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] {𝕜 : Type u_4} [RCLike 𝕜] [DecidableEq dIn] [DecidableEq dOut] (M : MatrixMap dIn dOut 𝕜) (M' : MatrixMap dOut dIn 𝕜) (h : ∀ (A : Matrix dIn dIn 𝕜) (B : Matrix dOut dOut 𝕜), (M A * B).trace = (A * M' B).trace) :
    M.dual = M'

    If two matrix maps satisfy the trace duality property, they are equal.

    theorem MatrixMap.dual_choi_matrix {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] {𝕜 : Type u_4} [RCLike 𝕜] [DecidableEq dIn] [DecidableEq dOut] (M : MatrixMap dIn dOut 𝕜) :

    The Choi matrix of the dual map is the transpose of the reindexed Choi matrix of the original map.

    theorem MatrixMap.dual_choi_matrix_posSemidef_of_posSemidef {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] {𝕜 : Type u_4} [RCLike 𝕜] [DecidableEq dIn] [DecidableEq dOut] (M : MatrixMap dIn dOut 𝕜) (h : M.choi_matrix.PosSemidef) :

    If the Choi matrix of a map is positive semidefinite, then the Choi matrix of its dual is also positive semidefinite.

    theorem MatrixMap.dual_id {dIn : Type u_1} [Fintype dIn] {𝕜 : Type u_4} [RCLike 𝕜] [DecidableEq dIn] :
    (id dIn 𝕜).dual = id dIn 𝕜

    The dual of the identity map is the identity map.

    theorem MatrixMap.dual_kron {𝕜 : Type u_4} [RCLike 𝕜] {A : Type u_5} {B : Type u_6} {C : Type u_7} {D : Type u_8} [Fintype A] [Fintype B] [Fintype C] [Fintype D] [DecidableEq A] [DecidableEq B] [DecidableEq C] [DecidableEq D] (M : MatrixMap A B 𝕜) (N : MatrixMap C D 𝕜) :
    (M.kron N).dual = M.dual.kron N.dual

    The dual of a Kronecker product of maps is the Kronecker product of their duals.

    theorem MatrixMap.IsCompletelyPositive.dual {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] {𝕜 : Type u_4} [RCLike 𝕜] [DecidableEq dIn] [DecidableEq dOut] {M : MatrixMap dIn dOut 𝕜} (h : M.IsCompletelyPositive) :

    The composition of the dual of the inverse of the dual basis isomorphism with the dual basis isomorphism is the evaluation map.

    The composition of the inverse of the dual basis isomorphism with the dual of the dual basis isomorphism is the inverse of the evaluation map.

    @[simp]
    theorem MatrixMap.dual_dual {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] {𝕜 : Type u_4} [RCLike 𝕜] [DecidableEq dIn] [DecidableEq dOut] {M : MatrixMap dIn dOut 𝕜} :
    M.dual.dual = M
    def CPTPMap.dual {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] [DecidableEq dIn] [DecidableEq dOut] (M : CPTPMap dIn dOut ) :
    CPUMap dOut dIn
    Equations
    Instances For
      theorem CPTPMap.dual_pos {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] [DecidableEq dIn] [DecidableEq dOut] (M : CPTPMap dIn dOut ) {T : HermitianMat dOut } (hT : 0 T) :
      0 M.dual T
      theorem CPTPMap.dual.PTP_POVM {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] [DecidableEq dIn] [DecidableEq dOut] (M : CPTPMap dIn dOut ) {T : HermitianMat dOut } (hT : 0 T T 1) :
      0 M.dual T M.dual T 1

      The dual of a CPTP map preserves POVMs. Stated here just for two-element POVMs, that is, an operator T between 0 and 1.

      theorem CPTPMap.exp_val_Dual {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] [DecidableEq dIn] [DecidableEq dOut] ( : CPTPMap dIn dOut ) (ρ : MState dIn) (T : HermitianMat dOut ) :
      ( ρ).exp_val T = ρ.exp_val (.dual T)

      The defining property of a dual channel, as specialized to MState.exp_val.

      def HPMap.ofHermitianMat {dIn : Type u_1} [Fintype dIn] {dOut : Type u_5} (f : HermitianMat dIn →ₗ[] HermitianMat dOut ) :
      HPMap dIn dOut
      Equations
      Instances For
        @[simp]
        theorem HPMap.ofHermitianMat_linearMap {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] (f : HPMap dIn dOut ) :
        def HPMap.hermDual {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] (f : HPMap dIn dOut ) :
        HPMap dOut dIn
        Equations
        Instances For
          @[simp]
          theorem HPMap.hermDual_hermDual {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] (f : HPMap dIn dOut ) :
          theorem HPMap.inner_hermDual {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] (f : HPMap dIn dOut ) (A : HermitianMat dIn ) (B : HermitianMat dOut ) :
          inner (f A) B = inner A (f.hermDual B)

          The defining property of a dual map: inner products are preserved on the opposite argument.

          theorem HPMap.inner_hermDual' {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] (f : HPMap dIn dOut ) (A : HermitianMat dIn ) (B : HermitianMat dOut ) :
          inner (f A) B = inner A (f.hermDual B)

          Version of HPMap.inner_hermDual that uses HermitiaMat.inner directly. TODO cleanup

          theorem MatrixMap.IsPositive.hermDual {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] (f : HPMap dIn dOut ) (h : f.map.IsPositive) :

          The dual of a IsPositive map also IsPositive.

          theorem HPMap.hermDual_Unital {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] (f : HPMap dIn dOut ) [DecidableEq dIn] [DecidableEq dOut] (h : f.map.IsTracePreserving) :

          The dual of TracePreserving map is not trace-preserving, it's unital, that is, M*(I) = I.

          theorem MatrixMap.IsTracePreserving.hermDual {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] (f : HPMap dIn dOut ) [DecidableEq dIn] [DecidableEq dOut] (h : f.map.IsTracePreserving) :

          Alias of HPMap.hermDual_Unital.


          The dual of TracePreserving map is not trace-preserving, it's unital, that is, M*(I) = I.

          def PTPMap.hermDual {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] [DecidableEq dIn] [DecidableEq dOut] (M : PTPMap dIn dOut ) :
          PUMap dOut dIn
          Equations
          Instances For
            theorem PTPMap.hermDual_pos {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] [DecidableEq dIn] [DecidableEq dOut] (M : PTPMap dIn dOut ) {T : HermitianMat dOut } (hT : 0 T) :
            theorem PTPMap.hermDual.PTP_POVM {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] [DecidableEq dIn] [DecidableEq dOut] (M : PTPMap dIn dOut ) {T : HermitianMat dOut } (hT : 0 T T 1) :

            The dual of a PTP map preserves POVMs. Stated here just for two-element POVMs, that is, an operator T between 0 and 1.

            theorem PTPMap.exp_val_hermDual {dIn : Type u_1} {dOut : Type u_2} [Fintype dIn] [Fintype dOut] [DecidableEq dIn] [DecidableEq dOut] ( : PTPMap dIn dOut ) (ρ : MState dIn) (T : HermitianMat dOut ) :
            ( ρ).exp_val T = ρ.exp_val (.hermDual T)

            The defining property of a dual channel, as specialized to MState.exp_val.