Documentation

CsdLean4.Empirical.QM.QEC.RegisterDilation

Empirical/QM: the register's single-error channel as a joint unitary with an environment #

Category: 3-Local. QM-validity layer (the register-level companion of BitFlipDilation.lean; matrix algebra over the K2 Channel / Stinespring layer, no CSD content).

BitFlipDilation.lean realises the one-qubit bit-flip channel as the environment marginal of a joint unitary on qubit ⊗ qubit. This file does the same for the three-qubit register and its mixed single-error channel singleFlipChannel q (SyndromeRecovery.lean), as the instance e = Fin 4, E = errorOp of the generic controlled-error dilation of ControlledDilation.lean (BACKLOG #52): the environment is a four-level "which-error" register, and

Every statement is the generic one specialised (singleFlipChannel_eq_mixedUnitaryChannel is rfl); the names are kept for the consumers (Empirical/CSD/QEC/RegisterFlow.lean reads U_q as a Σ-flow on register ⊗ environment).

Source #

Stinespring 1955; Nielsen–Chuang §8.2.3 (environmental models of noise), §10.1 (the three-qubit bit-flip code).

Each error Eₖ ∈ {I, X₁, X₂, X₃} is unitary.

The environment side: weights as a unit vector, and a unitary reaching it #

noncomputable def CSD.Empirical.QM.QEC.errorVec (q : Fin 4 → ℝ) :

The environment amplitude vector ∑ₖ √qₖ eₖ.

Equations
Instances For
    @[simp]
    theorem CSD.Empirical.QM.QEC.errorVec_apply (q : Fin 4 → ℝ) (k : Fin 4) :
    (errorVec q).ofLp k = ↑√(q k)
    theorem CSD.Empirical.QM.QEC.norm_errorVec (q : Fin 4 → ℝ) (hq0 : ∀ (k : Fin 4), 0 ≤ q k) (hq1 : ∑ k : Fin 4, q k = 1) :
    noncomputable def CSD.Empirical.QM.QEC.errorRotation (q : Fin 4 → ℝ) (hq0 : ∀ (k : Fin 4), 0 ≤ q k) (hq1 : ∑ k : Fin 4, q k = 1) :
    Matrix (Fin 4) (Fin 4) ℂ

    A unitary on the environment taking the ready vector e₀ to errorVec q.

    Equations
    Instances For
      theorem CSD.Empirical.QM.QEC.errorRotation_apply_single (q : Fin 4 → ℝ) (hq0 : ∀ (k : Fin 4), 0 ≤ q k) (hq1 : ∑ k : Fin 4, q k = 1) :
      theorem CSD.Empirical.QM.QEC.errorRotation_conjTranspose_mul (q : Fin 4 → ℝ) (hq0 : ∀ (k : Fin 4), 0 ≤ q k) (hq1 : ∑ k : Fin 4, q k = 1) :
      (errorRotation q hq0 hq1).conjTranspose * errorRotation q hq0 hq1 = 1
      theorem CSD.Empirical.QM.QEC.errorRotation_apply_zero (q : Fin 4 → ℝ) (hq0 : ∀ (k : Fin 4), 0 ≤ q k) (hq1 : ∑ k : Fin 4, q k = 1) (l : Fin 4) :
      errorRotation q hq0 hq1 l 0 = ↑√(q l)

      The first column of the rotation is the weight vector: R l 0 = √qₗ.

      The controlled error and the joint unitary #

      noncomputable def CSD.Empirical.QM.QEC.controlledError :
      Matrix ((Fin 2 × Fin 2 × Fin 2) × Fin 4) ((Fin 2 × Fin 2 × Fin 2) × Fin 4) ℂ

      The controlled error: apply Eₖ to the register when the environment is eₖ. Index (register, environment).

      Equations
      Instances For
        noncomputable def CSD.Empirical.QM.QEC.registerUnitary (q : Fin 4 → ℝ) (hq0 : ∀ (k : Fin 4), 0 ≤ q k) (hq1 : ∑ k : Fin 4, q k = 1) :
        Matrix ((Fin 2 × Fin 2 × Fin 2) × Fin 4) ((Fin 2 × Fin 2 × Fin 2) × Fin 4) ℂ

        The register's joint unitary U_q = controlledError · (1 ⊗ R_q): rotate the environment into the weight vector, then apply the error the environment names. U_q (ψ ⊗ e₀) = ∑ₖ √qₖ (Eₖ ψ) ⊗ eₖ.

        Equations
        Instances For
          theorem CSD.Empirical.QM.QEC.registerUnitary_eq (q : Fin 4 → ℝ) (hq0 : ∀ (k : Fin 4), 0 ≤ q k) (hq1 : ∑ k : Fin 4, q k = 1) :
          registerUnitary q hq0 hq1 = controlledError * Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) 1 (errorRotation q hq0 hq1)
          theorem CSD.Empirical.QM.QEC.registerUnitary_conjTranspose_mul (q : Fin 4 → ℝ) (hq0 : ∀ (k : Fin 4), 0 ≤ q k) (hq1 : ∑ k : Fin 4, q k = 1) :
          theorem CSD.Empirical.QM.QEC.krausBlock_registerUnitary_embedEnv (q : Fin 4 → ℝ) (hq0 : ∀ (k : Fin 4), 0 ≤ q k) (hq1 : ∑ k : Fin 4, q k = 1) (k : Fin 4) :

          The environment blocks of U_q (· ⊗ e₀) are the Kraus operators √qₖ Eₖ of the single-error channel.

          The single-error channel is the mixed-unitary channel (CanonicalChannels.lean) of the error family.

          ★ The single-error channel is the Stinespring channel of U_q with a ready environment, as channels (equal Kraus families).