Documentation

MIPRE.Foundations.CL.DetypingDeciderProg

Executable detyping of the decision predicate #

The compiler first queries the supplied typed sampler for its dimension, then runs the supplied cutoff routine, and finally applies the graph router. Both the original answers and the original index are retained. The cutoff routine is an actual program: its bounds need not be polynomial in the binary index.

A typed decider uses the source's seven-field input convention.

Instances For
    def MIPRE.CL.Detyping.TypedDecider.Accepts {T : Type u_1} [Cost.SizedEncoding T] (D : TypedDecider T) (n : ℕ) (u : T) (x : Cost.BitStr) (v : T) (y a b : Cost.BitStr) :
    Equations
    Instances For

      An executable pair of answer bounds. The inner bound is the source typed game's cutoff for its entire answer; the outer bound applies even on nonedge views.

      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.CL.Detyping.DeciderProgram.prog {T : Type u_1} [Fintype T] [DecidableEq T] [Cost.SizedEncoding T] {ℓ : ℕ} (E : T → T → Prop) [DecidableRel E] (S : TypedSampler ℓ T) (D : TypedDecider T) (C : CutoffProgram) :
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem MIPRE.CL.Detyping.DeciderProgram.decisionStage_direct {T : Type u_1} [Fintype T] [DecidableEq T] [Cost.SizedEncoding T] (E : T → T → Prop) [DecidableRel E] (D : TypedDecider T) (c r : Cost.Data) (h : (route E).toFun c = (false, r)) :
              ∃ (time : ℕ), (decisionStage E D).Runs c r time
              theorem MIPRE.CL.Detyping.DeciderProgram.decisionStage_indirect {T : Type u_1} [Fintype T] [DecidableEq T] [Cost.SizedEncoding T] (E : T → T → Prop) [DecidableRel E] (D : TypedDecider T) (c arg ctx r : Cost.Data) (time : ℕ) (h : (route E).toFun c = (true, arg.cons ctx)) (hr : D.prog.Runs arg r time) :
              ∃ (time : ℕ), (decisionStage E D).Runs c (post.toFun (ctx, r)) time
              theorem MIPRE.CL.Detyping.DeciderProgram.prog_runs {T : Type u_1} [Fintype T] [DecidableEq T] [Cost.SizedEncoding T] {ℓ : ℕ} (E : T → T → Prop) [DecidableRel E] (S : TypedSampler ℓ T) (D : TypedDecider T) (C : CutoffProgram) (input r : Cost.Data) (time : ℕ) (h : (decisionStage E D).Runs (context input (S.dim (Program.readNat.toFun (Cost.PolyTimeFun.treeHead.toFun input))) (C.inner (Program.readNat.toFun (Cost.PolyTimeFun.treeHead.toFun input))) (C.outer (Program.readNat.toFun (Cost.PolyTimeFun.treeHead.toFun input)))) r time) :
              ∃ (t : ℕ), (prog E S D C).Runs input r t

              Prefixing the two executable index routines to any decision-stage run.

              theorem MIPRE.CL.Detyping.DeciderProgram.prog_halts {T : Type u_1} [Fintype T] [DecidableEq T] [Cost.SizedEncoding T] {ℓ : ℕ} (E : T → T → Prop) [DecidableRel E] (S : TypedSampler ℓ T) (D : TypedDecider T) (C : CutoffProgram) (hD : D.Total) (input : Cost.Data) :
              Cost.Halts (prog E S D C) input

              The compiled program halts on every raw data tree, including malformed indices.

              noncomputable def MIPRE.CL.Detyping.DeciderProgram.decider {T : Type u_1} [Fintype T] [DecidableEq T] [Cost.SizedEncoding T] {ℓ : ℕ} (E : T → T → Prop) [DecidableRel E] (S : TypedSampler ℓ T) (D : TypedDecider T) (C : CutoffProgram) :

              A genuine ambient decider, built from executable source programs.

              Equations
              Instances For