Programs for the Pauli clauses of the tailored introspection verifier #
The Z-basis guard of Typed.pauliDir compares the kernel's projection of the readable Z
answer with a register of the Sample answer. zGuardProg decides it in polynomial time from
the kernel's parameter triple, the readable answer and the register: it runs the kernel's full
answer program (QLD.PauliBinaryProgram.fullAnswer), whose second output is the projection's
bits, and compares them with the register cut or padded to the same length.
zGuardProg_eq is its correctness at answers of the label's length.
pauliConsProg computes the Pauli basis test's constraints PauliCons.pauliCons from the
parameter triple, Q = 2^(2^j) k in unary (the constraints have up to 2Q + 1 bits, more than
a polynomial in the questions alone), and the two labelled question payloads. It follows the
kernel's own route (PauliBranchProgram.route): equal labels give the bitwise comparison
(sameP, same_eq), and rule r of pairTest gives r1, …, r7. Every check of
pairChecks is affine in the answer bits, so its constraint vector is its value at the unit
vectors (PauliConsUnit): the program runs over the unit vectors of the answer bits, decodes
each into the two answers with the kernel's parser, and evaluates the rule's expression with the
kernel's field programs (the line parameter and Horner evaluation, the low-degree table, the
trace probe, bit reads); a field equation contributes the k coordinates of its values
(fieldCons, by transposition), a bit equation its values (boolCon). The question-only
conditions (the point on the line, γ(ω), the Magic Square incidences) are the kernel's own
programs (memberProg, gammaProg, magicInfo, probeEligible).
rule1, …,rule7: each rule program against itspairChecksbranch, for either orientation;pauliConsProg_eq: the program computespauliCons, forj ≤ kand payloads of length(3·2^j + 3) k(the kernel's question parser is characterized there).
A bit string cut or padded with zeros to the length of a reference string.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Z-basis guard: the projection of the readable Z answer is the register.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Z-basis guard is decided by zGuardProg, at readable answers of the label's
length.
The Pauli basis test's constraints: the programs #
The input: parameters, Q in unary, and the two labelled question payloads.
Equations
Instances For
An input and a unit vector of the answer bits.
Equations
Instances For
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
The answer length of a label, pauliLen m k T, in unary, from k, m and 2^m k.
Equations
- One or more equations did not get rendered due to their size.
- MIPRE.Tailored.Intro.PauliConsProg.lenBranch (MIPRE.QLD.Ty.point W) = MIPRE.Cost.PolyTimeFun.fst
- MIPRE.Tailored.Intro.PauliConsProg.lenBranch (MIPRE.QLD.Ty.aline W) = MIPRE.Cost.PolyTimeFun.append.comp (MIPRE.Cost.PolyTimeFun.fst.pair MIPRE.Cost.PolyTimeFun.fst)
- MIPRE.Tailored.Intro.PauliConsProg.lenBranch (MIPRE.QLD.Ty.pauli W) = MIPRE.Cost.PolyTimeFun.fst.comp (MIPRE.Cost.PolyTimeFun.snd.comp MIPRE.Cost.PolyTimeFun.snd)
- MIPRE.Tailored.Intro.PauliConsProg.lenBranch (MIPRE.QLD.Ty.pairB W) = MIPRE.Cost.PolyTimeFun.const (MIPRE.Cost.unary 1)
- MIPRE.Tailored.Intro.PauliConsProg.lenBranch (MIPRE.QLD.Ty.var j) = MIPRE.Cost.PolyTimeFun.const (MIPRE.Cost.unary 1)
- MIPRE.Tailored.Intro.PauliConsProg.lenBranch MIPRE.QLD.Ty.pair = MIPRE.Cost.PolyTimeFun.const (MIPRE.Cost.unary 2)
- MIPRE.Tailored.Intro.PauliConsProg.lenBranch (MIPRE.QLD.Ty.con i) = MIPRE.Cost.PolyTimeFun.const (MIPRE.Cost.unary 3)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reading the unit vector #
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- MIPRE.Tailored.Intro.PauliConsProg.boolXor = MIPRE.Cost.PolyTimeFun.finiteFunction fun (p : Bool × Bool) => p.1 ^^ p.2
Instances For
Equations
Instances For
The values at a unit vector #
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Constraint vectors #
The k constraints of a field equation, from its values at the unit vectors.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The constraint of a bit equation, from its values at the unit vectors and its target.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Pauli basis test's constraints, as a program.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Pauli basis test's constraints: correctness #
The unit vectors of the answer bits.
Field constraints from unit values.
A bit constraint from unit values.
Reading the unit vectors #
The decoded answers at a unit vector, and what the programs and the checks read of them.
The left and right decoded answers at a unit vector (after the route's orientation).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The facts of lr_facts, with the labels of the two sides named.
Rules 1 and 2: a line against a point #
The line values at the unit vectors are the line equation's.
Rule 1, the axis-parallel line against a point.
Rule 2, the diagonal line against a point.
Rule 3, the point probe against the full Pauli outcome.
Rule 4, the commutation check.
The probe values at the unit vectors.
Rule 5, the commutation consistency check.
Rule 6, the Magic Square check.
Rule 7, the Magic Square consistency check.
Lengths and equal labels #
The concrete input #
The program's input at labels t, u and question payloads x, y.
Equations
- MIPRE.Tailored.Intro.PauliConsProg.inputOf k j t u x y = ((MIPRE.Cost.unary k, MIPRE.Cost.unary j, MIPRE.Cost.unary (2 ^ j)), MIPRE.Cost.unary (2 ^ 2 ^ j * k), (t, x), u, y)
Instances For
The question vector a payload decodes to.
Equations
- MIPRE.Tailored.Intro.PauliConsProg.qv k hk hodd j x = (MIPRE.QLD.PauliCL.binaryVectorEquiv (MIPRE.SAT.shoupSelfDualNormalBasis k hk hodd)).symm (MIPRE.CL.ofBits ((3 * 2 ^ j + 3) * k) x)
Instances For
The program computes the Pauli basis test's constraints, exactly, at question payloads of the right length.