Documentation

MIPRE.Foundations.Linearity

Approximate linearity gives exact linearity #

Blueprint thm:linearity, the quantum linearity test. A family of observables {O^u}_{u in F_q^n} that is approximately linear --- O^u O^{u'} close to O^{u + u'} on average, in the state-dependent distance --- is close on average to a family that is exactly linear, after adjoining an ancilla register to one player.

The paper imports this from Natarajan--Vidick; it is proved here. The route is the one the blueprint's proof text names, and every step of it is already in this repository:

The one thing to watch is which distance the hypothesis is in. It is the state-dependent one of def:state-distance --- not the Hilbert--Schmidt distance of thm:gowers-hatami --- so this is not Gowers--Hatami with a different normalization; the exact-POVM step above replaces the approximate-representation machinery entirely.

The Fourier transform of a family of operators #

noncomputable def MIPRE.fourierOf {F : Type u_1} [Field F] [Fintype F] [Algebra (ZMod 2) F] {n : Type u_2} [Fintype n] [DecidableEq n] {d : Type u_3} (O : (n → F) → Matrix d d ℂ) (e : n → F) :

The Fourier transform of a family of operators indexed by V = F_q^n, against the characters of the trace form. This is MIPRE.Weyl.proj with the index group decoupled from the space the operators act on, and with no group law assumed.

Equations
Instances For
    theorem MIPRE.fourierOf_conjTranspose {F : Type u_1} [Field F] [Fintype F] [DecidableEq F] [Algebra (ZMod 2) F] {n : Type u_2} [Fintype n] [DecidableEq n] {d : Type u_3} [Fintype d] [DecidableEq d] {O : (n → F) → Matrix d d ℂ} (hsa : ∀ (a : n → F), (O a).conjTranspose = O a) (e : n → F) :
    theorem MIPRE.fourierOf_posSemidef {F : Type u_1} [Field F] [Fintype F] [DecidableEq F] [Algebra (ZMod 2) F] {n : Type u_2} [Fintype n] [DecidableEq n] {d : Type u_3} [Fintype d] [DecidableEq d] {O : (n → F) → Matrix d d ℂ} (hsa : ∀ (a : n → F), (O a).conjTranspose = O a) (e : n → F) :
    theorem MIPRE.sum_sgn_smul_fourierOf_sq {F : Type u_1} [Field F] [Fintype F] [DecidableEq F] [Algebra (ZMod 2) F] {n : Type u_2} [Fintype n] [DecidableEq n] {d : Type u_3} [Fintype d] [DecidableEq d] (O : (n → F) → Matrix d d ℂ) (u : n → F) :
    ∑ e : n → F, sgn (Weyl.trDot u e) • (fourierOf O e * fourierOf O e) = (↑(Fintype.card (n → F)))⁻¹ • ∑ a : n → F, O a * O (a + u)

    The character sum that carries the whole argument. Summing the squares of the Fourier coefficients against a character collapses the double sum to a single one: only the pairs with b = a + u survive.

    theorem MIPRE.sum_fourierOf_sq {F : Type u_1} [Field F] [Fintype F] [DecidableEq F] [Algebra (ZMod 2) F] {n : Type u_2} [Fintype n] [DecidableEq n] {d : Type u_3} [Fintype d] [DecidableEq d] (O : (n → F) → Matrix d d ℂ) (hinv : ∀ (a : n → F), O a * O a = 1) :
    ∑ e : n → F, fourierOf O e * fourierOf O e = 1

    Parseval. The squares of the Fourier coefficients of a family of involutions form a POVM --- exactly, with no appeal to any approximate linearity.

    theorem MIPRE.fourierOf_pair_mul {F : Type u_1} [Field F] [Fintype F] [DecidableEq F] [Algebra (ZMod 2) F] {d : Type u_3} [Fintype d] [DecidableEq d] (A B : F → Matrix d d ℂ) (a b : F) :
    fourierOf (fun (v : Fin 2 → F) => A (v 0) * B (v 1)) (pairVec a b) = trFourier A a * trFourier B b

    The two-field transform of a product family factorizes. The combined measurement of a pair of parameters is the product of the two one-parameter measurements --- with no hypothesis, the double average simply splitting.

    theorem MIPRE.sum_stateSqNorm_fourierOf {F : Type u_1} [Field F] [Fintype F] [DecidableEq F] [Algebra (ZMod 2) F] {n : Type u_2} [Fintype n] [DecidableEq n] {d : Type u_3} [Fintype d] [DecidableEq d] {dB : Type u_4} [Fintype dB] [DecidableEq dB] (ψ : d × dB → ℂ) (M : (n → F) → Matrix d d ℂ) :
    ∑ e : n → F, stateSqNorm ψ (fourierOf M e) = (↑(Fintype.card (n → F)))⁻¹ * ∑ a : n → F, stateSqNorm ψ (M a)

    Parseval for a family of operators against a state. The transform is an isometry up to the normalization, so an average bound on the family is a summed bound on the transform and conversely. This is the dictionary between an F_q-valued measurement and its binary observables.

    The exactly linear family #

    theorem MIPRE.exists_exactly_linear {F : Type u_1} [Field F] [Fintype F] [DecidableEq F] [Algebra (ZMod 2) F] {n : Type u_2} [Fintype n] [DecidableEq n] {d : Type u_3} [Fintype d] [DecidableEq d] {X : Type u_4} [Fintype X] (O : X → (n → F) → Matrix d d ℂ) (hsa : ∀ (x : X) (a : n → F), (O x a).conjTranspose = O x a) (hinv : ∀ (x : X) (a : n → F), O x a * O x a = 1) :
    ∃ (L : X → (n → F) → Matrix (d × (n → F)) (d × (n → F)) ℂ), (∀ (x : X) (u : n → F), (L x u).conjTranspose = L x u) ∧ (∀ (x : X) (u u' : n → F), L x u * L x u' = L x (u + u')) ∧ (∀ (x : X), L x 0 = 1) ∧ ∀ (x : X) (u : n → F), (ancillaEmbed d 0).conjTranspose * (L x u * ancillaEmbed d 0) = (↑(Fintype.card (n → F)))⁻¹ • ∑ a : n → F, O x a * O x (a + u)

    The exactly linear family, on the extended space. The Fourier transform of the family is dilated to a projective measurement on d x V (exists_projective_dilation), and inverting the transform on the dilation gives a family that is exactly linear: L^u L^{u'} = L^{u + u'}, with the identity at 0. Its compression to the |0>-slice is the average |V|^{-1} sum_a O^a O^{a+u}, which is what the closeness estimate compares with O^u.

    The whole family is dilated by one isometry, question-independent, which is what lets the estimate be taken against a single state.

    Adjoining an ancilla to one party #

    def MIPRE.extVecA {dA : Type u_4} {dB : Type u_5} [Fintype dA] [DecidableEq dA] [Fintype dB] [DecidableEq dB] {A : Type u_6} [Fintype A] [DecidableEq A] (ψ : dA × dB → ℂ) (a₀ : A) :
    (dA × A) × dB → ℂ

    The one-sided extension of a state: an ancilla register in the fixed state |a₀⟩, adjoined to the first party only. expVec splits an ancilla pair between the two parties; this is the asymmetric extension thm:linearity needs, the exactly linear observables living on the first party's enlarged space and the second party untouched.

    Equations
    Instances For
      theorem MIPRE.ancillaEmbed_kron_isometry {dA : Type u_4} {dB : Type u_5} [Fintype dA] [DecidableEq dA] [Fintype dB] [DecidableEq dB] {A : Type u_6} [Fintype A] [DecidableEq A] (a₀ : A) :
      (Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) (ancillaEmbed dA a₀) 1).conjTranspose * Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) (ancillaEmbed dA a₀) 1 = 1
      theorem MIPRE.norm_evec_extVecA {dA : Type u_4} {dB : Type u_5} [Fintype dA] [DecidableEq dA] [Fintype dB] [DecidableEq dB] {A : Type u_6} [Fintype A] [DecidableEq A] (ψ : dA × dB → ℂ) (a₀ : A) :

      The extension does not change the norm: the padding is an isometry.

      theorem MIPRE.kron_one_mul_ancillaEmbed {dA : Type u_4} [Fintype dA] [DecidableEq dA] {A : Type u_6} [Fintype A] [DecidableEq A] (a₀ : A) (M : Matrix dA dA ℂ) :
      Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) M 1 * ancillaEmbed dA a₀ = ancillaEmbed dA a₀ * M

      An operator with an inert ancilla commutes with the padding isometry.

      theorem MIPRE.ancillaEmbed_conjTranspose_mul_kron_one {dA : Type u_4} [Fintype dA] [DecidableEq dA] {A : Type u_6} [Fintype A] [DecidableEq A] (a₀ : A) (M : Matrix dA dA ℂ) :
      (ancillaEmbed dA a₀).conjTranspose * Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) M 1 = M * (ancillaEmbed dA a₀).conjTranspose

      The same, on the other side of the isometry.

      theorem MIPRE.compress_mul_kron_one {dA : Type u_4} [Fintype dA] [DecidableEq dA] {A : Type u_6} [Fintype A] [DecidableEq A] (a₀ : A) (M : Matrix dA dA ℂ) (Y : Matrix (dA × A) (dA × A) ℂ) :
      (ancillaEmbed dA a₀).conjTranspose * (Y * Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) M 1 * ancillaEmbed dA a₀) = (ancillaEmbed dA a₀).conjTranspose * (Y * ancillaEmbed dA a₀) * M

      Compressing a product whose right factor has an inert ancilla.

      theorem MIPRE.compress_kron_one_mul {dA : Type u_4} [Fintype dA] [DecidableEq dA] {A : Type u_6} [Fintype A] [DecidableEq A] (a₀ : A) (M : Matrix dA dA ℂ) (Y : Matrix (dA × A) (dA × A) ℂ) :
      (ancillaEmbed dA a₀).conjTranspose * (Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) M 1 * Y * ancillaEmbed dA a₀) = M * ((ancillaEmbed dA a₀).conjTranspose * (Y * ancillaEmbed dA a₀))

      Compressing a product whose left factor has an inert ancilla.

      theorem MIPRE.qform_extVecA {dA : Type u_4} {dB : Type u_5} [Fintype dA] [DecidableEq dA] [Fintype dB] [DecidableEq dB] {A : Type u_6} [Fintype A] [DecidableEq A] (ψ : dA × dB → ℂ) (a₀ : A) (M : Matrix (dA × A) (dA × A) ℂ) :
      qform (extVecA ψ a₀) (aOp M) = qform ψ (aOp ((ancillaEmbed dA a₀).conjTranspose * (M * ancillaEmbed dA a₀)))

      The conjugation identity: a quadratic form on the extended state is the quadratic form of the compressed operator on the original one.

      The distance between two unitaries, as a quadratic form #

      theorem MIPRE.stateSqNorm_sub_of_isometry {dA : Type u_4} {dB : Type u_5} [Fintype dA] [DecidableEq dA] [Fintype dB] [DecidableEq dB] {ψ : dA × dB → ℂ} (hψ : ‖evec ψ‖ = 1) {A B : Matrix dA dA ℂ} (hA : A.conjTranspose * A = 1) (hB : B.conjTranspose * B = 1) :
      stateSqNorm ψ (A - B) = 2 - qform ψ (aOp (A.conjTranspose * B)) - qform ψ (aOp (B.conjTranspose * A))

      Expanding a squared distance. For A and B with AᴴA = BᴴB = 1 --- observables, or products of them --- the state-dependent squared distance is 2 minus the two orders of the overlap. Keeping both orders rather than combining them into a real part is what lets the linearity estimate be matched term by term against its hypothesis.

      The theorem #

      theorem MIPRE.conjTranspose_mul_self_of_involution {F : Type u_1} [Field F] [Fintype F] [Algebra (ZMod 2) F] {n : Type u_2} [Fintype n] [DecidableEq n] {dA : Type u_4} [Fintype dA] [DecidableEq dA] {X : Type u_6} [Fintype X] {O : X → (n → F) → Matrix dA dA ℂ} (hsa : ∀ (x : X) (a : n → F), (O x a).conjTranspose = O x a) (hinv : ∀ (x : X) (a : n → F), O x a * O x a = 1) (x : X) (a b : n → F) :
      (O x a * O x b).conjTranspose * (O x a * O x b) = 1

      A product of two involutions is unitary, which is all the expansion of the hypothesis's squared distance needs.

      theorem MIPRE.exists_exactly_linear_close {F : Type u_1} [Field F] [Fintype F] [DecidableEq F] [Algebra (ZMod 2) F] {n : Type u_2} [Fintype n] [DecidableEq n] {dA : Type u_4} {dB : Type u_5} [Fintype dA] [DecidableEq dA] [Fintype dB] [DecidableEq dB] {X : Type u_6} [Fintype X] {ψ : dA × dB → ℂ} (hψ : ‖evec ψ‖ = 1) (O : X → (n → F) → Matrix dA dA ℂ) (hsa : ∀ (x : X) (a : n → F), (O x a).conjTranspose = O x a) (hinv : ∀ (x : X) (a : n → F), O x a * O x a = 1) :
      ∃ (L : X → (n → F) → Matrix (dA × (n → F)) (dA × (n → F)) ℂ), (∀ (x : X) (u : n → F), (L x u).conjTranspose = L x u) ∧ (∀ (x : X) (u u' : n → F), L x u * L x u' = L x (u + u')) ∧ (∀ (x : X), L x 0 = 1) ∧ ∀ (x : X), ∑ u : n → F, (↑(Fintype.card (n → F)))⁻¹ * stateSqNorm (extVecA ψ 0) (L x u - aOp (O x u)) = ∑ a : n → F, ∑ b : n → F, (↑(Fintype.card (n → F)))⁻¹ * (↑(Fintype.card (n → F)))⁻¹ * stateSqNorm ψ (O x a * O x b - O x (a + b))

      thm:linearity. A family of observables that is approximately linear on average is, after adjoining an ancilla register to the first party, exactly linear --- a representation of F_q^n by commuting involutions, with the identity at 0 --- and close to the original family, with the same average error: the linearity defect is transported, not merely bounded.