Plain native certificates with independent resource bounds #
A certificate records arbitrary input-dependent time/workspace bounds and a proposition asserting
that a finite machine realizes its function within them, including the encoded-output charge. The
machine is existential in that proposition, not stored as data. Exact constructors charge output
using its actual clock, so their workspace allowance is exactly s + t. Runtime model programs are
defined separately.
Main definitions #
NativeCertificate: one implementation with independent, charged resource bounds.
Main results #
Cslib.GenericRAM.exists_mono_poly,Cslib.GenericRAM.exists_mono_poly_cert: monotone polynomial bounds extracted fromPolyBoundedandComputableInPolyTime.
An actual native implementation, with bounds also charging its encoded output length.
- time : α → ℕ
Input-dependent time bound, up to a constant factor and additive constant.
- space : α → ℕ
Input-dependent work space and encoded output bound, up to constants.
- computes : Turing.MultiTapeTM.ComputableInO f encIn encOut self.time self.space
One finite machine implements the function on every encoded input.
Instances For
Forgetting resource bounds retains native computability.
Derive the existing native polynomial-time predicate, for use by its compositional calculus.
Compose implementations, charging the second bound at the first result.
Instances For
Composing polynomial certificates preserves polynomiality in the original input encoding.
Package exact native bounds, including the running time in the space allowance to charge encoded output length. No polynomial hypothesis is needed.
Instances For
Every native polynomial-time proof supplies a certificate with polynomial bounds. The space bound includes the running time so that it also bounds the emitted output.
Select resource bounds from an existing polynomial-time implementation proof.
Instances For
Bounds selected by ofPolyTime are polynomial in the encoded input length.
Extract an explicit monotone polynomial bound from a PolyBounded witness.
Extract a single monotone polynomial bounding both time and workspace of
NativeCertificate.ofPolyTime hf.