OAI/Computability/FiniteCompiler/SelfReference.lean
168 declarations, 0 contain sorry, 0 declared as axioms
Controlled shorter-input evaluator calls, fixed points, totality, and tested-class realization.
- def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Projection.leftline 13 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Projection.rightline 15 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Projection.left_appendline 18 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Projection.right_appendline 19 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Projection.left_lengthline 20 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Projection.right_lengthline 21 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Projection.primrec_leftline 24 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Projection.primrec_rightline 29 - abbrev
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Tested.Xline 45 - abbrev
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Tested.Yline 46 - abbrev
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Tested.Classline 47 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Tested.combineline 49 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Tested.primrec_combineline 53 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Tested.familyline 63Source documentation
The literal tested class from the self-reference construction: zero precisely for the compiler zero output, and otherwise the compiler word together with a canonical, decidable coding of the actual auxiliary partial affine map.
noncomputable def family (f : ℕ × List T → Part (List T)) (n : ℕ) (w : List (Y T Γ Q)) : Part (Option (Class T Γ Q)) := …Mentions: OAI.FiniteAlgebraicEnvelopes.Bootstrap.Tested.Y, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Tested.Class
- theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Tested.partrec_familyline 68 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Tested.lettersline 78 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Tested.primrec_lettersline 83 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Tested.family_memline 88 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.tailline 101 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.encodeline 104 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.tail_lengthline 107 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.code_lengthline 113 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.localCodeline 124Source documentation
A genuine block code on any finite alphabet injected into the displayed support. No choice of an enumeration at the parameter is used.
def localCode [DecidableEq S] (b a c : S) (hba : b≠a) (hbc : b≠c) (hac : a≠c) (ls : List A) (i : B → A) (hi : Function.Injective i) (hm : ∀ x,i x∈ls) : BlockCode B S where … - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.localCode_encodeline 139 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.primrec_tailline 146 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.primrec_encodeline 153 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.pickStepline 163 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.pickline 167 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.outputline 170 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.tableline 174 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.computeline 179 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.primrec_pickStepline 191 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.primrec_pickline 201 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.primrec_outputline 210 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.primrec_tableline 220 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.partrec_computeline 233 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.compute_specializeline 246 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.basesline 264 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.tablesline 272 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.partrec_basesline 292 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.partrec_tablesline 308 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.tables_specializeline 317 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.wordsline 332Source documentation
Binary tails in their literal lexicographic order, with
abeforec.def words (a c : S) : ℕ → List (List S) | 0 => [[]] | n+1 => (words a c n).map (a::·) ++ (words a c n).map (c::·)
- theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.length_wordsline 336 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.mem_lengthline 341 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.mem_lettersline 348 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.nodupline 361 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.orderedline 373 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.tailline 388 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.encodeline 391 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.index_boundline 394 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.codeline 401 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.code_encodeline 426 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.code_orderline 434 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.primrec_wordsline 449 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.primrec_tailline 455 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.primrec_encodeline 459 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Rank.wordline 469 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Rank.lessline 471 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Rank.lex_map_iffline 475 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Rank.shortlex_map_iffline 483 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Rank.index_injectiveline 487 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Rank.less_mapline 492 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Rank.primrec_wordline 501 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Rank.primrec_lessline 504 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniversalMachine.restrictline 519Source documentation
Forget the parameter delimiter as an input/output letter. Work symbols and transitions are not changed.
def restrict (A : Alphabet (S ⊕ Unit) Γ) : Alphabet S Γ where …
- theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniversalMachine.restrict_decodeline 527 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniversalMachine.restrict_contentline 537 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniversalMachine.restrict_realizesline 543 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniversalMachine.lettersline 560 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniversalMachine.parameterline 563 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniversalMachine.letters_inputline 566 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniversalMachine.parameter_inputline 570 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniversalMachine.primrec_lettersline 576 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniversalMachine.primrec_parameterline 582 - def
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniversalMachine.universalline 589 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniversalMachine.universal_inputline 593 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniversalMachine.partrec_universalline 598 - theorem
OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniversalMachine.exists_parameter_machineline 606Source documentation
The alphabet and all non-initializer control are now fixed once for the whole partial-recursive family. The only variable finite control is the explicit unary counter
Fin (n+2), not a choice of an evaluator for each index.theorem exists_parameter_machine {S : Type} [Fintype S] [Primcodable S] {f : ℕ → List S → Part (List S)} (hf : Partrec₂ f) : ∃ (Γ Q : Type) (_ : Fintype Γ) (_ : Fintype Q) (_ : DecidableEq Γ) (A : Alphabet (S ⊕ Unit) Γ) (M : Machine Q Γ), (∀ g a, A.output g=some a → g=A.input a) ∧ ∀ n, Compiler.Word.Realizes (restrict (alphabet A)) (machine A M (.inr ()) n) (f n) := by …Mentions: OAI.FiniteAlgebraicEnvelopes.Compiler.Word.Realizes, OAI.FiniteAlgebraicEnvelopes.MachineRealization.UniversalMachine.restrict
- abbrev
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.Sigmaline 627 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.markersline 629 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.rawline 631 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.raw_encodeline 634 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.partrec_rawline 638 - abbrev
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.Yline 649 - abbrev
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.Zline 650 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.yLettersline 652 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.zLettersline 653 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.widthline 656Source documentation
A single common width, chosen effectively only from finite alphabets.
noncomputable def width (k n : ℕ) : ℕ := …
- def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.codeTline 659 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.codeGline 661 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.testTline 664 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.testGline 668 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.tablesline 671 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.primrec_widthline 677 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.primrec_codeTline 682 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.primrec_codeGline 688 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.partrec_testTline 692 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.partrec_tablesline 695 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.exists_fixed_pointline 709Source documentation
Literal source fixed point. No termination or contextual correctness is assumed: equality here also preserves divergence of the two procedures.
theorem exists_fixed_point (h : ComputablePred (fun w : FiniteAlgebraicEnvelopes.Word k => FiniteAlgebraicEnvelopes.evalWord s w=1)) : ∃ n,raw n=tableNormal (tables s A M n) := by …Mentions: OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.raw, OAI.FiniteAlgebraicEnvelopes.Bootstrap.tableNormal, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.tables
- theorem
OAI.FiniteAlgebraicEnvelopes.Effect.traverse_map_outputline 722 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.answerMapline 736 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.pickStep_mapline 741 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.pick_mapline 747 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.output_mapline 756 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.table_mapline 762 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.compute_mapline 772 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.pick_eq_canonicalline 794 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.output_full_supportline 807 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.table_full_supportline 821 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.compute_full_supportline 841 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.compute_domain_supportline 852 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.compute_members_supportline 864 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.RulesEqline 878 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.step_rulesEqline 880 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.critical_rulesEqline 887 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Selectors.allowed_rulesEqline 893 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Selectors.choose_rulesEqline 898 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Selectors.process_rulesEqline 906 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.fullTablesline 926 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.tables_members_supportline 932 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.tables_domain_supportline 947 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.stable_supportline 960 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.good_supportline 973 - abbrev
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.FiniteYline 1002 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.includeYline 1004 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.includeY_injectiveline 1014 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.includeY_memline 1018 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.mem_includeY_rangeline 1028 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.list_preimageline 1037 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.finiteLettersline 1046 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.map_finiteLettersline 1050 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.mem_finiteLettersline 1054 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.rankTline 1060 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.rankGline 1061 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.rankT_injectiveline 1064 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.rankG_injectiveline 1066 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.relTline 1069 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.relGline 1070 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.wf_relTline 1073 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.wf_relGline 1074 - instance
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.tri_relTline 1076 - instance
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.tri_relGline 1078 - instance
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.dec_relTline 1080 - instance
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.dec_relGline 1081 - instance
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.dec_shortlexTline 1083 - instance
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.dec_shortlexGline 1084 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.widthBoundTline 1087 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.widthBoundGline 1092 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.finiteCodeTline 1097 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.finiteCodeGline 1100 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.finiteCodeT_encodeline 1105 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.finiteCodeG_encodeline 1109 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.lessT_mapline 1115 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.lessG_eqline 1122 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.LexBinary.alphabet_boundline 1136 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.finiteTestline 1163 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.finiteTablesline 1165 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.tables_eq_finiteline 1170 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.stableline 1185 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.codeT_orderline 1193 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.codeG_orderline 1197 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.codeT_alphabetline 1202 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.codeG_alphabetline 1206 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.codeT_avoidline 1211 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.codeG_avoidline 1218 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.codes_disjointline 1225 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Source.good_of_testsline 1233