OAI/Computability/UniqueGames/PCP/ClauseVerifierLemmas.lean
111 declarations, 0 contain sorry, 0 declared as axioms
- structure
OAI.UniqueGamesTheorem.Foundations.PCP.ClauseAnswerline 13 - inductive
OAI.UniqueGamesTheorem.Foundations.PCP.Slotline 19 - def
OAI.UniqueGamesTheorem.Foundations.PCP.answerAtline 25 - def
OAI.UniqueGamesTheorem.Foundations.PCP.nameAtline 30 - def
OAI.UniqueGamesTheorem.Foundations.PCP.literalValueline 35 - def
OAI.UniqueGamesTheorem.Foundations.PCP.localSatisfiesline 38 - def
OAI.UniqueGamesTheorem.Foundations.PCP.honestAnswerline 43 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.honest_satisfiesline 47 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.honest_answerAtline 50 - def
OAI.UniqueGamesTheorem.Foundations.PCP.matchingSlotsline 55 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.matchingSlots_leline 60 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.matchingSlots_eq_threeline 65 - def
OAI.UniqueGamesTheorem.Foundations.PCP.acceptedSlotsline 70 - def
OAI.UniqueGamesTheorem.Foundations.PCP.clauseFailureline 73 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.local_rejection_boundline 77Source documentation
A failed Bob clause forces one rejection among its three incidence events.
theorem local_rejection_bound {n : Nat} (clause : Clause n) (alice : ClauseAnswer) (bob : Fin n → Bool) : acceptedSlots clause alice (honestAnswer clause bob) + clauseFailure clause bob ≤ 3 := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ClauseAnswer, OAI.UniqueGamesTheorem.Foundations.PCP.acceptedSlots, OAI.UniqueGamesTheorem.Foundations.PCP.honestAnswer, OAI.UniqueGamesTheorem.Foundations.PCP.clauseFailure
- def
OAI.UniqueGamesTheorem.Foundations.PCP.clauseAtline 99 - abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.RandomEventline 102 - abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.AliceStrategyline 103 - abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.BobStrategyline 104 - def
OAI.UniqueGamesTheorem.Foundations.PCP.acceptsline 108Source documentation
Explicit finite verifier. The occurrence and slot are randomness, never an additional argument supplied to Bob's strategy.
def accepts (formula : Formula) (alice : AliceStrategy formula) (bob : BobStrategy formula) (event : RandomEvent formula) : Bool := …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AliceStrategy, OAI.UniqueGamesTheorem.Foundations.PCP.BobStrategy, OAI.UniqueGamesTheorem.Foundations.PCP.RandomEvent
- def
OAI.UniqueGamesTheorem.Foundations.PCP.acceptedCountline 113 - def
OAI.UniqueGamesTheorem.Foundations.PCP.failureCountline 119 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.total_rejection_boundline 124 - def
OAI.UniqueGamesTheorem.Foundations.PCP.allIndicesline 135 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.hastad_basic_verifier_soundnessline 140Source documentation
Count form of Håstad Lemma 3.1: a fraction
a/bof failed clauses gives a fraction at leasta/(3*b)of failed verifier events.theorem hastad_basic_verifier_soundness (formula : Formula) (a b : Nat) (sourceGap : ∀ bob : BobStrategy formula, a * formula.clauses.length ≤ b * failureCount formula bob (allIndices formula)) (alice : AliceStrategy formula) (bob : BobStrategy formula) : b * acceptedCount formula alice bob (allIndices formula) + a * formula.clauses.length ≤ b * (3 * formula.clauses.length) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.BobStrategy, OAI.UniqueGamesTheorem.Foundations.PCP.failureCount, OAI.UniqueGamesTheorem.Foundations.PCP.allIndices, OAI.UniqueGamesTheorem.Foundations.PCP.AliceStrategy, OAI.UniqueGamesTheorem.Foundations.PCP.acceptedCount
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.honest_acceptsline 151 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.verifier_completenessline 160Source documentation
Pointwise perfect completeness, including the exact input syntax.
theorem verifier_completeness (formula : Formula) (sat : formula.Satisfiable) : ∃ (alice : AliceStrategy formula) (bob : BobStrategy formula), ∀ event : RandomEvent formula, accepts formula alice bob event = true := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AliceStrategy, OAI.UniqueGamesTheorem.Foundations.PCP.BobStrategy, OAI.UniqueGamesTheorem.Foundations.PCP.RandomEvent, OAI.UniqueGamesTheorem.Foundations.PCP.accepts
- abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.LeftLabelline 169Source documentation
The valid left labels and projection maps give the concrete Label Cover presentation. Their alphabet depends on the clause, with at most 8 bit triples.
abbrev LeftLabel (formula : Formula) (i : Fin formula.clauses.length) := …
- def
OAI.UniqueGamesTheorem.Foundations.PCP.edgeProjectionline 172 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.verifier_eq_projectionline 175 - def
OAI.UniqueGamesTheorem.Foundations.PCP.eventsAtline 184Source documentation
A materialized list of all three slot events at an occurrence.
def eventsAt (formula : Formula) (i : Fin formula.clauses.length) : List (RandomEvent formula) := …
Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.RandomEvent
- def
OAI.UniqueGamesTheorem.Foundations.PCP.enumerateEventsline 187 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.length_enumerateEventsline 192 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.accepted_eventsAtline 201 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.accepted_enumerateEventsline 215Source documentation
The rejection-count proof counts exactly the explicit verifier's accepted random events; it is not a separate abstract score.
theorem accepted_enumerateEvents (formula : Formula) (alice : AliceStrategy formula) (bob : BobStrategy formula) (indices : List (Fin formula.clauses.length)) : ((enumerateEvents formula indices).filter (accepts formula alice bob)).length = acceptedCount formula alice bob indices := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AliceStrategy, OAI.UniqueGamesTheorem.Foundations.PCP.BobStrategy, OAI.UniqueGamesTheorem.Foundations.PCP.enumerateEvents, OAI.UniqueGamesTheorem.Foundations.PCP.accepts, OAI.UniqueGamesTheorem.Foundations.PCP.acceptedCount
- def
OAI.UniqueGamesTheorem.Foundations.PCP.allEventsline 225 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.length_allEventsline 228 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.allEvents_nonemptyline 232 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.verifier_event_soundnessline 244Source documentation
Soundness stated solely in terms of filtering the generated event list. For
b>0and a nonempty input, division byb*|allEvents|gives the usual normalized acceptance probability.theorem verifier_event_soundness (formula : Formula) (a b : Nat) (sourceGap : ∀ bob : BobStrategy formula, a * formula.clauses.length ≤ b * failureCount formula bob (allIndices formula)) (alice : AliceStrategy formula) (bob : BobStrategy formula) : b * ((allEvents formula).filter (accepts formula alice bob)).length + a * formula.clauses.length ≤ b * (allEvents formula).length := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.BobStrategy, OAI.UniqueGamesTheorem.Foundations.PCP.failureCount, OAI.UniqueGamesTheorem.Foundations.PCP.allIndices, OAI.UniqueGamesTheorem.Foundations.PCP.AliceStrategy, OAI.UniqueGamesTheorem.Foundations.PCP.allEvents, OAI.UniqueGamesTheorem.Foundations.PCP.accepts
- def
OAI.UniqueGamesTheorem.Foundations.PCP.occurrencesAtline 255Source documentation
Count the syntactic occurrences of one variable in each three-slot clause.
def occurrencesAt {n : Nat} (clause : Clause n) (v : Fin n) : Nat := … - def
OAI.UniqueGamesTheorem.Foundations.PCP.occurrenceCountline 260 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.variable_eventsAtline 265 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.variable_enumerateEventsline 275 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.regular_bob_marginalline 286 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.clauseAnswerEquivline 306Source documentation
Executable tuple encoding of the eight clause answers.
def clauseAnswerEquiv : ClauseAnswer ≃ Bool × Bool × Bool where …
- def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.clauseAnswerFinEquivline 312 - instance
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.clauseAnswerFintypeline 318 - instance
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.clauseAnswerInhabitedline 321 - instance
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.slotFintypeline 323 - instance
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.slotInhabitedline 327 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.card_clauseAnswerline 329 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.card_slotline 333 - abbrev
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.Iline 335 - abbrev
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.Jline 336 - abbrev
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.ClauseContextline 337 - abbrev
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.VariableContextline 338 - abbrev
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.SlotContextline 339 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.card_Iline 341 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.card_Jline 342 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.card_ClauseContextline 343 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.card_VariableContextline 345 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.card_SlotContextline 347 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.localConsistentline 350 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.localConsistent_eq_true_iffline 354 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.validJline 362Source documentation
Satisfaction and consistency over all
3*uoccurrence slots.def validJ (F : Formula) {u : ℕ} (c : ClauseContext F u) (j : J u) : Bool := …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.ClauseContext, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.J
- theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.validJ_eq_true_iffline 367 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.validJ_satisfiesline 375 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.validJ_consistentline 380 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.validJ_localConsistentline 387 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.canonicalSlotline 396Source documentation
First matching visible occurrence, with the third slot as an off-support default. Its inputs contain no hidden incidence choice.
def canonicalSlot {n : ℕ} (clause : Clause n) (v : Fin n) : Slot := … - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.canonicalSlot_nameline 400 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.piline 412 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.sampledVariablesline 416 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.sampledVariables_supportedline 420 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.sampled_eq_piline 425 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.sampled_answers_eq_of_visible_eqline 435Source documentation
Two hidden choices with the same visible variable tuple give the same selected answers for every valid label.
theorem sampled_answers_eq_of_visible_eq (F : Formula) {u : ℕ} (c : ClauseContext F u) (s s' : SlotContext u) (j : J u) (hj : validJ F c j = true) (hvisible : sampledVariables F c s = sampledVariables F c s') : (fun t => answerAt (j t) (s t)) = fun t => answerAt (j t) (s' t) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.ClauseContext, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.SlotContext, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.J, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.validJ, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.sampledVariables
- def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.honestJline 443 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.honestIline 447 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.honestJ_validline 451 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.pi_honestline 463 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.pi_honest_sampledline 471 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.baseAcceptsline 477 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.baseAccepts_eq_true_iffline 483 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.projection_implies_coordinate_acceptsline 491 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.baseAccepts_implies_sampledline 498 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.projection_implies_sampled_acceptsline 510Source documentation
Every coordinate of the original repeated clause-slot verifier accepts the decoded answers. Each answer tuple may depend on its whole private context.
theorem projection_implies_sampled_accepts (F : Formula) {u : ℕ} (c : ClauseContext F u) (s : SlotContext u) (i : I u) (j : J u) (hj : validJ F c j = true) (hpi : pi F c (sampledVariables F c s) j = i) : ∀ t, (localSatisfies (clauseAt F (c t)) (j t) && decide (answerAt (j t) (s t) = i t)) = true := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.ClauseContext, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.SlotContext, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.I, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.J, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.validJ, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.pi, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceContexts.sampledVariables
- abbrev
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.Positionline 529 - abbrev
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.NameProfileline 530 - structure
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.Signatureline 534Source documentation
All local control data have sizes determined solely by the repetition parameter. Global variable and clause indices are absent.
structure Signature (u : ℕ) where …
- def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.signatureEquivline 540 - instance
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.signatureFintypeline 547 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.card_positionline 551 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.card_signatureline 555Source documentation
A finite control alphabet bound, not a claim about evaluation time.
theorem card_signature (u : ℕ) : Fintype.card (Signature u) = 2 ^ (3 * u) * ((2 ^ (3 * u)) ^ (3 * u) * 3 ^ u) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.Signature
- def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.positiveAtline 561 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.occurrenceNameline 566 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.contextNameProfileline 572Source documentation
The equality matrix can be supplied by a separate field-comparison procedure after an explicit reindexing of the
3*upositions.def contextNameProfile (F : Formula) {u : ℕ} (c : ClauseContext F u) : NameProfile u := …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.NameProfile
- def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.ofContextline 575 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.ofContext_signsline 581 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.ofContext_sameNameline 585 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.ofContext_selectedline 590 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.signatureSatisfiesline 594Source documentation
Local clause truth is computed from signs and the three answer bits.
def signatureSatisfies {u : ℕ} (σ : Signature u) (j : J u) (t : Fin u) : Bool := …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.Signature
- def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.signatureValidline 599 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.signatureSatisfies_ofContextline 604 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.signature_validJline 611Source documentation
Exact equality with the actual contextual validity predicate, for every answer tuple, including repeated variables within or across clauses.
theorem signature_validJ (F : Formula) {u : ℕ} (c : ClauseContext F u) (s : SlotContext u) (j : J u) : signatureValid (ofContext F c s) j = validJ F c j := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.signatureValid, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.ofContext
- def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.signatureCanonicalSlotline 636Source documentation
The first slot matching the visible selected name, computed using only the equality matrix. The selected slot guarantees visible support.
def signatureCanonicalSlot {u : ℕ} (σ : Signature u) (t : Fin u) : Slot := …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.Signature
- def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.signatureProjectionline 640 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.signatureCanonicalSlot_ofContextline 643 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.signature_piline 660Source documentation
The actual canonical projection factors through the finite signature on every label, without a validity hypothesis.
theorem signature_pi (F : Formula) {u : ℕ} (c : ClauseContext F u) (s : SlotContext u) (j : J u) : signatureProjection (ofContext F c s) j = pi F c (sampledVariables F c s) j := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.signatureProjection, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.ofContext
- theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.signature_projection_selectedline 668Source documentation
On valid labels, canonical projection also agrees with the actual selected occurrence answers.
theorem signature_projection_selected (F : Formula) {u : ℕ} (c : ClauseContext F u) (s : SlotContext u) (j : J u) (hj : signatureValid (ofContext F c s) j = true) : signatureProjection (ofContext F c s) j = fun t => answerAt (j t) (s t) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.signatureValid, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.ofContext, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.signatureProjection
- theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.validJ_eq_of_signature_eqline 679Source documentation
The same finite signature gives the same validity decision even across formulas having different global index types.
theorem validJ_eq_of_signature_eq (F G : Formula) {u : ℕ} (c : ClauseContext F u) (d : ClauseContext G u) (s s' : SlotContext u) (h : ofContext F c s = ofContext G d s') (j : J u) : validJ F c j = validJ G d j := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.ofContext
- theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLocalSignature.pi_eq_of_signature_eqline 685