Documentation

MIPRE.Tailored.Intro.CLData

The input's CL data, computed from the kernel's context #

The linear-constraints processor of the tailored introspection verifier needs, at a register y (a length-Q bit string), data about the padded CL functions L w = AuxiliaryDecision.padded V hs w of the input normal form verifier V at index 2^n. The decision kernel of MIPRE.Introspection.seven already computes all of it from one AuxiliarySource.Context, with a clocked universal machine U; this file exposes each datum as a Cost.PolyTimeFun on Input = AuxiliarySource.Context × BitStr, at the context the kernel builds (context V lam n Q w, the kernel's queryContext with role w), with a correctness theorem for a λ-bounded V, 1 ≤ n and hs : V.sampler.dim (2^n) ≤ Q:

The sampler program is specified only at attained prefixes (CL.Sampler.runs_factor, runs_linear), so the data of stage k are correct only under the prefix guard at k, which is itself computed exactly; at a register that fails it the processor emits rejectConstraint without reading them.

@[reducible, inline]

A context of the decision kernel and a register, as a bit string.

Equations
Instances For

    The context the kernel builds for V, λ, n, the register width Q and the role w: the shared clock, the sampler program, the index 2^n, the role, and a level and prefix (of length Q) that every query below replaces.

    Equations
    Instances For

      The evaluation L_w(z) #

      The marginal query at full depth 7 on the first dim bits of the register.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        The source's evaluation on the first dim bits of the register: L_w of the input verifier, unpadded.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          The padded evaluation: the source's, followed by zeros up to the register width.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem MIPRE.Tailored.Intro.CLData.widths_context (U : Cost.ClockedUniversalMachine) {lam n Q : ℕ} (V : Verifier 7) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hs : V.sampler.dim (2 ^ n) ≤ Q) (w : Bool) (y : Cost.BitStr) :
            (widths U).toFun (context V lam n Q w, y) = (Cost.unary (V.sampler.dim (2 ^ n)), context V lam n Q w)

            The source evaluation: the first dim bits of L_w(z), i.e. L_w of the input verifier at the first dim bits of z.

            theorem MIPRE.Tailored.Intro.CLData.eval_correct (U : Cost.ClockedUniversalMachine) {lam n Q : ℕ} (V : Verifier 7) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hs : V.sampler.dim (2 ^ n) ≤ Q) (w : Bool) (z : Fin Q → CL.𝔽₂) :

            The evaluation L_w(z) of the padded input CL function, as a length-Q bit string.

            The prefix scan and the reported prefixes #

            The kernel's attained-prefix scan to depth k on the register (AuxiliaryScan.program over the kernel's padded factor and matrix queries).

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def MIPRE.Tailored.Intro.CLData.Guard {Q : ℕ} (V : Verifier 7) {n : ℕ} (hs : V.sampler.dim (2 ^ n) ≤ Q) (w : Bool) (k : ℕ) (y : Fin Q → CL.𝔽₂) :

              The prefix guard at level k in its semantic form: the reported k-prefix of y is attained by the first k stages.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                theorem MIPRE.Tailored.Intro.CLData.guard_mono {Q n : ℕ} (V : Verifier 7) (hs : V.sampler.dim (2 ^ n) ≤ Q) (w : Bool) {j k : ℕ} (hj : j ≤ k) (y : Fin Q → CL.𝔽₂) (hg : Guard V hs w k y) :
                Guard V hs w j y
                theorem MIPRE.Tailored.Intro.CLData.guard_zero {Q n : ℕ} (V : Verifier 7) (hs : V.sampler.dim (2 ^ n) ≤ Q) (w : Bool) (y : Fin Q → CL.𝔽₂) :
                Guard V hs w 0 y
                theorem MIPRE.Tailored.Intro.CLData.scan_of_guard (U : Cost.ClockedUniversalMachine) {lam n Q : ℕ} (V : Verifier 7) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hs : V.sampler.dim (2 ^ n) ≤ Q) (w : Bool) {k : ℕ} (hk : k ≤ 7) (y : Fin Q → CL.𝔽₂) (hg : Guard V hs w k y) :

                Under the guard at k, the scan succeeds with the reported prefix and a seed attaining it.

                theorem MIPRE.Tailored.Intro.CLData.outputPrefix_correct (U : Cost.ClockedUniversalMachine) {lam n Q : ℕ} (V : Verifier 7) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hs : V.sampler.dim (2 ^ n) ≤ Q) (w : Bool) {k : ℕ} (hk : k ≤ 7) (y : Fin Q → CL.𝔽₂) (hg : Guard V hs w (k - 1) y) :

                The reported prefix outputPrefix k y, for k ≤ 7, under the guard one level below (no hypothesis at k = 0).

                theorem MIPRE.Tailored.Intro.CLData.outputPrefix_correct_of_guard (U : Cost.ClockedUniversalMachine) {lam n Q : ℕ} (V : Verifier 7) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hs : V.sampler.dim (2 ^ n) ≤ Q) (w : Bool) {k : ℕ} (hk : k ≤ 7) (y : Fin Q → CL.𝔽₂) (hg : Guard V hs w k y) :

                The reported prefix under the guard at its own level.

                The stage register and the prefix register, as masks #

                The context of the stage-k source queries: level k + 1 at the scanned prefix.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  theorem MIPRE.Tailored.Intro.CLData.stageContext_of_guard (U : Cost.ClockedUniversalMachine) {lam n Q : ℕ} (V : Verifier 7) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hs : V.sampler.dim (2 ^ n) ≤ Q) (w : Bool) {k : ℕ} (hk : k ≤ 7) (y : Fin Q → CL.𝔽₂) (hg : Guard V hs w k y) :

                  Under the guard at k, the stage-k queries are made at the attained reported prefix.

                  theorem MIPRE.Tailored.Intro.CLData.factor_correct (U : Cost.ClockedUniversalMachine) {lam n Q : ℕ} (V : Verifier 7) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hs : V.sampler.dim (2 ^ n) ≤ Q) (w : Bool) {k : ℕ} (hk : k < 7) (y : Fin Q → CL.𝔽₂) (hg : Guard V hs w k y) :

                  The stage register (L w).factorOfPrefix k y, k < 7, under the guard at k.

                  Pointwise disjunction of two bit strings.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem MIPRE.Tailored.Intro.CLData.register_correct (U : Cost.ClockedUniversalMachine) {lam n Q : ℕ} (V : Verifier 7) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hs : V.sampler.dim (2 ^ n) ≤ Q) (w : Bool) {k : ℕ} (hk : k ≤ 7) (y : Fin Q → CL.𝔽₂) (hg : Guard V hs w (k - 1) y) :

                    The prefix register CLChecks.prefixRegister (L w) k y, k ≤ 7, under the guard one level below (no hypothesis at k = 0).

                    theorem MIPRE.Tailored.Intro.CLData.register_correct_of_guard (U : Cost.ClockedUniversalMachine) {lam n Q : ℕ} (V : Verifier 7) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hs : V.sampler.dim (2 ^ n) ≤ Q) (w : Bool) {k : ℕ} (hk : k ≤ 7) (y : Fin Q → CL.𝔽₂) (hg : Guard V hs w k y) :

                    The prefix register under the guard at its own level.

                    The stage linear map, as a matrix #

                    The matrix of the stage-k linear map, as the rows vectorBits (M i) of M = LinearMap.toMatrix' (CLChecks.stageLinear (L w) k y).toLinearMap (matrixBits): the kernel's matrix query at the scanned prefix.

                    Equations
                    Instances For

                      The stage matrix, k < 7, under the guard at k.

                      Generators of the kernel of the stage-k linear map (kernelGeneratorsProg on the register width and the stage matrix).

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For

                        The prefix guard and source membership #

                        The prefix guard at level k: the success flag of the kernel's scan.

                        Equations
                        Instances For
                          theorem MIPRE.Tailored.Intro.CLData.guard_iff (U : Cost.ClockedUniversalMachine) {lam n Q : ℕ} (V : Verifier 7) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hs : V.sampler.dim (2 ^ n) ≤ Q) (w : Bool) {k : ℕ} (hk : k ≤ 7) (y : Fin Q → CL.𝔽₂) :
                          (guard U k).toFun (context V lam n Q w, CL.toBits y) = true ↔ Guard V hs w k y
                          theorem MIPRE.Tailored.Intro.CLData.guard_correct (U : Cost.ClockedUniversalMachine) {lam n Q : ℕ} (V : Verifier 7) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hs : V.sampler.dim (2 ^ n) ≤ Q) (w : Bool) {k : ℕ} (hk : k ≤ 7) (y : Fin Q → CL.𝔽₂) :

                          The prefix guard at level k ≤ 7, exactly (PrefixGuard.holds at Hide k).

                          Source membership of the register: its bits beyond the source dimension are zero.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            Source membership SourceCompiler.InSource (V.sampler.dim (2^n)) y, exactly.