Documentation

LeanPool.NandakumarRamanaRao.NRR.Geometry.ConvexBody.SupportFunctionTransform

NRR.Geometry.ConvexBody — support-function transformation API #

This module completes the transformation API for the support function of a ConvexBody under

The goal is that later width and perimeter proofs become pure rewriting.

Contents #

Reused results #

Design notes #

All proofs go through the order-theoretic interfaces inner_le_supportFunction (upper bound) and supportFunction_le (least upper bound), together with the attainment lemma exists_supportPoint; no sSup is manipulated directly.

For an inner product space the correct direction-pullback under a linear equivalence is the adjoint, not e.symm. For a linear isometry equivalence the adjoint coincides with e.symm, which is why the clean e.symm formula is available (and proved directly from LinearIsometryEquiv.inner_map_map, needing no completeness hypothesis). The general imageLinearEquiv formula uses ContinuousLinearMap.adjoint and hence requires the spaces to be complete (automatic in finite dimensions).

Import policy #

Only SupportFunctionBasic is imported; it transitively provides the whole ConvexBody, support-function, AffineOps and LinearImage API (and, through Basic, import Mathlib).

Translation (re-exported) #

The translation identity supportFunction (K.translate a) u = ⟪a, u⟫ + supportFunction K u is NRR.Geometry.ConvexBody.supportFunction_translate, proved in SupportFunctionBasic and available through this module's imports. It is not restated here to avoid a duplicate declaration.

Positive scaling of the body #

Positive scaling of the body. h_{rK}(u) = r · h_K(u) for 0 < r.

This is the transformation-API spelling of the base-module lemma supportFunction_scalePos.

Negation / reflection #

The reflection -K of a convex body through the origin, as a convex body with carrier (-·) '' K = -K. Implemented as the image under the negation linear isometry equivalence, so solidity is preserved.

Equations
Instances For
    @[simp]

    Reflection. h_{-K}(u) = h_K(-u).

    Linear isometry equivalence #

    The image of a convex body under a linear isometry equivalence e : E ≃ₗᵢ[ℝ] F, as a convex body with carrier e '' K. Implemented as the image under the underlying continuous linear equivalence e.toContinuousLinearEquiv.

    Equations
    Instances For

      Image under a linear isometry equivalence. h_{eK}(u) = h_K(e⁻¹ u).

      Unlike a general linear equivalence, an isometry pulls the direction back through e.symm, because the adjoint of a linear isometry equivalence is its inverse. No completeness hypothesis is required.

      General continuous linear equivalence (adjoint form) #

      Image under a continuous linear equivalence (adjoint form). h_{eK}(u) = h_K(eᵀ u), where eᵀ = ContinuousLinearMap.adjoint (e : E →L[ℝ] F).

      This is the transformation-API spelling of the base-module lemma supportFunction_imageLinearEquiv. The naive e.symm form is false unless e is an isometry (compare supportFunction_imageLinearIsometryEquiv). Completeness of E and F is required for the adjoint to exist (automatic in finite dimensions).

      Reflection via the linear isometry API #

      For completeness we record that K.neg is the image of K under the negation linear isometry equivalence, so the reflection identity is a special case of the isometry identity.