Documentation

MIPRE.Background.Tailored.Intro.PauliConsProg

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).

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 #

      @[reducible, inline]

      An input and a unit vector of the answer bits.

      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
                    • 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
                                  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

                                              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
                                                                      • 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

                                                                                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 #

                                                                                  theorem MIPRE.Tailored.Intro.PauliConsProg.range_map_eq_ofFn {α : Type u_1} (n : ℕ) (g : ℕ → α) :
                                                                                  List.map g (List.range n) = List.ofFn fun (p : Fin n) => g ↑p

                                                                                  The unit vectors of the answer bits.

                                                                                  theorem MIPRE.Tailored.Intro.PauliConsProg.fieldCons_eq {k : ℕ} {hk : 1 ≤ k} {inp : PIn} {N : ℕ} (hK : uK.toFun inp = Cost.unary k) (hN : lenN.toFun inp = Cost.unary N) (val : Cost.PolyTimeFun PPos Cost.BitStr) (E : (Fin N → ZMod 2) →ₗ[ZMod 2] (SAT.shoupBinField k hk).carrier) (hval : ∀ (p : Fin N), val.toFun (inp, LowDegree.BinaryLinear.unitBits N ↑p) = (SAT.shoupBinField k hk).toBits (E (PauliHideProg.unitV p))) :

                                                                                  Field constraints from unit values.

                                                                                  theorem MIPRE.Tailored.Intro.PauliConsProg.boolCon_eq {inp : PIn} {N : ℕ} (hN : lenN.toFun inp = Cost.unary N) (val : Cost.PolyTimeFun PPos Bool) (target : Cost.PolyTimeFun PIn Bool) (χ : LinCheck N) (hval : ∀ (p : Fin N), val.toFun (inp, LowDegree.BinaryLinear.unitBits N ↑p) = LowDegree.BinaryLinear.bit (χ.φ (PauliHideProg.unitV p))) (ht : target.toFun inp = LowDegree.BinaryLinear.bit χ.c) :
                                                                                  (boolCon val target).toFun inp = χ.toCon

                                                                                  A bit constraint from unit values.

                                                                                  Reading the unit vectors #

                                                                                  @[reducible, inline]
                                                                                  noncomputable abbrev MIPRE.Tailored.Intro.PauliConsProg.dL {k : ℕ} {hk : 1 ≤ k} {M : ℕ} (TA TB : QLD.Ty) (LA N : ℕ) (s : Bool) (p : Fin N) :

                                                                                  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
                                                                                    @[reducible, inline]
                                                                                    noncomputable abbrev MIPRE.Tailored.Intro.PauliConsProg.dR {k : ℕ} {hk : 1 ≤ k} {M : ℕ} (TA TB : QLD.Ty) (LA N : ℕ) (s : Bool) (p : Fin N) :
                                                                                    Equations
                                                                                    • One or more equations did not get rendered due to their size.
                                                                                    Instances For
                                                                                      theorem MIPRE.Tailored.Intro.PauliConsProg.lr_facts {k : ℕ} {hk : 1 ≤ k} {M : ℕ} {inp : PIn} {TA TB : QLD.Ty} {LA LB : ℕ} {s : Bool} (hK : uK.toFun inp = Cost.unary k) (hM : uM.toFun inp = Cost.unary M) (hA : tA.toFun inp = TA) (hB : tB.toFun inp = TB) (hLA : lenA.toFun inp = Cost.unary LA) (hA' : LA = pauliLen M k TA) (hB' : LB = pauliLen M k TB) (hs : sw.toFun inp = s) (p : Fin (LA + LB)) :
                                                                                      theorem MIPRE.Tailored.Intro.PauliConsProg.lr_facts₂ {k : ℕ} {hk : 1 ≤ k} {M : ℕ} {inp : PIn} {TA TB TL TR : QLD.Ty} {LA LB : ℕ} {s : Bool} (hK : uK.toFun inp = Cost.unary k) (hM : uM.toFun inp = Cost.unary M) (hA : tA.toFun inp = TA) (hB : tB.toFun inp = TB) (hLA : lenA.toFun inp = Cost.unary LA) (hA' : LA = pauliLen M k TA) (hB' : LB = pauliLen M k TB) (hs : sw.toFun inp = s) (hTL : (if s = true then TB else TA) = TL) (hTR : (if s = true then TA else TB) = TR) (p : Fin (LA + LB)) :

                                                                                      The facts of lr_facts, with the labels of the two sides named.

                                                                                      Rules 1 and 2: a line against a point #

                                                                                      theorem MIPRE.Tailored.Intro.PauliConsProg.line_core {k : ℕ} {hk : 1 ≤ k} {inp : PIn} {N n oL oR : ℕ} (hK : uK.toFun inp = Cost.unary k) (hN : lenN.toFun inp = Cost.unary N) (τ : (SAT.shoupBinField k hk).carrier) (val : Cost.PolyTimeFun PPos Cost.BitStr) (hv : ∀ (u : Cost.BitStr), val.toFun (inp, u) = LowDegree.BinaryPolynomial.xorBits (Introspection.FieldPolynomialProgram.shoupHornerProg.toFun (Cost.unary k, (SAT.shoupBinField k hk).toBits τ, rR.toFun (inp, u))) (lV.toFun (inp, u))) (hp : ∀ (p : Fin N), ∃ (f : Fin (n + 1) → (SAT.shoupBinField k hk).carrier) (a : (SAT.shoupBinField k hk).carrier), rR.toFun (inp, LowDegree.BinaryLinear.unitBits N ↑p) = (SAT.shoupBinField k hk).vecBits f ∧ lR.toFun (inp, LowDegree.BinaryLinear.unitBits N ↑p) = [(SAT.shoupBinField k hk).toBits a] ∧ (fldAt k hk N oL) (PauliHideProg.unitV p) = a ∧ ∀ (i : Fin (n + 1)), (fldAt k hk N (oR + ↑i * k)) (PauliHideProg.unitV p) = f i) :
                                                                                      (fieldCons val).toFun inp = List.map LinCheck.toCon (fieldChecks k hk (∑ i : Fin (n + 1), LinearMap.mulRight (ZMod 2) (τ ^ ↑i) ∘ₗ fldAt k hk N (oR + ↑i * k) - fldAt k hk N oL) 0)

                                                                                      The line values at the unit vectors are the line equation's.

                                                                                      theorem MIPRE.Tailored.Intro.PauliConsProg.rule1 {k : ℕ} {hk : 1 ≤ k} {M : ℕ} {inp : PIn} {TA TB : QLD.Ty} {LA LB : ℕ} {s : Bool} (hK : uK.toFun inp = Cost.unary k) (hM : uM.toFun inp = Cost.unary M) (hA : tA.toFun inp = TA) (hB : tB.toFun inp = TB) (hLA : lenA.toFun inp = Cost.unary LA) (hN : lenN.toFun inp = Cost.unary (LA + LB)) (hA' : LA = pauliLen M k TA) (hB' : LB = pauliLen M k TB) (hs : sw.toFun inp = s) {W : QLD.Bas} (hTL : (if s = true then TB else TA) = QLD.Ty.point W) (hTR : (if s = true then TA else TB) = QLD.Ty.aline W) (u₀ w y : Fin M → (SAT.shoupBinField k hk).carrier) (htau : tauA.toFun inp = (SAT.shoupBinField k hk).toBits (LIDT.CL.lineParam u₀ w y)) (hmem : memA.toFun inp = decide (∃ (t : (SAT.shoupBinField k hk).carrier), y = u₀ + t • w)) :
                                                                                      r1.toFun inp = List.map LinCheck.toCon (PauliCons.lineChecks k hk (LA + LB) 1 (if s = true then LA else 0) (if s = true then 0 else LA) u₀ w y)

                                                                                      Rule 1, the axis-parallel line against a point.

                                                                                      theorem MIPRE.Tailored.Intro.PauliConsProg.rule2 {k : ℕ} {hk : 1 ≤ k} {M : ℕ} {inp : PIn} {TA TB : QLD.Ty} {LA LB : ℕ} {s : Bool} (hK : uK.toFun inp = Cost.unary k) (hM : uM.toFun inp = Cost.unary M) (hA : tA.toFun inp = TA) (hB : tB.toFun inp = TB) (hLA : lenA.toFun inp = Cost.unary LA) (hN : lenN.toFun inp = Cost.unary (LA + LB)) (hA' : LA = pauliLen M k TA) (hB' : LB = pauliLen M k TB) (hs : sw.toFun inp = s) {W : QLD.Bas} (hTL : (if s = true then TB else TA) = QLD.Ty.point W) (hTR : (if s = true then TA else TB) = QLD.Ty.dline W) (u₀ w y : Fin M → (SAT.shoupBinField k hk).carrier) (htau : tauD.toFun inp = (SAT.shoupBinField k hk).toBits (LIDT.CL.lineParam u₀ w y)) (hmem : memD.toFun inp = decide (∃ (t : (SAT.shoupBinField k hk).carrier), y = u₀ + t • w)) :
                                                                                      r2.toFun inp = List.map LinCheck.toCon (PauliCons.lineChecks k hk (LA + LB) (M * 1) (if s = true then LA else 0) (if s = true then 0 else LA) u₀ w y)

                                                                                      Rule 2, the diagonal line against a point.

                                                                                      theorem MIPRE.Tailored.Intro.PauliConsProg.rule3 {k : ℕ} {hk : 1 ≤ k} {M : ℕ} {inp : PIn} {TA TB : QLD.Ty} {LA LB : ℕ} {s : Bool} (hK : uK.toFun inp = Cost.unary k) (hM : uM.toFun inp = Cost.unary M) (hA : tA.toFun inp = TA) (hB : tB.toFun inp = TB) (hLA : lenA.toFun inp = Cost.unary LA) (hN : lenN.toFun inp = Cost.unary (LA + LB)) (hA' : LA = pauliLen M k TA) (hB' : LB = pauliLen M k TB) (hs : sw.toFun inp = s) {W : QLD.Bas} (hTL : (if s = true then TB else TA) = QLD.Ty.point W) (hTR : (if s = true then TA else TB) = QLD.Ty.pauli W) (y : Fin M → (SAT.shoupBinField k hk).carrier) (hpt : ptL.toFun inp = (SAT.shoupBinField k hk).vecBits y) :
                                                                                      r3.toFun inp = List.map LinCheck.toCon (PauliCons.pauliChecks k hk (LA + LB) (if s = true then LA else 0) (if s = true then 0 else LA) y)

                                                                                      Rule 3, the point probe against the full Pauli outcome.

                                                                                      theorem MIPRE.Tailored.Intro.PauliConsProg.rule4 {k : ℕ} {hk : 1 ≤ k} {M : ℕ} {inp : PIn} {TA TB : QLD.Ty} {LA LB : ℕ} {s : Bool} (hK : uK.toFun inp = Cost.unary k) (hM : uM.toFun inp = Cost.unary M) (hA : tA.toFun inp = TA) (hB : tB.toFun inp = TB) (hLA : lenA.toFun inp = Cost.unary LA) (hN : lenN.toFun inp = Cost.unary (LA + LB)) (hA' : LA = pauliLen M k TA) (hB' : LB = pauliLen M k TB) (hs : sw.toFun inp = s) {W : QLD.Bas} (hTL : (if s = true then TB else TA) = QLD.Ty.pairB W) (hTR : (if s = true then TA else TB) = QLD.Ty.pair) (ω : QLD.Omega (SAT.shoupBinField k hk).carrier M) (hgam : gamR.toFun inp = LowDegree.BinaryLinear.bit (QLD.gam ω)) (hbas : bas.toFun inp = PauliCons.basIdx W) :

                                                                                      Rule 4, the commutation check.

                                                                                      theorem MIPRE.Tailored.Intro.PauliConsProg.prb_core {k : ℕ} {hk : 1 ≤ k} {M : ℕ} {inp : PIn} {TA TB : QLD.Ty} {LA LB : ℕ} {s : Bool} (hK : uK.toFun inp = Cost.unary k) (hM : uM.toFun inp = Cost.unary M) (hA : tA.toFun inp = TA) (hB : tB.toFun inp = TB) (hLA : lenA.toFun inp = Cost.unary LA) (hN : lenN.toFun inp = Cost.unary (LA + LB)) (hA' : LA = pauliLen M k TA) (hB' : LB = pauliLen M k TB) (hs : sw.toFun inp = s) {TL TR : QLD.Ty} (hTL : (if s = true then TB else TA) = TL) (hTR : (if s = true then TA else TB) = TR) (hTL' : ∀ (a : Cost.BitStr), ∃ (x : (SAT.shoupBinField k hk).carrier), QLD.PauliAnswerProgram.decodeBits (SAT.shoupBinField k hk) M 1 TL a = QLD.Answer.val x) (hTR' : ∀ (a : Cost.BitStr), ∃ (b : ZMod 2), QLD.PauliAnswerProgram.decodeBits (SAT.shoupBinField k hk) M 1 TR a = QLD.Answer.bit b) (r : (SAT.shoupBinField k hk).carrier) (hsc : scR.toFun inp = (SAT.shoupBinField k hk).toBits r) :

                                                                                      The probe values at the unit vectors.

                                                                                      theorem MIPRE.Tailored.Intro.PauliConsProg.rule5 {k : ℕ} {hk : 1 ≤ k} {M : ℕ} {inp : PIn} {TA TB : QLD.Ty} {LA LB : ℕ} {s : Bool} (hK : uK.toFun inp = Cost.unary k) (hM : uM.toFun inp = Cost.unary M) (hA : tA.toFun inp = TA) (hB : tB.toFun inp = TB) (hLA : lenA.toFun inp = Cost.unary LA) (hN : lenN.toFun inp = Cost.unary (LA + LB)) (hA' : LA = pauliLen M k TA) (hB' : LB = pauliLen M k TB) (hs : sw.toFun inp = s) {W : QLD.Bas} (hTL : (if s = true then TB else TA) = QLD.Ty.point W) (hTR : (if s = true then TA else TB) = QLD.Ty.pairB W) (ω : QLD.Omega (SAT.shoupBinField k hk).carrier M) (hgam : gamR.toFun inp = LowDegree.BinaryLinear.bit (QLD.gam ω)) (hsc : scR.toFun inp = (SAT.shoupBinField k hk).toBits (ω.r W)) :
                                                                                      r5.toFun inp = List.map LinCheck.toCon (if QLD.gam ω ≠ 0 then [] else [PauliCons.prbCheck k hk (LA + LB) (ω.r W) (if s = true then LA else 0) (if s = true then 0 else LA)])

                                                                                      Rule 5, the commutation consistency check.

                                                                                      theorem MIPRE.Tailored.Intro.PauliConsProg.rule6 {k : ℕ} {hk : 1 ≤ k} {M : ℕ} {inp : PIn} {TA TB : QLD.Ty} {LA LB : ℕ} {s : Bool} (hK : uK.toFun inp = Cost.unary k) (hM : uM.toFun inp = Cost.unary M) (hA : tA.toFun inp = TA) (hB : tB.toFun inp = TB) (hLA : lenA.toFun inp = Cost.unary LA) (hN : lenN.toFun inp = Cost.unary (LA + LB)) (hA' : LA = pauliLen M k TA) (hB' : LB = pauliLen M k TB) (hs : sw.toFun inp = s) {i : Fin LCS.MagicSquare.layout.r} {j' : Fin LCS.MagicSquare.layout.s} (hTL : (if s = true then TB else TA) = QLD.Ty.con i) (hTR : (if s = true then TA else TB) = QLD.Ty.var j') (ω : QLD.Omega (SAT.shoupBinField k hk).carrier M) (hgam : gamR.toFun inp = LowDegree.BinaryLinear.bit (QLD.gam ω)) (hmagic : magic.toFun inp = QLD.PauliBooleanProgram.magicInfo (QLD.Ty.con i, QLD.Ty.var j')) :
                                                                                      r6.toFun inp = List.map LinCheck.toCon (PauliCons.conVarChecks k hk (LA + LB) i j' ω (if s = true then LA else 0) (if s = true then 0 else LA))

                                                                                      Rule 6, the Magic Square check.

                                                                                      theorem MIPRE.Tailored.Intro.PauliConsProg.rule7 {k : ℕ} {hk : 1 ≤ k} {M : ℕ} {inp : PIn} {TA TB : QLD.Ty} {LA LB : ℕ} {s : Bool} (hK : uK.toFun inp = Cost.unary k) (hM : uM.toFun inp = Cost.unary M) (hA : tA.toFun inp = TA) (hB : tB.toFun inp = TB) (hLA : lenA.toFun inp = Cost.unary LA) (hN : lenN.toFun inp = Cost.unary (LA + LB)) (hA' : LA = pauliLen M k TA) (hB' : LB = pauliLen M k TB) (hs : sw.toFun inp = s) {W : QLD.Bas} {j' : Fin LCS.MagicSquare.layout.s} (hTL : (if s = true then TB else TA) = QLD.Ty.point W) (hTR : (if s = true then TA else TB) = QLD.Ty.var j') (ω : QLD.Omega (SAT.shoupBinField k hk).carrier M) (hgam : gamR.toFun inp = LowDegree.BinaryLinear.bit (QLD.gam ω)) (hsc : scR.toFun inp = (SAT.shoupBinField k hk).toBits (ω.r W)) (helig : elig.toFun inp = QLD.PauliBooleanProgram.probeEligible (QLD.Ty.point W, QLD.Ty.var j')) :
                                                                                      r7.toFun inp = List.map LinCheck.toCon (PauliCons.pointVarChecks k hk (LA + LB) W j' ω (if s = true then LA else 0) (if s = true then 0 else LA))

                                                                                      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
                                                                                      Instances For
                                                                                        @[reducible, inline]
                                                                                        noncomputable abbrev MIPRE.Tailored.Intro.PauliConsProg.qv (k : ℕ) (hk : 1 ≤ k) [NeZero k] (hodd : Odd k) (j : ℕ) (x : Cost.BitStr) :

                                                                                        The question vector a payload decodes to.

                                                                                        Equations
                                                                                        Instances For
                                                                                          theorem MIPRE.Tailored.Intro.PauliConsProg.dispatch (inp : PIn) (h : tA.toFun inp ≠ tB.toFun inp) :
                                                                                          pauliConsProg.toFun inp = if (rt.toFun inp).1 = 1 then r1.toFun inp else if (rt.toFun inp).1 = 2 then r2.toFun inp else if (rt.toFun inp).1 = 3 then r3.toFun inp else if (rt.toFun inp).1 = 4 then r4.toFun inp else if (rt.toFun inp).1 = 5 then r5.toFun inp else if (rt.toFun inp).1 = 6 then r6.toFun inp else if (rt.toFun inp).1 = 7 then r7.toFun inp else []
                                                                                          theorem MIPRE.Tailored.Intro.PauliConsProg.pauliConsProg_eq {k : ℕ} {hk : 1 ≤ k} [NeZero k] {hodd : Odd k} {j : ℕ} (hj : j ≤ k) (hm : 2 ^ j ∣ Fintype.card (SAT.shoupBinField k hk).carrier) (t u : QLD.Ty) (x y aR bR : Cost.BitStr) (hx : List.length x = (3 * 2 ^ j + 3) * k) (hy : List.length y = (3 * 2 ^ j + 3) * k) :
                                                                                          pauliConsProg.toFun (inputOf k j t u x y) = PauliCons.pauliCons k hk hodd j hm t u x y aR bR

                                                                                          The program computes the Pauli basis test's constraints, exactly, at question payloads of the right length.