Midpoint subdivision of an intrinsic two-complex #
This file constructs the intrinsic 1-to-4 subdivision used to make the source of Moise's PL-approximation theorem fine. A new vertex is attached to every old edge. Each old triangle is then divided into its three corner triangles and its central triangle. Since edge midpoints are indexed by the old edge itself, the construction is automatically coherent across adjacent faces.
Vertices of the midpoint subdivision: old vertices and one new vertex for every old edge.
Equations
- K.MidpointVertex = (K.Vertex ⊕ K.Edge)
Instances For
The corner triangle at the i-th vertex of an old face.
Equations
Instances For
The central triangle of the midpoint subdivision of an old face.
Equations
- K.midpointCentralFace t = Finset.image (fun (i : ZMod 3) => Sum.inr (K.faceEdge t i)) Finset.univ
Instances For
The four midpoint triangles belonging to one old face.
Equations
Instances For
All maximal faces in the midpoint subdivision.
Equations
Instances For
The finite abstract complex underlying midpoint subdivision.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every refined face remembers an old face which contains it geometrically.
A chosen parent of a midpoint-subdivision face. Geometric arguments use only
midpointFace_mem_parent; uniqueness is not needed for the adaptive open-complex
construction.
Equations
Instances For
Canonical old barycentric position of a midpoint-subdivision vertex.
Equations
Instances For
Affine barycentric evaluation from midpoint coordinates to old coordinates.
Equations
- K.midpointEvalAffine = (∑ w : K.MidpointVertex, (LinearMap.proj w).smulRight (K.midpointPosition w)).toAffineMap
Instances For
Coefficient of an old vertex recovered from a point of the subdivided simplex.
Equations
- K.midpointRecoverOld p v = max (2 * p v - 1) 0
Instances For
Coefficient of an edge midpoint recovered from old barycentric coordinates. The formula is symmetric in the two endpoints despite the arbitrary endpoint ordering.
Equations
- K.midpointRecoverEdge p e = max 0 (min (2 * p (K.edgeFirst e)) (min (2 * p (K.edgeSecond e)) (2 * (p (K.edgeFirst e) + p (K.edgeSecond e)) - 1)))
Instances For
The inverse-coordinate formula for midpoint evaluation.
Equations
- K.midpointRecover p (Sum.inl v) = K.midpointRecoverOld p v
- K.midpointRecover p (Sum.inr e) = K.midpointRecoverEdge p e
Instances For
Every old edge contained in a face is one of its three cyclic edges.
Every vertex of a refined face is supported on its parent old face.
The affine midpoint evaluation sends a refined face into its parent old face.
Every old vertex of a parent face receives positive weight from at least one vertex of each midpoint child.
A point with strictly positive coordinates on a midpoint child maps to a point with strictly positive coordinates on its parent.
A midpoint child has a unique old parent triangle.
Inside one old parent, a refined edge joining an old vertex to an old-edge midpoint belongs to at most one midpoint child.
An old edge whose midpoint occurs in a midpoint child belongs to that child's parent.
A midpoint child contains at most one old vertex.
Two distinct edges of a triangular face cover the whole face.
Two distinct old edges determine their triangular parent.
In a fixed parent, two distinct midpoint vertices determine at most one corner child.
Within one old parent, the corner children incident to two distinct midpoint vertices form a set of cardinality at most one.
Inside one old parent, a refined edge joining two old-edge midpoints belongs to at most two midpoint children (one corner and the central child).
Globally, a mixed old-vertex/midpoint edge inherits the valence bound of its old edge.
Equality-normalized form of midpoint_mixed_edge_valence, convenient when the two
endpoints of the unordered edge are presented in the opposite order.
Globally, an edge joining two distinct old-edge midpoints is contained in at most two midpoint children. The two old edges determine a single parent triangle.
Midpoint subdivision preserves the surface edge-valence bound.
Midpoint coordinates are uniquely recovered from their old barycentric image.
Explicit inverse coordinates in a corner triangle.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Explicit inverse coordinates in the central triangle.
Equations
Instances For
The four named midpoint children of an old face cover that old face.
The four midpoint triangles cover every old face, hence the whole realization.
Canonical affine map from the midpoint realization into the old realization.
Equations
- K.midpointEval x = ⟨K.midpointEvalAffine ↑x, ⋯⟩
Instances For
The canonical midpoint realization map is a homeomorphism.
Equations
Instances For
The intrinsic 1-to-4 midpoint subdivision, with its canonical faithful realization map.
Equations
- K.midpointSubdivision = { refined := K.midpointComplex, homeo := K.midpointHomeomorph, affineOnFace := ⋯, subordinate := ⋯ }