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:
eval:(L w).eval z(one marginal query at full depth, padded with zeros), andsourceEval, its firstdimbits;outputPrefix k: the reported prefix(L w).outputPrefix k y,k ≤ 7, read off the kernel's attained-prefix scan (scan), under the guard atk - 1(Guard);factor kandregister k: the stage register(L w).factorOfPrefix k y(k < 7, the kernel's factor query at the scanned prefix, under the guard atk) and the prefix registerCLChecks.prefixRegister (L w) k y(k ≤ 7, the union of the firstkof them, under the guard atk - 1), as length-Qmasks (CL.indicatorBits);matrix k: the matrix ofCLChecks.stageLinear (L w) k y(k < 7, under the guard atk) asmatrixBits (LinearMap.toMatrix' _), rowsvectorBits (M i), the input format ofkernelGeneratorsProg(kernelGenerators);guard kandinSource: the prefix guarddecide (∃ x, ((L w).truncate k).eval x = (L w).outputPrefix k y)(k ≤ 7) anddecide (SourceCompiler.InSource dim y), exactly.
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.
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
- MIPRE.Tailored.Intro.CLData.context V lam n Q w = MIPRE.Introspection.SourcePadding.Program.queryContext V lam n w 0 0
Instances For
The evaluation L_w(z) #
The kernel's width data: the source dimension, capped by the register width.
Equations
Instances For
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
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.
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
The reported prefix outputPrefix k y, the second field of the scan state.
Equations
Instances For
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
Under the guard at k, the scan succeeds with the reported prefix and a seed attaining it.
The reported prefix outputPrefix k y, for k ≤ 7, under the guard one level below
(no hypothesis at k = 0).
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
The register read at stage k, (L w).factorOfPrefix k y, as a length-Q mask.
Equations
Instances For
Under the guard at k, the stage-k queries are made at the attained reported prefix.
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
The prefix register CLChecks.prefixRegister (L w) k y, the union of the first k stage
registers, as a length-Q mask.
Equations
Instances For
The prefix register CLChecks.prefixRegister (L w) k y, k ≤ 7, under the guard one
level below (no hypothesis at k = 0).
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
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.