OAI/Computability/RationalHitting/Procedures.lean
29 declarations, 0 contain sorry, 0 declared as axioms
Compositional finite-stack implementation. All the constants introduced here describe actual finite programs, not arithmetic-operation oracles.
- inductive
OAI.RationalHitting.TimeBoundline 10Source documentation
A concrete syntax for nonnegative polynomial bounds. This is only used to bound actual stack transitions, never as an additional machine instruction.
inductive TimeBound where …
- instance
OAI.RationalHitting.TimeBound.(instance at line 18)line 18 - instance
OAI.RationalHitting.TimeBound.(instance at line 19)line 19 - instance
OAI.RationalHitting.TimeBound.(instance at line 20)line 20 - def
OAI.RationalHitting.TimeBound.evalline 22 - lemma
OAI.RationalHitting.TimeBound.eval_constline 28 - lemma
OAI.RationalHitting.TimeBound.eval_variableline 29 - lemma
OAI.RationalHitting.TimeBound.eval_addline 30 - lemma
OAI.RationalHitting.TimeBound.eval_mulline 31 - lemma
OAI.RationalHitting.TimeBound.eval_numeralline 32 - lemma
OAI.RationalHitting.TimeBound.monotoneline 34 - def
OAI.RationalHitting.TimeBound.compline 42Source documentation
Substitution is again a polynomial with nonnegative coefficients.
def comp : TimeBound → TimeBound → TimeBound | .const c, _ => .const c | .variable, q => q | .add a b, q => a.comp q + b.comp q | .mul a b, q => a.comp q * b.comp q
Mentions: OAI.RationalHitting.TimeBound
- lemma
OAI.RationalHitting.TimeBound.eval_compline 48 - theorem
OAI.RationalHitting.TimeBound.growthline 54Source documentation
These certificates imply an ordinary fixed positive-coefficient, positive- degree power bound. This prevents any hidden superpolynomial time allowance.
theorem growth (p : TimeBound) : ∃ C k : ℕ, 0<C ∧ 0<k ∧ ∀ n : ℕ, 1≤n → p.eval n≤C*n^k := by …Mentions: OAI.RationalHitting.TimeBound
- def
OAI.RationalHitting.StackLanguage.singleline 92 - lemma
OAI.RationalHitting.StackLanguage.single_selfline 94 - lemma
OAI.RationalHitting.StackLanguage.single_otherline 96 - lemma
OAI.RationalHitting.StackLanguage.single_nilline 98 - lemma
OAI.RationalHitting.StackLanguage.extend_singleline 101 - lemma
OAI.RationalHitting.StackLanguage.Eval.rename_singleline 110 - structure
OAI.RationalHitting.StackLanguage.Procedureline 117Source documentation
A quantitative implementation, with completely clean stack input and output. Both execution and result size are polynomially bounded.
structure Procedure {A B : Type} (ca : A → List Bool) (cb : B → List Bool) (f : A → B) where … - def
OAI.RationalHitting.StackLanguage.Feasibleline 133Source documentation
A compositional polynomial-time feasibility predicate.
def Feasible {A B : Type} (ca : A → List Bool) (cb : B → List Bool) (f : A → B) : Prop := … - def
OAI.RationalHitting.StackLanguage.moveline 138Source documentation
Order-preserving transfer, implemented using two stack reversals.
def move (a b tmp : K) : Program K := .seq (reverse a tmp) (reverse tmp b)
Mentions: OAI.RationalHitting.StackLanguage.Program, OAI.RationalHitting.StackLanguage.reverse
- lemma
OAI.RationalHitting.StackLanguage.eval_moveline 140 - lemma
OAI.RationalHitting.StackLanguage.Eval.move_singleline 156 - lemma
OAI.RationalHitting.StackLanguage.Eval.runAtline 165Source documentation
Run in an embedded register bank, preserving every register outside it.
lemma Eval.runAt {p : Program K} {i o : K} {x y : List Bool} {t : ℕ} (h : Eval p (single i x) (single o y) t) (f : K → L) (hf : Injective f) (s : Store L) (hs : ∀ k, s (f k)=single i x k) : Eval (p.rename f) s (update (update s (f i) []) (f o) y) t := by …Mentions: OAI.RationalHitting.StackLanguage.Program, OAI.RationalHitting.StackLanguage.Eval, OAI.RationalHitting.StackLanguage.single, OAI.RationalHitting.StackLanguage.Store
- def
OAI.RationalHitting.StackLanguage.Procedure.identityline 188Source documentation
Identity has no operation of unbounded cost.
def identity (ca : A → List Bool) : Procedure ca ca id where …
- def
OAI.RationalHitting.StackLanguage.Procedure.compline 201Source documentation
Composition uses disjoint scratch banks and an actual order-preserving stack transfer.
def comp (q : Procedure cb cc g) (p : Procedure ca cb f) : Procedure ca cc (g ∘ f) where …
- def
OAI.RationalHitting.StackLanguage.Procedure.recodeline 228Source documentation
Reinterpret equal input/output words, with no additional computation.
def recode {A' B' : Type} (p : Procedure ca cb f) (ca' : A' → List Bool) (cb' : B' → List Bool) (f' : A' → B') (e : A' → A) (hi : ∀ a, ca (e a)=ca' a) (ho : ∀ a, cb (f (e a))=cb' (f' a)) : Procedure ca' cb' f' where …