Documentation

MIPRE.Foundations.Introspection.ClockCost

Uniform runtime bounds for the growing introspection clock #

For each fixed positive exponent, clock construction runs in polynomial time in its unary output budget, uniformly in the parameter and index. The existing polynomial-exponent absorption lemma then gives another introspection budget.

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.clock_arguments_le {k lam n : ℕ} (hk : 1 ≤ k) (hl : 1 ≤ lam) (hn : 1 ≤ n) :
      lam ≤ ansBound k lam n ∧ n ≤ ansBound k lam n ∧ lam * n + 1 ≤ ansBound k lam n ∧ (lam * n + 1) ^ k ≤ ansBound k lam n
      theorem MIPRE.Introspection.ClockArithmetic.growingClock_cost_le {k lam n : ℕ} (hk : 1 ≤ k) (hl : 1 ≤ lam) (hn : 1 ≤ n) :

      One polynomial controls all parameter/index instances of the actual clock.

      theorem MIPRE.Introspection.growingClock_polynomial_time {k : ℕ} (hk : 1 ≤ k) :
      ∃ (Q : Polynomial ℕ), ∀ (lam n : ℕ), 1 ≤ lam → 1 ≤ n → Cost.HaltsWithin (growingClock k lam).prog (Cost.encode n) (Polynomial.eval (ansBound k lam n) Q)
      theorem MIPRE.Introspection.growingClock_ansBound_time {k : ℕ} (hk : 1 ≤ k) :
      ∃ (C : ℕ), ∀ (lam n : ℕ), 1 ≤ lam → 1 ≤ n → Cost.HaltsWithin (growingClock k lam).prog (Cost.encode n) (ansBound C lam n)

      Generating the unary clock itself fits a uniformly enlarged introspection budget.