Documentation

LeanPool.ClassificationOfSurfaces.Moise.ConeExtension

Coning a subdivided triangle boundary #

This file contains the finite geometry used in Moise Chapter 5. The central observation is that radial segments from an interior point of a convex set meet only as dictated by their endpoints on the frontier. It is the face-to-face lemma behind the cone extension of a PL map on a triangle boundary.

A nondegenerate plane triangle has infinitely many interior points.

An interior cone point can be chosen away from any prescribed finite family of points.

theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.exists_frontier_endpoint {S : Set Plane} (hS : Convex S) (hcompact : IsCompact S) {c x : Plane} (hc : c interior S) (hx : x S) (hfrontier : (frontier S).Nonempty) :
yfrontier S, x segment c y

Every point of a compact convex body lies on a radial segment from an interior point to the frontier.

theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.eq_of_mem_segment_interior_frontier {S : Set Plane} (hS : Convex S) {c x y z : Plane} (hc : c interior S) (hx : x frontier S) (hy : y frontier S) (hzx : z segment c x) (hzy : z segment c y) (hzc : z c) :
x = y

Two radial segments from an interior point of a convex set cannot share a non-central point unless their frontier endpoints agree.

Coning preserves a face-to-face intersection when the base faces lie in the frontier of a convex set and the cone point lies in its interior.

The mixed cone/base face intersection used when exactly one face contains the cone point.

Cone/cone intersection, including the degenerate case where one base face is empty.

Cone/base intersection, including an empty cone base.

theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.not_collinear_interior_frontier_segment {S : Set Plane} (hS : Convex S) {c a b : Plane} (hc : c interior S) (ha : a frontier S) (hb : b frontier S) (hab : a b) (hsegment : segment a bfrontier S) :

An interior point and the endpoints of a nondegenerate frontier segment are not collinear.

Adding an interior cone point to at most two affinely independent frontier vertices preserves affine independence.

@[reducible, inline]

Vertices which actually occur in the geometric support. Passing to this subtype removes irrelevant vertices that a PlaneComplex is allowed to carry.

Equations
Instances For

    Delete all unused vertices without changing the support or any face geometry.

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

      Removing unused vertices preserves purity of a two-dimensional complex.

      A plane complex supported on the frontier of a closed set has no two-dimensional face.

      @[reducible, inline]

      Vertices which occur in at least one abstract face. Unlike ActiveVertex, this removes a vertex whose geometric position happens to lie in the support without being part of any face.

      Equations
      Instances For

        Delete vertices unused by every face, without changing the represented complex.

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

          Every face of a complex is represented by an identical geometric face after unused vertices are removed.

          Removing vertices unused by every face preserves two-dimensional purity.

          Values prescribed on an affinely independent family extend to an affine map of the plane.

          noncomputable def LeanEval.Topology.ClassificationOfSurfaces.Moise.PlaneComplex.mapGraph (K : PlaneComplex) (f : PlanePlane) (hvertex : ∀ (v : K.Vertex), K.position v K.support) (hinj : Set.InjOn f K.support) (hgraph : sK.simplexes, s.card 2) (haffine : sK.simplexes, IsAffineOn f (K.cellCarrier s)) :

          Map a one-dimensional complex by a function affine on every face and injective on its support.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.PlaneComplex.mapGraph_cellCarrier (K : PlaneComplex) (f : PlanePlane) (hvertex : ∀ (v : K.Vertex), K.position v K.support) (hinj : Set.InjOn f K.support) (hgraph : sK.simplexes, s.card 2) (haffine : sK.simplexes, IsAffineOn f (K.cellCarrier s)) {s : Finset K.Vertex} (hs : s K.simplexes) :
            (K.mapGraph f hvertex hinj hgraph haffine).cellCarrier s = f '' K.cellCarrier s
            theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.PlaneComplex.mapGraph_support (K : PlaneComplex) (f : PlanePlane) (hvertex : ∀ (v : K.Vertex), K.position v K.support) (hinj : Set.InjOn f K.support) (hgraph : sK.simplexes, s.card 2) (haffine : sK.simplexes, IsAffineOn f (K.cellCarrier s)) :
            (K.mapGraph f hvertex hinj hgraph haffine).support = f '' K.support
            theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.PlaneComplex.mapGraph_baryEval_eq (K : PlaneComplex) (f : PlanePlane) (hvertex : ∀ (v : K.Vertex), K.position v K.support) (hinj : Set.InjOn f K.support) (hgraph : sK.simplexes, s.card 2) (haffine : sK.simplexes, IsAffineOn f (K.cellCarrier s)) {s : Finset K.Vertex} (hs : s K.simplexes) {z : K.Vertex} (hzsupp : vs, z v = 0) (hz0 : ∀ (v : K.Vertex), 0 z v) (hzsum : v : K.Vertex, z v = 1) :
            (K.mapGraph f hvertex hinj hgraph haffine).baryEval z = f (K.baryEval z)

            The canonical barycentric homeomorphism using all simplexes, with no purity hypothesis.

            Equations
            Instances For
              noncomputable def LeanEval.Topology.ClassificationOfSurfaces.Moise.PlaneComplex.reposition (K : PlaneComplex) (position' : K.VertexPlane) (hinj : Function.Injective position') (haff : sK.simplexes, AffineIndependent fun (v : s) => position' v) (hface : sK.simplexes, tK.simplexes, (convexHull ) (position' '' s) (convexHull ) (position' '' t) = (convexHull ) (position' '' ↑(s t))) :

              Reposition a plane complex while retaining its abstract simplexes.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                noncomputable def LeanEval.Topology.ClassificationOfSurfaces.Moise.PlaneComplex.repositionHomeomorphAll (K : PlaneComplex) (position' : K.VertexPlane) (hinj : Function.Injective position') (haff : sK.simplexes, AffineIndependent fun (v : s) => position' v) (hface : sK.simplexes, tK.simplexes, (convexHull ) (position' '' s) (convexHull ) (position' '' t) = (convexHull ) (position' '' ↑(s t))) :
                K.support ≃ₜ (K.reposition position' hinj haff hface).support

                Preserve barycentric coordinates under a repositioning of a complex.

                Equations
                Instances For
                  noncomputable def LeanEval.Topology.ClassificationOfSurfaces.Moise.PlaneComplex.repositionMap (K : PlaneComplex) (position' : K.VertexPlane) (hinj : Function.Injective position') (haff : sK.simplexes, AffineIndependent fun (v : s) => position' v) (hface : sK.simplexes, tK.simplexes, (convexHull ) (position' '' s) (convexHull ) (position' '' t) = (convexHull ) (position' '' ↑(s t))) :

                  The ambient function underlying barycentric repositioning, set to zero off the source support.

                  Equations
                  Instances For
                    theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.PlaneComplex.repositionMap_apply_realization (K : PlaneComplex) (position' : K.VertexPlane) (hinj : Function.Injective position') (haff : sK.simplexes, AffineIndependent fun (v : s) => position' v) (hface : sK.simplexes, tK.simplexes, (convexHull ) (position' '' s) (convexHull ) (position' '' t) = (convexHull ) (position' '' ↑(s t))) (x : (GeometricRealization K.Vertex K.simplexes)) :
                    K.repositionMap position' hinj haff hface (K.baryEval x) = (K.reposition position' hinj haff hface).baryEval x
                    theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.PlaneComplex.repositionMap_position (K : PlaneComplex) (position' : K.VertexPlane) (hinj : Function.Injective position') (haff : sK.simplexes, AffineIndependent fun (v : s) => position' v) (hface : sK.simplexes, tK.simplexes, (convexHull ) (position' '' s) (convexHull ) (position' '' t) = (convexHull ) (position' '' ↑(s t))) (v : K.Vertex) (hv : {v} K.simplexes) :
                    K.repositionMap position' hinj haff hface (K.position v) = position' v

                    Barycentric repositioning sends every vertex which occurs as a zero-face to its prescribed new position.

                    theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.PlaneComplex.repositionMap_affineOn_face (K : PlaneComplex) (position' : K.VertexPlane) (hinj : Function.Injective position') (haff : sK.simplexes, AffineIndependent fun (v : s) => position' v) (hface : sK.simplexes, tK.simplexes, (convexHull ) (position' '' s) (convexHull ) (position' '' t) = (convexHull ) (position' '' ↑(s t))) {s : Finset K.Vertex} (hs : s K.simplexes) :
                    IsAffineOn (K.repositionMap position' hinj haff hface) (K.cellCarrier s)

                    Barycentric repositioning is affine on each original face.

                    theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.PlaneComplex.repositionMap_isPL (K : PlaneComplex) (position' : K.VertexPlane) (hinj : Function.Injective position') (haff : sK.simplexes, AffineIndependent fun (v : s) => position' v) (hface : sK.simplexes, tK.simplexes, (convexHull ) (position' '' s) (convexHull ) (position' '' t) = (convexHull ) (position' '' ↑(s t))) :
                    IsPLOn K (K.repositionMap position' hinj haff hface)

                    Barycentric repositioning is PL on the original complex.

                    Vertex positions for the cone on K, with none as the cone vertex.

                    Equations
                    Instances For

                      Remove the cone vertex from a cone face.

                      Equations
                      Instances For

                        All nonempty faces of cones on the faces of K.

                        Equations
                        Instances For
                          noncomputable def LeanEval.Topology.ClassificationOfSurfaces.Moise.PlaneComplex.cone (K : PlaneComplex) (S : Set Plane) (hS : Convex S) (c : Plane) (hc : c interior S) (havoid : cSet.range K.position) (hgraph : sK.simplexes, s.card 2) (hsupport : K.support = frontier S) :

                          Cone a finite one-dimensional complex supported on the frontier of a convex set.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.PlaneComplex.cone_baryEval_coneWeights (K : PlaneComplex) (S : Set Plane) (hS : Convex S) (c : Plane) (hc : c interior S) (havoid : cSet.range K.position) (hgraph : sK.simplexes, s.card 2) (hsupport : K.support = frontier S) (z : K.Vertex) :
                            (K.cone S hS c hc havoid hgraph hsupport).baryEval (K.coneWeights z) = K.baryEval z
                            theorem LeanEval.Topology.ClassificationOfSurfaces.Moise.PlaneComplex.cone_support_eq (K : PlaneComplex) (S : Set Plane) (hS : Convex S) (hcompact : IsCompact S) (c : Plane) (hc : c interior S) (havoid : cSet.range K.position) (hgraph : sK.simplexes, s.card 2) (hsupport : K.support = frontier S) (hfrontier : (frontier S).Nonempty) :
                            (K.cone S hS c hc havoid hgraph hsupport).support = S