OAI/Computability/UniqueGames/Games/ProductLemmas.lean
88 declarations, 0 contain sorry, 0 declared as axioms
The independent graph product in the last step of the reduction.
Edges are tuples of actual base edges. The endpoint maps remain injective, the edge law is exactly uniform, and the associated game agrees with ordinary parallel repetition for every pair of local strategies, including strategies depending on their whole question tuples. Only the completeness lower bound uses coordinatewise strategies; no repetition soundness bound is assumed here.
- def
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.productline 36Source documentation
Independent tuples of edges and labels. The two endpoint types keep the two parts separate, even when the base sets happen to have the same type.
def product (G : BipartiteGame L R E A) (t : ℕ) : BipartiteGame (Fin t → L) (Fin t → R) (Fin t → E) (Fin t → A) where … - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.product_leftline 52 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.product_rightline 55 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.product_permutationline 58 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.product_isTranslationline 62 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.product_edge_cardline 70 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.product_left_cardline 73 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.product_right_cardline 76 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.product_edges_nonemptyline 79 - def
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.toGameline 88Source documentation
Each actual edge has equal weight. Simplicity makes the acceptance predicate at its endpoint pair exactly its permutation constraint.
def toGame (G : BipartiteGame L R E A) : Game L R A A := by …
- theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.toGame_accepts_on_edgeline 96 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.toGame_isProjectionline 111Source documentation
At most one accepting right answer exists for each local question pair and left answer, including question pairs with zero edge weight.
theorem toGame_isProjection (G : BipartiteGame L R E A) : UniqueGamesTheorem.Repetition.IsProjection G.toGame := by …Mentions: OAI.UniqueGamesTheorem.Explicit.BipartiteGame, OAI.UniqueGamesTheorem.Repetition.IsProjection
- def
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.occurrenceSuccessline 123Source documentation
Acceptance probability directly on the uniform occurrence set.
def occurrenceSuccess (G : BipartiteGame L R E A) (strategy : Strategy L R A A) : ℝ := by … - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.toGame_successline 129 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.toGame_success_eq_satisfiedCountline 150Source documentation
The probabilistic game evaluates the same unweighted edge fraction as the explicit graph's integer occurrence counter.
theorem toGame_success_eq_satisfiedCount [DecidableEq A] (G : BipartiteGame L R E A) (strategy : Strategy L R A A) : G.toGame.success strategy = (G.satisfiedCount strategy.1 strategy.2 : ℝ) / Fintype.card E := by … - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.product_uniform_edge_lawline 165Source documentation
Independent uniform draws of base edges are exactly the uniform product edge law, without reweighting or collapsing occurrences.
theorem product_uniform_edge_law (t : ℕ) : (FiniteDistribution.uniform E).iid t = FiniteDistribution.uniform (Fin t → E) := … - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.product_success_eq_repetitionline 172Source documentation
The graph construction agrees with the ordinary independent repeated game for arbitrary local tuple strategies. This is the soundness interface.
theorem product_success_eq_repetition (G : BipartiteGame L R E A) (t : ℕ) (strategy : Strategy (Fin t → L) (Fin t → R) (Fin t → A) (Fin t → A)) : (G.product t).toGame.success strategy = (G.toGame.repetition t).success strategy := by … - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.product_coordinate_successline 203 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.one_sub_mul_one_sub_le_powline 210Source documentation
Scalar union bound, proved for the actual base success probability.
theorem one_sub_mul_one_sub_le_pow {p : ℝ} (hp0 : 0 ≤ p) (_hp1 : p ≤ 1) (t : ℕ) : 1 - (t : ℝ) * (1 - p) ≤ p ^ t := by … - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.product_coordinate_completenessline 223Source documentation
The coordinatewise honest labeling loses at most
ttimes the base error. This does not restrict the strategies covered by the soundness bridge.theorem product_coordinate_completeness (G : BipartiteGame L R E A) (t : ℕ) (strategy : Strategy L R A A) {error : ℝ} (hcomplete : 1 - error ≤ G.toGame.success strategy) : 1 - (t : ℝ) * error ≤ (G.product t).toGame.success (Game.repeatStrategy strategy t) := by … - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.toGame_valueline 238Source documentation
The finite maximum over arbitrary local strategies is exactly the explicit graph value used by the subdivision identity.
theorem toGame_value [DecidableEq A] (G : BipartiteGame L R E A) : G.toGame.value = G.value := by … - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.product_value_eq_repetitionline 252 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.product_completenessline 264 - def
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.relabelline 274Source documentation
A change of alphabet coordinates keeps endpoints and edge identities.
def relabel {B : Type*} (G : BipartiteGame L R E A) (e : A ≃ B) : BipartiteGame L R E B where … - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.relabel_isTranslationline 281 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.relabel_successline 296Source documentation
Alphabet coordinates are changed locally at each endpoint.
theorem relabel_success (G : BipartiteGame L R E A) (e : A ≃ B) (strategy : Strategy L R B B) : (G.relabel e).toGame.success strategy = G.toGame.success (fun x => e.symm (strategy.1 x), fun y => e.symm (strategy.2 y)) := by … - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.relabel_success_forwardline 317 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.relabel_valueline 326 - def
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.binaryProductEquivline 343Source documentation
The explicit binary vector coordinates of the final alphabet. The coordinate order is
(base bit, repetition coordinate).def binaryProductEquiv (ell t : ℕ) : (Fin t → Fin ell → ZMod 2) ≃+ (Fin (ell * t) → ZMod 2) where … - def
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.binaryProductline 355 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.binaryProduct_isTranslationline 359 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.binaryProduct_dimension_positiveline 364 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.binaryProduct_alphabet_cardline 367 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.binaryProduct_value_eq_repetitionline 372 - theorem
OAI.UniqueGamesTheorem.Explicit.BipartiteGame.binaryProduct_completenessline 377 - def
OAI.UniqueGamesTheorem.Explicit.ProductOutput.tupleCodeline 406Source documentation
Explicit tuple address, with coordinate zero the least significant digit.
def tupleCode {X : Type*} {n : ℕ} (code : X ≃ Fin n) (t : ℕ) : (Fin t → X) ≃ Fin (n ^ t) where … - theorem
OAI.UniqueGamesTheorem.Explicit.ProductOutput.tupleCode_applyline 413 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductOutput.tupleCode_symm_applyline 417 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductOutput.tupleCode_valline 421 - def
OAI.UniqueGamesTheorem.Explicit.ProductOutput.vertexCodeline 425 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductOutput.vertexCode_leftline 429 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductOutput.vertexCode_rightline 434 - def
OAI.UniqueGamesTheorem.Explicit.ProductOutput.graphline 440Source documentation
The label tuple is numbered by its explicit base-q radix code.
def graph (G : BipartiteGame L R E (Fin q)) (t : ℕ) : BipartiteGame (Fin t → L) (Fin t → R) (Fin t → E) (Fin (q ^ t)) := … - def
OAI.UniqueGamesTheorem.Explicit.ProductOutput.tablesline 444 - def
OAI.UniqueGamesTheorem.Explicit.ProductOutput.outputRowline 449Source documentation
A row indexed by its actual place in the emitted edge list.
def outputRow (G : BipartiteGame L R E (Fin q)) (leftCode : L ≃ Fin l) (rightCode : R ≃ Fin r) (edgeCode : E ≃ Fin m) (t : ℕ) (i : Fin (m ^ t)) : Constraint (l ^ t + r ^ t) (q ^ t) := … - def
OAI.UniqueGamesTheorem.Explicit.ProductOutput.outputline 456Source documentation
The executable output list has one row for each radix edge-tuple address.
def output (G : BipartiteGame L R E (Fin q)) (leftCode : L ≃ Fin l) (rightCode : R ≃ Fin r) (edgeCode : E ≃ Fin m) (t : ℕ) (hm : 0 < m) : Instance (q ^ t) := … - theorem
OAI.UniqueGamesTheorem.Explicit.ProductOutput.output_constraintsline 462 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductOutput.output_lengthline 468 - def
OAI.UniqueGamesTheorem.Explicit.ProductOutput.output_simpleBipartiteline 474 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductOutput.outputRow_sourceline 481 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductOutput.outputRow_targetline 489 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductOutput.outputRow_imagesline 499Source documentation
Each complete output-table entry is coordinatewise application of the base permutation, followed by the same radix alphabet encoding.
theorem outputRow_images (G : BipartiteGame L R E (Fin q)) (leftCode : L ≃ Fin l) (rightCode : R ≃ Fin r) (edgeCode : E ≃ Fin m) (t : ℕ) (i : Fin (m ^ t)) (a : Fin (q ^ t)) : (outputRow G leftCode rightCode edgeCode t i).permutation.images[a] = finFunctionFinEquiv (fun j => G.permutation (edgeCode.symm (finFunctionFinEquiv.symm i j)) (finFunctionFinEquiv.symm a j)) := by …Mentions: OAI.UniqueGamesTheorem.Explicit.BipartiteGame, OAI.UniqueGamesTheorem.Explicit.ProductOutput.outputRow
- theorem
OAI.UniqueGamesTheorem.Explicit.ProductOutput.output_valueline 511 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductOutput.output_value_eq_repetitionline 518 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductOutput.output_completenessline 530 - def
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.Embedded.rowline 563 - def
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.Embedded.renderline 569 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.Embedded.render_lengthline 579 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.Embedded.render_getline 583 - def
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.Embedded.simpleBipartiteline 591 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.Embedded.countline 620 - def
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.Embedded.extendLabelingsline 634 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.Embedded.extendLabelings_leftline 640 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.Embedded.extendLabelings_rightline 646 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.Embedded.maxSatisfiedline 651 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.Embedded.valueline 668 - abbrev
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.Leftline 682 - abbrev
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.Rightline 683 - def
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.graphline 685 - def
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.verticesline 692Source documentation
The two genuine product vertex sets embed into the common global radix space. Opposite sides cannot collide because the repetition count is positive.
def vertices (t : ℕ) (ht : 0 < t) : ((Fin t → Left H presentation) ⊕ (Fin t → Right H presentation)) ↪ Fin (H.vertices ^ t) where …Mentions: OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.Left, OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.Right
- def
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.sideline 724 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.side_leftline 727 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.side_rightline 735 - def
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.outputRowline 743 - def
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.outputline 748 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.output_verticesline 752 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.output_constraintsline 755 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.output_lengthline 758 - def
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.simpleBipartiteline 761 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.outputRow_sourceline 765 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.outputRow_targetline 771 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.outputRow_imagesline 777 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.output_gameWordsline 786 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.output_value_eq_repetitionline 794 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.output_completenessline 804 - def
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.finalCoordinatesline 815 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.finalCoordinates_applyline 821 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductPaddedOutput.output_translationsline 826