Documentation

MIPRE.Background.Tailored.Intro.HonestBits

The measurement of the honest strategy at a typed question #

The honest strategy of the guarded game (HonestChain.canonical) measures, at a typed question (w, (p, z)), the honest binary operator of the label p (BinaryComplete.op), relabelled to the binary Weyl coordinates of the answers (AuxiliaryQuotient.answerEquiv) and conjugated by the numbering of its space (canonical_M). This file reduces a bit of its outcome to a bit of the honest Pauli measurement (QLD.Honest.answerOp, at a Pauli label) or of the honest auxiliary measurement (Honest.auxOp, at an auxiliary label), whose bits MIPRE.Tailored.Intro.HonestPauli and MIPRE.Tailored.Intro.HonestAux compute.

A bit of the honest measurement at a typed question is a bit of the binary operator, read through the relabelling of the answers.

Pauli labels #

noncomputable def MIPRE.Tailored.Intro.HonestChain.fbit {c lam n : ℕ} (hc : 2 ≤ c) (R : ℕ) (splitR : Introspection.AuxType 7 × Bool → Cost.BitStr → ℕ) (p : Introspection.QuestionType QLD.Ty 7) (i : ℕ) (a : Introspection.CanonicalComplete.Answer c lam n) :

The i-th bit of the tailored encoding of an answer of the guarded game.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem MIPRE.Tailored.Intro.HonestChain.isXBit_canonical_pauli {c : ℕ} (W : Verifier 7) {lam n : ℕ} (RW : SyncStrategy (W.game (2 ^ n) ((2 ^ n) ^ lam)).doubled) (hc1 : 1 ≤ c) (he : Even c) (hs : W.sampler.dim (2 ^ n) ≤ Introspection.SourceCompiler.registerBits c lam n) (hc : 2 ≤ c) (R : ℕ) (splitR : Introspection.AuxType 7 × Bool → Cost.BitStr → ℕ) (w : Bool) (T : QLD.Ty) (z : Fin (Introspection.PauliSampler.dimension c lam n) → CL.𝔽₂) (i : ℕ) :
    IsXBit ((canonical W RW hc1 he hs).P.M (w, Sum.inl T, z)) (fbit hc R splitR (Sum.inl T) i)

    At a Pauli label every bit is a signed permutation.

    theorem MIPRE.Tailored.Intro.HonestChain.isZBit_canonical_pauliZ {c : ℕ} (W : Verifier 7) {lam n : ℕ} (RW : SyncStrategy (W.game (2 ^ n) ((2 ^ n) ^ lam)).doubled) (hc1 : 1 ≤ c) (he : Even c) (hs : W.sampler.dim (2 ^ n) ≤ Introspection.SourceCompiler.registerBits c lam n) (hc : 2 ≤ c) (R : ℕ) (splitR : Introspection.AuxType 7 × Bool → Cost.BitStr → ℕ) (w : Bool) (z : Fin (Introspection.PauliSampler.dimension c lam n) → CL.𝔽₂) (i : ℕ) :
    IsZBit ((canonical W RW hc1 he hs).P.M (w, Sum.inl (QLD.Ty.pauli QLD.Bas.Z), z)) (fbit hc R splitR (Sum.inl (QLD.Ty.pauli QLD.Bas.Z)) i)

    At the (Pauli, Z) label every bit is a ±1 diagonal.

    The input's answer bits #

    The honest strategy measures the input's strategy RW at the question read off the register. What it needs of RW: its answer bits are signed permutations, diagonal below the readable length the tailored verifier V assigns to the question.

    theorem MIPRE.Tailored.Intro.HonestChain.isZBit_input_readable (W : Verifier 7) {lam n : ℕ} (RW : SyncStrategy (W.game (2 ^ n) ((2 ^ n) ^ lam)).doubled) (V : TailoredVerifier 7) (hZ : ∀ (p : Bool × W.Questions (2 ^ n)), ∀ j < V.lenOf (2 ^ n) (CL.toBits p.2) false, IsZBit (RW.P.M p) fun (a : Verifier.Answers ((2 ^ n) ^ lam)) => List.getD (↑a) j false) (p : Bool × W.Questions (2 ^ n)) (j : ℕ) :
    IsZBit (RW.P.M p) fun (a : Verifier.Answers ((2 ^ n) ^ lam)) => if j < V.lenOf (2 ^ n) (CL.toBits p.2) false then List.getD (↑a) j false else false

    The input's readable answer slot j: the j-th answer bit below the readable length, 0 above.

    theorem MIPRE.Tailored.Intro.HonestChain.toBits_getD {Q : ℕ} (v : Fin Q → CL.𝔽₂) (j : ℕ) :
    List.getD (CL.toBits v) j false = if h : j < Q then decide (v ⟨j, h⟩ = 1) else false
    theorem MIPRE.Tailored.Intro.HonestChain.isXBit_pair_input {c : ℕ} (W : Verifier 7) {lam n : ℕ} (RW : SyncStrategy (W.game (2 ^ n) ((2 ^ n) ^ lam)).doubled) (V : TailoredVerifier 7) (R : ℕ) {t : Introspection.AuxType 7 × Bool} (ht : t.1 = Introspection.AuxType.introspect ∨ t.1 = Introspection.AuxType.sample) (splitR : Introspection.AuxType 7 × Bool → Cost.BitStr → ℕ) (hX : ∀ (p : Bool × W.Questions (2 ^ n)) (j : ℕ), IsXBit (RW.P.M p) fun (a : Verifier.Answers ((2 ^ n) ^ lam)) => List.getD (↑a) j false) (hZ : ∀ (p : Bool × W.Questions (2 ^ n)), ∀ j < V.lenOf (2 ^ n) (CL.toBits p.2) false, IsZBit (RW.P.M p) fun (a : Verifier.Answers ((2 ^ n) ^ lam)) => List.getD (↑a) j false) (p : Bool × W.Questions (2 ^ n)) {yb : Cost.BitStr} (hyb : List.length yb = Introspection.SourceCompiler.registerBits c lam n) (hsp : splitR t yb = V.lenOf (2 ^ n) (CL.toBits p.2) false) (hR : V.lenOf (2 ^ n) (CL.toBits p.2) false ≤ R) (i : ℕ) :

    The bits of an Introspect or Sample answer, at a fixed register, as bits of the input's answer.

    theorem MIPRE.Tailored.Intro.HonestChain.isXBit_read_input {c : ℕ} (W : Verifier 7) {lam n : ℕ} (RW : SyncStrategy (W.game (2 ^ n) ((2 ^ n) ^ lam)).doubled) (V : TailoredVerifier 7) (R : ℕ) {w : Bool} (splitR : Introspection.AuxType 7 × Bool → Cost.BitStr → ℕ) (hX : ∀ (p : Bool × W.Questions (2 ^ n)) (j : ℕ), IsXBit (RW.P.M p) fun (a : Verifier.Answers ((2 ^ n) ^ lam)) => List.getD (↑a) j false) (hZ : ∀ (p : Bool × W.Questions (2 ^ n)), ∀ j < V.lenOf (2 ^ n) (CL.toBits p.2) false, IsZBit (RW.P.M p) fun (a : Verifier.Answers ((2 ^ n) ^ lam)) => List.getD (↑a) j false) (p : Bool × W.Questions (2 ^ n)) {yb ypb : Cost.BitStr} (hyb : List.length yb = Introspection.SourceCompiler.registerBits c lam n) (hypb : List.length ypb = Introspection.SourceCompiler.registerBits c lam n) (hsp : splitR (Introspection.AuxType.read, w) yb = V.lenOf (2 ^ n) (CL.toBits p.2) false) (hR : V.lenOf (2 ^ n) (CL.toBits p.2) false ≤ R) (i : ℕ) (hi : ¬(¬i < Introspection.SourceCompiler.registerBits c lam n ∧ ¬i - Introspection.SourceCompiler.registerBits c lam n < R ∧ i - Introspection.SourceCompiler.registerBits c lam n - R < Introspection.SourceCompiler.registerBits c lam n)) :

    The bits of a Read answer outside its dual register, at a fixed register, as bits of the input's answer.

    Auxiliary labels #

    theorem MIPRE.Tailored.Intro.HonestChain.lenOf_le (W : Verifier 7) {lam n : ℕ} (RW : SyncStrategy (W.game (2 ^ n) ((2 ^ n) ^ lam)).doubled) (V : TailoredVerifier 7) (hlen : ∀ (p : Bool × W.Questions (2 ^ n)) (a : Verifier.Answers ((2 ^ n) ^ lam)), RW.P.M p a ≠ 0 → List.length ↑a = V.lenOf (2 ^ n) (CL.toBits p.2) false + V.lenOf (2 ^ n) (CL.toBits p.2) true) (p : Bool × W.Questions (2 ^ n)) (κ : Bool) :
    V.lenOf (2 ^ n) (CL.toBits p.2) κ ≤ (2 ^ n) ^ lam

    The input's readable length is at most the answer bound: some answer has a nonzero projection, and it has the input's length.

    theorem MIPRE.Tailored.Intro.HonestChain.bits_introspect {c : ℕ} (W : Verifier 7) {lam n : ℕ} (RW : SyncStrategy (W.game (2 ^ n) ((2 ^ n) ^ lam)).doubled) (he : Even c) (hs : W.sampler.dim (2 ^ n) ≤ Introspection.SourceCompiler.registerBits c lam n) (V : TailoredVerifier 7) (hc : 2 ≤ c) (hlen : ∀ (p : Bool × W.Questions (2 ^ n)) (a : Verifier.Answers ((2 ^ n) ^ lam)), RW.P.M p a ≠ 0 → List.length ↑a = V.lenOf (2 ^ n) (CL.toBits p.2) false + V.lenOf (2 ^ n) (CL.toBits p.2) true) (hX : ∀ (p : Bool × W.Questions (2 ^ n)) (j : ℕ), IsXBit (RW.P.M p) fun (a : Verifier.Answers ((2 ^ n) ^ lam)) => List.getD (↑a) j false) (hZ : ∀ (p : Bool × W.Questions (2 ^ n)), ∀ j < V.lenOf (2 ^ n) (CL.toBits p.2) false, IsZBit (RW.P.M p) fun (a : Verifier.Answers ((2 ^ n) ^ lam)) => List.getD (↑a) j false) (w' w : Bool) (z : Fin (Introspection.PauliSampler.dimension c lam n) → CL.𝔽₂) (i : ℕ) :

    The bits at an Introspect label.

    theorem MIPRE.Tailored.Intro.HonestChain.bits_sample {c : ℕ} (W : Verifier 7) {lam n : ℕ} (RW : SyncStrategy (W.game (2 ^ n) ((2 ^ n) ^ lam)).doubled) (he : Even c) (hs : W.sampler.dim (2 ^ n) ≤ Introspection.SourceCompiler.registerBits c lam n) (V : TailoredVerifier 7) (hc : 2 ≤ c) (hlen : ∀ (p : Bool × W.Questions (2 ^ n)) (a : Verifier.Answers ((2 ^ n) ^ lam)), RW.P.M p a ≠ 0 → List.length ↑a = V.lenOf (2 ^ n) (CL.toBits p.2) false + V.lenOf (2 ^ n) (CL.toBits p.2) true) (hX : ∀ (p : Bool × W.Questions (2 ^ n)) (j : ℕ), IsXBit (RW.P.M p) fun (a : Verifier.Answers ((2 ^ n) ^ lam)) => List.getD (↑a) j false) (hZ : ∀ (p : Bool × W.Questions (2 ^ n)), ∀ j < V.lenOf (2 ^ n) (CL.toBits p.2) false, IsZBit (RW.P.M p) fun (a : Verifier.Answers ((2 ^ n) ^ lam)) => List.getD (↑a) j false) (w' w : Bool) (z : Fin (Introspection.PauliSampler.dimension c lam n) → CL.𝔽₂) (i : ℕ) :

    The bits at a Sample label.

    theorem MIPRE.Tailored.Intro.HonestChain.bits_read {c : ℕ} (W : Verifier 7) {lam n : ℕ} (RW : SyncStrategy (W.game (2 ^ n) ((2 ^ n) ^ lam)).doubled) (he : Even c) (hs : W.sampler.dim (2 ^ n) ≤ Introspection.SourceCompiler.registerBits c lam n) (V : TailoredVerifier 7) (hc : 2 ≤ c) (hlen : ∀ (p : Bool × W.Questions (2 ^ n)) (a : Verifier.Answers ((2 ^ n) ^ lam)), RW.P.M p a ≠ 0 → List.length ↑a = V.lenOf (2 ^ n) (CL.toBits p.2) false + V.lenOf (2 ^ n) (CL.toBits p.2) true) (hX : ∀ (p : Bool × W.Questions (2 ^ n)) (j : ℕ), IsXBit (RW.P.M p) fun (a : Verifier.Answers ((2 ^ n) ^ lam)) => List.getD (↑a) j false) (hZ : ∀ (p : Bool × W.Questions (2 ^ n)), ∀ j < V.lenOf (2 ^ n) (CL.toBits p.2) false, IsZBit (RW.P.M p) fun (a : Verifier.Answers ((2 ^ n) ^ lam)) => List.getD (↑a) j false) (w' w : Bool) (z : Fin (Introspection.PauliSampler.dimension c lam n) → CL.𝔽₂) (i : ℕ) :

    The bits at a Read label.

    theorem MIPRE.Tailored.Intro.HonestChain.bits_hide {c : ℕ} (W : Verifier 7) {lam n : ℕ} (RW : SyncStrategy (W.game (2 ^ n) ((2 ^ n) ^ lam)).doubled) (he : Even c) (hs : W.sampler.dim (2 ^ n) ≤ Introspection.SourceCompiler.registerBits c lam n) (V : TailoredVerifier 7) (hc : 2 ≤ c) (w' : Bool) (k : Fin 7) (w : Bool) (z : Fin (Introspection.PauliSampler.dimension c lam n) → CL.𝔽₂) (i : ℕ) :

    The bits at a Hide label.