Documentation

EconCSLib.Math.FixedPoint.KKM

EconCSLib.Math.FixedPoint.KKM #

The Knaster–Kuratowski–Mazurkiewicz (KKM) fixed-point lemma and its variants.

The KKM lemma is a fundamental result in combinatorial topology with broad applications in game theory, economics, and fair division. The open-cover variant stated here is the topological engine of Stromquist's proof of envy-free existence (Stromquist, "How to Cut a Cake Fairly", Amer. Math. Monthly 87, 1980, pp. 640–644).

Setup #

We work with the standard (n-1)-simplex

  stdSimplex  (Fin n) = { x : Fin n | 0xᵢ for all i, ∑ xᵢ = 1 }

inside Fin n with the subspace topology. The face opposite vertex i is

  simplexFaceOpp i = { xstdSimplex  (Fin n) | xᵢ = 0 }

the sub-face where coordinate i is zero. In Stromquist's notation, simplexFaceOpp i is the face Sᵢ where the i-th piece of cake is empty.

Main results #

Proof strategy #

kkm_closed_cover is proved via Brouwer's fixed-point theorem (EconCSLib.Math.FixedPoint.Brouwer): assuming no common intersection point exists, construct a continuous self-map of the simplex that pushes each point away from the closed sets it misses (using Metric.infDist), apply Brouwer to get a fixed point, and derive a contradiction via the KKM combinatorial condition.

kkm_open_cover reduces to kkm_closed_cover via a partition of unity argument: obtain continuous functions φ i : C(Fin n → ℝ, ℝ) subordinate to U i (via exists_continuous_sum_one_of_isOpen_isCompact) with tsupport (φ i) ⊆ U i and ∑ i, φ i = 1 on the simplex. Define F j = stdSimplex ∩ {x | ∀ k, φ k xφ j x}. Each F j is closed; the KKM condition holds because for x ∈ face(σ) the face- avoidance hypothesis forces φ k x = 0 for kσ, so some jσ attains the max. Applying kkm_closed_cover yields x with φ j x = 1/n > 0 for every j, hence xtsupport (φ j) ⊆ U j.

References #

Faces of the standard simplex #

def simplexFaceOpp {n : } (i : Fin n) :
Set (Fin n)

The face of the standard simplex opposite vertex i: the set of simplex points whose i-th coordinate is zero.

In cake-cutting language (Stromquist 1980): simplexFaceOpp i is the face Sᵢ consisting of all divisions where the i-th piece has measure zero (is "empty"). The KKM open-cover condition requires UᵢsimplexFaceOpp i = ∅ — no division in Uᵢ has an empty i-th piece.

Equations
Instances For

    KKM combinatorial condition #

    def IsKKMCover {n : } (F : Fin nSet (Fin n)) :

    The KKM condition for a cover F : Fin nSet _ of the standard simplex: for each subset σFin n, the face of the simplex supported on σ (points with zero weight outside σ) is covered by ⋃_{i ∈ σ} F i.

    This is the combinatorial heart of the KKM lemma: each face is covered by the subfamily indexed by that face's vertices.

    Equations
    Instances For

      Classical KKM lemma #

      theorem kkm_closed_cover {n : } (hn : 0 < n) (F : Fin nSet (Fin n)) (hclosed : ∀ (i : Fin n), IsClosed (F i)) (hkkm : IsKKMCover F) :
      xstdSimplex (Fin n), ∀ (i : Fin n), x F i

      Knaster–Kuratowski–Mazurkiewicz lemma (closed-cover version).

      If the standard (n-1)-simplex stdSimplex (Fin n) is covered by n closed sets F 0, …, F (n-1) satisfying the KKM combinatorial condition (IsKKMCover F), then their common intersection with the simplex is nonempty.

      Proof: By contradiction using Brouwer's fixed-point theorem. Assuming no common intersection, define g(x)(j) = (x j + infDist x (F j)) / (1 + D(x)) where D(x) = ∑ j, infDist x (F j) > 0. Then g is a continuous self-map of the simplex with no fixed point (the fixed-point equation forces D(x₀) = 0 via the KKM condition), contradicting Brouwer.

      Open-cover variant (Stromquist's lemma) #

      theorem kkm_open_cover {n : } (hn : 0 < n) (U : Fin nSet (Fin n)) (hopen : ∀ (i : Fin n), IsOpen (U i)) (hface : ∀ (i : Fin n), simplexFaceOpp i (U i)) (hcover : stdSimplex (Fin n) ⋃ (i : Fin n), U i) :
      xstdSimplex (Fin n), ∀ (i : Fin n), x U i

      KKM lemma — open-cover variant (Stromquist 1980, p.642).

      If the standard (n-1)-simplex is covered by n open sets U 0, …, U (n-1) such that no U i intersects the face simplexFaceOpp i (where coordinate i is zero), then some point of the simplex lies in every U i.

      This is the topological engine of Stromquist's EF existence proof: the U i are the "unique preference" unions (sets of divisions where some player uniquely prefers piece i), and the point in ⋂ᵢ Uᵢ is the fair division.

      Proof: Reduce to kkm_closed_cover via a partition of unity. Obtain φ i : C(Fin n → ℝ, ℝ) with tsupport (φ i) ⊆ U i and ∑ i, φ i = 1 on the simplex (using exists_continuous_sum_one_of_isOpen_isCompact). Set F j = stdSimplex ∩ {x | ∀ k, φ k xφ j x} (closed). For x ∈ face(σ): φ k x = 0 for kσ (by face-avoidance), so the max is attained by some jσ, giving xF j. Hence IsKKMCover F holds. The fixed point x from kkm_closed_cover satisfies φ j x = 1/n > 0 for all j, so xsupport (φ j) ⊆ tsupport (φ j) ⊆ U j.