NRR.Geometry.ConvexBody — algebraic and geometric properties of the support function #
This module strengthens the support-function API introduced in
NRR.Geometry.ConvexBody.SupportFunction. It provides the properties needed for the
later development of width, perimeter, and transformations of convex bodies, so that downstream
files never have to reason directly with sSup.
Contents #
- Attainment / support points —
exists_supportPoint(re-exposed from the base module) andsupportFunction_isMax. - Positive homogeneity —
supportFunction_smul_direction_of_nonneg(@[simp]) and its strictly-positive variantsupportFunction_smul_direction_of_pos. - Subadditivity —
supportFunction_add_direction_le. - Monotonicity —
supportFunction_mono. - Translation —
supportFunction_translate(@[simp]). - Scaling —
supportFunction_scalePos(@[simp]). - Linear equivalence —
supportFunction_imageLinearEquiv, stated via the adjointContinuousLinearMap.adjoint, which is the mathematically correct direction for an inner product space (the naivee.symmform is false unlesseis an isometry). - Boundedness estimates —
supportFunction_le_radiusandsupportFunction_abs_le.
Design notes #
All proofs go through the two order-theoretic interfaces from the base module,
inner_le_supportFunction (upper bound) and supportFunction_le (least upper bound), together
with the attainment lemma exists_supportPoint. No sSup appears in any statement here.
For homogeneity, subadditivity, monotonicity, translation and scaling the ambient space is only assumed to be a real inner product space. The linear-equivalence lemma additionally requires the domain and codomain to be complete (so that the adjoint exists); this is automatic in finite dimensions.
Attainment and support points #
Support maximiser. For every direction u there is a point of K attaining the support
function, and it is a maximiser of x ↦ ⟪x, u⟫ over K.
Positive homogeneity #
Positive homogeneity (nonnegative scalar). h_K(c u) = c · h_K(u) for 0 ≤ c.
Positive homogeneity (positive scalar). h_K(c u) = c · h_K(u) for 0 < c.
Subadditivity #
Subadditivity in the direction. h_K(u + v) ≤ h_K(u) + h_K(v). Note that equality does
not hold in general.
Monotonicity #
Monotonicity. A larger body has a larger support function in every direction.
Translation #
Translation. h_{K + a}(u) = ⟪a, u⟫ + h_K(u).
Scaling #
Positive scaling. h_{r K}(u) = r · h_K(u) for 0 < r.
Linear equivalence #
For an inner product space the correct pullback of the direction is through the adjoint of
the linear map, not e.symm. We state and prove the mathematically correct identity
h_{eK}(u) = h_K(eᵀ u), where eᵀ = ContinuousLinearMap.adjoint (e : E →L[ℝ] F). This requires
E and F to be complete inner product spaces (automatic in finite dimensions).
Image under a continuous linear equivalence. h_{eK}(u) = h_K(eᵀ u), where eᵀ is the
adjoint of e.
Boundedness estimates #
Radius bound. If every point of K has norm at most R, then h_K(u) ≤ R ‖u‖.
Uniform bound. There is a constant C ≥ 0 with |h_K(u)| ≤ C ‖u‖ for all directions
u. This is the estimate needed for continuity/integrability of the support function.