| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| import Mathlib.Analysis.NormedSpace.Basic |
| import Mathlib.Analysis.InnerProductSpace.Basic |
| import Mathlib.LinearAlgebra.Matrix.PosDef |
| import Mathlib.Analysis.SpecialFunctions.Pow.Real |
|
|
| open Real Matrix |
|
|
| namespace CoherentCollapse |
|
|
| variable {n : β} |
|
|
| |
| |
| |
|
|
| / |
| We model it abstractly as a function on density matrices. -/ |
| def Channel (n : β) := Matrix (Fin n) (Fin n) β β Matrix (Fin n) (Fin n) β |
|
|
| / |
| We axiomatise its key properties rather than develop the full theory. -/ |
| axiom diamondNorm {n : β} : Channel n β Channel n β β |
| axiom diamondNorm_nonneg {n : β} (Cβ Cβ : Channel n) : diamondNorm Cβ Cβ β₯ 0 |
| axiom diamondNorm_triangle {n : β} (Cβ Cβ Cβ : Channel n) : |
| diamondNorm Cβ Cβ β€ diamondNorm Cβ Cβ + diamondNorm Cβ Cβ |
|
|
| |
| |
| |
|
|
| / |
| where βHβ_op β€ Ξ΄. -/ |
| structure CoherentError (n : β) where |
| H : Matrix (Fin n) (Fin n) β |
| Ξ΄ : β -- error magnitude bound |
| hΞ΄ : Ξ΄ β₯ 0 |
| hH : βHβ β€ Ξ΄ |
| hHa : H.conjTranspose = H |
|
|
| / |
| |
| axiom unitaryOf {n : β} (e : CoherentError n) : Matrix (Fin n) (Fin n) β |
| axiom unitaryOf_unitary {n : β} (e : CoherentError n) : |
| unitaryOf e * (unitaryOf e).conjTranspose = 1 |
|
|
| |
| |
| |
|
|
| / |
| structure SyndromeSet where |
| S : Finset β |
| hne : S.Nonempty |
|
|
| / |
| def SyndromeSet.card (ss : SyndromeSet) : β := ss.S.card |
|
|
| |
| |
| |
| |
|
|
| / |
| axiom conditionalCoherentChannel {n : β} |
| (e : CoherentError n) (ss : SyndromeSet) (s : β) : Channel n |
|
|
| / |
| This is the Kraus decomposition obtained by expanding exp(iH) β 1 + iH + O(δ²) |
| and projecting onto syndrome-s subspace. -/ |
| axiom stochasticApproxChannel {n : β} |
| (e : CoherentError n) (ss : SyndromeSet) (s : β) : Channel n |
|
|
| / |
| For any coherent error with βHβ β€ Ξ΄ and any syndrome s β S, |
| the diamond-norm distance between the coherent and stochastic channels |
| is bounded by 2Ξ΄β|S|. |
|
|
| Proof sketch: |
| Expand E = exp(iH) = 1 + iH + O(δ²). |
| The leading correction iH contributes linearly in Ξ΄. |
| Summing over |S| syndrome projectors via union bound gives β|S| factor. |
| The bound is tight when H is aligned with the stabilizer eigenbasis. -/ |
| theorem coherent_to_stochastic_collapse {n : β} |
| (e : CoherentError n) (ss : SyndromeSet) (s : β) : |
| diamondNorm |
| (conditionalCoherentChannel e ss s) |
| (stochasticApproxChannel e ss s) |
| β€ 2 * e.Ξ΄ * Real.sqrt (ss.card : β) := by |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| sorry |
|
|
| / |
| If physical error Ξ΄ β€ Ξ΄_th / (2β|S|), then the collapsed stochastic |
| error is below threshold Ξ΄_th. -/ |
| theorem collapse_below_threshold {n : β} |
| (e : CoherentError n) (ss : SyndromeSet) |
| (Ξ΄_th : β) (hΞ΄_th : Ξ΄_th > 0) |
| (h_bound : e.Ξ΄ β€ Ξ΄_th / (2 * Real.sqrt (ss.card : β))) (s : β) : |
| diamondNorm |
| (conditionalCoherentChannel e ss s) |
| (stochasticApproxChannel e ss s) |
| β€ Ξ΄_th := by |
| have hcard_pos : (ss.card : β) > 0 := by |
| exact_mod_cast Finset.card_pos.mpr ss.hne |
| calc diamondNorm _ _ |
| β€ 2 * e.Ξ΄ * Real.sqrt (ss.card : β) := |
| coherent_to_stochastic_collapse e ss s |
| _ β€ 2 * (Ξ΄_th / (2 * Real.sqrt (ss.card : β))) * Real.sqrt (ss.card : β) := by |
| apply mul_le_mul_of_nonneg_right |
| Β· apply mul_le_mul_of_nonneg_left h_bound; norm_num |
| Β· exact Real.sqrt_nonneg _ |
| _ = Ξ΄_th := by |
| field_simp |
| rw [Real.mul_self_sqrt (le_of_lt hcard_pos)] |
| ring |
|
|
| end CoherentCollapse |
|
|