A continuous retraction of the ball onto the sphere can be replaced by a smooth one
ProvedAGT.exists_contDiff_retraction_unitBallSmoothing a retraction (Milnor 1978, Section 2; also Rogers 1980). Let be the closed unit ball and its boundary sphere. If there is a continuous map with for all , then there is a map with
This is the approximation step in Milnor's analytic proof of the no-retraction theorem (and hence of Brouwer's fixed-point theorem): it reduces the continuous statement to the smooth one, AGT.no_contDiff_retraction_unitBall, where calculus (the inverse function theorem and the change-of-variables formula) can be applied. The standard construction extends radially to , approximates the extension uniformly by a polynomial map (Stone–Weierstrass), normalizes to unit length, and patches with a smooth cutoff so that the map is exactly the identity on a neighbourhood of the sphere.
A note on the hypotheses. For the hypotheses are contradictory (the ball is a point and the sphere is empty), so the statement holds vacuously; nothing else is assumed. Only continuity of on the ball is used.
Formalization Note. The ambient space is EuclideanSpace ℝ (Fin n). The input retraction is a total function with ContinuousOn r (closedBall 0 1), Set.MapsTo r (closedBall 0 1) (sphere 0 1) and the fixed-point condition; the output is a total function g with ContDiff ℝ ⊤ g (here ⊤ : ℕ∞, i.e. ) and the same two conditions.
import Mathlib.Analysis.InnerProductSpace.PiL2 import Mathlib.Analysis.Calculus.ContDiff.Basic
namespace AGT
/-- **Smoothing a retraction** (Milnor 1978, §2). If the closed unit ball of
`ℝⁿ` admits a continuous retraction onto its boundary sphere, then it admits a
smooth one, defined on all of `ℝⁿ`. -/
theorem exists_contDiff_retraction_unitBall (n : ℕ)
(r : EuclideanSpace ℝ (Fin n) → EuclideanSpace ℝ (Fin n))
(hr : ContinuousOn r (Metric.closedBall 0 1))
(hrS : Set.MapsTo r (Metric.closedBall 0 1) (Metric.sphere 0 1))
(hfix : ∀ x ∈ Metric.sphere (0 : EuclideanSpace ℝ (Fin n)) 1, r x = x) :
∃ g : EuclideanSpace ℝ (Fin n) → EuclideanSpace ℝ (Fin n),
ContDiff ℝ (⊤ : ℕ∞) g ∧ Set.MapsTo g (Metric.closedBall 0 1) (Metric.sphere 0 1) ∧
∀ x ∈ Metric.sphere (0 : EuclideanSpace ℝ (Fin n)) 1, g x = x := by
sorry
end AGT