OAI/Computability/FiniteCompiler/TapeFolding.lean
102 declarations, 0 contain sorry, 0 declared as axioms
Safe tapes, literal folding, and uniform code-machine realization.
- structure
OAI.FiniteAlgebraicEnvelopes.MachineRealization.OneSided.Cfgline 13 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.OneSided.stepline 18 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.OneSided.viewline 23 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.OneSided.append_atline 25 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.OneSided.replace_atline 31 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.OneSided.view_stepline 47 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.OneSided.respectsline 79 - inductive
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.Sideline 93 - instance
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.(instance at line 94)line 94 - structure
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.Cellline 95 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.positionline 101 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.readline 105 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.commandline 107 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.machineline 115 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.Relline 120Source documentation
The two halves of the integer tape share one physical cell. The immutable origin flag makes crossing the fold a finite-control, zero-movement operation.
def Rel (c : TM0.Cfg Γ Λ) (s : OneSided.Cfg (Cell Γ) (Side × Λ)) : Prop := …
Mentions: OAI.FiniteAlgebraicEnvelopes.MachineRealization.OneSided.Cfg, OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.Cell, OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.Side
- theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.read_headline 127 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.move_positionline 134 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.move_writeline 143 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.command_stateline 148 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.step_relline 154 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.respectsline 216 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeSafety.Safeline 233Source documentation
Every writing subinstruction preserves the bottom track.
def Safe : TM1.Stmt (TM2to1.Γ' K Γ) Λ σ → Prop | .move _ q => Safe q | .write f q => (∀ a v, (f a v).1 = a.1) ∧ Safe q | .load _ q => Safe q | .branch _ q r => Safe q ∧ Safe r | .goto _ => True | .halt => True
- theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeSafety.safe_stActline 241 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeSafety.safe_normalline 246 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeSafety.safe_trline 249 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeSafety.safe_subline 258 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeSafety.safe_stmtsline 270 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeSafety.trAux_writeline 278 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeSafety.Preservesline 294Source documentation
A machine preserves the distinguished bottom marker on every write.
def Preserves {L : Type*} [Inhabited L] (M : TM0.Machine (TM2to1.Γ' K Γ) L) : Prop := … - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeSafety.finite_preservesline 297 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.WordEvaluator.exists_safe_tapeline 323 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.Markedline 360 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.marked_stepline 363 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.TapeFold.marked_runline 387 - abbrev
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.Gammaline 401 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.cell_extline 403 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.blankline 407 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.inputline 408 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.rawline 409 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.canonline 410 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.canon_relline 414 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.tape_negline 418 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.tape_fstline 422 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.canon_markedline 429 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.raw_cellline 433 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.markline 441 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.clearline 442 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.canon_cellsline 445 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.canon_clearline 464 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.rel_canon_uniqueline 472 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.folded_evalline 500 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.After.path_casesline 533 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.After.lift_reachesline 551 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.After.eval_liftline 556 - abbrev
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.Stateline 579 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.wrapperline 581 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.liftline 590 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.finishline 592 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.initialline 594 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.finalline 595 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.wrapper_liftline 598 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.wrapper_finishline 606 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.wrapper_initialline 609 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.finish_canonline 615 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.wrapper_evalline 620 - instance
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.(instance at line 634)line 634 - instance
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.(instance at line 636)line 636 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.outputline 639 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.alphabetline 643 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.output_decodeline 650 - theorem
OAI.FiniteAlgebraicEnvelopes.Compiler.Simulator.take_constantline 668 - theorem
OAI.FiniteAlgebraicEnvelopes.Compiler.Simulator.interpret_contentline 674 - theorem
OAI.FiniteAlgebraicEnvelopes.Compiler.Simulator.semanticReturns_iffline 678 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.view_initialline 703 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.returns_finalline 707 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.realizesline 719 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.WordEvaluator.exists_machineline 755Source documentation
Every algorithmic partial word function has an actual one-sided finite machine with the literal first-blank readout used by the finite compiler.
theorem exists_machine {f : List S →. List S} (hf : Partrec f) : ∃ (Γ Q : Type) (_ : Fintype Γ) (_ : Fintype Q) (A : Alphabet S Γ) (M : Machine Q Γ), (∀ g a, A.output g = some a → g = A.input a) ∧ Word.Realizes A M f := by … - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniformCode.eval_compline 771 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniformCode.quoteline 777Source documentation
A faithful syntactic encoding, not a choice of an evaluator for each index.
def quote : Code → Nat.Partrec.Code | .zero' => .zero | .succ => .succ | .tail => .left | .cons a b => .pair (quote a) (quote b) | .comp a b => .comp (quote a) (quote b) | .case a b => .prec (quote a) (quote b) | .fix a => .rfind' (quote a)
- def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniformCode.unquoteline 786 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniformCode.unquote_quoteline 796 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniformCode.quote_injectiveline 799 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniformCode.numeralline 802 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniformCode.numeral_evalline 806 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniformCode.specializeline 812 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniformCode.specialize_evalline 814 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniformCode.primrec_quote_numeralline 818 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniformCode.primrec_quote_specializeline 827 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniformCode.exists_parameterizedline 835Source documentation
Parameter specialization is uniform at the literal code level. Only the single code implementing the two-variable function is selected.
theorem exists_parameterized {f : ℕ → List ℕ →. List ℕ} (hf : Partrec₂ f) : ∃ C : ℕ → Code, Primrec (fun n => quote (C n)) ∧ ∀ n w, (C n).eval (w.map Nat.succ) = (f n w).map (List.map Nat.succ) := by …Mentions: OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniformCode.quote
- theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniformCode.exists_word_parameterizedline 876 - def
OAI.FiniteAlgebraicEnvelopes.WordProgramming.evalline 902Source documentation
An acceptable word-program numbering obtained from the pinned universal partial-recursive evaluator. Invalid decoded results remain undefined.
def eval (c : Nat.Partrec.Code) (w : List S) : Part (List S) := …
- theorem
OAI.FiniteAlgebraicEnvelopes.WordProgramming.partrec_evalline 905 - theorem
OAI.FiniteAlgebraicEnvelopes.WordProgramming.fixed_pointline 912Source documentation
The source fixed-point equation for word algorithms, as literal equality of partial functions, including their domains.
theorem fixed_point {F : Nat.Partrec.Code → List S →. List S} (hF : Partrec₂ F) : ∃ c, eval c = F c := by … - structure
OAI.FiniteAlgebraicEnvelopes.MachineRealization.CodeMachine.Rawline 936Source documentation
A literal raw-letter stack program, with its finite control part.
structure Raw where …
- def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.CodeMachine.rawline 944 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.CodeMachine.raw_correctline 955 - structure
OAI.FiniteAlgebraicEnvelopes.MachineRealization.CodeMachine.TapeProgramline 973Source documentation
A finite tape machine with distinguished literal input/output states.
structure TapeProgram where …
- def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.CodeMachine.tapeProgramline 984 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.CodeMachine.tapeProgram_correctline 1005 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.CodeMachine.compileline 1025 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.CodeMachine.compile_correctline 1031 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.CodeMachine.exists_familyline 1040Source documentation
One uniform syntactic program transformation feeds the specified model compiler. No evaluator is selected separately at each parameter.
theorem exists_family {f : ℕ → List S →. List S} (hf : Partrec₂ f) : ∃ C : ℕ → Code, Primrec (fun n => UniformCode.quote (C n)) ∧ ∀ n, Compiler.Word.Realizes FoldLiteral.alphabet (compile S (C n)) (f n) := by …Mentions: OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniformCode.quote, OAI.FiniteAlgebraicEnvelopes.Compiler.Word.Realizes, OAI.FiniteAlgebraicEnvelopes.MachineRealization.FoldLiteral.alphabet, OAI.FiniteAlgebraicEnvelopes.MachineRealization.CodeMachine.compile