Homotopy invariance: the 2D grid argument (CC6) #
Unit: paths-and-integrals (docs/design/paths-and-integrals.md §5). A primitive of η along a
continuous homotopy square exists (hand-rolled grid via mathlib's 2D Lebesgue-number lemma
exists_monotone_Icc_subset_open_cover_unitInterval_prod_self), subsuming both rel-endpoint and
free-loop homotopy invariance of pathIntegral.
Main declarations:
RS.gridK H— the clamped mapℝ × ℝ → Xassociated toH : C(I × I, X).RS.GridChain H,RS.exists_gridChain— the 2D chart-ball subdivision.RS.exists_primitive_along_square— existence of a primitive along the (clamped) square.RS.pathIntegral_congr_homotopic,RS.pathIntegralQ,RS.pathIntegral_congr_freeHomotopic,RS.pathIntegral_eq_of_simplyConnected,RS.period_eq_zero_of_homotopic_refl.
The clamped map of a homotopy square #
The map ℝ × ℝ → X obtained by clamping both coordinates of H : C(I × I, X) into [0,1].
Equations
- RS.gridK H p = H (Set.projIcc 0 1 RS.gridK._proof_1 p.1, Set.projIcc 0 1 RS.gridK._proof_1 p.2)
Instances For
The 2D chart-ball subdivision #
A grid subdivision of [0,1]² with chart-and-ball data adapted to H: on each cell
Icc (t j) (t (j+1)) ×ˢ Icc (t k) (t (k+1)), gridK H stays inside a single chart-ball.
- m : ℕ
The number of subdivisions in the homotopy direction.
The subdivision times.
- e : ℕ → ℕ → OpenPartialHomeomorph X ℂ
The chart used on each square of the grid.
The centre of each square's disc.
The radius of each square's disc.
Instances For
Product hcov/preconnectedness helpers (the only genuinely new bookkeeping vs 1D) #
Row assembly (inner induction) #
Column stacking (outer induction) and the square theorem #
A primitive of η along a continuous square H : C(I × I, X) exists (along the clamped
map on all of ℝ × ℝ).
Consequences: homotopy invariance of pathIntegral #
Descent of the integral to homotopy classes.
Equations
- RS.pathIntegralQ η q = Quotient.liftOn q (fun (x_1 : Path x y) => RS.pathIntegral x_1 η) ⋯
Instances For
Free homotopy of loops (moving basepoint) preserves periods.