Executable canonical register and answer bounds #
For R = 2^(lambda*n), the paper uses t = max 2 (lambda*n),
m = 2^(size(c*t+1)-1), and log q = c*size(t-1)+1.
Here size(t-1) is the integer ceiling of log₂ t. The universal even
constant c is fixed; lambda and n are binary program inputs.
The output is the binary pair (Q,R) with Q = 2^m * log q.
Equations
- MIPRE.Introspection.SourceCompiler.canonicalLog lam n = max 2 (lam * n)
Instances For
Equations
- MIPRE.Introspection.SourceCompiler.registerPower c lam n = 2 ^ ((c * MIPRE.Introspection.SourceCompiler.canonicalLog lam n + 1).size - 1)
Instances For
Equations
- MIPRE.Introspection.SourceCompiler.fieldBits c lam n = c * (MIPRE.Introspection.SourceCompiler.canonicalLog lam n - 1).size + 1
Instances For
Equations
Instances For
Equations
- MIPRE.Introspection.SourceCompiler.originalBound lam n = 2 ^ (lam * n)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
Equations
- One or more equations did not get rendered due to their size.
Instances For
Prepare the binary-power exponent, the original logarithm, and the field bit length.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MIPRE.Introspection.SourceCompiler.parameterSeed_apply
(c : ℕ)
(u : Cost.Unary)
:
(parameterSeed c).toFun u = (Cost.unary ((c * max 2 (List.length u) + 1).size - 1), u, Cost.unary (c * (max 2 (List.length u) - 1).size + 1))
theorem
MIPRE.Introspection.SourceCompiler.powerUnaryProg_runs
(j : ℕ)
:
∃ (t : ℕ), powerUnaryProg.Runs (Cost.Data.ofNat j) (Cost.Data.ofNat (2 ^ j)) t
Read a raw unary chain by its length; total on arbitrary data.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Shift the binary field bit length by the computed unary register power.
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
A fixed program computes the paper's binary (Q,R) from binary (lambda,n).
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MIPRE.Introspection.SourceCompiler.boundsProg_runs
(c lam n : ℕ)
:
∃ (time : ℕ), (boundsProg c).Runs (Cost.encode (lam, n)) (Cost.encode (registerBits c lam n, originalBound lam n)) time