Documentation

LeanPool.KaltonRoberts.UniformRecombination

Finite-uniform recombination #

Finite-uniform version of the one-sided recombination theorem, producing a target weighted collection via expander recombination.

Uniform labeling helpers #

theorem KaltonRoberts.exists_uniform_labeling (n m : ) (hn : 0 < n) (hm : 0 < m) (hdvd : m n) :
∃ (f : Fin nFin m), Function.Surjective f ∀ (j : Fin m), {i : Fin n | f i = j}.card = n / m

For m ∣ n with 0 < n and 0 < m, the function i ↦ i % m maps Fin n to Fin m with each fiber having exactly n / m elements.

theorem KaltonRoberts.exists_uniform_labeling_types {A : Type u_2} {B : Type u_3} [Fintype A] [Fintype B] [DecidableEq B] (hA : 0 < Fintype.card A) (hB : 0 < Fintype.card B) (hdvd : Fintype.card B Fintype.card A) :
∃ (f : AB), Function.Surjective f ∀ (j : B), {i : A | f i = j}.card = Fintype.card A / Fintype.card B

Cofinality of admissible multiples #

theorem KaltonRoberts.exists_large_admissible_multiple (step d : ) (hstep : 0 < step) (hd : 0 < d) (N : ) :
∃ (k : ), N k step k d 2 * k

For any positive integers step and d, there exist arbitrarily large multiples of step such that d ∣ 2 * k.

Duplication lemmas #

theorem KaltonRoberts.uniform_duplication_source_count' {U : Type u_1} [DecidableEq U] {A : Type u_2} {B : Type u_3} [Fintype A] [Fintype B] [DecidableEq B] (lab : AB) (hfiber : ∀ (j : B), {i : A | lab i = j}.card = Fintype.card A / Fintype.card B) (C : BFinset U) (i : U) :
{v : A | i C (lab v)}.card = {j : B | i C j}.card * (Fintype.card A / Fintype.card B)
theorem KaltonRoberts.uniform_duplication_sum {A : Type u_2} {B : Type u_3} [Fintype A] [Fintype B] [DecidableEq B] (lab : AB) (hfiber : ∀ (j : B), {i : A | lab i = j}.card = Fintype.card A / Fintype.card B) (g : B) :
v : A, g (lab v) = ↑(Fintype.card A / Fintype.card B) * j : B, g j

Ratio lemma #

theorem KaltonRoberts.expander_ratio_eq_theta {V : Type u_2} {W : Type u_3} [Fintype V] [Fintype W] {θ : } {k : } (hk : 0 < k) (hV : Fintype.card V = 2 * k) (hW : (Fintype.card W) = 2 * θ * k) :
(Fintype.card W) / (Fintype.card V) = θ

Finite-uniform one-sided recombination #

theorem KaltonRoberts.one_sided_recombination_uniform_core {U : Type u_1} [DecidableEq U] (f : Finset U) (hf : IsApproxAdditive f 1) (M : ) (hM : ∀ (S : Finset U), |f S| M) (α_val : ) (r_val : ) (θ_val : ) ( : 0 < θ_val) (_hθ1 : θ_val < 1) (hexp : StrongExpandersExist α_val r_val θ_val) (hr : 0 < r_val) {I : Type u_2} [Fintype I] (hI : 0 < Fintype.card I) (C : IFinset U) (hfreq : ∀ (i : U), {j : I | i C j}.card / (Fintype.card I) α_val) (D : ) (hD : 0 D) (havg_def : (∑ j : I, deficit f M (C j)) / (Fintype.card I) D) :
∃ (C' : WeightedCollection U) (D' : ), 0 D' (∀ (i : U), C'.itemFreq i α_val / θ_val) C'.avgDeficit f M D' (1 - θ_val) * M D - θ_val * D' + 2 * r_val - 1 - θ_val