NRR.Geometry.ConvexBody — support-function continuity under body parameters #
This module provides the body-parameter continuity API for the support function. the project
established continuity of u ↦ h_K(u) in the direction variable for a fixed body K; here we
package the joint continuity of
(t, u) ↦ h_{K_t}(u)
when a family of convex bodies K : α → ConvexBody E varies continuously in the parameter t,
plus the closure properties (constant, translation, positive scaling) that later
partition-cell / perimeter continuity arguments need.
Mathlib hyperspace / Hausdorff situation #
Mathlib does have a metric-space structure on nonempty compact subsets:
Mathlib.Topology.MetricSpace.HausdorffDistancedefinesEMetric.hausdorffEdistandMetric.hausdorffDiston arbitrary sets, with the standard estimates.Mathlib.Topology.MetricSpace.Closedsupgrades this to bona-fideEMetricSpace (TopologicalSpace.NonemptyCompacts α)(andCompacts,Closeds), andMetric.NonemptyCompacts.dist_eqstates that the resulting metricdistcoincides withMetric.hausdorffDist.
However this instance is an EMetricSpace on NonemptyCompacts, not a ConvexBody-level
topology, and wiring a ConvexBody E → NonemptyCompacts E map plus its induced topology in just to
obtain joint continuity would be a much larger hyperspace development than downstream modules
require.
We therefore take the two-pronged approach the design allows:
Route A (quantitative Hausdorff bound). We prove the sharp Lipschitz-type estimate
|h_K(u) − h_L(u)| ≤ d_H(K, L) · ‖u‖(abs_supportFunction_sub_le_hausdorffDist_mul_norm), which is the bridge to any Hausdorff-metric continuity statement one might want later. It is stated withMetric.hausdorffDiston the underlying sets, the current mathlib name.Route B (abstract family-continuity predicate). We define
SupportFunctionContinuousFamily Kas joint continuity of(t, u) ↦ h_{K_t}(u)and prove the closure properties (const,translate,scalePos) together with the evaluation and unit-direction restriction lemmas. Later constructions can dischargeSupportFunctionContinuousFamilydirectly for whatever concrete family they build.
Public API #
Route A — quantitative Hausdorff estimate #
Route B — abstract family-continuity predicate #
A family of convex bodies K : α → ConvexBody E is a support-function continuous family if
the map (t, u) ↦ h_{K_t}(u) is (jointly) continuous. This is the abstraction downstream
perimeter / partition-cell continuity arguments consume.
Equations
- NRR.Geometry.ConvexBody.SupportFunctionContinuousFamily K = Continuous fun (p : α × E) => (K p.1).supportFunction p.2
Instances For
Evaluation. Unfolding the predicate: joint continuity of (t, u) ↦ h_{K_t}(u).
Constant family. A constant family is a support-function continuous family, by the project's
continuous_supportFunction.
Translated family. Translating a continuous family by a continuous vector field keeps it a
support-function continuous family, using h_{K + a}(u) = ⟪a, u⟫ + h_K(u).
Positively scaled family. Scaling a continuous family by a continuous positive function
keeps it a support-function continuous family, using h_{r K}(u) = r · h_K(u).
Restriction to unit directions. The joint map restricted to the unit sphere
Metric.sphere 0 1 is continuous. (the library has no bespoke sphere type; the ambient unit
sphere is used.)