The padded answer layout of the tailored introspection verifier #
The introspection verifier's answers are byte strings of variable length: an auxiliary answer is
a tuple of self-delimiting fields (AnswerParser.pairBits, tripleBits), the last of which may be
the input's answer, of any length up to the original cutoff R. A tailored game has, at each
question, a fixed number of readable and of linear answer bits. This file fixes the re-encoding,
by the question's label (QuestionType P ℓ):
- a Pauli label
pkeeps its bytes,plen pof them, all readable whenpread p(theZ-basis answers) and all linear otherwise; - Introspect and Sample,
(y, α): readableyand the input's readable answer bits padded toR, linear the input's linear answer bits padded toR; - Read,
(y, y', α): readableyand the padded readable bits ofα, lineary'and the padded linear bits ofα; - Hide,
(y, y', x): readabley, lineary'andx.
The input's answer at the question read off y has splitR t y readable and splitL t y linear
bits, the two functions being parameters here; the instance runs the input's answer-length
calculator. enc re-encodes, dec decodes, and dec_enc is the round trip on well-formed
answers whose input answer has the input's lengths; length_enc says that enc has the
label's lengths.
Pad with zeros to length R.
Equations
- MIPRE.Tailored.Intro.pad R l = l ++ List.replicate (R - List.length l) false
Instances For
The number of readable answer bits of a label.
Equations
- MIPRE.Tailored.Intro.lenR Q R plen pread (Sum.inl p) = if pread p = true then plen p else 0
- MIPRE.Tailored.Intro.lenR Q R plen pread (Sum.inr (MIPRE.Introspection.AuxType.introspect, snd)) = Q + R
- MIPRE.Tailored.Intro.lenR Q R plen pread (Sum.inr (MIPRE.Introspection.AuxType.sample, snd)) = Q + R
- MIPRE.Tailored.Intro.lenR Q R plen pread (Sum.inr (MIPRE.Introspection.AuxType.read, snd)) = Q + R
- MIPRE.Tailored.Intro.lenR Q R plen pread (Sum.inr (MIPRE.Introspection.AuxType.hide k, snd)) = Q
Instances For
The number of linear answer bits of a label.
Equations
- MIPRE.Tailored.Intro.lenL Q R plen pread (Sum.inl p) = if pread p = true then 0 else plen p
- MIPRE.Tailored.Intro.lenL Q R plen pread (Sum.inr (MIPRE.Introspection.AuxType.introspect, snd)) = R
- MIPRE.Tailored.Intro.lenL Q R plen pread (Sum.inr (MIPRE.Introspection.AuxType.sample, snd)) = R
- MIPRE.Tailored.Intro.lenL Q R plen pread (Sum.inr (MIPRE.Introspection.AuxType.read, snd)) = Q + R
- MIPRE.Tailored.Intro.lenL Q R plen pread (Sum.inr (MIPRE.Introspection.AuxType.hide k, snd)) = 2 * Q
Instances For
The re-encoding of a byte answer, readable bits first.
Equations
- One or more equations did not get rendered due to their size.
- MIPRE.Tailored.Intro.enc Q R splitR (Sum.inl val) x✝ = x✝
Instances For
The input's answer, from its two padded blocks.
Equations
Instances For
The decoding of a re-encoded answer.
Equations
- One or more equations did not get rendered due to their size.
- MIPRE.Tailored.Intro.dec Q R splitR splitL (Sum.inl val) x✝ = x✝
Instances For
The round trip #
The input's answer fits its two blocks.
Equations
- MIPRE.Tailored.Intro.Fits R splitR splitL t y α = (List.length α = splitR t y + splitL t y ∧ splitR t y ≤ R ∧ splitL t y ≤ R)
Instances For
The lengths #
Well-formed answers, uniformly #
A byte answer is well formed for the layout at a label: a Pauli answer of the label's length,
or a tuple whose registers have length Q and whose input answer fits its two blocks.
Equations
- One or more equations did not get rendered due to their size.
- MIPRE.Tailored.Intro.OkLayout Q R plen splitR splitL (Sum.inl val) x✝ = (List.length x✝ = plen val)
Instances For
The round trip on well-formed answers.
Well-formed answers re-encode to the label's lengths.
On bounded answers #
Decoding into the answers of length at most B, [] when the decoding is longer.
Equations
- One or more equations did not get rendered due to their size.