OAI/Computability/UniqueGames/PCP/PoweringLabelsLemmas.lean
128 declarations, 0 contain sorry, 0 declared as axioms
Full-radius local opinions use a common alphabet indexed by bounded port addresses. Every opinion is decoded through a fixed address selector; arbitrary alphabet symbols need not agree on colliding addresses.
- abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.PortWordsline 30 - instance
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.finitePortWordsline 32 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.Ballline 36 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.wordToBallline 39 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.wordToBall_surjectiveline 42 - instance
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.finiteBallline 49 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.card_portWordsline 53 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.card_ball_leline 57 - structure
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.AddressSelectorline 64 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.classicalSelectorline 68 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.scanWitnessline 74Source documentation
Executable first-match search, with a proof that a match is present.
def scanWitness {A : Type*} (p : A → Prop) [DecidablePred p] : (xs : List A) → (∃ a ∈ xs, p a) → {a // p a} | [], h => False.elim (by simp at h) | a :: xs, h => if ha : p a then ⟨a, ha⟩ else scanWitness p xs (by obtain ⟨b, hb, hp⟩ := h … - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.listSelectorline 87Source documentation
A concrete complete address list supplies a computational selector. Its length depends on the degree and radius, not on the ambient vertex count.
def listSelector [DecidableEq V] (G : PortGraph V D) (t : Nat) (v : V) (addresses : List (PortWords D t)) (complete : ∀ w, w ∈ addresses) : AddressSelector G t v where …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.PortWords, OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.AddressSelector
- abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.PaddedLabelline 98 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.encodeline 100 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.decodeline 103 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.decode_encodeline 106 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.decode_surjectiveline 113 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.encode_injectiveline 117 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.decoded_word_collisionline 124 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringLabels.card_paddedLabelline 130 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringAddresses.allWordsline 157Source documentation
All words of a specified length, ordered first by their head port.
def allWords (d : Nat) : (n : Nat) → List (Fin n → Fin d) | 0 => [Fin.elim0] | n + 1 => (List.finRange d).flatMap fun a => (allWords d n).map fun p => Fin.cases a p - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringAddresses.mem_allWordsline 162 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringAddresses.allAddressesline 179Source documentation
The complete address list, including the unique empty word.
def allAddresses (d t : Nat) : List (PortWords (Fin d) t) := …
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringAddresses.mem_allAddressesline 183 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringAddresses.length_allWordsline 191 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringAddresses.length_allAddressesline 202Source documentation
The selector's search-list bound depends only on degree and radius.
theorem length_allAddresses (d t : Nat) : (allAddresses d t).length = ∑ n : Fin (t + 1), d ^ n.val := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PoweringAddresses.allAddresses
- def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringAddresses.finitePortSelectorline 209Source documentation
A fully executable selector from the explicit bounded address list.
def finitePortSelector {d : Nat} [DecidableEq V] (G : PortGraph V (Fin d)) (t : Nat) (v : V) : AddressSelector G t v := … - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringDecoding.massline 228 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringDecoding.mass_sumline 233 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringDecoding.exists_modeline 248 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringDecoding.modeline 254 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringDecoding.mode_maxline 257 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringDecoding.mode_mass_lowerline 261 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringDecoding.exists_letter_mass_lowerline 272 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.addressCountline 298Source documentation
The number of words with length at most
t, including the empty word.def addressCount (d t : Nat) : Nat := ∑ i : Fin (t + 1), d ^ i.val
- def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.reverseWordEquivline 302Source documentation
Reverse the digit positions before using the little-endian arithmetic encoding from mathlib. Both directions are the same executable operation.
def reverseWordEquiv (d n : Nat) : (Fin n → Fin d) ≃ (Fin n → Fin d) where …
- def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.wordEquivline 309Source documentation
An executable bijection from fixed-length port words to their ranks.
def wordEquiv (d n : Nat) : (Fin n → Fin d) ≃ Fin (d ^ n) := …
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.wordEquiv_valline 312 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.addressEquivline 316Source documentation
Arithmetic prefix sums give a rank for every bounded-length address.
def addressEquiv (d t : Nat) : PortWords (Fin d) t ≃ Fin (addressCount d t) := …
Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.addressCount
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.addressEquiv_valline 320 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.paddedLabelEquivline 330Source documentation
A padded label is a base-
qinteger whose digits are indexed by the explicit bounded-address equivalence.def paddedLabelEquiv (d t q : Nat) : PaddedLabel (Fin d) t (Fin q) ≃ Fin (q ^ addressCount d t) := …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.addressCount
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.paddedLabelEquiv_valline 335 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.orientationEquivline 341Source documentation
False and true are the adjacent orientation digits zero and one.
def orientationEquiv : Bool ≃ Fin 2 := finTwoEquiv.symm
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.orientationEquiv_falseline 343 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.orientationEquiv_trueline 344 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.dartBlockEquivline 347Source documentation
A vertex's block consists of one adjacent orientation pair per word.
def dartBlockEquiv (d n : Nat) : ((Fin (n + 1) → Fin d) × Bool) ≃ Fin (2 * d ^ (n + 1)) := … - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.dartBlockEquiv_valline 352 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.dartVertexEquivline 359Source documentation
The tuple permutation putting the vertex before its word and orientation.
def dartVertexEquiv (vertices d n : Nat) : (Bool × (Fin vertices × (Fin (n + 1) → Fin d))) ≃ (Fin vertices × ((Fin (n + 1) → Fin d) × Bool)) where … - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.dartEquivline 368Source documentation
Executable vertex-major dart numbering, with adjacent orientations.
def dartEquiv (vertices d n : Nat) : (Bool × (Fin vertices × (Fin (n + 1) → Fin d))) ≃ Fin (2 * vertices * d ^ (n + 1)) := … - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.dartEquiv_valline 377 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.dartEquiv_true_eq_false_add_oneline 387Source documentation
The true orientation immediately follows the false orientation.
theorem dartEquiv_true_eq_false_add_one (vertices d n : Nat) (v : Fin vertices) (p : Fin (n + 1) → Fin d) : (dartEquiv vertices d n (true, (v, p))).val = (dartEquiv vertices d n (false, (v, p))).val + 1 := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.dartEquiv
- def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.encodeWordline 394 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.decodeWordline 395 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.decodeWord_encodeWordline 397 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.encodeWord_decodeWordline 400 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.encodeAddressline 403 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.decodeAddressline 406 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.decodeAddress_encodeAddressline 409 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.encodeAddress_decodeAddressline 412 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.encodeLabelline 415 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.decodeLabelline 418 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.decodeLabel_encodeLabelline 422 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.encodeLabel_decodeLabelline 425 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.decodeLabel_applyline 428 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.encodeDartline 432 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.decodeDartline 436 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.decodeDart_encodeDartline 440 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.encodeDart_decodeDartline 445 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.card_wordsline 450 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.card_addressesline 453 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.card_labelsline 457 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.card_dartsline 461 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringEnumeration.length_allAddressesline 466 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.ReachLEline 491 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.reach_reflline 494 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.reach_monoline 497 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.reach_prependline 502 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.reversePortsline 510Source documentation
Reversal records each arrival port, not the original outgoing port.
def reversePorts (G : PortGraph V D) : V → List D → List D | _, [] => [] | v, d :: ds => reversePorts G (next G v d) ds ++ [(G.rot (v, d)).2]
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.reversePorts_lengthline 514 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.walkEnd_reversePortsline 520 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.wordEnd_eq_walkEnd_ofFnline 531 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.reach_reverseline 541 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.tail_reachline 554Source documentation
The actual prefix places each traversed edge's tail in the start ball.
theorem tail_reach (G : PortGraph V D) : ∀ (n : Nat) (w : Walk V D (n + 1)) (k : Fin (n + 1)), ReachLE G (n + 1) w.1 (edgeAt G n w k).1 := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.ReachLE
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.head_reach_endpointline 569Source documentation
The suffix proceeds from the traversed edge's head to the walk endpoint.
theorem head_reach_endpoint (G : PortGraph V D) : ∀ (n : Nat) (w : Walk V D (n + 1)) (k : Fin (n + 1)), ReachLE G (n + 1) (G.rot (edgeAt G n w k)).1 (endpoint G w) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.ReachLE
- def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.tailFromStartline 583 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.headFromEndline 587 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.tailFromStart_valline 591 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PoweringReach.headFromEnd_valline 595 - structure
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.Verifierline 620 - abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.Labelline 624 - abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.Vertexline 625 - abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.Dartline 626 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.responseline 630 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.zeroSlotline 633 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.decodeRightline 635 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.encodeRightline 637 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.decode_encodeRightline 639 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.canonicalSlotline 642 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.canonicalSlot_queryline 645 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.RepeatedConsistentline 649 - instance
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.repeatedConsistentDecidableline 652 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.LeftValidline 658 - instance
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.leftValidDecidableline 661 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.incidenceAcceptline 667 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.reverseline 672 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.reverse_involutiveline 674 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.reverseEquivline 678 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.tailline 684 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.predicateline 688 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.graphline 693 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.edgeSatisfied_eq_incidenceline 703 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.honestLabelingline 711 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.honest_leftValidline 715 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.honest_incidenceline 722 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.perfect_completenessline 733 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.satisfiable_of_verifier_satisfiableline 741 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.decodedAssignmentline 749 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.incidenceAccept_trueline 752 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.all_incidences_imply_eventline 761 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.rejected_event_forces_slotline 776 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.rejectedEventsline 794 - def
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.verifierRejectionCountline 797 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.rejection_count_boundline 802Source documentation
Every rejected event contributes two distinct rejected darts, one in each orientation. A classical witness is used only in this counting proof.
theorem rejection_count_bound [Fintype E] [DecidableEq X] (T : Verifier E X q) (positive : 0 < q) (labeling : Vertex E X → Label q) : 2 * verifierRejectionCount T (decodedAssignment positive labeling) ≤ (graph T positive).rejectionCount labeling := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.Verifier, OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.Vertex, OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.Label, OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.verifierRejectionCount, OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.decodedAssignment, OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.graph
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.card_labelline 831 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.card_vertexline 834 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.card_dartline 838 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.gap_transferline 842 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.QueryIncidence.six_query_alphabetline 857