Documentation

CsdLean4.Mathlib.QuantumInfo.Stinespring

Stinespring dilation of a Kraus-form quantum channel #

Category: 1-Mathlib (CSD-free; staged as a Mathlib-upstream candidate).

This file (phase C2 of specs/channels-plan.md) gives the Stinespring / dilation form of a finite-dimensional quantum channel and the Kraus ↔ Stinespring bridge. A channel Φ : Matrix n n ℂ → Matrix m m ℂ is realised as

Φ(ρ) = traceRight (V * ρ * Vᴴ), V : Matrix (m × e) n ℂ, Vᴴ V = 1,

i.e. an isometric embedding V into system ⊗ environment followed by tracing out the environment e. Operationally: dilate to a closed (isometric) evolution on the enlarged state space, then average over the environment.

The whole bridge rests on a single block-algebra identity. For any V : Matrix (m × e) n ℂ, its environment blocks krausBlock V i := (a, j) ↦ V (a, i) j satisfy

From these:

CSD reading (see specs/channels-plan.md §3). The Stinespring isometry is a measure-preserving joint flow on Σ_sys × Σ_env and traceRight is the environment average, so a channel is the environment-marginal of a genuine Φ ≠ id flow — the structural on-ramp to the dynamics frontier (decoherence = environment volume flow).

def QuantumInfo.krausBlock {n : Type u_1} {m : Type u_2} {e : Type u_3} (V : Matrix (m × e) n ) (i : e) :

The environment block i of a matrix V : Matrix (m × e) n ℂ: the operator ℂⁿ → ℂᵐ selecting the i-th environment slot, (krausBlock V i) a j = V (a, i) j.

Equations
Instances For
    @[simp]
    theorem QuantumInfo.krausBlock_apply {n : Type u_1} {m : Type u_2} {e : Type u_3} [Fintype n] [Fintype m] [Fintype e] [DecidableEq n] (V : Matrix (m × e) n ) (i : e) (a : m) (j : n) :
    krausBlock V i a j = V (a, i) j
    theorem QuantumInfo.sum_krausBlock_conjTranspose_mul {n : Type u_1} {m : Type u_2} {e : Type u_3} [Fintype n] [Fintype m] [Fintype e] [DecidableEq n] (V : Matrix (m × e) n ) :

    The defining block identity: ∑ᵢ (krausBlock V i)ᴴ (krausBlock V i) = Vᴴ V. So V is an isometry exactly when its environment blocks are trace-preserving Kraus operators.

    theorem QuantumInfo.traceRight_conj_eq_sum_krausBlock {n : Type u_1} {m : Type u_2} {e : Type u_3} [Fintype n] [Fintype m] [Fintype e] [DecidableEq n] (V : Matrix (m × e) n ) (ρ : Matrix n n ) :
    (V * ρ * V.conjTranspose).traceRight = i : e, krausBlock V i * ρ * (krausBlock V i).conjTranspose

    The action identity: the environment-averaged joint conjugation of V is the Kraus action of its environment blocks, traceRight (V ρ Vᴴ) = ∑ᵢ (krausBlock V i) ρ (krausBlock V i)ᴴ.

    noncomputable def QuantumInfo.Channel.ofIsometry {n : Type u_1} {m : Type u_2} {e : Type u_3} [Fintype n] [Fintype m] [Fintype e] [DecidableEq n] (V : Matrix (m × e) n ) (hV : V.conjTranspose * V = 1) :
    Channel n m e

    Kraus ⇐ isometry (kraus_of_isometry). The channel whose Kraus operators are the environment blocks of an isometry V : Matrix (m × e) n ℂ (Vᴴ V = 1). Its action is the Stinespring form ρ ↦ traceRight (V ρ Vᴴ) (see ofIsometry_apply).

    Equations
    Instances For
      theorem QuantumInfo.Channel.ofIsometry_apply {n : Type u_1} {m : Type u_2} {e : Type u_3} [Fintype n] [Fintype m] [Fintype e] [DecidableEq n] (V : Matrix (m × e) n ) (hV : V.conjTranspose * V = 1) (ρ : Matrix n n ) :

      The action of ofIsometry V hV is the Stinespring form: dilate by V, then trace out the environment.

      def QuantumInfo.Channel.stinespringIsom {n : Type u_1} {m : Type u_2} {ι : Type u_4} [Fintype n] [Fintype m] [Fintype ι] [DecidableEq n] (Φ : Channel n m ι) :
      Matrix (m × ι) n

      Isometry ⇐ Kraus (dilation_exists). The Stinespring isometry of a channel, stacking its Kraus operators along the environment index ι: (stinespringIsom Φ) (a, i) j = (Φ.kraus i) a j.

      Equations
      Instances For
        @[simp]
        theorem QuantumInfo.Channel.krausBlock_stinespringIsom {n : Type u_1} {m : Type u_2} {ι : Type u_4} [Fintype n] [Fintype m] [Fintype ι] [DecidableEq n] (Φ : Channel n m ι) (i : ι) :
        theorem QuantumInfo.Channel.stinespringIsom_isom {n : Type u_1} {m : Type u_2} {ι : Type u_4} [Fintype n] [Fintype m] [Fintype ι] [DecidableEq n] (Φ : Channel n m ι) :

        The Stinespring dilation stinespringIsom Φ is a genuine isometry: (stinespringIsom Φ)ᴴ (stinespringIsom Φ) = 1, exactly the trace-preserving constraint.

        theorem QuantumInfo.Channel.apply_eq_traceRight_stinespring {n : Type u_1} {m : Type u_2} {ι : Type u_4} [Fintype n] [Fintype m] [Fintype ι] [DecidableEq n] (Φ : Channel n m ι) (ρ : Matrix n n ) :

        Stinespring = Kraus. The channel action is the dilate-then-trace form for the stacked-Kraus isometry: Φ(ρ) = traceRight (V ρ Vᴴ) with V = stinespringIsom Φ.