EconCSLib.Math.FixedPoint.Brouwer #
Brouwer's fixed-point theorem for self-maps of the standard simplex, proved via Scarf's combinatorial lemma.
Main result #
Brouwer— every continuous mapf : stdSimplex ℝ (Fin n) → stdSimplex ℝ (Fin n)has a fixed point.
Setup #
The proof works by discrete approximation. For each level l : ℕ+, define the
discrete triangulation lattice
TT n l = { x : Πₗ (_ : Fin n), Fin (l+1) | ∑ i, (x i : ℕ) = l }
Each element of TT n l is a tuple of nonneg integers summing to l, which embeds
into the standard simplex via TTtostdSimplex x j = x j / l.
The instance TT.ILO : IndexedLOrder (Fin n) (TT n l) gives TT n l a family of
linear orders indexed by Fin n: for direction i, the order on TT n l is the
lexicographic order on (x i, x).
Proof strategy #
Coloring (
Fcolor): For eachx : TT n l, pick a coordinatejwhere(f x)_j ≥ x_j— i.e.,fmovesxin thej-th direction. This is well-defined since∑ x j = 1 = ∑ (f x) jforces at least one coordinate to increase.Scarf's lemma (
TT.ILO.Scarf): Applied with the coloringFcolor, yields a colorful room(σ, C)at levell— a set ofnlattice points covering allndirections.Limit (
room_seq,hpkg): Asl → ∞, extract a subsequence of colorful rooms viaexists_subseq_constant_of_finite_image(pigeonhole on the finite color setC), then use compactness of the simplex to obtain a convergent subsequence of the representative room points.Fixed point: The limit point
zsatisfiesf(z) ≥ zcoordinatewise (by passing the coloring property through the limit). Since∑ z_j = 1 = ∑ f(z)_j, coordinatewise inequality forcesf(z) = z.
References #
- Brouwer, L. E. J., "Über Abbildung von Mannigfaltigkeiten", Math. Ann. 71 (1912).
- Scarf, H. E., "The Computation of Economic Equilibria", Yale University Press, 1973.
- Todd, M. J., "The Computation of Fixed Points and Applications", Lecture Notes in Economics and Mathematical Systems 124, Springer, 1976.
A dependent product of finite, indexed by finite, is a finite.
Instances For
Equations
- TT.CoestdSimplex n l = { coe := TTtostdSimplex }
Equations
- stdSimplex.pick x y = Classical.choice ⋯
Instances For
Equations
- Fcolor f x = ↑(stdSimplex.pick (TTtostdSimplex x) (f (TTtostdSimplex x)))
Instances For
Equations
- room_seq f l' = Classical.choice ⋯
Instances For
Equations
- room_point_seq f l' = ↑(IndexedLOrder.pick_colorful_point ⋯)
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- hpkg f = Classical.choice ⋯