Finite surface triangulations #
This finite incidence package is consumed by the cell-complex conversion and fed by the faithful
GeometricTriangulation object through
GeometricTriangulation.toFiniteSurfaceTriangulation. Radó's theorem enters as
moise_triangulation, proved in ClassificationOfSurfaces/Moise/.
An arbitrary FiniteSurfaceTriangulation record does not certify that its incidence data describe
its stored realization. The classification proof therefore starts from GeometricTriangulation
and uses the incidence certificate constructed by its bridge.
An oriented use of an edge in a triangle boundary word.
- pos {α : Type u_1} : α → OrientedEdge α
- neg {α : Type u_1} : α → OrientedEdge α
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The underlying unoriented edge.
Equations
Instances For
Reverse an oriented edge.
Equations
Instances For
Finite combinatorial validity data for the project triangulation object.
This deliberately stays close to what the current PL complex handoff can prove: edges have two vertices, triangles have three vertices, recorded endpoints lie on their edge, and every edge appearing in a triangle boundary is a face of that triangle. Cyclic ordering and quotient-realization geometry are separate theorem boundaries.
- boundary_edge_vertices_subset (t : Triangle) (oe : OrientedEdge Edge) : oe ∈ triangleBoundary t → edgeVertices oe.edge ⊆ triangleVertices t
Instances For
A finite triangulation of a topological surface.
This should eventually be replaced by, or bridged to, the best available mathlib notion of finite simplicial/CW complex realization. For now it records the public API needed by the common triangulation-to-cell-complex bridge: finite incidence data, a topological realization, and a homeomorphism from that realization to the target surface.
- Vertex : Type
The
Vertexdeclaration. - Edge : Type
The
Edgedeclaration. - Triangle : Type
The
Triangledeclaration. - vertexDecidableEq : DecidableEq self.Vertex
- realization : Type
The
realizationdeclaration. - realizationTop : TopologicalSpace self.realization
The
edgeVerticesdeclaration.The
triangleVerticesdeclaration.The
edgeSourcedeclaration.The
edgeTargetdeclaration.- triangleBoundary : self.Triangle → List (OrientedEdge self.Edge)
The
triangleBoundarydeclaration. The
edgeIsBoundarydeclaration.- isSurfaceTriangulation : Valid self.Vertex self.Edge self.Triangle self.edgeVertices self.triangleVertices self.edgeSource self.edgeTarget self.triangleBoundary
- homeomorphSurface : Nonempty (self.realization ≃ₜ S)
Instances For
Number of vertices in a finite surface triangulation.
Equations
Instances For
Number of edges in a finite surface triangulation.
Equations
- T.numEdges = Fintype.card T.Edge
Instances For
Number of triangles in a finite surface triangulation.
Equations
Instances For
Source vertex of an oriented edge occurrence in a triangulation.
Equations
Instances For
Target vertex of an oriented edge occurrence in a triangulation.
Equations
Instances For
A position in one of the stored oriented triangle boundaries.
Equations
- T.BoundaryPosition = ((t : T.Triangle) × Fin (T.triangleBoundary t).length)
Instances For
The oriented edge stored at a triangle-boundary position.
Equations
- o.orientedEdge = (T.triangleBoundary o.fst).get o.snd
Instances For
The unoriented edge stored at a triangle-boundary position.
Equations
- o.edge = o.orientedEdge.edge
Instances For
Two triangles are adjacent when their stored boundaries share an unoriented edge.
Equations
- T.TriangleAdjacent f g = ∃ df ∈ T.triangleBoundary f, ∃ dg ∈ T.triangleBoundary g, df.edge = dg.edge
Instances For
Incidence information needed by the legacy triangulation-to-cell-complex bridge.
edge_valence_le_two is deliberately stated for boundary positions rather than merely named
edges. This detects repeated uses inside one boundary word as well as uses by different triangles.
The separate edge_used field is necessary because the legacy triangulation type can contain
named edges which occur in no triangle boundary. Genuine geometric triangulations will discharge
both fields from their generated two-vertex faces.
- boundary_rotated_injective (f g : T.Triangle) : T.triangleBoundary f ~r T.triangleBoundary g → f = g
- edge_used (e : T.Edge) : ∃ (o : T.BoundaryPosition), o.edge = e
- dual_connected (f g : T.Triangle) : Relation.ReflTransGen T.TriangleAdjacent f g
Instances For
Forget the target-space homeomorphism and retain the intrinsic two-complex.
Equations
- T.toIntrinsic = { Vertex := T.Vertex, vertexFintype := T.vertexFintype, vertexDecidableEq := T.vertexDecidableEq, faces := T.faces, faces_card := ⋯ }
Instances For
Source vertex of an oriented geometric edge.
Equations
Instances For
Target vertex of an oriented geometric edge.
Equations
Instances For
The globally named edge between two consecutive cyclic vertices of a face, signed so that its orientation follows the cyclic order of that face.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cyclic signed boundary of a geometric triangle. Slot i traverses from the i-th
cyclic face vertex to the next one.
Equations
- T.triangleBoundary t = List.ofFn fun (i : Fin 3) => T.orientedFaceEdge t ((ZMod.finEquiv 3) i)
Instances For
Every cyclic triangle boundary has exactly three occurrences.
Reading a cyclic triangle boundary recovers the correspondingly indexed oriented face edge.
The underlying edge at a cyclic boundary position is the intrinsic edge with the same index.
The source of a boundary occurrence is its cyclic face vertex.
The target of a boundary occurrence is the next cyclic face vertex.
A named geometric edge lies in the underlying triangle-boundary list exactly when it is a face of that triangle.
Distinct cyclic positions in one face name distinct underlying edges.
Each geometric edge occurs at most once in a triangle's canonical boundary list.
Package a geometric triangulation as the project's FiniteSurfaceTriangulation object.
This is the compatibility bridge: downstream consumers (the cell-complex conversion and the Gallier--Xu route) keep their interface, while the triangulation content now lives in the faithful geometric object.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The bridge realizes the ambient space.
A geometric surface-incidence certificate supplies every incidence obligation required by the legacy finite triangulation bridge.
The compact bordered extension of Radó's theorem. Moise, Geometric Topology in Dimensions 2 and 3, Ch. 8, Thm. 3 proves the boundaryless case; the proof assembled here carries the same induction through half-disk charts while preserving the manifold-boundary stratum.
Every compact connected surface in the Eval sense admits a finite geometric triangulation — a homeomorphism onto the realization of a finite two-dimensional simplicial complex.
Semantic anchors: the conclusion implies CompactSpace S and T2Space S
(GeometricTriangulation.compactSpace, GeometricTriangulation.t2Space), and is refuted for
non-compact spaces (Moise/Countermodels.lean), so it cannot be discharged by a junk witness.
The proof is the assembled boundary-preserving Radó chart induction
(Moise.moise_triangulation_of_boundaries).
Radó's theorem with its conclusion expanded into the finite vertex type, the family of
three-vertex faces, and the homeomorphism from their barycentric realization. This is a
definition-audit surface for moise_triangulation, not a second proof.
The named geometric triangulation produced for a compact connected Eval surface.
Equations
Instances For
The Radó triangulation carries nonempty-face, edge-valence, and dual-connectivity data.
The named finite surface triangulation produced for a compact connected Eval surface, obtained
from the geometric triangulation boundary moise_triangulation through the compatibility
bridge.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The compatibility triangulation inherits the complete incidence certificate.
The named compact connected Eval surface triangulation realizes the ambient surface.
Moise/PL theorem boundary: compact connected Eval surfaces admit finite triangulations.