OAI/Computability/UniqueGames/Foundations/KernelSampling.lean
16 declarations, 0 contain sorry, 0 declared as axioms
Exact sampling of two conditional kernels from one finite weighted shared seed. The seed consists of independent full response tables and is independent of the questions. Supported-coordinate repairs preserve the sampled laws and enforce the designated coordinate even on seeds of weight zero. The seed is not claimed to be uniform: the kernel weights may be arbitrary real numbers.
- theorem
OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution.pushforward_eq_of_agree_on_supportline 22 - theorem
OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution.product_pushforwardline 38Source documentation
Applying separate maps to independent samples preserves their independence.
theorem product_pushforward {Ω Γ A B : Type*} [Fintype Ω] [Fintype Γ] [Fintype A] [Fintype B] (μ : FiniteDistribution Ω) (ν : FiniteDistribution Γ) (f : Ω → A) (g : Γ → B) : (μ.product ν).pushforward (fun z => (f z.1, g z.2)) = (μ.pushforward f).product (ν.pushforward g) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution, OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution.pushforward, OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution.product
- theorem
OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution.table_row_weight_ne_zeroline 56Source documentation
A full response table of nonzero weight uses a supported answer in every row.
theorem table_row_weight_ne_zero {Q A : Type*} [Fintype Q] [Fintype A] [DecidableEq Q] (responses : Q → FiniteDistribution A) (answers : Q → A) (h : (table responses).weight answers ≠ 0) (q : Q) : (responses q).weight (answers q) ≠ 0 := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution, OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution.table
- theorem
OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution.table_repair_pushforwardline 67Source documentation
Repairing table entries only off each row's support leaves its exact law intact.
theorem table_repair_pushforward {Q A : Type*} [Fintype Q] [Fintype A] [DecidableEq Q] (responses : Q → FiniteDistribution A) (repair : Q → A → A) (hrepair : ∀ q a, (responses q).weight a ≠ 0 → repair q a = a) (q : Q) : (table responses).pushforward (fun answers => repair q (answers q)) = responses q := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution, OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution.table, OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution.pushforward
- abbrev
OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.Seedline 85Source documentation
A single seed supplies a full local table to each side.
abbrev Seed (Q₁ Q₂ A B : Type*) := (Q₁ → A) × (Q₂ → B)
- def
OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.readLeftline 87 - def
OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.readRightline 88 - def
OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.seedLawline 91Source documentation
The fixed weighted seed law; it does not depend on the sampled questions.
def seedLaw {Q₁ Q₂ A B : Type*} [Fintype Q₁] [Fintype Q₂] [Fintype A] [Fintype B] [DecidableEq Q₁] [DecidableEq Q₂] (left : Q₁ → FiniteDistribution A) (right : Q₂ → FiniteDistribution B) : FiniteDistribution (Seed Q₁ Q₂ A B) := …Mentions: OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution, OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.Seed
- theorem
OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.read_joint_pushforwardline 99Source documentation
The two reads have exactly the product of the requested conditional laws.
theorem read_joint_pushforward {Q₁ Q₂ A B : Type*} [Fintype Q₁] [Fintype Q₂] [Fintype A] [Fintype B] [DecidableEq Q₁] [DecidableEq Q₂] (left : Q₁ → FiniteDistribution A) (right : Q₂ → FiniteDistribution B) (x : Q₁) (y : Q₂) : (seedLaw left right).pushforward (fun seed => (readLeft seed x, readRight seed y)) = (left x).product (right y) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution, OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.seedLaw, OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.readLeft, OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.readRight
- theorem
OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.repaired_joint_pushforwardline 113Source documentation
Separate supported repairs retain the exact joint product law.
theorem repaired_joint_pushforward {Q₁ Q₂ A B : Type*} [Fintype Q₁] [Fintype Q₂] [Fintype A] [Fintype B] [DecidableEq Q₁] [DecidableEq Q₂] (left : Q₁ → FiniteDistribution A) (right : Q₂ → FiniteDistribution B) (repairLeft : Q₁ → A → A) (repairRight : Q₂ → B → B) (hleft : ∀ x a, (left x).weight a ≠ 0 → repairLeft x a = a) (hright : ∀ y b, (right y).weight b ≠ 0 → repairRight y b = b) (x : Q₁) (y : Q₂) : (seedLaw left right).pushforward (fun seed => (repairLeft x (readLeft seed x), repairRight y (readRight seed y))) = (left x).product (right y) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution, OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.seedLaw, OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.readLeft, OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.readRight
- def
OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.completedLeftline 136Source documentation
Restore the designated coordinate on every left table read.
def completedLeft (j : I) (seed : Seed (A × S) (B × S) (I → A) (I → B)) (q : A × S) : I → A := …Mentions: OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.Seed
- def
OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.completedRightline 141Source documentation
Restore the designated coordinate on every right table read.
def completedRight (j : I) (seed : Seed (A × S) (B × S) (I → A) (I → B)) (q : B × S) : I → B := …Mentions: OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.Seed
- theorem
OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.completedLeft_coordinateline 145 - theorem
OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.completedRight_coordinateline 149 - theorem
OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.update_eq_of_coordinateline 153 - theorem
OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.completed_joint_pushforwardline 161Source documentation
Exact conditional completion from a finite weighted shared seed. The reads always restore the specified coordinates, including on seeds of weight zero; the support hypotheses ensure that this repair preserves the requested laws.
theorem completed_joint_pushforward [Fintype I] [Fintype A] [Fintype B] [Fintype S] [DecidableEq A] [DecidableEq B] [DecidableEq S] (left : (A × S) → FiniteDistribution (I → A)) (right : (B × S) → FiniteDistribution (I → B)) (j : I) (hleft : ∀ q xs, (left q).weight xs ≠ 0 → xs j = q.1) (hright : ∀ q ys, (right q).weight ys ≠ 0 → ys j = q.1) (x : A × S) (y : B × S) : (seedLaw left right).pushforward (fun seed => (completedLeft j seed x, completedRight j seed y)) = (left x).product (right y) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Games.FiniteDistribution, OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.seedLaw, OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.completedLeft, OAI.UniqueGamesTheorem.Foundations.Games.KernelSampling.completedRight