Brouwer fixed-point theorem for the closed unit ball in
ProvedAGT.brouwer_fixed_point_unitBallBrouwer's fixed-point theorem for the closed unit ball. Let and let
be the closed unit ball of Euclidean -space. If is continuous, then has a fixed point:
This is the topological core of Brouwer's theorem (Brouwer, 1911). The general form for an arbitrary nonempty compact convex subset of a finite-dimensional real normed space (AGT.brouwer_fixed_point, the Brouwer milestone of the mission Algorithmic Game Theory I) reduces to this special case: after identifying the ambient space with , the nearest-point projection is a nonexpansive retraction, so a fixed point of the rescaled map on , where , is a fixed point of on . Conversely the ball is itself compact and convex, so the two statements are equivalent; this one isolates the part that needs a genuinely topological or combinatorial argument (Sperner's lemma, the no-retraction theorem via homology or Milnor's analytic argument, the Hex theorem, …), none of which is presently in Mathlib.
A note on the hypotheses. Continuity is only required on the ball and the values of outside the ball are irrelevant. The case is included: is a single point, the ball is that point, and it is trivially fixed. No nonemptiness hypothesis is needed because the closed unit ball is never empty.
Formalization Note. The ambient space is EuclideanSpace ℝ (Fin n), i.e. with the norm, and the ball is Metric.closedBall 0 1. The map is given as a total function together with ContinuousOn f (closedBall 0 1) and Set.MapsTo f (closedBall 0 1) (closedBall 0 1), matching the conventions of the parent statement AGT.brouwer_fixed_point.
import Mathlib.Analysis.InnerProductSpace.PiL2
namespace AGT
/-- **Brouwer fixed-point theorem for the closed unit ball.** Every continuous
self-map of the closed unit ball of Euclidean space `ℝⁿ` has a fixed point.
This is the topological core of Brouwer's theorem: the general statement for
nonempty compact convex sets reduces to it by the nearest-point retraction. -/
theorem brouwer_fixed_point_unitBall (n : ℕ)
(f : EuclideanSpace ℝ (Fin n) → EuclideanSpace ℝ (Fin n))
(hf : ContinuousOn f (Metric.closedBall 0 1))
(hfB : Set.MapsTo f (Metric.closedBall 0 1) (Metric.closedBall 0 1)) :
∃ x ∈ Metric.closedBall (0 : EuclideanSpace ℝ (Fin n)) 1, f x = x := by
sorry
end AGT