OAI/Computability/RationalHitting/OutputAdapter.lean
56 declarations, 0 contain sorry, 0 declared as axioms
Literal tape-preserving linkage for the raw-input/stack/output compiler. There is no implicit recoding between machines.
- abbrev
OAI.RationalHitting.TMTime.OutputAdapter.Aline 7 - abbrev
OAI.RationalHitting.TMTime.OutputAdapter.Qline 8 - abbrev
OAI.RationalHitting.TMTime.OutputAdapter.Wordline 9 - abbrev
OAI.RationalHitting.TMTime.OutputAdapter.Vline 10 - abbrev
OAI.RationalHitting.TMTime.OutputAdapter.Stmtline 11 - abbrev
OAI.RationalHitting.TMTime.OutputAdapter.Cfgline 12 - def
OAI.RationalHitting.TMTime.OutputAdapter.rawline 13 - def
OAI.RationalHitting.TMTime.OutputAdapter.bitline 14 - def
OAI.RationalHitting.TMTime.OutputAdapter.jumpline 16 - def
OAI.RationalHitting.TMTime.OutputAdapter.moveline 17 - def
OAI.RationalHitting.TMTime.OutputAdapter.leftToline 18 - def
OAI.RationalHitting.TMTime.OutputAdapter.readBlockline 21 - def
OAI.RationalHitting.TMTime.OutputAdapter.blockline 26 - def
OAI.RationalHitting.TMTime.OutputAdapter.fillline 27 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.fill_applyline 30 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.fill_allline 39 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.head₂line 43 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.right₂line 44 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.left₂line 46 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.left_emptyline 48 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.write₂line 50 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.bit_beq_oneline 52 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.bit_ne_threeline 53 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.raw_ne_threeline 54 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.readBlock_specline 56 - def
OAI.RationalHitting.TMTime.OutputAdapter.Mline 68 - def
OAI.RationalHitting.TMTime.OutputAdapter.stateline 83 - def
OAI.RationalHitting.TMTime.OutputAdapter.invariantline 84 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.scan_rightline 87 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.scan_leftline 98 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.zeros_consline 114 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.consume_someline 120 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.emit_oneline 130 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.consume_noneline 175 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.clear_blanksline 190 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.finishline 200 - def
OAI.RationalHitting.TMTime.OutputAdapter.streamline 241 - def
OAI.RationalHitting.TMTime.OutputAdapter.costline 245 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.decode_streamline 249 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.cost_boundline 268 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.startline 287 - theorem
OAI.RationalHitting.TMTime.OutputAdapter.prepareline 295Source documentation
Literal block input to literal digit output; both head position and blank outside the output are guaranteed, with quadratic bit-time.
theorem prepare {b} (hb : 1≤b) (get : Word b → Option Bool) (code : Bool → Bool → Word b) (stop : Bool → Word b) (hc : ∀ f x,get (code f x)=some x) (hs : ∀ f,get (stop f)=none) (xs : List Bool) : ∃ t≤(3*b+34)*(xs.length+1)^2, ∃ u : V b, exec (TM1.step (M get)) t (TM1.init (stream code stop true xs))= some ⟨none,u,Tape.mk₁ (xs.map raw)⟩ := by …Mentions: OAI.RationalHitting.TMTime.OutputAdapter.Word, OAI.RationalHitting.TMTime.OutputAdapter.code, OAI.RationalHitting.TMTime.OutputAdapter.stop, OAI.RationalHitting.TMTime.OutputAdapter.V, OAI.RationalHitting.TMTime.exec, OAI.RationalHitting.TMTime.OutputAdapter.M, OAI.RationalHitting.TMTime.OutputAdapter.stream, OAI.RationalHitting.TMTime.OutputAdapter.raw
- theorem
OAI.RationalHitting.TMTime.OutputAdapter.finite_outputline 311Source documentation
A genuine Fin4 finite TM0 output transducer; the encoding/decoding functions are fixed finite tables and no unbounded state or oracle is used.
theorem finite_output {b} (hb : 1≤b) (get : Word b → Option Bool) (code : Bool → Bool → Word b) (stop : Bool → Word b) (hc : ∀ f x,get (code f x)=some x) (hs : ∀ f,get (stop f)=none) : ∃ (m : ℕ) (G : TM0.Machine A (Fin (m+1))) (C : ℕ), 0<C ∧ ∀ xs : List Bool, ∃ t≤C*(xs.length+1)^2, ∃ a, exec (TM0.step G) t (TM0.init (stream code stop true xs))=some a ∧ TM0.step G a=none ∧ a.Tape=Tape.mk₁ (xs.map raw) := by …Mentions: OAI.RationalHitting.TMTime.OutputAdapter.Word, OAI.RationalHitting.TMTime.OutputAdapter.code, OAI.RationalHitting.TMTime.OutputAdapter.stop, OAI.RationalHitting.TMTime.OutputAdapter.A, OAI.RationalHitting.TMTime.exec, OAI.RationalHitting.TMTime.OutputAdapter.stream, OAI.RationalHitting.TMTime.OutputAdapter.raw
- lemma
OAI.RationalHitting.TMTime.StackTape.uniqueline 333Source documentation
At the boundary of a stack macrostep, the simulator's tape is determined by the actual stack contents. There is no junk-cell assumption.
lemma unique {K Λ σ : Type*} {Γ : K → Type*} {a b : TM2.Cfg Γ Λ σ} {c d : TM1.Cfg (TM2to1.Γ' K Γ) (TM2to1.Λ' K Γ Λ σ) σ} (h : TM2to1.TrCfg a c) (h' : TM2to1.TrCfg b d) (hs : a.stk=b.stk) : c.Tape=d.Tape := by … - lemma
OAI.RationalHitting.TMTime.StackTape.cleanline 349 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.blockVectorline 362 - abbrev
OAI.RationalHitting.TMTime.OutputAdapter.StackAlphabetline 371 - def
OAI.RationalHitting.TMTime.OutputAdapter.codeline 372 - def
OAI.RationalHitting.TMTime.OutputAdapter.stopline 374 - def
OAI.RationalHitting.TMTime.OutputAdapter.getterline 377 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.getter_codeline 380 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.getter_stopline 387 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.stream_falseline 399 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.stream_encodingline 408 - lemma
OAI.RationalHitting.TMTime.OutputAdapter.width_posline 438 - theorem
OAI.RationalHitting.TMTime.OutputAdapter.raw_stack_outputline 453Source documentation
Exact inverse interface for a clean output stack, including the bottom marker, right-side blank padding and output order.
theorem raw_stack_output {b} (k : K) (enc : StackAlphabet K → List.Vector Bool b) (dec : List.Vector Bool b → StackAlphabet K) (h0 : enc default=List.Vector.replicate b false) (hd : ∀ a,dec (enc a)=a) : ∃ (m : ℕ) (G : TM0.Machine A (Fin (m+1))) (C : ℕ), 0<C ∧ ∀ xs : List Bool, ∃ t≤C*(xs.length+1)^2, ∃ a, exec (TM0.step G) t (TM0.init (((TM2to1.trInit k xs.reverse).flatMap (fun z => (enc z).toList)).map bit))=some a ∧ TM0.step G a=none ∧ a.Tape=Tape.mk₁ (xs.map raw) := by …Mentions: OAI.RationalHitting.TMTime.OutputAdapter.StackAlphabet, OAI.RationalHitting.TMTime.OutputAdapter.A, OAI.RationalHitting.TMTime.exec, OAI.RationalHitting.TMTime.OutputAdapter.bit, OAI.RationalHitting.TMTime.OutputAdapter.raw