Polygonal arcs from broken lines #
This is the finite-arrangement layer needed between Moise Chapter 6, Theorems 1 and 2. The connectivity theorem produces an arbitrary finite chain of segments. Subdividing a large triangle by the supporting lines of those segments, and by two coordinate lines through every chain vertex, turns all crossings and all chain vertices into vertices of one finite triangle mesh. A simple graph path in the resulting one-skeleton is then a loop-free polygonal arc.
Concrete data carried by a broken-line witness.
Instances For
The start declaration.
Instances For
An auxiliary broken line listing an arbitrary finite family of segments. The prescribed segments occur at the even indices; the odd indices are disposable connectors. This is the common-arrangement input used when several independently constructed polygonal arcs must be viewed in one finite plane complex.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The even index carrying the segment labelled by i.
Equations
- LeanEval.Topology.ClassificationOfSurfaces.Moise.BrokenLineData.segmentFamilyIndex left right i = ⟨2 * ↑((Fintype.equivFin I) i), ⋯⟩
Instances For
The segment at the distinguished even index is exactly the requested family member.
A point on the supporting line of a nondegenerate segment belongs to the segment exactly when its coordinates lie between the endpoint coordinates. Both coordinate hypotheses make the statement symmetric and avoid selecting a preferred nonconstant coordinate in its interface.
The verticalLine declaration.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The horizontalLine declaration.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Coordinate lines force every chain vertex to become an arrangement vertex, including at a collinear turn or a degenerate segment.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The arrangementLines declaration.
Equations
Instances For
A positive radius containing every chain vertex.
Instances For
The enclosingMesh declaration.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The finite line arrangement resolving every segment crossing and chain vertex.
Equations
Instances For
In a triangulation monochromatic for an affine functional, every point of its zero set lies in a face all of whose vertices are zero.
Two monochromatic coordinate lines through a supported point force that point to occur as an actual mesh vertex.
An affine-independent face whose vertices lie on one segment has at most two vertices.
A point in a nonempty face of cardinality at most two lies on a segment joining two of that face's vertices (the two vertices may coincide for a zero-face).
The graph formed by the one-dimensional faces of a plane complex.
Equations
Instances For
Every vertex visited by a one-skeleton walk is geometrically supported, provided the final vertex is an actual zero-face. All earlier vertices occur in an edge of the walk.
The induced subcomplex on the vertices satisfying p. Vertices outside p remain in the
ambient finite type but occur in no face; PlaneComplex.active can remove them when desired.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The subcomplex consisting of exactly those faces whose whole geometric carrier lies in C.
Unlike inducedBy, this is appropriate when C is a nonconvex polygonal set.
Equations
- One or more equations did not get rendered due to their size.
Instances For
All vertices of one simplex lie in one reachability class of the vertex graph.
If the support of a finite plane complex is connected, then any two vertices which actually occur as zero-faces are joined by a path in its one-skeleton.
Every original chain vertex is a vertex of the line-arrangement mesh.
Every point of an original nondegenerate chain segment lies in an arrangement face whose vertices all lie on that segment.
The common arrangement of a finite segment family resolves each requested member into faces contained in that member. Keeping this theorem abstract in the family index prevents clients with dependent finite index types from unfolding their entire enumeration during kernel checking.
The geometric carrier of all listed segments of a finite broken line. Auxiliary line arrangements may contain many additional faces, so this is the carrier relevant to the polygonal object itself.
Instances For
The line arrangement restricted to the actual segments of a finite broken line. This is a canonical finite plane complex even when the listed segments cross or overlap: the ambient line arrangement has already inserted every required intersection vertex.
Equations
Instances For
The canonical complex of a broken line has exactly the union of its listed segments as support.
A canonical arrangement vertex representing an original chain vertex.
Equations
Instances For
The left endpoint of a listed family segment is a canonical vertex of the common arrangement.
The right endpoint of a listed family segment is a canonical vertex of the common arrangement.
The part of the arrangement mesh lying wholly on one original chain segment.
Equations
- B.segmentComplex i = B.arrangementMesh.toPlaneComplex.restrictedTo (segment ℝ (B.vertex i.castSucc) (B.vertex i.succ))
Instances For
The line arrangement turns every original chain segment into a path in a finite one-skeleton.
Arrangement edges whose geometric segments lie in the prescribed open set.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Concatenating the segment paths gives a walk through the entire broken line; Mathlib's loop-erasure then produces a path with the same endpoints.
A canonical loop-free resolution of the broken line.
Equations
Instances For
The resolvedWalk declaration.
Equations
- B.resolvedWalk = ↑B.resolvedPath
Instances For
Ordered geometric vertices of the resolved polygonal arc.
Equations
- B.resolvedVertex i = B.arrangementMesh.toPlaneComplex.position (B.resolvedWalk.getVert ↑i)
Instances For
Exact face-to-face intersection for the ordered segments of the resolved arc.
The geometric carrier of the selected graph path.
Equations
- B.resolvedCarrier = if x : B.resolvedWalk.length = 0 then {B.resolvedVertex 0} else ⋃ (i : Fin B.resolvedWalk.length), segment ℝ (B.resolvedVertex i.castSucc) (B.resolvedVertex i.succ)
Instances For
The parent-arrangement subcomplex consisting of the chosen path edges and their vertices.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every ordered vertex of the resolved path occurs as a zero-face of the selected complex.
Every ordered path vertex lies in the support of the selected complex.
Affine coordinate from 0 to 1 along one resolved path edge.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The affine coordinate on edge i, shifted to the interval [i,i+1].
Equations
Instances For
The shifted affine edge parameters agree wherever two selected path edges meet.
Piecewise-affine coordinate along the whole resolved arc.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Piecewise-affine straightening of the selected polygonal arc onto the real axis.
Equations
Instances For
The ordered broken-line data underlying the canonical simple graph path.
Equations
- B.resolvedBrokenLine = { n := B.resolvedWalk.length, vertex := B.resolvedVertex, segment_subset := ⋯ }
Instances For
A weak broken line can be resolved into a loop-free path in a finite straight-line graph, with every graph edge contained in the same set. This is the precise polygonal-arc form of Moise Chapter 6, Theorem 1 used by the graph approximation argument.