Executable arithmetic for the introspection clock #
One fixed program, for each constant exponent, reads binary λ and n and
writes the unary budget 2^((λ*n+1)^k). The large output is constructed by
proved unary arithmetic programs; it is never embedded in the program text.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MIPRE.Introspection.ClockArithmetic.bothUnary_runs
(a b : ℕ)
:
∃ time ≤ unaryCost a + unaryCost b + Cost.esize a + Cost.esize b + 2 * a + 2 * b + 20,
bothUnary.Runs (Cost.encode (a, b)) ((Cost.Data.ofNat a).cons (Cost.Data.ofNat b)) time
Equations
Instances For
Equations
Instances For
theorem
MIPRE.Introspection.ClockArithmetic.power_runs
(k m : ℕ)
:
∃ time ≤ Polynomial.eval m (powerBound k),
(Cost.Prog.polyProg (powerCoeffs k)).Runs (Cost.Data.ofNat m) (Cost.Data.ofNat (m ^ k)) time
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
theorem
MIPRE.Introspection.ClockArithmetic.uniformProg_runs
(k lam n : ℕ)
:
∃ time ≤ uniformCost k lam n, (uniformProg k).Runs (Cost.encode (lam, n)) (Cost.Data.ofNat (ansBound k lam n)) time