Clocked multi-step execution and whole-run native transport for generic RAMs #
Iterating FiniteState.step yields a clocked multi-step finite-state semantics FiniteState.run
whose halting outputs agree with GenericRAM.run and GenericRAM.Executes. Each continuing step
adds at most one distinct address to the sparse store.
On the native multitape Turing-machine side, applying NativeCertificate.iterate to
FiniteState.stepCertificate yields FiniteState.runCertificate and FiniteState.evalCertificate,
together with automatic whole-run algorithm transport (FiniteState.transportCertificate,
FiniteState.transport_inO, FiniteState.transport_polyTime, and
FiniteState.transport_polyTime_of_le_const).
Main definitions #
FiniteState.init,FiniteState.initConst: finite initial configurations at instruction0.FiniteState.stepResult,FiniteState.run,FiniteState.eval: clocked multi-step execution and halting output extraction.FiniteState.initCertificate,FiniteState.initConstCertificate: native initialization certificates.FiniteState.runCertificate,FiniteState.evalCertificate,FiniteState.runTime,FiniteState.runSpace: native clocked whole-run certificates and parameterized resource bounds.FiniteState.transportCertificate: automatic whole-run transport ofGenericRAM.Executescertificates to native multitape Turing machines.
Main results #
FiniteState.length_entries_run_le:nsteps add at mostnstored sparse-memory cells.FiniteState.denote_run,FiniteState.executes_iff_exists_run: exact multi-step refinement.FiniteState.run_inO,FiniteState.eval_inO: one finite native machine implements clocked multi-step execution uniformly across runtime configurations, step budgets, and states.FiniteState.le_runTime_of_run_eq_inl,FiniteState.le_runSpace_of_run_eq_inl: retention of per-step primitive and sparse-memory bounds along the run.FiniteState.step_polyTime,FiniteState.transport_inO,FiniteState.transport_polyTime,FiniteState.transport_polyTime_of_le_const: parameterized and polynomial-time whole-run transport theorems.
References #
Multi-step finite-state execution and refinement #
Extract the continuing finite state from a step outcome, if any.
Instances For
Initial finite configuration at control label 0.
Instances For
Initial finite configuration at control label 0 with a uniform initial register value.
Instances For
Execute a fixed program for at most n steps from s, stopping early on halt or fault.
Instances For
Multi-step execution is exact iteration of stepResult from some (.inl s).
Halting output after at most n finite steps (none on fault or unhalted continuation).
Instances For
Memory-growth and default-preservation invariants #
A continuing finite step adds at most one stored address to sparse memory.
Multi-step denotation and Executes correspondence #
Every n-step GenericRAM.Runs trace from s.denote lifts to a continuing finite state.
Exact multi-step output refinement: at every step budget n, the finite-state evaluator
agrees with the fuel-bounded generic RAM interpreter.
Every halting finite-state run within n steps witnesses a halting GenericRAM.Executes run
of at most n instructions.
Halting generic-RAM executions from s.denote correspond to halting finite-state runs.
Native certificates for initialization, clocked execution, and transport #
Construct an initial finite configuration at pc = 0 from certificates for its fields.
Instances For
Construct a constant-register tuple fun _ : Fin r => initReg a via
ComputableTidilyInO.pi.
Instances For
Construct an initial finite configuration at pc = 0 with constant registers initReg.
Instances For
Top-level native certificate for init on (regs, default, memory).
Outcome projection certificates #
Extract a continuing finite state from Result M r in linear time and space.
Instances For
Extract a halting output value from Result M r in linear time and space.
Instances For
Clocked multi-step simulation certificates #
Native certificate for stepResult, charging stepCertificate only on continuing states.
Instances For
Native certificate for one clocked simulation round on M.Config × Result M r.
Instances For
Prepare the initial loop state (k, some (.inl s)) from (n, (k, s)).
Instances For
Native certificate for clocked multi-step execution run q.2.1 p q.1 q.2.2.
Instances For
Parameterized time bound for clocked multi-step execution.
Instances For
Parameterized space bound for clocked multi-step execution.
Instances For
One finite native machine implements clocked multi-step execution uniformly across step budgets, runtime configurations, and finite states.
Native certificate for clocked output evaluation eval q.2.1 p q.1 q.2.2.
Instances For
Native ComputableTidilyInO theorem for clocked output evaluation.
Every continuing state reached within j ≤ n steps has its single-step time bound retained
in runTime.
Every continuing state reached within j ≤ n steps has its single-step space bound retained
in runSpace.
Automatic whole-run algorithm transport #
Transport a halting generic-RAM execution certificate (GenericRAM.Executes) within steps a
instructions to a native multitape Turing-machine certificate for f : α → M.Value.
No [Inhabited M.Value] or polynomiality assumption is required.
Instances For
Parameterized ComputableTidilyInO transport theorem from GenericRAM.Executes.
Polynomiality of single steps, rounds, and whole runs #
When all scalar primitive certificates are polynomial, stepCertificate is polynomial.
When all scalar primitive certificates are polynomial, the encoded single-step transition of any fixed program is tidily computable in polynomial time.
When all scalar primitive certificates are polynomial, roundCertificate is polynomial.
Polynomial-time whole-run transport: if scalar primitives, step-budget certificate,
configuration certificate, and initial-state certificate are polynomial, the step budget steps a
is polynomially bounded, and the encoded outcomes along 0 ≤ j ≤ steps a are bounded by a
polynomially bounded function B, then the transported certificate is polynomial.
Automatic ComputableTidilyInPolyTime transport corollary from GenericRAM.Executes.
Iterating roundCertificate a fixed number of rounds j yields a certificate for the j-th
loop state.
Instances For
Automatic ComputableTidilyInPolyTime transport for a constant step-budget bound
∀ a, steps a ≤ K: the intermediate outcome lengths along 0 ≤ j ≤ K are bounded by induction on
K using roundCertificate_isPolynomial.