OAI/Computability/UniqueGames/PCP/SourceGapLemmas.lean
106 declarations, 0 contain sorry, 0 declared as axioms
The actual finite graph iteration used by the mathematical PCP construction. One fixed, explicitly supplied complete address list is shared by every round. Each round constructs a new constraint graph. The scalar gap and size are the actual minimum rejection fraction and actual finite cardinalities of that graph.
The final Boolean formula uses supplied vertex and dart numberings. These theorems establish the finite objects and their size/gap properties, not a machine running-time theorem or an independently encoded NP-hardness theorem.
- def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.ClauseGapline 32Source documentation
A clause gap includes nonemptiness: a cross-multiplied inequality alone would hold vacuously for a formula with no clauses.
def ClauseGap (F : Formula) (η : ℚ) : Prop := …
- theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.third_posline 37 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.third_le_oneline 39 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.repetitionCountline 43Source documentation
The repetition count is computed once from the gap, target error, and noise denominator, independently of the input formula.
def repetitionCount (η ξ : ℚ) (hη : 0 < η) (hη1 : η ≤ 1) (hξ : 0 < ξ) (D : ℕ) (hD : 0 < D) : ℕ := … - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.repetitionCount_posline 47 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.repeated_game_boundline 52 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.sourceline 69Source documentation
The actual nonempty, numbered occurrence list at the fixed parameters.
def source (η ξ : ℚ) (hη : 0 < η) (hη1 : η ≤ 1) (hξ : 0 < ξ) (D : ℕ) (hD : 0 < D) (F : Formula) : SourceEncoding.Input := … - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.source_completeline 73 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.source_soundline 86 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.source_sizeline 97 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.forErrorline 108 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.forError_completeline 112 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.forError_soundline 121 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.forError_sizeline 130 - abbrev
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorContract.NonemptyFormulaline 144 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorContract.inputEncodingline 146 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorContract.sourceMapline 148 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorContract.errorMapline 152 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorContract.inputEncoding_mkline 156 - abbrev
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorProgram.Tapeline 170 - abbrev
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorProgram.Ambientline 171 - abbrev
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorProgram.Stateline 172 - inductive
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorProgram.Labelline 176 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorProgram.bodyEntryline 185 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorProgram.nextline 187 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorProgram.sourceStateEquivline 190 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorProgram.programline 196 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorProgram.mainline 213 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorProgram.machineline 215 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorProgram.finite_work_alphabetsline 226 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorProgram.atCheckline 231 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorProgram.atResetline 235 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGenerator.source_initialline 252 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGenerator.initial_configurationline 256 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGenerator.startupInTimeline 269 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.accumulatorRoleline 302 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.leafTapesline 305 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.leaf_accumulatorline 310 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.leaf_work_blankline 314 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.leaf_readyline 325Source documentation
Every concrete tuple and arbitrary accumulated prefix satisfies the actual body's representation invariant after startup.
theorem leaf_ready (F : Target.Formula) (c : ClauseContext F u) (output : List Bool) : SourceTupleBody.Ready F c (leafTapes (D := D) F c output) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Target.Formula, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceTupleBody.Ready, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.leafTapes
- theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.body_result_leafline 354Source documentation
The actual body's accumulator update has exactly the endpoint expected by the nested odometer schedule.
theorem body_result_leaf (F : Target.Formula) (c : ClauseContext F u) (output bits : List Bool) : SourceTestAppend.resultTapes queryLayout (leafTapes (D := D) F c output) bits = …Mentions: OAI.UniqueGamesTheorem.Foundations.Target.Formula, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceTestAppend.resultTapes, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.leafTapes
- theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.source_initialline 364 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.actual_bodiesline 370Source documentation
The body-run premise of the odometer is discharged by the checked body machine and its fixed polynomial bound, in this same final generator program.
theorem actual_bodies (F : Target.Formula) (hD : 0 < D) : BodyTrace (SourceGeneratorProgram.program u D hD) (bodyEntry u D) (next u D 0) (initialAmbient u D hD) (accumulatorRole u D) (SourceStartup.readyTapes F) (SourceQueryOrder.tupleBits F u D) ((SourceTupleBound.bodyPolynomial u D).eval (formulaBits F).length) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Target.Formula, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorProgram.program, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.accumulatorRole, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceStartup.readyTapes, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceQueryOrder.tupleBits, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceTupleBound.bodyPolynomial
- theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.resetDigits_readyline 394Source documentation
Startup already supplies exactly the reset odometer digits.
theorem resetDigits_ready (F : Target.Formula) : setDigits F.clauses.length (fun _ : Fin u => 0) (SourceStartup.readyTapes (u := u) (D := D) F) = SourceStartup.readyTapes F := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Target.Formula, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceStartup.readyTapes
- theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.allBits_eq_recordsline 400 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.accumulated_eq_inputline 412Source documentation
Include the exact reversed header already emitted by startup.
theorem accumulated_eq_input (F : Target.Formula) (hD : 0 < D) (hne : F.clauses ≠ []) : (allBits (SourceQueryOrder.tupleBits F u D)).reverse ++ SourceStartup.readyTapes F (accumulatorTape u D) = (UniqueGamesTheorem.Reduction.SourceEncoding.inputBits (sourceInput F u D hD)).reverse := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Target.Formula, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceQueryOrder.tupleBits, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceStartup.readyTapes, OAI.UniqueGamesTheorem.Reduction.SourceEncoding.inputBits
- def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.traversalOutputline 424 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.traversalOutput_accumulatorline 428 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.traversalOutput_frameline 433 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.resetLabelline 438 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.traversalInTimeline 443Source documentation
Actual traversal of every clause tuple, with each digit physically reset. All nonaccumulator tapes have exactly their startup-ready contents.
theorem traversalInTime (F : Target.Formula) (hm : 0 < F.clauses.length) (hD : 0 < D) : Nonempty (StateTransition.EvalsToInTime (TM2.step (SourceGeneratorProgram.program u D hD)) ⟨some (bodyEntry u D), (initialAmbient u D hD, none), SourceStartup.readyTapes F⟩ (some ⟨some .finishEnter, (initialAmbient u D hD, none), traversalOutput F hD⟩) (((SourceTupleBound.bodyPolynomial u D).eval (formulaBits F).length + 2 * u) * F.clauses.length ^ u)) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Target.Formula, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorProgram.program, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceStartup.readyTapes, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.traversalOutput, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceTupleBound.bodyPolynomial
- def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.timePolynomialline 487 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGeneratorTraversal.traversalInPolynomialTimeline 490 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGenerator.prefixPolynomialline 521 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGenerator.timePolynomialline 524 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGenerator.beforeFinishline 528 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGenerator.enterFinishInTimeline 532 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGenerator.prefixInTimeline 548 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGenerator.output_emptyline 564 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGenerator.halted_configurationline 571 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGenerator.outputInTimeline 590 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGenerator.computableInPolyTimeline 616 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGenerator.finite_work_alphabetsline 635 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGenerator.forErrorComputableInPolyTimeline 641 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGenerator.forError_finite_work_alphabetsline 649 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceNonempty.real_clause_gap_of_countline 667Source documentation
Convert an actual natural-number clause-count inequality to the real inequality used by the clause-variable game.
theorem real_clause_gap_of_count (F : Formula) (a b : ℕ) (hb : 0 < b) (hgap : ∀ assignment : Fin F.variables → Bool, a * F.clauses.length ≤ b * NameCompaction.failedCount F assignment) (assignment : Fin F.variables → Bool) : (a : ℝ) / (b : ℝ) * F.clauses.length ≤ (failureCount F assignment (allIndices F) : ℝ) := by … - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceNonempty.clauseGap_of_countline 681 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceNonempty.cnf_nonempty_of_nonempty_dartsline 694Source documentation
The actual final graph bundle carries a nonempty dart type, so its explicitly numbered Boolean CNF is nonempty even before using any gap.
theorem cnf_nonempty_of_nonempty_darts [Fintype E] [Nonempty E] (G : ConstraintGraph V E FinalBooleanVerifier.Label) (vertices : V ≃ Fin n) (edges : E ≃ Fin m) : (FinalBooleanVerifier.cnf G vertices edges).clauses ≠ [] := by … - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceNonempty.cnf_clauseGapline 705Source documentation
The checked final Boolean-verifier count bound produces exactly the nonempty clause-gap premise of SourceGap, with denominator
40960 * b.theorem cnf_clauseGap [Fintype E] [Nonempty E] (G : ConstraintGraph V E FinalBooleanVerifier.Label) (vertices : V ≃ Fin n) (edges : E ≃ Fin m) (a b : ℕ) (hb : 0 < b) (hgap : ∀ labeling : V → FinalBooleanVerifier.Label, a * Fintype.card E ≤ b * G.rejectionCount labeling) : SourceGap.ClauseGap (FinalBooleanVerifier.cnf G vertices edges) ((a : ℚ) / ((b : ℚ) * 40960)) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.ClauseGap
- theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceNonempty.cnf_clauseGap_unitline 719Source documentation
The unit-numerator gap supplied by the final powering stage has the fixed rational clause gap
1 / (40960 * walkLength).theorem cnf_clauseGap_unit [Fintype E] [Nonempty E] (G : ConstraintGraph V E FinalBooleanVerifier.Label) (vertices : V ≃ Fin n) (edges : E ≃ Fin m) (walkLength : ℕ) (hwalk : 0 < walkLength) (hgap : ∀ labeling : V → FinalBooleanVerifier.Label, Fintype.card E ≤ walkLength * G.rejectionCount labeling) : SourceGap.ClauseGap (FinalBooleanVerifier.cnf G vertices edges) (1 / (40960 * (walkLength : ℚ))) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceGap.ClauseGap
- abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.Labelline 753 - abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.Graphline 754 - abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.Addressesline 755 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.stepline 757 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.runline 761 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.initialline 764 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.iterationCountline 766 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.outputline 768 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.polynomialDegreeline 772Source documentation
Fixed exponent; the enormous fixed graph constants remain unevaluated.
def polynomialDegree : Nat := AmplificationIteration.rounds RoundSize.sizeFactor
Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AmplificationIteration.rounds, OAI.UniqueGamesTheorem.Foundations.PCP.RoundSize.sizeFactor
- def
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.finalClauseGapline 774 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.finalClauseGap_positiveline 776 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.sizeFactor_le_powerline 780 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.initial_satisfiable_iffline 783 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.initial_size_positiveline 787 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.initial_size_boundline 790 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.step_completenessline 798 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.step_gapline 802 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.step_sizeline 806 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.run_completenessline 810 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.run_gapline 816 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.run_sizeline 822 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.output_completenessline 828 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.output_gapline 836Source documentation
The actual graph reaches the fixed positive gap after the concrete number of rounds determined by its initial total size.
theorem output_gap (addresses : List Addresses) (complete : ∀ w, w ∈ addresses) (F : Target.Formula) (unsat : ¬ F.Satisfiable) : FinalConstants.cap ≤ (output addresses complete F).gap := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.Addresses, OAI.UniqueGamesTheorem.Foundations.Target.Formula, OAI.UniqueGamesTheorem.Foundations.PCP.FinalConstants.cap, OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.output
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.output_satisfiable_iffline 846 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.output_size_polynomialline 856 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.output_size_clause_boundline 863 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.output_count_gapline 871 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.finalCNFline 897 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.finalCNF_satisfiable_iffline 900 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.finalCNF_clause_countline 905 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.finalCNF_variable_countline 909 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.finalCNF_nonemptyline 913 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.finalCNF_gapline 920 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.finalCNF_clauseGapline 932 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.finalCNF_total_sizeline 938 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PCPIteration.finalCNF_polynomial_sizeline 955