Documentation

QuantumInfo.Finite.ResourceTheory.FreeState

class ResourcePretheory (ι : Type u_1) extends Semigroup ι :
Type (max u_1 (u_2 + 1))

A ResourcePretheory is a family of Hilbert spaces closed under tensor products, with an instance of Fintype and DecidableEq for each. It forms a pre-structure then on which to discuss resource theories. For instance, to talk about "two-party scenarios", we could write ResourcePretheory (ℕ × ℕ), with H (a,b) := (Fin a) × (Fin b).

The Semigroup ι structure means we have a way to take products of our labels of Hilbert spaces in a way that is associative (with actual equality). The prodEquiv lets us reinterpret between a product-labelled Hilbert spaces, and an actual pair of Hilbert spaces.

Instances
    noncomputable def ResourcePretheory.prodRelabel {ι : Type u_1} [ResourcePretheory ι] {i j : ι} (ρ₁ : MState (H i)) (ρ₂ : MState (H j)) :
    MState (H (i * j))

    The prod operation of ResourcePretheory gives the natural product operation on MStates that puts us in a new Hilbert space of the category. Accessible by the notation ρ₁ ⊗ᵣ ρ₂.

    Equations
    Instances For
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem ResourcePretheory.prodRelabel_assoc {ι : Type u_1} [ResourcePretheory ι] {i j k : ι} (ρ₁ : MState (H i)) (ρ₂ : MState (H j)) (ρ₃ : MState (H k)) :
        prodRelabel (prodRelabel ρ₁ ρ₂) ρ₃ prodRelabel ρ₁ (prodRelabel ρ₂ ρ₃)
        theorem ResourcePretheory.prodRelabel_relabel_cast_prod {ι : Type u_1} [ResourcePretheory ι] {i j k l : ι} (ρ₁ : MState (H i)) (ρ₂ : MState (H j)) (h : H (k * l) = H (i * j)) (hik : k = i) (hlj : l = j) :
        (prodRelabel ρ₁ ρ₂).relabel (Equiv.cast h) = prodRelabel (ρ₁.relabel (Equiv.cast )) (ρ₂.relabel (Equiv.cast ))

        A MState.relabel can be distributed across a prodRelabel, if you have proofs that the factors correspond correctly.

        noncomputable def ResourcePretheory.prodCPTPMap {ι : Type u_1} [ResourcePretheory ι] {i j k l : ι} (M₁ : CPTPMap (H i) (H j) ) (M₂ : CPTPMap (H k) (H l) ) :
        CPTPMap (H (i * k)) (H (j * l))

        The prod operation of ResourcePretheory gives the natural product operation on CPTPMaps. Accessible by the notation M₁ ⊗ᵣ M₂.

        Equations
        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem ResourcePretheory.PosDef.prod {ι : Type u_1} [ResourcePretheory ι] {i j : ι} {ρ : MState (H i)} {σ : MState (H j)} ( : ρ.m.PosDef) ( : σ.m.PosDef) :
            @[simp]
            theorem ResourcePretheory.qRelEntropy_prodRelabel {ι : Type u_1} [ResourcePretheory ι] {i j : ι} (ρ₁ ρ₂ : MState (H i)) (σ₁ σ₂ : MState (H j)) :
            𝐃(prodRelabel ρ₁ σ₁prodRelabel ρ₂ σ₂) = 𝐃(ρ₁ρ₂) + 𝐃(σ₁σ₂)
            @[simp]
            theorem ResourcePretheory.sandwichedRelRentropy_prodRelabel {ι : Type u_1} [ResourcePretheory ι] {i j : ι} {α : } (ρ₁ ρ₂ : MState (H i)) (σ₁ σ₂ : MState (H j)) :
            D̃_α(prodRelabel ρ₁ σ₁prodRelabel ρ₂ σ₂) = D̃_α(ρ₁ρ₂) + D̃_α(σ₁σ₂)
            class UnitalPretheory (ι : Type u_1) extends ResourcePretheory ι, MulOneClass ι, Unique (ResourcePretheory.H 1) :
            Type (max u_1 (u_2 + 1))

            A ResourcePretheory is Unital if it has a Hilbert space of size 1, i.e. .

            Instances
              Equations
              noncomputable def UnitalPretheory.spacePow {ι : Type u_1} [UnitalPretheory ι] (i : ι) (n : ) :
              ι

              Powers of spaces.

              We define it for Nat in a UnitalPretheory. In principal this could be done for any ResourcePretheory and be defined for PNat so that we don't have zeroth powers. In anticipation that we might some day want that, and that we might do everything with a non-equality associator, we keep this as its own definition and keep our own names for rewriting theorems where possible.

              Equations
              Instances For
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem UnitalPretheory.spacePow_zero {ι : Type u_1} [UnitalPretheory ι] (i : ι) :
                  i ^ 0 = 1
                  @[simp]
                  theorem UnitalPretheory.spacePow_one {ι : Type u_1} [UnitalPretheory ι] (i : ι) :
                  i ^ 1 = i
                  theorem UnitalPretheory.spacePow_succ {ι : Type u_1} [UnitalPretheory ι] (i : ι) (n : ) :
                  i ^ (n + 1) = i ^ n * i
                  theorem UnitalPretheory.spacePow_add {ι : Type u_1} [UnitalPretheory ι] {i : ι} (m n : ) :
                  i ^ (m + n) = i ^ m * i ^ n
                  theorem UnitalPretheory.spacePow_mul {ι : Type u_1} [UnitalPretheory ι] {i : ι} (m n : ) :
                  i ^ (m * n) = (i ^ m) ^ n
                  noncomputable def UnitalPretheory.statePow {ι : Type u_1} [UnitalPretheory ι] {i : ι} (ρ : MState (ResourcePretheory.H i)) (n : ) :

                  Powers of states, using the resource theory's notion of product.

                  Equations
                  Instances For
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[simp]
                      @[simp]
                      theorem UnitalPretheory.statePow_one {ι : Type u_1} [UnitalPretheory ι] {i : ι} (ρ : MState (ResourcePretheory.H i)) :
                      statePow ρ 1 ρ
                      theorem UnitalPretheory.statePow_mul {ι : Type u_1} [UnitalPretheory ι] {i : ι} (ρ : MState (ResourcePretheory.H i)) (m n : ) :
                      statePow ρ (m * n) statePow (statePow ρ m) n
                      theorem UnitalPretheory.statePow_mul_relabel {ι : Type u_1} [UnitalPretheory ι] {i : ι} (ρ : MState (ResourcePretheory.H i)) (m n : ) :
                      statePow ρ (m * n) = (statePow (statePow ρ m) n).relabel (Equiv.cast )
                      theorem UnitalPretheory.PosDef.npow {ι : Type u_1} [UnitalPretheory ι] {i : ι} {ρ : MState (ResourcePretheory.H i)} ( : ρ.m.PosDef) (n : ) :
                      theorem UnitalPretheory.statePow_rw {ι : Type u_1} [UnitalPretheory ι] {i : ι} {n m : } (h : n = m) (ρ : MState (ResourcePretheory.H i)) :
                      @[simp]
                      theorem UnitalPretheory.qRelEntropy_statePow {ι : Type u_1} [UnitalPretheory ι] {i : ι} (ρ σ : MState (ResourcePretheory.H i)) (n : ) :
                      @[simp]
                      theorem MState.default_M {d : Type u_2} [Fintype d] [DecidableEq d] [Unique d] :
                      default = 1
                      @[simp]
                      theorem HermitianMat.one_rpow {d : Type u_2} [Fintype d] [DecidableEq d] (r : ) :
                      1 ^ r = 1
                      @[simp]
                      theorem HermitianMat.trace_one {d : Type u_2} [Fintype d] [DecidableEq d] :
                      @[simp]
                      theorem sandwichedRelRentropy_of_unique {d : Type u_2} [Fintype d] [DecidableEq d] [Unique d] (ρ σ : MState d) (α : ) :
                      D̃_α(ρσ) = 0
                      @[simp]
                      theorem UnitalPretheory.sandwichedRelRentropy_statePow {ι : Type u_1} [UnitalPretheory ι] {i : ι} {α : } (ρ σ : MState (ResourcePretheory.H i)) (n : ) :
                      D̃_α(statePow ρ nstatePow σ n) = n * D̃_α(ρσ)
                      theorem UnitalPretheory.sandwichedRelRentropy_heq_congr {α : } {d₁ d₂ : Type u} [Fintype d₁] [DecidableEq d₁] [Fintype d₂] [DecidableEq d₂] {ρ₁ σ₁ : MState d₁} {ρ₂ σ₂ : MState d₂} (hd : d₁ = d₂) ( : ρ₁ ρ₂) ( : σ₁ σ₂) :
                      D̃_α(ρ₁σ₁) = D̃_α(ρ₂σ₂)
                      theorem UnitalPretheory.sandwichedRelRentropy_congr {α : } {d₁ d₂ : Type u} [Fintype d₁] [DecidableEq d₁] [Fintype d₂] [DecidableEq d₂] {ρ₁ σ₁ : MState d₁} {ρ₂ σ₂ : MState d₂} (hd : d₁ = d₂) ( : ρ₁ = ρ₂.relabel (Equiv.cast hd)) ( : σ₁ = σ₂.relabel (Equiv.cast hd)) :
                      D̃_α(ρ₁σ₁) = D̃_α(ρ₂σ₂)
                      class FreeStateTheory (ι : Type u_1) extends ResourcePretheory ι :
                      Type (max u_1 (u_2 + 1))

                      A FreeStateTheory is a collection of mixed states (MStates) in a ResourcePretheory that obeys some necessary axioms:

                      • For each Hilbert space H i, the free states are a closed, convex set
                      • For each Hilbert space H i, there is a free state of full rank
                      • If ρᵢ ∈ H i and ρⱼ ∈ H j are free, then ρᵢ ⊗ ρⱼ is free in H (prod i j).
                      Instances
                        noncomputable instance FreeStateTheory.Inhabited_IsFree {ι : Type u_1} [FreeStateTheory ι] {i : ι} :
                        Equations

                        The set of free states is compact because it's a closed subset of a compact space.

                        theorem FreeStateTheory.IsFree.mix {ι : Type u_2} [FreeStateTheory ι] {i : ι} {σ₁ σ₂ : MState (ResourcePretheory.H i)} (hσ₁ : IsFree σ₁) (hσ₂ : IsFree σ₂) (p : Prob) :
                        IsFree (p[σ₁σ₂])
                        class UnitalFreeStateTheory (ι : Type u_1) extends FreeStateTheory ι, UnitalPretheory ι :
                        Type (max u_1 (u_2 + 1))
                        Instances

                          In a FreeStateTheory, we have free states of full rank, therefore the minimum relative entropy of any state ρ to a free state is finite.

                          Alternate version of Lemma 5 which states the convergence with the ENNReal expression for RelativeEntResource, as opposed its untop-ped NNReal value.

                          A sequence of operations f_n is asymptotically nongenerating if lim_{n→∞} RG(f_n(ρ_n)) = 0, where RG is GlobalRobustness and ρ_n is any sequence of free states. Equivalently, we can take the max ( over operations and states) on the left-hand side inside the limit.

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