The actual compiled introspection decider #
Compilation clamps each source description, specializes the fixed prepared kernel using binary metadata, and adds zero-parameter and zero-index branches. The positive branch computes its clock and canonical resources exactly once.
noncomputable def
MIPRE.Introspection.DecisionCompiler.positiveCompiler
(c : ℕ)
(U : Cost.ClockedUniversalMachine)
:
Equations
Instances For
noncomputable def
MIPRE.Introspection.DecisionCompiler.typedDecider
(c : ℕ)
(U : Cost.ClockedUniversalMachine)
(M : DecisionPreparation.Metadata)
:
Equations
- MIPRE.Introspection.DecisionCompiler.typedDecider c U M = { prog := (MIPRE.Introspection.DecisionPreparation.compiler c (MIPRE.Introspection.DecisionKernel.program U)).toFun M, closed := ⋯ }
Instances For
theorem
MIPRE.Introspection.DecisionCompiler.typedDecider_total
(c : ℕ)
(U : Cost.ClockedUniversalMachine)
(M : DecisionPreparation.Metadata)
:
(typedDecider c U M).Total
theorem
MIPRE.Introspection.DecisionCompiler.typedDecider_accepts
(c : ℕ)
(U : Cost.ClockedUniversalMachine)
(M : DecisionPreparation.Metadata)
(n : ℕ)
(T W : DecisionKernel.Label)
(x y a b : Cost.BitStr)
:
(typedDecider c U M).Accepts n T x W y a b ↔ (DecisionKernel.program U).toFun (DecisionPreparation.kernelInput c M (Cost.encode (n, T, x, W, y, a, b))) = true
noncomputable def
MIPRE.Introspection.DecisionCompiler.selectedCompiler
(c : ℕ)
(U : Cost.ClockedUniversalMachine)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable def
MIPRE.Introspection.DecisionCompiler.compute
(c : ℕ)
(U : Cost.ClockedUniversalMachine)
:
Both the transformation and its source-description clamp are executable polynomial-time functions on the binary compiler input.
Equations
Instances For
@[simp]
theorem
MIPRE.Introspection.DecisionCompiler.selectedCompiler_apply
(c : ℕ)
(U : Cost.ClockedUniversalMachine)
(M : DecisionPreparation.Metadata)
:
theorem
MIPRE.Introspection.DecisionCompiler.compute_closed
(c : ℕ)
(U : Cost.ClockedUniversalMachine)
(S D : Cost.Prog)
(lam : ℕ)
:
noncomputable def
MIPRE.Introspection.DecisionCompiler.decider
(c : ℕ)
(U : Cost.ClockedUniversalMachine)
(S D : Cost.Prog)
(lam : ℕ)
:
Equations
Instances For
theorem
MIPRE.Introspection.DecisionCompiler.positive_runs
(c : ℕ)
(U : Cost.ClockedUniversalMachine)
(S D : Cost.Prog)
{lam n : ℕ}
(hl : 1 ≤ lam)
(hn : 1 ≤ n)
(d : Cost.Data)
:
∃ (t : ℕ),
(decider c U S D lam).prog.Runs ((Cost.encode n).cons d)
(Cost.encode
((untypedKernel U).toFun
(DecisionPreparation.kernelInput c (SourceDescriptionCompiler.clamp.toFun ((S, D), lam))
((Cost.encode n).cons d))))
t
theorem
MIPRE.Introspection.DecisionCompiler.zero_runs
(c : ℕ)
(U : Cost.ClockedUniversalMachine)
(S D : Cost.Prog)
(lam n : ℕ)
(h : lam = 0 ∨ n = 0)
(d : Cost.Data)
:
∃ (t : ℕ), (decider c U S D lam).prog.Runs ((Cost.encode n).cons d) (Cost.encode (zeroTest.toFun d)) t
theorem
MIPRE.Introspection.DecisionCompiler.accepts_positive
(c : ℕ)
(U : Cost.ClockedUniversalMachine)
(S D : Cost.Prog)
{lam n : ℕ}
(hl : 1 ≤ lam)
(hn : 1 ≤ n)
(x y a b : Cost.BitStr)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MIPRE.Introspection.DecisionCompiler.accepts_positive_bounds
(c : ℕ)
(U : Cost.ClockedUniversalMachine)
(S D : Cost.Prog)
{lam n : ℕ}
(hl : 1 ≤ lam)
(hn : 1 ≤ n)
(x y a b : Cost.BitStr)
(h : (decider c U S D lam).Accepts n x y a b)
:
List.length x = CL.Detyping.graphDim DecisionKernel.Label + (3 * SourceCompiler.registerPower c lam n + 3) * SourceCompiler.fieldBits c lam n ∧ List.length y = CL.Detyping.graphDim DecisionKernel.Label + (3 * SourceCompiler.registerPower c lam n + 3) * SourceCompiler.fieldBits c lam n ∧ List.length a ≤ answerBound (SourceCompiler.registerBits c lam n) (SourceCompiler.originalBound lam n) ∧ List.length b ≤ answerBound (SourceCompiler.registerBits c lam n) (SourceCompiler.originalBound lam n)
theorem
MIPRE.Introspection.DecisionCompiler.accepts_cutoff
(c : ℕ)
(U : Cost.ClockedUniversalMachine)
(S D : Cost.Prog)
(lam n : ℕ)
(x y a b : Cost.BitStr)
(h : (decider c U S D lam).Accepts n x y a b)
: