Documentation

LeanPool.ClassificationOfSurfaces.FiniteCyclicP2DegenerateRealization

Polygonal realization of one-sided-degenerate Gallier--Xu P2 #

This file lifts the local monogon--polygon disk theorem to finite cyclic presentations. The positive base case has an empty left cut word and a nonempty right cut word. Reversal and child swap transport that case to every ordinary-valid one-sided-degenerate cut.

The rotated source side index, specialized to an empty-left cut.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateCutSideIndex_val (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (i : Fin (P.boundary cut.face.face).length) :
    (rightDegenerateCutSideIndex P cut horientation hleft hr i) = (i + positiveCutRotation P cut horientation) % cut.right.length

    The zeroLeftChildPairHomeomorph declaration.

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

      The zeroLeftChildGluingHomeomorph declaration.

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

        The selected source cell, cyclically aligned and then cut by the local degenerate disk homeomorphism.

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

          Cut the selected source face and include its local child quotient in the complete split realization.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateSelectedFaceMap_side (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (i : Fin (P.boundary cut.face.face).length) (t : unitInterval) :
            rightDegenerateSelectedFaceMap P cut horientation hleft hr validP ((PolygonCell.side i) t) = (split P cut).polygonalMk rightFace P cut, (PolygonCell.side (positiveRightChildSideIndex P cut horientation ((rightDegenerateCutSideIndex P cut horientation hleft hr i).addNat 1))) t

            Facewise forward map for an empty-left positive cut.

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

              The rightDegeneratePreMap declaration.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegeneratePreMap_selected (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (z : PolygonCell (P.boundary cut.face.face).length) :
                rightDegeneratePreMap P cut horientation hleft hr validP cut.face.face, z = rightDegenerateSelectedFaceMap P cut horientation hleft hr validP z
                @[simp]
                theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegeneratePreMap_retained (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) {f : P.Face} (hface : f cut.face.face) (z : PolygonCell (P.boundary f).length) :
                rightDegeneratePreMap P cut horientation hleft hr validP f, z = retainedFaceMap P cut hface validP z
                theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegeneratePreMap_selected_side (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (i : Fin (P.boundary cut.face.face).length) (t : unitInterval) :
                rightDegeneratePreMap P cut horientation hleft hr validP cut.face.face, (PolygonCell.side i) t = (split P cut).polygonalMk rightFace P cut, (PolygonCell.side (positiveRightChildSideIndex P cut horientation ((rightDegenerateCutSideIndex P cut horientation hleft hr i).addNat 1))) t
                theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegeneratePreMap_retained_side (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) {f : P.Face} (hface : f cut.face.face) (i : Fin (P.boundary f).length) (t : unitInterval) :
                rightDegeneratePreMap P cut horientation hleft hr validP f, (PolygonCell.side i) t = (split P cut).polygonalMk oldFace P cut f, (PolygonCell.side (retainedSideIndex P cut hface i)) t

                Route every old source occurrence to the target occurrence carrying it after the split.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateMapOccurrence_retained (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) {f : P.Face} (hface : f cut.face.face) (i : Fin (P.boundary f).length) :
                  rightDegenerateMapOccurrence P cut horientation hleft hr f, i = oldFace P cut f, retainedSideIndex P cut hface i
                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegeneratePreMap_occurrenceSide (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (o : P.BoundaryOccurrence) (t : unitInterval) :
                  rightDegeneratePreMap P cut horientation hleft hr validP ((P.occurrenceSide o).point t) = (split P cut).polygonalMk (((split P cut).occurrenceSide (rightDegenerateMapOccurrence P cut horientation hleft hr o)).point t)

                  The rightDegenerateMapPairing declaration.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegeneratePreMap_pairing_eq (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (pairing : P.BoundaryPairing) (t : unitInterval) :
                    rightDegeneratePreMap P cut horientation hleft hr validP (pairing.identification.source.point t) = rightDegeneratePreMap P cut horientation hleft hr validP (pairing.identification.target.point (pairing.identification.parameter t))
                    theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegeneratePreMap_respects (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) {x y : P.PolygonalPreRealization} (hxy : (P.PolygonalGluingRel validP) x y) :
                    rightDegeneratePreMap P cut horientation hleft hr validP x = rightDegeneratePreMap P cut horientation hleft hr validP y

                    Inverse map #

                    Collapse the local child quotient back to the selected source face.

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

                      Inverse map on the selected target child.

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

                        Inverse map on the right target child.

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

                          Inverse map at an old target-face position.

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

                            Inverse face map indexed before applying the target faceEquiv.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              @[simp]
                              theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateIndexedInvFaceMap_castSucc (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (f : P.Face) :
                              rightDegenerateIndexedInvFaceMap P cut horientation hleft hr validP (Fin.castSucc f) = rightDegenerateOldInvFaceMap P cut horientation hleft hr validP f

                              Inverse face map on the actual target face type.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                @[simp]
                                theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateInvFaceMap_oldFace (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (f : P.Face) :
                                rightDegenerateInvFaceMap P cut horientation hleft hr validP (oldFace P cut f) = rightDegenerateOldInvFaceMap P cut horientation hleft hr validP f
                                @[simp]
                                theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateInvFaceMap_rightFace (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) :
                                rightDegenerateInvFaceMap P cut horientation hleft hr validP (rightFace P cut) = rightDegenerateRightChildInvFaceMap P cut horientation hleft hr validP

                                Continuous inverse map on the complete split polygonal pre-realization.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  @[simp]
                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateInvPreMap_oldFace (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (f : P.Face) (z : PolygonCell ((split P cut).boundary (oldFace P cut f)).length) :
                                  rightDegenerateInvPreMap P cut horientation hleft hr validP oldFace P cut f, z = rightDegenerateOldInvFaceMap P cut horientation hleft hr validP f z
                                  @[simp]
                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateInvPreMap_rightFace (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (z : PolygonCell ((split P cut).boundary (rightFace P cut)).length) :
                                  rightDegenerateInvPreMap P cut horientation hleft hr validP rightFace P cut, z = rightDegenerateRightChildInvFaceMap P cut horientation hleft hr validP z
                                  @[simp]
                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateOldInvFaceMap_selected (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) :
                                  rightDegenerateOldInvFaceMap P cut horientation hleft hr validP cut.face.face = rightDegenerateSelectedChildInvFaceMap P cut horientation hleft hr validP
                                  @[simp]
                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateOldInvFaceMap_retained (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) {f : P.Face} (hface : f cut.face.face) :
                                  rightDegenerateOldInvFaceMap P cut horientation hleft hr validP f = retainedInvFaceMap P cut hface validP
                                  @[simp]
                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateInvPreMap_retained_apply (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) {f : P.Face} (hface : f cut.face.face) (z : PolygonCell (P.boundary f).length) :
                                  rightDegenerateInvPreMap P cut horientation hleft hr validP oldFace P cut f, (retainedCellHomeomorph P cut hface) z = P.polygonalMk validP f, z

                                  The inverse pre-map identifies the fresh target seam.

                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateInvPreMap_mapOccurrence_side (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (o : P.BoundaryOccurrence) (t : unitInterval) :
                                  rightDegenerateInvPreMap P cut horientation hleft hr validP (((split P cut).occurrenceSide (rightDegenerateMapOccurrence P cut horientation hleft hr o)).point t) = P.polygonalMk validP ((P.occurrenceSide o).point t)

                                  On every old boundary side, the inverse pre-map exactly undoes occurrence transport.

                                  Every target occurrence on an old edge is the transported copy of a source occurrence. The selected monogon and index zero of the right child are exactly the fresh seam.

                                  A target pairing based at an old edge is exactly the transported source pairing.

                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateInvPreMap_fresh_occurrence_seam (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (t : unitInterval) :
                                  rightDegenerateInvPreMap P cut horientation hleft hr validP (((split P cut).occurrenceSide (positiveSelectedFreshOccurrence P cut horientation)).point t) = rightDegenerateInvPreMap P cut horientation hleft hr validP (((split P cut).occurrenceSide (positiveRightFreshOccurrence P cut horientation)).point (unitInterval.symm t))

                                  Occurrence-side form of the exact fresh-seam equality.

                                  The inverse pre-map identifies every target gluing generator.

                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateInvPreMap_respects (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) {x y : (split P cut).PolygonalPreRealization} (hxy : ((split P cut).PolygonalGluingRel ) x y) :
                                  rightDegenerateInvPreMap P cut horientation hleft hr validP x = rightDegenerateInvPreMap P cut horientation hleft hr validP y

                                  The inverse pre-map is constant on the complete target gluing relation.

                                  Descended equivalence #

                                  Forward map after descent through the source polygonal quotient.

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

                                    Inverse map after descent through the target polygonal quotient.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      @[simp]
                                      theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateRealizationMap_polygonalMk (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (x : P.PolygonalPreRealization) :
                                      rightDegenerateRealizationMap P cut horientation hleft hr validP (P.polygonalMk validP x) = rightDegeneratePreMap P cut horientation hleft hr validP x
                                      @[simp]
                                      theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateRealizationInvMap_polygonalMk (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (y : (split P cut).PolygonalPreRealization) :
                                      rightDegenerateRealizationInvMap P cut horientation hleft hr validP ((split P cut).polygonalMk y) = rightDegenerateInvPreMap P cut horientation hleft hr validP y
                                      theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateRealizationInvMap_childGluing (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (q : DiskSquare.ParamChildGluing cut.left.length cut.right.length) :
                                      rightDegenerateRealizationInvMap P cut horientation hleft hr validP (positiveChildGluingMap P cut horientation validP q) = rightDegenerateChildGluingInvMap P cut horientation hleft hr validP q

                                      On the locally glued child pair, the descended inverse is the explicit collapse map.

                                      theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateRealizationMap_childGluingInv (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (q : DiskSquare.ParamChildGluing cut.left.length cut.right.length) :
                                      rightDegenerateRealizationMap P cut horientation hleft hr validP (rightDegenerateChildGluingInvMap P cut horientation hleft hr validP q) = positiveChildGluingMap P cut horientation validP q

                                      The descended forward map sends the child-collapse class back to the same local quotient.

                                      theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateRealization_left_inverse_mk (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (x : P.PolygonalPreRealization) :
                                      rightDegenerateRealizationInvMap P cut horientation hleft hr validP (rightDegeneratePreMap P cut horientation hleft hr validP x) = P.polygonalMk validP x

                                      The descended inverse is a left inverse on every source pre-realization point.

                                      theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.rightDegenerateRealization_right_inverse_mk (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hleft : cut.left = []) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (y : (split P cut).PolygonalPreRealization) :
                                      rightDegenerateRealizationMap P cut horientation hleft hr validP (rightDegenerateInvPreMap P cut horientation hleft hr validP y) = (split P cut).polygonalMk y

                                      The descended forward map is a right inverse on every target pre-realization point.

                                      Complete realization-equivalence data for an empty-left positive P2 split.

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

                                        Explicit homeomorphism for an empty-left positive P2 split.

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

                                          Propositional realization invariance for an empty-left positive P2 split.

                                          Transport to every one-sided-degenerate cut #

                                          A positive cut with an empty right word reduces to the base theorem by swapping its two displayed pieces.

                                          Every positive one-sided-degenerate cut preserves polygonal realization.

                                          A negative one-sided cut reduces to the positive theorem after reversing the cut.

                                          Every one-sided-degenerate P2 split preserves the faithful polygonal realization, independently of traversal orientation and of which displayed cut word is empty.