Documentation

LeanPool.ClassificationOfSurfaces.PolygonalQuotient

Polygonal quotient spaces #

This file supplies the geometric foundation for realizing a finite surface cell complex. A PolygonCell n is a genuinely indexed closed disk with n labelled boundary arcs. This topological model keeps monogons and digons as genuine disks, unlike a convex hull of one or two Euclidean vertices. Its sides are circular arcs; only their interval reparameterizations are affine. A later PL bridge is therefore still needed if consumers require straight Euclidean edges.

For a family of cells, PolygonGluing.PreRealization is their disjoint union with the sum topology. A set of PolygonGluing.Identifications prescribes either the identity or the affine reversal t ↦ 1 - t between pairs of sides. PolygonGluing.setoid is the equivalence relation generated by those point identifications, and PolygonGluing.Realization has the quotient topology.

PolygonCell 0 is a disk with no marked sides. It is deliberately not identified with the empty-word sphere. The cell-complex adapter therefore presents the sphere as two oppositely oriented monogons instead of using PolygonCell 0. Keeping that choice out of this generic layer prevents a side-free disk from silently acquiring the wrong topology.

A closed disk whose boundary is divided into n labelled sides.

Instances For

    The side count is marking data only: changing it does not change the underlying closed disk.

    Equations
    Instances For

      The unit circle included in a polygonal cell.

      Equations
      Instances For

        The angle swept out by side i at parameter t.

        Equations
        Instances For

          Side i of an n-sided cell, parameterized in boundary order.

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

            Side i traversed in the opposite direction.

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

              Consecutive sides meet at their common cyclic endpoint.

              Every side lies on the boundary circle of its polygonal cell.

              Every boundary point of a cell with at least one side belongs to a marked side.

              Boundary membership is equivalent to membership in one of the marked sides.

              The marked sides cover exactly the boundary circle of a nonzero-sided cell.

              The unique side of a monogon is a loop.

              The two sides of a digon meet at their middle vertex.

              @[reducible, inline]

              The disjoint union of a family of polygonal cells.

              Equations
              Instances For
                structure LeanEval.Topology.ClassificationOfSurfaces.PolygonGluing.Side (Face : Type u) (sideCount : Face) :

                A labelled side in a family of polygonal cells.

                • face : Face

                  The face declaration.

                • index : Fin (sideCount self.face)

                  The index declaration.

                Instances For
                  noncomputable def LeanEval.Topology.ClassificationOfSurfaces.PolygonGluing.Side.point {Face : Type u} {sideCount : Face} (s : Side Face sideCount) (t : unitInterval) :
                  PreRealization Face sideCount

                  A point on a labelled side, included in the disjoint union.

                  Equations
                  Instances For

                    The two affine self-homeomorphisms of the unit interval used to glue polygon sides.

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

                        Instructions for identifying two polygon sides with an affine parameter map.

                        Instances For

                          The affine parameter homeomorphism of a side identification.

                          Equations
                          Instances For
                            def LeanEval.Topology.ClassificationOfSurfaces.PolygonGluing.Identification.sameDirection {Face : Type u} {sideCount : Face} (source target : Side Face sideCount) :
                            Identification Face sideCount

                            Identify two sides with the same parameter direction.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              def LeanEval.Topology.ClassificationOfSurfaces.PolygonGluing.Identification.oppositeDirection {Face : Type u} {sideCount : Face} (source target : Side Face sideCount) :
                              Identification Face sideCount

                              Identify two sides with the parameter direction reversed.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                @[simp]
                                inductive LeanEval.Topology.ClassificationOfSurfaces.PolygonGluing.Generator {Face : Type u} {sideCount : Face} (identifications : Set (Identification Face sideCount)) :
                                PreRealization Face sideCountPreRealization Face sideCountProp

                                The elementary point identifications prescribed by a collection of side gluings.

                                Instances For
                                  def LeanEval.Topology.ClassificationOfSurfaces.PolygonGluing.setoid {Face : Type u} {sideCount : Face} (identifications : Set (Identification Face sideCount)) :
                                  Setoid (PreRealization Face sideCount)

                                  The equivalence relation generated by the prescribed side identifications.

                                  Equations
                                  Instances For
                                    theorem LeanEval.Topology.ClassificationOfSurfaces.PolygonGluing.related_of_mem {Face : Type u} {sideCount : Face} {identifications : Set (Identification Face sideCount)} (identification : Identification Face sideCount) (h : identification identifications) (t : unitInterval) :
                                    (setoid identifications) (identification.source.point t) (identification.target.point (identification.parameter t))
                                    @[reducible, inline]
                                    abbrev LeanEval.Topology.ClassificationOfSurfaces.PolygonGluing.Realization {Face : Type u} {sideCount : Face} (identifications : Set (Identification Face sideCount)) :

                                    The quotient of the polygonal disjoint union by the generated side identifications.

                                    Equations
                                    Instances For
                                      def LeanEval.Topology.ClassificationOfSurfaces.PolygonGluing.mk {Face : Type u} {sideCount : Face} (identifications : Set (Identification Face sideCount)) :
                                      PreRealization Face sideCountRealization identifications

                                      The quotient map from the disjoint union to the glued realization.

                                      Equations
                                      Instances For
                                        theorem LeanEval.Topology.ClassificationOfSurfaces.PolygonGluing.continuous_mk {Face : Type u} {sideCount : Face} (identifications : Set (Identification Face sideCount)) :
                                        Continuous (mk identifications)
                                        theorem LeanEval.Topology.ClassificationOfSurfaces.PolygonGluing.isQuotientMap_mk {Face : Type u} {sideCount : Face} (identifications : Set (Identification Face sideCount)) :
                                        Topology.IsQuotientMap (mk identifications)
                                        theorem LeanEval.Topology.ClassificationOfSurfaces.PolygonGluing.mk_source_eq_mk_target {Face : Type u} {sideCount : Face} {identifications : Set (Identification Face sideCount)} (identification : Identification Face sideCount) (h : identification identifications) (t : unitInterval) :
                                        mk identifications (identification.source.point t) = mk identifications (identification.target.point (identification.parameter t))

                                        A prescribed side gluing identifies the corresponding points in the quotient.

                                        noncomputable def LeanEval.Topology.ClassificationOfSurfaces.PolygonGluing.realizationCongr {Face₁ : Type u} {sideCount₁ : Face₁} {Face₂ : Type u} {sideCount₂ : Face₂} {identifications₁ : Set (Identification Face₁ sideCount₁)} {identifications₂ : Set (Identification Face₂ sideCount₂)} (e : PreRealization Face₁ sideCount₁ ≃ₜ PreRealization Face₂ sideCount₂) (h : ∀ (x y : PreRealization Face₁ sideCount₁), (setoid identifications₁) x y (setoid identifications₂) (e x) (e y)) :
                                        Realization identifications₁ ≃ₜ Realization identifications₂

                                        A relation-preserving homeomorphism descends to polygonal realizations.

                                        Equations
                                        Instances For
                                          noncomputable def LeanEval.Topology.ClassificationOfSurfaces.PolygonGluing.realizationCongrRight {Face : Type u} {sideCount : Face} {identifications₁ identifications₂ : Set (Identification Face sideCount)} (h : ∀ (x y : PreRealization Face sideCount), (setoid identifications₁) x y (setoid identifications₂) x y) :
                                          Realization identifications₁ ≃ₜ Realization identifications₂

                                          Equal generated relations give homeomorphic realizations on a fixed pre-space.

                                          Equations
                                          Instances For