Coning a subdivided triangle boundary #
This file contains the finite geometry used in Moise Chapter 5. The central observation is that radial segments from an interior point of a convex set meet only as dictated by their endpoints on the frontier. It is the face-to-face lemma behind the cone extension of a PL map on a triangle boundary.
A nondegenerate plane triangle has infinitely many interior points.
An interior cone point can be chosen away from any prescribed finite family of points.
Every point of a compact convex body lies on a radial segment from an interior point to the frontier.
Two radial segments from an interior point of a convex set cannot share a non-central point unless their frontier endpoints agree.
Coning preserves a face-to-face intersection when the base faces lie in the frontier of a convex set and the cone point lies in its interior.
The mixed cone/base face intersection used when exactly one face contains the cone point.
Cone/cone intersection, including the degenerate case where one base face is empty.
Cone/base intersection, including an empty cone base.
An interior point and the endpoints of a nondegenerate frontier segment are not collinear.
Adding an interior cone point to at most two affinely independent frontier vertices preserves affine independence.
Vertices which actually occur in the geometric support. Passing to this subtype removes
irrelevant vertices that a PlaneComplex is allowed to carry.
Instances For
Equations
The activeEmbedding declaration.
Equations
- K.activeEmbedding = Function.Embedding.subtype fun (v : K.Vertex) => K.position v ∈ K.support
Instances For
The activeSimplexes declaration.
Equations
- K.activeSimplexes = {s : Finset K.ActiveVertex | Finset.map K.activeEmbedding s ∈ K.simplexes}
Instances For
Delete all unused vertices without changing the support or any face geometry.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Removing unused vertices preserves purity of a two-dimensional complex.
A plane complex supported on the frontier of a closed set has no two-dimensional face.
Vertices which occur in at least one abstract face. Unlike ActiveVertex, this removes a
vertex whose geometric position happens to lie in the support without being part of any face.
Instances For
Equations
The usedEmbedding declaration.
Equations
- K.usedEmbedding = Function.Embedding.subtype fun (v : K.Vertex) => ∃ s ∈ K.simplexes, v ∈ s
Instances For
The usedSimplexes declaration.
Equations
- K.usedSimplexes = {s : Finset K.UsedVertex | Finset.map K.usedEmbedding s ∈ K.simplexes}
Instances For
Delete vertices unused by every face, without changing the represented complex.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every face of a complex is represented by an identical geometric face after unused vertices are removed.
Removing vertices unused by every face preserves two-dimensional purity.
Values prescribed on an affinely independent family extend to an affine map of the plane.
Map a one-dimensional complex by a function affine on every face and injective on its support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical barycentric homeomorphism using all simplexes, with no purity hypothesis.
Equations
Instances For
Reposition a plane complex while retaining its abstract simplexes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Preserve barycentric coordinates under a repositioning of a complex.
Equations
- K.repositionHomeomorphAll position' hinj haff hface = K.realizationHomeomorphAll.symm.trans (K.reposition position' hinj haff hface).realizationHomeomorphAll
Instances For
The ambient function underlying barycentric repositioning, set to zero off the source support.
Equations
- K.repositionMap position' hinj haff hface x = if hx : x ∈ K.support then ↑((K.repositionHomeomorphAll position' hinj haff hface) ⟨x, hx⟩) else 0
Instances For
Barycentric repositioning sends every vertex which occurs as a zero-face to its prescribed new position.
Barycentric repositioning is affine on each original face.
Barycentric repositioning is PL on the original complex.
Vertex positions for the cone on K, with none as the cone vertex.
Equations
- K.conePosition c none = c
- K.conePosition c (some v) = K.position v
Instances For
The coneWeights declaration.
Equations
- K.coneWeights z none = 0
- K.coneWeights z (some v) = z v
Instances For
Lift a base face to the non-cone vertices.
Equations
Instances For
Remove the cone vertex from a cone face.
Equations
- K.baseFace t = Finset.filterMap id t ⋯
Instances For
All nonempty faces of cones on the faces of K.
Equations
Instances For
Cone a finite one-dimensional complex supported on the frontier of a convex set.
Equations
- One or more equations did not get rendered due to their size.