OAI/Computability/RationalHitting/Compiler.lean
29 declarations, 0 contain sorry, 0 declared as axioms
- def
OAI.RationalHitting.TMTime.Link.leftline 10 - def
OAI.RationalHitting.TMTime.Link.rightline 11 - def
OAI.RationalHitting.TMTime.Link.machineline 13 - lemma
OAI.RationalHitting.TMTime.Link.step_leftline 19 - lemma
OAI.RationalHitting.TMTime.Link.switchline 32 - lemma
OAI.RationalHitting.TMTime.Link.step_rightline 38 - lemma
OAI.RationalHitting.TMTime.Link.run_leftline 44 - lemma
OAI.RationalHitting.TMTime.Link.run_rightline 54 - theorem
OAI.RationalHitting.TMTime.Link.finite_sequenceline 65Source documentation
Splice two halting finite transducers with exactly one glue step. The intermediate output is the literal tape required by the second input.
theorem finite_sequence [Fintype Λ] [Fintype Δ] (F : TM0.Machine Γ Λ) (G : TM0.Machine Γ Δ) : ∃ (m : ℕ) (H : TM0.Machine Γ (Fin (m+1))), ∀ (w v : List Γ) (t u : ℕ) (a : TM0.Cfg Γ Λ) (b : TM0.Cfg Γ Δ), exec (TM0.step F) t (TM0.init w)=some a → TM0.step F a=none → a.Tape=Tape.mk₁ v → exec (TM0.step G) u (TM0.init v)=some b → TM0.step G b=none → ∃ c, exec (TM0.step H) (t+1+u) (TM0.init w)=some c ∧ TM0.step H c=none ∧ c.Tape=b.Tape := by …Mentions: OAI.RationalHitting.TMTime.exec
- abbrev
OAI.RationalHitting.TMTime.BinaryLift.Aline 94 - def
OAI.RationalHitting.TMTime.BinaryLift.bitline 95 - def
OAI.RationalHitting.TMTime.BinaryLift.bitMapline 96 - lemma
OAI.RationalHitting.TMTime.BinaryLift.bit_readline 97 - def
OAI.RationalHitting.TMTime.BinaryLift.stmtline 99 - def
OAI.RationalHitting.TMTime.BinaryLift.machineline 102 - def
OAI.RationalHitting.TMTime.BinaryLift.cfgline 104 - lemma
OAI.RationalHitting.TMTime.BinaryLift.stepline 105 - lemma
OAI.RationalHitting.TMTime.BinaryLift.runline 112 - lemma
OAI.RationalHitting.TMTime.BinaryLift.run_initline 120 - lemma
OAI.RationalHitting.TMTime.Alphabet.tape_initline 133 - theorem
OAI.RationalHitting.StackLanguage.Compiler.raw_compilationline 147Source documentation
End-to-end, finite-state, Fin4 one-tape compilation. Input and output are literal 1/2 digit strings, NOT different encodings hidden by an interface. The stack program is a single fixed finite syntax tree. Final scratch must be empty; the designated output stack has reversed output order, as explicitly stated.
theorem raw_compilation (p : Program K) (ki ko : K) : ∃ (m : ℕ) (G : TM0.Machine (Fin 4) (Fin (m+1))) (C : ℕ), 0<C ∧ ∀ (w xs : List Bool) (t : ℕ), w≠[] → Eval p (Function.update (fun _ => []) ki w) (Function.update (fun _ => []) ko xs.reverse) t → ∃ u≤C*(w.length+t+xs.length+3)^2, ∃ a, exec (TM0.step G) u (TM0.init (w.map InputAdapter.raw))=some a ∧ TM0.step G a=none ∧ a.Tape=Tape.mk₁ (xs.map OutputAdapter.raw) := by …Mentions: OAI.RationalHitting.StackLanguage.Program, OAI.RationalHitting.StackLanguage.Eval
- def
OAI.RationalHitting.ExecutableGenerator.unaryWordline 199Source documentation
A fixed finite stack program with literal unary input and exact canonical output, bounded by a fixed polynomial in the input length.
def unaryWord (n s : ℕ) : List Bool := …
- def
OAI.RationalHitting.ExecutableGenerator.StackImplementationline 202 - lemma
OAI.RationalHitting.ExecutableGenerator.run_eq_execline 209 - lemma
OAI.RationalHitting.ExecutableGenerator.unaryWord_rawline 215 - lemma
OAI.RationalHitting.ExecutableGenerator.encoded_rawline 218 - lemma
OAI.RationalHitting.ExecutableGenerator.compilation_sum_boundline 221 - lemma
OAI.RationalHitting.ExecutableGenerator.compilation_square_boundline 225 - theorem
OAI.RationalHitting.ExecutableGenerator.implementation_of_stackline 232Source documentation
The raw compiler preserves literal input/output and gives a fixed finite alphabet and state space with a polynomial transition bound.
theorem implementation_of_stack (h : StackImplementation) : Implementation := by …
Mentions: OAI.RationalHitting.ExecutableGenerator.StackImplementation, OAI.RationalHitting.ExecutableGenerator.Implementation