FormalConjectures/Wikipedia/KomlosConjecture.lean

GitHub source file

Explanation legend Lean4 Domain Explanation Language (L4DEL)

L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.

L4DEL
Lean4 Domain Explanation Language

Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.

Project sources: Pinned project documentation, Formal Conjectures paper, arXiv v1

3 declarations, 2 contain sorry, 0 declared as axioms

Komlós conjecture

The Komlós conjecture in discrepancy theory: there is a universal constant $K$ such that for all $n, m$ and all vectors $v\_1, \dots, v\_n \in \mathbb{R}^m$ with $\|v\_i\|\_2 \le 1$, there exist signs $\varepsilon\_i \in \{-1, +1\}$ such that $$\left\|\sum\_{i=1}^n \varepsilon\_i v\_i\right\|\_\infty \le K.$$

For a long time the best known bound was due to Banaszczyk, who proved that one can always achieve $O(\sqrt{\log n})$. The Beck–Fiala theorem on the discrepancy of sparse set systems is a special case (up to scaling), and the conjecture implies the Beck–Fiala conjecture that set systems of degree $t$ have discrepancy $O(\sqrt{t})$.

The conjecture was proved in September 2026 by Guo, Fang and Lu with $K = 3\sqrt{2\pi}$. Karingula and Lovett gave an elementary proof with $K = 36$. A formalisation of their proof is recorded in the formal_proof attributes below.

References:

Imports (1)
  1. theorem KomlosConjecture.komlos_conjecture sorry line 66 source

    depends on sorry what this means

    Statement uses: Exists, Real, And, LT.lt, OfNat.ofNat, Nat, Fin, LE.le, Finset.sum, Finset.univ, HPow.hPow, Or, Eq, Neg.neg, abs, HMul.hMul

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    36 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

  2. theorem KomlosConjecture.komlos_conjecture.variants.banaszczyk sorry line 89 source

    depends on sorry what this means

    Statement uses: Exists, Real, And, LT.lt, OfNat.ofNat, Nat, Fin, LE.le, Finset.sum, Finset.univ, HPow.hPow, Or, Eq, Neg.neg, abs, HMul.hMul, Real.sqrt, Real.log, HAdd.hAdd

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    50 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

  3. theorem KomlosConjecture.komlos_conjecture.variants.zero_vectors Sanity check: with no vectors at all ($n = 0$), the empty signed sum is $0$ in every coordinate, so any constant bound holds line 101 source

    Source documentation

    Sanity check: with no vectors at all ($n = 0$), the empty signed sum is $0$ in every coordinate, so any constant bound holds.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Nat, Fin, OfNat.ofNat, Real, Exists, And, Or, Eq, Neg.neg, LE.le, abs, Finset.sum, Finset.univ, HMul.hMul

    Proof uses: Exists.intro, Fin.elim0, And.intro, of_eq_true, Eq.trans, True, forall_congr, congrFun', congrArg, Finset.sum_congr, EmptyCollection.emptyCollection, Finset, Finset.univ_eq_empty, Membership.mem, Eq.refl, abs_zero, implies_true

    40 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem komlos_conjecture.variants.zero_vectors (m : ℕ) (v : Fin 0 → Fin m → ℝ) :
        ∃ ε : Fin 0 → ℝ, (∀ i, ε i = 1 ∨ ε i = -1) ∧
          ∀ j, |∑ i, ε i * v i j| ≤ 1 :=
    …