Finite line-arrangement subdivisions of plane graphs #
This file supplies the source-side subdivision used in Moise Chapter 6, Theorem 2. A finite plane graph is encoded as one auxiliary broken line which traverses every edge (with harmless connector segments between edges). The line arrangement of that auxiliary chain resolves every source edge. Keeping only arrangement faces subordinate to an original face produces an honest subdivision of the graph.
The EdgeFace declaration.
Instances For
The edgeEquiv declaration.
Equations
Instances For
The edgeAt declaration.
Instances For
The vertexEquiv declaration.
Equations
Instances For
The vertexAt declaration.
Equations
- K.vertexAt i = K.vertexEquiv.symm i
Instances For
The edgeFirst declaration.
Instances For
The edgeSecond declaration.
Equations
- K.edgeSecond i = ⋯.choose
Instances For
Affine coordinate from 0 to 1 on an enumerated source edge.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The auxiliary chain has one genuine edge segment at every even index; odd segments merely
connect one enumerated edge to the next and are discarded by subordinateTo.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The edgeChainIndex declaration.
Equations
- K.edgeChainIndex i = ⟨2 * ↑i, ⋯⟩
Instances For
The ambient arrangement generated by all graph edges.
Equations
Instances For
The arrangement faces subordinate to the original graph.
Equations
Instances For
Arbitrarily fine marked arrangements #
The EdgeSample declaration.
Equations
- K.EdgeSample cuts = (Fin (Fintype.card K.EdgeFace) × Fin (cuts + 2))
Instances For
The edgeSampleEquiv declaration.
Equations
- K.edgeSampleEquiv cuts = Fintype.equivFin (K.EdgeSample cuts)
Instances For
The edgeSamplePoint declaration.
Equations
- K.edgeSamplePoint cuts s = (AffineMap.lineMap (K.position (K.edgeFirst s.1)) (K.position (K.edgeSecond s.1))) (↑↑s.2 / (↑cuts + 1))
Instances For
The auxiliary edge chain enlarged by cuts equally spaced interior marks on every edge.
The marks need not occur consecutively: their two coordinate lines are what refine the ambient
arrangement.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The sampledEdgeChainSampleIndex declaration.
Equations
- K.sampledEdgeChainSampleIndex cuts s = ⟨2 * Fintype.card K.EdgeFace + ↑((K.edgeSampleEquiv cuts) s), ⋯⟩
Instances For
Every arrangement face lies wholly on one side of every rational mark on an original edge, when measured in that edge's affine coordinate.
The sampledEdgeChainIndex declaration.
Equations
- K.sampledEdgeChainIndex cuts i = ⟨2 * ↑i, ⋯⟩
Instances For
The sampledEdgeArrangement declaration.
Equations
- K.sampledEdgeArrangement cuts = (K.sampledEdgeChain cuts).arrangementMesh.toPlaneComplex
Instances For
The sampledEdgeSubdivision declaration.
Equations
- K.sampledEdgeSubdivision cuts = (K.sampledEdgeArrangement cuts).subordinateTo K
Instances For
Every point of an original graph face lies in a sampled-subdivision face contained in that same original face.
Every original vertex position which lies in the graph support becomes an actual zero-face
of the sampled subdivision. The extra original-vertex marks in sampledEdgeChain ensure this
even when the original abstract vertex was not itself used by a face.
A positive common upper bound for the lengths of all enumerated edges.
Equations
- K.edgeLengthBound = 1 + ∑ i : Fin (Fintype.card K.EdgeFace), dist (K.position (K.edgeFirst i)) (K.position (K.edgeSecond i))
Instances For
Heine--Cantor plus the marked line arrangement: every finite embedded graph has a subordinate subdivision whose faces have arbitrarily small image diameter under a continuous map.