The first hiding edge as controlled linear constraints #
The first hiding edge of the introspection verifier compares an X-basis Pauli answer a with
a Hide answer (y, y', x) of level 0, three registers of Q = 2^(2^j) k bits. The kernel
reads the Pauli answer as the register Π a = pauliProject (pauliDecode a): its field elements
expanded in the self-dual normal basis (QLD.PauliFullAnswerProgram.registerVector). The check
is the quotient relaxation AuxiliaryQuotient.hidingPauli: the duals of y' and of Π a under
the first stage of the conditionally linear function P agree, and Π a and x agree off the
first factor S = P.factorOfPrefix 0 0.
Π is F₂-linear in the answer bits (pauliXProj, pauliXProj_eq), so both halves are linear
checks on the two answers, with coefficients computed from P:
- for
zin a listgensspanning the kernel ofstageLinear P 0 0:∑ zᵢ (proj S (Π a))ᵢ + ∑ zᵢ (proj S y')ᵢ = 0, which over the whole list is the equality of duals (AuxiliaryDual.registerDual_eq_iff_dot, as inMIPRE.Tailored.Intro.dualCons_iff); - for
i ∉ S, enumerated alongList.finRange:(Π a)ᵢ = xᵢ.
hideChecks writes them for the two answers at arbitrary offsets of one bit vector, and
hideChecks_iff is their meaning; pauliHideCons (Pauli answer first) and pauliHideConsRev
(Hide answer first) are the constraint lists of the two orientations of the edge, and
pauliHideCons_iff, pauliHideConsRev_iff the main theorems.
The file also records the byte round trip of the Pauli answers at their label lengths
(answerBits_decodeBits_of_length), for every label.
The byte round trip #
The byte round trip of Pauli answers: an answer of its label's length is the encoding of its decoding, at every label.
The decoded answer has the format of the decoded question (any payloads).
Registers of the answer bits #
The register of s bits starting at position o.
Equations
- MIPRE.Tailored.Intro.PauliHide.regAt N o s = LinearMap.pi fun (i : Fin s) => MIPRE.Tailored.Intro.getv N (o + ↑i)
Instances For
The inner product with w, as a linear form.
Equations
Instances For
The full Pauli register of the answer at position o: the field element of entry z
is read at o + z k (z numbered by cubeEnumeration) and expanded in the self-dual normal
basis, in the numbering registerNumbering.
Equations
- One or more equations did not get rendered due to their size.
Instances For
pauliXProj reads the kernel's register of a Pauli answer of its label's length, in
either basis.
The checks #
The checks of the first hiding edge, for a Pauli answer at oP and a Hide answer
(y, y', x) at oH, its registers at oH, oH + Q, oH + 2Q.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The checks of the first hiding edge hold exactly when hidingPauli does, for registers
read off the bit vector.
The constraints of the two orientations #
The constraints of the first hiding edge, Pauli answer first: the Pauli answer has
Q = 2^(2^j) k bits and the Hide answer 3Q.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The constraints of the first hiding edge, Hide answer first.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Hide registers read off a Hide answer at oH.
The first hiding edge as linear constraints, Pauli answer first.
The first hiding edge as linear constraints, Hide answer first.