NRR.Geometry.ConvexBody — bundled compact convex bodies with nonempty interior #
This module introduces the central bundled object
NRR.Geometry.ConvexBody E
a compact convex subset of a topological ℝ-module E with nonempty interior.
downstream modules are expected to use ConvexBody through the accessor/extensionality API below
without ever unfolding its fields.
Relationship to Mathlib's ConvexBody #
Mathlib already ships a bundled
_root_.ConvexBody V -- carrier, convex', isCompact', nonempty'
(see Mathlib.Analysis.Convex.Body), but its solidity requirement is only that the carrier be
nonempty (nonempty'), not that the interior be nonempty. The fair-partition
development needs the stronger solid condition (nonempty interior, hence positive
Lebesgue measure in finite dimensions), so we introduce a dedicated bundled structure whose
proof field is interior_nonempty'. To avoid clashing with the root ConvexBody used
elsewhere in the library, this structure lives in the NRR.Geometry namespace; the two
never collide because that namespace is not opened by the modules that use Mathlib's
_root_.ConvexBody.
Design notes #
- Typeclasses are kept minimal: the whole API only needs
[TopologicalSpace E],[AddCommMonoid E],[Module ℝ E](enough to stateConvex ℝ,IsCompact, andinterior). Finite dimensionality / inner-product structure is intentionally not required here and is added by downstream modules where genuinely needed. - We coerce to
Set E(via aCoeinstance) and provide aMembershipinstance, but do not coerceConvexBodyto a type. - No area/perimeter/measure fields, and no separate full-dimensionality field: nonempty interior already encodes solidity.
Import policy #
Following the library-wide policy fixed in AI_CONTEXT.md, this file
uses the whole-library import Mathlib. The concrete dependencies are lightweight
(Convex, IsCompact, interior, Set membership/extensionality).
A convex body (in the solid sense used throughout this development): a compact convex
subset of a topological ℝ-module with nonempty interior.
- carrier : Set E
The underlying set of points of the convex body.
The carrier is convex.
The carrier is compact.
The carrier has nonempty interior (solidity).
Instances For
Coercion of a convex body to its underlying set of points.
Equations
Membership x ∈ K unfolds to membership in the carrier.
Equations
- NRR.Geometry.ConvexBody.instMembership = { mem := fun (K : NRR.Geometry.ConvexBody E) (x : E) => x ∈ K.carrier }
The carrier of a convex body is convex.
The carrier of a convex body is compact.
The carrier of a convex body has nonempty interior.
A convex body is nonempty (its interior is nonempty and the interior is contained in it).
Extensionality: two convex bodies with equal carriers are equal. The remaining proof fields are equal by proof irrelevance.
Membership extensionality: two convex bodies are equal iff they have the same points.