OAI/Computability/FiniteCompiler/Quotients.lean
136 declarations, 0 contain sorry, 0 declared as axioms
Canonical compiler quotients and effective tested classes for word problems.
- def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.BlockCode.Alphabetline 17 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.BlockCode.mem_alphabetline 19 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.BlockCode.encode_ne_nilline 23 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.BlockCode.disjoint_infixline 27 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.BlockCode.disjoint_overlapline 32 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.table_supportline 46 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.table_decreaseline 53 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.table_boundedline 69 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.critical_containment_boundline 82 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.critical_overlap_boundline 95 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Base.absorptionline 122 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Base.mem_absorptionline 126 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Base.tableline 132 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Base.mem_tableline 137 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Base.absorbsline 144 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Base.preserves_zeroline 153 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Base.criticalline 164Source documentation
All static and absorption critical pairs for the literal two-code base table.
theorem critical (hC : z ∉ C.Alphabet) (hD : z ∉ D.Alphabet) (hdis : Disjoint C.Alphabet D.Alphabet) {n : ℕ} (hf : f [] ≠ none) (hg : g [] ≠ none) (hfc : Static.Contextual f (n/(C.width+1))) (hfi : Static.ZeroIdeal f (n/(C.width+1))) (hgc : Static.Contextual g (n/(D.width+1))) (hgi : Static.ZeroIdeal g (n/(D.width+1))) : Critical (table C D wf wg f g z n) n := by …Mentions: OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.Contextual, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.ZeroIdeal, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Critical, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Base.table
- theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.steps_boundedline 230 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.tableNormalline 239Source documentation
The actual partial table-first procedure used at the fixed point.
def tableNormal (T : ℕ → Part (List (List S × List S))) (w : List S) : Part (List S) := …
- def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.GoodTableline 244Source documentation
A successful table has all the finite mathematical certificates needed by the bounded Newman argument. No totality of the program is part of this.
def GoodTable (T : ℕ → Part (List (List S × List S))) (n : ℕ) : Prop := …
- theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.tableNormal_atline 247 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.tableNormal_budgetline 271Source documentation
This is the whole contextual-induction step, including the table at the shortened contextual endpoint and irreducibility in the larger table.
theorem tableNormal_budget {T : ℕ → Part (List (List S × List S))} {n : ℕ} (wf : WellFounded r) (ht : ∀ k ≤ n,GoodTable (r:=r) T k) … - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.bootstrap_length_inductionline 300Source documentation
The source's simultaneous length induction, for the table builder actually fed to the recursion theorem.
buildonly receives strictly smaller budgets. Thus this lemma never assumes the desired total/contextual program outright.theorem bootstrap_length_induction (wf : WellFounded r) (T : ℕ → Part (List (List S × List S))) (f : List S → Part (List S)) (fixed : f=tableNormal T) (stable : ∀ k n, k ≤ n → ∀ rk ∈ T k,∀ rn ∈ T n,Selectors.BoundedEq rk rn k) (build : ∀ n, (∀ m<n,Compiler.PartialBudget f m) → GoodTable (r:=r) T n) : …Mentions: OAI.FiniteAlgebraicEnvelopes.Bootstrap.tableNormal, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Selectors.BoundedEq, OAI.FiniteAlgebraicEnvelopes.Compiler.PartialBudget, OAI.FiniteAlgebraicEnvelopes.Bootstrap.GoodTable
- theorem
OAI.FiniteAlgebraicEnvelopes.Effect.traverse_compline 326 - theorem
OAI.FiniteAlgebraicEnvelopes.Effect.traverse_domainline 332 - theorem
OAI.FiniteAlgebraicEnvelopes.Effect.partrec_traverse_parameterline 345 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Search.valueline 359 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Search.value_memline 364 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Search.compute_domainline 371 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Search.compute_eqline 383 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Search.partrec_compute_parameterline 390 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.basesline 409 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.tablesline 414 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.bases_eqline 422 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.tables_eqline 431 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.partrec_bases_parameterline 443 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.partrec_tables_parameterline 458 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.partrec_tableNormal_parameterline 468 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Base.boundedline 489 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Base.decreaseline 497 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Base.shapesline 510 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.bases_fullline 538 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.tables_fullline 548 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.stableline 557 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.goodline 568 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.Relline 607Source documentation
Literal equations of the stabilized infinite table. Restricting a stage to its own budget removes only premature copies of the fixed absorption rules.
def Rel (u v : FreeMonoid S) : Prop := …
- abbrev
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.Monline 610 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.presentline 611 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.normalline 612 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.present_nilline 615 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.present_appendline 617 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.present_stepline 620 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.present_stepsline 630 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.budgetline 642 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.normal_memline 645 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.present_normalline 648 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.normal_contextline 654 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.normal_appendline 659 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.normal_relline 666 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.normalConline 684 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.present_eq_iffline 694 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.computable_normalline 703 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.computable_wordProblemline 711 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Selectors.process_monoline 726 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Selectors.selected_memline 734 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.normal_irreducibleline 753 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.normal_idempotentline 760 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.normal_eq_selfline 763 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.present_surjectiveline 770 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.representativeline 775 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.present_representativeline 778 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.representative_injectiveline 782 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.representative_irreducibleline 786 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.irreducible_of_shortline 793 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.present_nil_ne_zeroline 802 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.present_absorbsline 817 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.monoidWithZeroline 834 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.representative_avoids_zeroline 845 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Selectors.tuple_selectedline 860Source documentation
Every nonzero irreducible ordered tuple receives its literal selector. The finite processing stage is chosen beyond the complete selector word.
theorem tuple_selected (a : Markers S) (T : ℕ → Part (List (List S × List S))) (bases : ℕ → List (List S × List S)) (hT : ∀ n,process (a:=a) (bases n) (stages a.zero) n n ∈ T n) …Mentions: OAI.FiniteAlgebraicEnvelopes.Bootstrap.Selectors.Markers, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Selectors.process, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Selectors.stages
- theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.selectorsline 913Source documentation
Source selectors for the stabilized quotient, with the distinguished element first in the tuple. Not an extra algebraic assumption on that quotient.
theorem selectors (a : Selectors.Markers S) (bases : ℕ → List (List S × List S)) (hT : ∀ n,Selectors.process (a:=a) (bases n) (Selectors.stages a.zero) n n∈T n) …Mentions: OAI.FiniteAlgebraicEnvelopes.Bootstrap.Selectors.Markers, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Selectors.process, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Selectors.stages
- theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.table_shortline 977 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.tables_absorbline 997 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.tables_shortline 1009 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.tables_processline 1028Source documentation
Once bounded induction has proved total tables, their process descriptions are genuine members. No totality of static programs is added here.
theorem tables_process {t : S → S → Prop} (good : ∀ n,GoodTable (r:=t) (tables (r:=r) (s:=s) a C D f g) n) (n : ℕ) : …Mentions: OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.good, OAI.FiniteAlgebraicEnvelopes.Bootstrap.GoodTable, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.tables
- theorem
OAI.FiniteAlgebraicEnvelopes.Compiler.Word.present_surjectiveline 1048 - theorem
OAI.FiniteAlgebraicEnvelopes.Compiler.Word.present_zero_mulline 1055 - theorem
OAI.FiniteAlgebraicEnvelopes.Compiler.Word.present_mul_zeroline 1069 - def
OAI.FiniteAlgebraicEnvelopes.Compiler.Word.monoidWithZeroline 1081 - theorem
OAI.FiniteAlgebraicEnvelopes.Compiler.Word.computable_normalline 1097 - theorem
OAI.FiniteAlgebraicEnvelopes.Compiler.Word.computable_wordProblemline 1102 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.representative_mulline 1124 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.rawMapline 1139 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.rawMap_injectiveline 1156 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.rawMap_ne_oneline 1167 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.rawMap_ne_zeroline 1178 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.irreducible_of_no_infixline 1198 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.table_monoline 1210 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.canonical_no_infixline 1216 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.canonical_irreducibleline 1241Source documentation
Rules of the other code and selector/zero rules cannot occur in a pure code.
theorem canonical_irreducible {rs : List (List S × List S)} {n : ℕ} (hiso : ∀ p∈rs,p∈table C wf q z n ∨ ∃ s∈p.1,s∉C.Alphabet) (hc : ∀ k,Contextual q k) (hi : ∀ k,ZeroIdeal q k) {w : List A} (hw : q w≠none) : Irreducible (Step rs) (C.encode (Canonical.least wf q w)) := by …Mentions: OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.table, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.Contextual, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.ZeroIdeal, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Irreducible, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Step, OAI.FiniteAlgebraicEnvelopes.Bootstrap.Canonical.least
- theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.output_eq_iffline 1252 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.normal_encodeline 1289 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.present_encode_iffline 1307 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Base.isolate_leftline 1324 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Selectors.process_isolateline 1338 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.tables_isolateline 1364 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.tables_staticline 1376 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.codeHomline 1390 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.descendCodeline 1399 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.descendCode_applyline 1413 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.descendCode_injectiveline 1418 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Separator.prefix_beforeline 1429 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Separator.infix_splitline 1447 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Separator.split_injectiveline 1462 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.separator_irreducibleline 1489 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Static.separator_literal_injectiveline 1511 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Base.isolate_separatorline 1535 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Selectors.process_isolate_separatorline 1551 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Build.tables_isolate_separatorline 1577 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.normal_separatorline 1606 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.present_separator_iffline 1629 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Quotient.present_separator_ne_zeroline 1642 - def
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.wordsline 1667Source documentation
The finite word ball over an explicit finite support.
def words (letters : List A) : ℕ → List (List A) | 0 => [[]] | n+1 => [] :: letters.flatMap (fun a => (words letters n).map (a::·))
- theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.mem_wordsline 1671 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.words_mapline 1693 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.words_specializeline 1700 - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Uniform.primrec_wordsline 1703 - theorem
OAI.FiniteAlgebraicEnvelopes.Effect.computable_map_parameterline 1718Source documentation
Finite traversal of a total computable family is a computable list map.
theorem computable_map_parameter {f : X → A → B} (hf : Computable₂ f) : Computable₂ (fun x (l : List A) => l.map (f x)) := by … - theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Canonical.computable_leastline 1732Source documentation
Canonical representatives do not require a coding of the semantic class type. Only its word-equivalence test must be algorithmic.
theorem computable_least (hr : PrimrecRel (List.Shortlex r)) (hq : ComputablePred (fun p : List A × List A => q p.1=q p.2)) : Computable (least wf q) := by …Mentions: OAI.FiniteAlgebraicEnvelopes.Bootstrap.Canonical.least
- theorem
OAI.FiniteAlgebraicEnvelopes.Bootstrap.Canonical.least_eq_iffline 1768Source documentation
Equality of computed representatives is exactly equality in the semantic quotient, not merely equality of a chosen noncanonical encoding.
theorem least_eq_iff {u v : List A} : least wf q u=least wf q v ↔ q u=q v := by …Mentions: OAI.FiniteAlgebraicEnvelopes.Bootstrap.Canonical.least
- theorem
OAI.FiniteAlgebraicEnvelopes.WordProblem.computable_word_equivline 1780Source documentation
The original word-problem algorithm gives a genuine two-word comparison.
theorem computable_word_equiv (h : ComputablePred (fun w : Word n => evalWord s w=1)) : ComputablePred (fun p : Word n × Word n => evalWord s p.1=evalWord s p.2) := by … - def
OAI.FiniteAlgebraicEnvelopes.WordProblem.letterRelline 1794 - theorem
OAI.FiniteAlgebraicEnvelopes.WordProblem.letterRel_wfline 1803 - theorem
OAI.FiniteAlgebraicEnvelopes.WordProblem.primrec_letterShortlexline 1805 - def
OAI.FiniteAlgebraicEnvelopes.WordProblem.testedClassline 1810 - theorem
OAI.FiniteAlgebraicEnvelopes.WordProblem.computable_testedClassline 1813 - theorem
OAI.FiniteAlgebraicEnvelopes.WordProblem.testedClass_eq_iffline 1819