A binary compiler for the complete clocked source decider #
The compiler constructs the actual program syntax from the source description and binary parameter. Both compilation time and output description size are polynomial in their encoded lengths, for fixed exponent and universal machine.
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
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
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
noncomputable def
MIPRE.Introspection.ClockSimulation.codeRoute
(route : Cost.PolyTimeFun Cost.Data (Bool × Cost.Data))
(post : Cost.PolyTimeFun (Cost.Data × Cost.Data) Cost.Data)
:
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
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
noncomputable def
MIPRE.Introspection.ClockSimulation.compiler
(k : ℕ)
(U : Cost.ClockedUniversalMachine)
:
An actual ambient compiler for the existing clocked decider program.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MIPRE.Introspection.ClockSimulation.compiler_runs
(k : ℕ)
(U : Cost.ClockedUniversalMachine)
(source : Cost.Prog)
(lam : ℕ)
:
∃ time ≤ Polynomial.eval (Cost.esize source + Cost.esize lam + 1) (compiler k U).timeBound,
(compiler k U).code.Runs (Cost.encode (source, lam)) (Cost.encode (decider k lam U source).prog) time
theorem
MIPRE.Introspection.ClockSimulation.decider_size_le
(k : ℕ)
(U : Cost.ClockedUniversalMachine)
(source : Cost.Prog)
(lam : ℕ)
:
Cost.esize (decider k lam U source).prog ≤ Polynomial.eval (Cost.esize source + Cost.esize lam + 1) (compiler k U).timeBound
theorem
MIPRE.Introspection.ClockSimulation.compiler_binary_bounds
(k : ℕ)
(U : Cost.ClockedUniversalMachine)
(source : Cost.Prog)
(lam : ℕ)
:
Cost.esize (decider k lam U source).prog ≤ Polynomial.eval (Cost.esize source + 4 * lam.size + 2) (compiler k U).timeBound ∧ ∃ time ≤ Polynomial.eval (Cost.esize source + 4 * lam.size + 2) (compiler k U).timeBound,
(compiler k U).code.Runs (Cost.encode (source, lam)) (Cost.encode (decider k lam U source).prog) time
The parameter enters both compiler cost and description length through its bits.