Documentation

LeanPool.Komlos.Discrepancy

Matrix discrepancy #

Adapted for Lean Pool by changing module paths and selecting explicit imports.

A colouring is a function with values in {-1, 1}. For a matrix A and a colouring χ, Komlos.colouringDiscrepancy A χ is the supremum norm of A *ᵥ χ. Komlos.discrepancy A is the minimum over all colourings.

Komlos.discrepancy_le_iff expresses a discrepancy bound as the existence of a colouring satisfying that bound. The minimum is attained because there are finitely many colourings.

def Komlos.IsColouring {n : Type u_2} (χ : n → ℝ) :

A colouring of n is a ±1-valued function on n.

Equations
Instances For
    def Komlos.ofBool {n : Type u_2} (b : n → Bool) :
    n → ℝ

    The colouring attached to a Boolean assignment.

    Equations
    Instances For
      theorem Komlos.isColouring_ofBool {n : Type u_2} (b : n → Bool) :
      theorem Komlos.IsColouring.abs_eq_one {n : Type u_2} {χ : n → ℝ} (hχ : IsColouring χ) (j : n) :
      |χ j| = 1
      theorem Komlos.exists_ofBool_eq {n : Type u_2} {χ : n → ℝ} (hχ : IsColouring χ) :
      ∃ (b : n → Bool), ofBool b = χ
      noncomputable def Komlos.colouringDiscrepancy {m : Type u_1} {n : Type u_2} [Fintype m] [Fintype n] (A : Matrix m n ℝ) (χ : n → ℝ) :

      The discrepancy of the colouring χ with respect to A: the supremum norm of the signed sum A *ᵥ χ of the columns of A.

      Equations
      Instances For
        noncomputable def Komlos.discrepancy {m : Type u_1} {n : Type u_2} [Fintype m] [Fintype n] (A : Matrix m n ℝ) :

        The discrepancy of the matrix A: the least discrepancy of a colouring of its columns.

        Equations
        Instances For
          theorem Komlos.colouringDiscrepancy_le_iff {m : Type u_1} {n : Type u_2} [Fintype m] [Fintype n] {A : Matrix m n ℝ} {χ : n → ℝ} {C : ℝ} (hC : 0 ≤ C) :
          colouringDiscrepancy A χ ≤ C ↔ ∀ (i : m), |∑ j : n, A i j * χ j| ≤ C
          theorem Komlos.colouringDiscrepancy_nonneg {m : Type u_1} {n : Type u_2} [Fintype m] [Fintype n] (A : Matrix m n ℝ) (χ : n → ℝ) :
          theorem Komlos.colouringDiscrepancy_add_le {m : Type u_1} {n : Type u_2} [Fintype m] [Fintype n] (A B : Matrix m n ℝ) (χ : n → ℝ) :
          theorem Komlos.colouringDiscrepancy_le_of_abs_le {m : Type u_1} {n : Type u_2} [Fintype m] [Fintype n] {A : Matrix m n ℝ} {χ : n → ℝ} (hχ : IsColouring χ) {c : ℝ} (hc : 0 ≤ c) (hA : ∀ (i : m) (j : n), |A i j| ≤ c) :

          A matrix whose entries are at most c in absolute value has colouring discrepancy at most c times its number of columns.

          theorem Komlos.colouringDiscrepancy_smul {m : Type u_1} {n : Type u_2} [Fintype m] [Fintype n] (c : ℝ) (A : Matrix m n ℝ) (χ : n → ℝ) :
          theorem Komlos.discrepancy_smul {m : Type u_1} {n : Type u_2} [Fintype m] [Fintype n] (c : ℝ) (A : Matrix m n ℝ) :
          theorem Komlos.discrepancy_le_colouringDiscrepancy {m : Type u_1} {n : Type u_2} [Fintype m] [Fintype n] {A : Matrix m n ℝ} {χ : n → ℝ} (hχ : IsColouring χ) :
          theorem Komlos.discrepancy_le_iff {m : Type u_1} {n : Type u_2} [Fintype m] [Fintype n] {A : Matrix m n ℝ} {C : ℝ} :
          discrepancy A ≤ C ↔ ∃ (χ : n → ℝ), IsColouring χ ∧ colouringDiscrepancy A χ ≤ C

          The discrepancy of A is at most C exactly when some colouring has discrepancy at most C: the infimum over the finitely many colourings is attained.