Documentation

LeanPool.ClassificationOfSurfaces.Moise.FreeTriangle

Free triangles in finite planar meshes #

This file formalizes Moise Chapter 3, Theorem 3 in the form needed by the polygonal Schoenflies induction. A finite planar triangle mesh with infinite frontier has an edge incident to exactly one triangle, hence a free triangle that can be removed by a supported ambient move.

The geometric carrier of a maximal triangle.

Equations
Instances For

    The two-element faces occurring in maximal triangles.

    Equations
    Instances For

      Maximal triangles incident to an edge.

      Equations
      Instances For

        A boundary edge is incident to exactly one maximal triangle.

        Equations
        Instances For

          A weakly free triangle contains an incidence-one edge. This is the boundary-edge precursor used to find Moise's geometrically free triangles; by itself it does not exclude an additional isolated boundary vertex.

          Equations
          Instances For

            The three abstract edges of a maximal triangle.

            Equations
            Instances For

              The boundary edges belonging to a maximal triangle.

              Equations
              Instances For

                All incidence-one edges of a finite triangle mesh.

                Equations
                Instances For

                  The finite union of the geometric carriers of all incidence-one mesh edges.

                  Equations
                  Instances For

                    Index the vertices of a maximal triangle by Fin 3.

                    Equations
                    Instances For

                      The vertices of a maximal planar triangle form an affine basis of the plane.

                      Equations
                      Instances For

                        The edge opposite an indexed vertex of a maximal triangle.

                        Equations
                        Instances For

                          A nonvertex point on the frontier of a maximal triangle lies in one of its edges.

                          At a nonvertex point of an edge, the two barycentric coordinates along the edge are positive.

                          A nondegenerate closed triangle is the closure of its Euclidean interior.

                          The interior of a maximal triangle misses the carrier of every proper face of that triangle. The formulation with an arbitrary set of at most two vertices is convenient when restricting a mesh along an existing edge.

                          The interior of every maximal triangle misses every edge carrier of the mesh, whether or not that edge belongs to the triangle.

                          The interior of one maximal triangle misses the full carrier of every distinct maximal triangle.

                          Maximal triangles in a face-to-face mesh have disjoint interiors.

                          Deleting a maximal triangle leaves precisely the closure of the part of the old support outside that triangle. This is the face-to-face form of the elementary observation used in Moise's free-triangle removal: points on a surviving triangle are limits of points in its interior, and the interior of a different maximal triangle misses the deleted carrier.

                          The frontier after deleting a maximal triangle consists of the old frontier away from the triangle together with the exact attachment of the surviving support to that triangle.

                          A neighborhood of a relative interior point of an edge, retaining positivity of all barycentric coordinates tangent to that edge.

                          Equations
                          Instances For
                            theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.TriangleMesh.triangle_inter_eq_edge (M : TriangleMesh) {T U : M.Triangle} (hTU : T U) {e : Finset M.Vertex} (hecard : e.card = 2) (heT : eT) (heU : eU) :
                            T U = e
                            theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.TriangleMesh.oppositeCoord_negative_across_shared_edge (M : TriangleMesh) {T U : M.Triangle} (hTU : T U) {e : Finset M.Vertex} (hecard : e.card = 2) (heT : eT) (heU : eU) (kT kU : Fin 3) (hedgeT : M.oppositeEdgePoints T kT = Finset.image M.position e) (hedgeU : M.oppositeEdgePoints U kU = Finset.image M.position e) {p : Plane} (hpEdge : p (convexHull ) (M.position '' e)) (hpvT : ∀ (i : Fin 3), p M.position (M.orderedVertex T i)) (hpvU : ∀ (i : Fin 3), p M.position (M.orderedVertex U i)) :
                            (M.oppositeCoord T kT) (M.position (M.orderedVertex U kU)) < 0

                            A genuine geometric edge contains infinitely many points.

                            Choose a relative-interior edge point which is not any vertex of the finite mesh.

                            theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.TriangleMesh.edge_eq_of_nonvertex_mem_edgeCarriers (M : TriangleMesh) {e f : Finset M.Vertex} (he : e M.edges) (hf : f M.edges) {p : Plane} (hpe : p (convexHull ) (M.position '' e)) (hpf : p (convexHull ) (M.position '' f)) (hpv : ∀ (v : M.Vertex), p M.position v) :
                            e = f

                            Two mesh edges containing the same nonvertex point are the same edge.

                            Edge carriers in a face-to-face mesh meet in exactly the carrier of their common vertices.

                            A used mesh vertex lying on an edge carrier is one of that edge's abstract endpoints.

                            theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.TriangleMesh.incidentTriangle_eq_of_ne (M : TriangleMesh) {e t u v : Finset M.Vertex} (hecard : e.card = 2) (ht : t M.incidentTriangles e) (hu : u M.incidentTriangles e) (hv : v M.incidentTriangles e) (hut : u t) (hvt : v t) :
                            u = v

                            In a face-to-face planar mesh, once one incident triangle is fixed there is at most one other triangle incident to the same edge.

                            Every geometric edge of a face-to-face planar mesh is incident to at most two triangles.

                            theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.TriangleMesh.edge_subset_of_nonvertex_mem_triangleCarrier (M : TriangleMesh) {e t u : Finset M.Vertex} {p : Plane} (hecard : e.card = 2) (het : et) (ht : t M.triangles) (hu : u M.triangles) (hpEdge : p (convexHull ) (M.position '' e)) (hpU : p M.triangleCarrier u) (hpv : ∀ (v : M.Vertex), p M.position v) :
                            eu

                            If a nonvertex point of an edge of t also belongs to u, then u contains the whole edge. This is the face-to-face property upgraded from geometry to incidence.

                            Every nonvertex point of an incidence-one edge lies on the support frontier.

                            The whole carrier of an incidence-one edge lies in the support frontier, including endpoints.

                            A non-boundary edge of a maximal triangle has exactly two incident triangles.

                            Two maximal triangles are edge-neighbors if they contain a common two-vertex face.

                            Equations
                            Instances For

                              A triangle with an edge-neighbor cannot have all three edges on the boundary.

                              theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.TriangleMesh.mem_interior_union_triangleCarrier_of_shared_edge (M : TriangleMesh) {T U : M.Triangle} (hTU : T U) {e : Finset M.Vertex} (hecard : e.card = 2) (heT : eT) (heU : eU) {p : Plane} (hpEdge : p (convexHull ) (M.position '' e)) (hpvT : ∀ (i : Fin 3), p M.position (M.orderedVertex T i)) (hpvU : ∀ (i : Fin 3), p M.position (M.orderedVertex U i)) :

                              Two distinct face-to-face triangles fill a neighborhood of every nonvertex point of their common edge.

                              theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.TriangleMesh.mem_interior_union_triangleCarrier_of_shared_edge_of_not_mem_edgeVertices (M : TriangleMesh) {T U : M.Triangle} (hTU : T U) {e : Finset M.Vertex} (hecard : e.card = 2) (heT : eT) (heU : eU) {p : Plane} (hpEdge : p (convexHull ) (M.position '' e)) (hpNotVertices : pM.position '' e) :

                              The shared-edge neighborhood theorem only needs the point to avoid the two endpoints of the common edge; unrelated retained mesh vertices are irrelevant.

                              Every non-endpoint point of a non-boundary mesh edge is interior to the mesh support.

                              Every nonvertex point of the support frontier lies on an incidence-one mesh edge.

                              Away from mesh vertices, a triangle's frontier trace is exactly the union of its incidence-one edges. Extra isolated frontier vertices are precisely the obstruction addressed by Moise's cutting induction.

                              No mesh vertex contributes an isolated point to this triangle's frontier trace.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For

                                An isolated point in a triangle's frontier trace must be one of the triangle's own vertices. This remains valid when the mesh vertex type contains unused retained vertices.

                                If two edges of a maximal triangle are boundary edges, every frontier vertex on that triangle lies on one of them.

                                An infinite frontier of a finite face-to-face planar mesh contains a boundary edge. This is the weak free-triangle existence theorem used at the start of Moise's finite induction.