Documentation

LeanPool.ClassificationOfSurfaces.FiniteCyclicP2Realization

Polygonal realization of Gallier--Xu P2 #

This file packages the local two-disk cut model from DiskSquare for finite cyclic presentations. The first layer normalizes the cyclic position of a nondegenerate positively oriented cut and supplies an exact selected-face homeomorphism. It is deliberately stated in terms of the existing P2Cut data, so the presentation-level quotient comparison can use the same side indices and no second formulation of P2 is introduced.

The selected source face has as many stored sides as the two linear cut pieces together.

Rotation of the linear cut word that recovers the stored source boundary. This version is used after reducing to the positive traversal orientation.

Equations
Instances For

    The linear cut-word index carrying a stored source side.

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

      Cyclic alignment of the source boundary is injective on side indices.

      Lookup at the rotated linear cut index recovers the stored source dart.

      The selected source face, with its cyclic starting point aligned to the cut, is exactly the local one-polygon-to-two-child quotient model.

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

        Exact side computation for the cyclically aligned selected-face homeomorphism.

        noncomputable def LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveLeftSideIndex (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (i : Fin (P.boundary cut.face.face).length) (hleft : (positiveCutSideIndex P cut horientation hl hr i) < cut.left.length) :

        A rotated source side lying in the left cut piece, viewed with its local left index.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveLeftSideIndex_val (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (i : Fin (P.boundary cut.face.face).length) (hleft : (positiveCutSideIndex P cut horientation hl hr i) < cut.left.length) :
          (positiveLeftSideIndex P cut horientation hl hr i hleft) = (positiveCutSideIndex P cut horientation hl hr i)
          noncomputable def LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveRightSideIndex (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (i : Fin (P.boundary cut.face.face).length) (hright : cut.left.length (positiveCutSideIndex P cut horientation hl hr i)) :

          A rotated source side lying in the right cut piece, viewed with its local right index.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveRightSideIndex_val (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (i : Fin (P.boundary cut.face.face).length) (hright : cut.left.length (positiveCutSideIndex P cut horientation hl hr i)) :
            (positiveRightSideIndex P cut horientation hl hr i hright) = (positiveCutSideIndex P cut horientation hl hr i) - cut.left.length
            theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.left_get_positiveLeftSideIndex (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (i : Fin (P.boundary cut.face.face).length) (hleft : (positiveCutSideIndex P cut horientation hl hr i) < cut.left.length) :
            cut.left.get (positiveLeftSideIndex P cut horientation hl hr i hleft) = (P.boundary cut.face.face).get i

            In the left branch, the local cut-piece lookup is the stored source dart.

            theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.right_get_positiveRightSideIndex (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (i : Fin (P.boundary cut.face.face).length) (hright : cut.left.length (positiveCutSideIndex P cut horientation hl hr i)) :
            cut.right.get (positiveRightSideIndex P cut horientation hl hr i hright) = (P.boundary cut.face.face).get i

            In the right branch, the local cut-piece lookup is the stored source dart.

            theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveSelectedCellHomeomorph_side_of_lt (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (i : Fin (P.boundary cut.face.face).length) (t : unitInterval) (hleft : (positiveCutSideIndex P cut horientation hl hr i) < cut.left.length) :
            (positiveSelectedCellHomeomorph P cut horientation hl hr) ((PolygonCell.side i) t) = Quotient.mk'' (Sum.inl ((PolygonCell.side (Fin.castAdd 1 (positiveLeftSideIndex P cut horientation hl hr i hleft))) t))

            Exact selected-face computation for a side belonging to the left cut piece.

            theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveSelectedCellHomeomorph_side_of_not_lt (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (i : Fin (P.boundary cut.face.face).length) (t : unitInterval) (hright : cut.left.length (positiveCutSideIndex P cut horientation hl hr i)) :
            (positiveSelectedCellHomeomorph P cut horientation hl hr) ((PolygonCell.side i) t) = Quotient.mk'' (Sum.inr ((PolygonCell.side ((positiveRightSideIndex P cut horientation hl hr i hright).addNat 1)) t))

            Exact selected-face computation for a side belonging to the right cut piece.

            The fresh seam inside the actual split presentation #

            The selected child's fresh-edge boundary occurrence.

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

              The right child's fresh-edge boundary occurrence.

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

                The exact reversed-parameter pairing carried by the fresh P2 seam.

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

                  Embedding the local child quotient in the target realization #

                  Phantom side-count transport from the local selected child to the actual target face.

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

                    Phantom side-count transport from the local right child to the actual target face.

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

                      The target selected-child index corresponding to a local child side.

                      Equations
                      Instances For

                        The target right-child index corresponding to a local child side.

                        Equations
                        Instances For

                          Include the two local child cells into the corresponding two faces of the split pre-realization.

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

                            Send a local child point to its class in the complete split realization.

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

                              The local seam generator is exactly the fresh-edge gluing already present in the target polygonal quotient.

                              The target quotient map is constant on the complete local child-seam relation.

                              Include the locally glued pair of P2 children into the complete target realization.

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

                                The selected source face as a map into the split realization #

                                The positive, nondegenerate selected source face, cut into the two target children and then included in the complete split quotient.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveSelectedFaceMap_side_of_lt (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (i : Fin (P.boundary cut.face.face).length) (t : unitInterval) (hleft : (positiveCutSideIndex P cut horientation hl hr i) < cut.left.length) :
                                  positiveSelectedFaceMap P cut horientation hl hr validP ((PolygonCell.side i) t) = (split P cut).polygonalMk oldFace P cut cut.face.face, (PolygonCell.side (positiveSelectedChildSideIndex P cut horientation (Fin.castAdd 1 (positiveLeftSideIndex P cut horientation hl hr i hleft)))) t

                                  A selected source side in the left cut piece lands on the exact old side of the selected target child.

                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveSelectedFaceMap_side_of_not_lt (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (i : Fin (P.boundary cut.face.face).length) (t : unitInterval) (hright : cut.left.length (positiveCutSideIndex P cut horientation hl hr i)) :
                                  positiveSelectedFaceMap P cut horientation hl hr validP ((PolygonCell.side i) t) = (split P cut).polygonalMk rightFace P cut, (PolygonCell.side (positiveRightChildSideIndex P cut horientation ((positiveRightSideIndex P cut horientation hl hr i hright).addNat 1))) t

                                  A selected source side in the right cut piece lands on the exact old side of the right target child.

                                  The complete forward pre-realization map #

                                  Target index corresponding to a side of a retained source face.

                                  Equations
                                  Instances For

                                    A retained face maps directly to its unchanged target face class.

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

                                      Facewise forward map: cut the selected face and retain every other face.

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

                                        Continuous forward map on the entire source 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.positivePreMap_selected (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (z : PolygonCell (P.boundary cut.face.face).length) :
                                          positivePreMap P cut horientation hl hr validP cut.face.face, z = positiveSelectedFaceMap P cut horientation hl hr validP z
                                          @[simp]
                                          theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positivePreMap_retained (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) {f : P.Face} (hface : f cut.face.face) (z : PolygonCell (P.boundary f).length) :
                                          positivePreMap P cut horientation hl hr validP f, z = retainedFaceMap P cut hface validP z
                                          theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positivePreMap_selected_side_of_lt (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (i : Fin (P.boundary cut.face.face).length) (t : unitInterval) (hleft : (positiveCutSideIndex P cut horientation hl hr i) < cut.left.length) :
                                          positivePreMap P cut horientation hl hr validP cut.face.face, (PolygonCell.side i) t = (split P cut).polygonalMk oldFace P cut cut.face.face, (PolygonCell.side (positiveSelectedChildSideIndex P cut horientation (Fin.castAdd 1 (positiveLeftSideIndex P cut horientation hl hr i hleft)))) t
                                          theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positivePreMap_selected_side_of_not_lt (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (i : Fin (P.boundary cut.face.face).length) (t : unitInterval) (hright : cut.left.length (positiveCutSideIndex P cut horientation hl hr i)) :
                                          positivePreMap P cut horientation hl hr validP cut.face.face, (PolygonCell.side i) t = (split P cut).polygonalMk rightFace P cut, (PolygonCell.side (positiveRightChildSideIndex P cut horientation ((positiveRightSideIndex P cut horientation hl hr i hright).addNat 1))) t
                                          theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positivePreMap_retained_side (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) {f : P.Face} (hface : f cut.face.face) (i : Fin (P.boundary f).length) (t : unitInterval) :
                                          positivePreMap P cut horientation hl hr validP f, (PolygonCell.side i) t = (split P cut).polygonalMk oldFace P cut f, (PolygonCell.side (retainedSideIndex P cut hface i)) t

                                          Transport a source boundary occurrence to the child or retained target face that carries the same old edge after a positive nondegenerate split.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveMapOccurrence_selected_of_lt (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (i : Fin (P.boundary cut.face.face).length) (hleft : (positiveCutSideIndex P cut horientation hl hr i) < cut.left.length) :
                                            positiveMapOccurrence P cut horientation hl hr cut.face.face, i = oldFace P cut cut.face.face, positiveSelectedChildSideIndex P cut horientation (Fin.castAdd 1 (positiveLeftSideIndex P cut horientation hl hr i hleft))
                                            theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveMapOccurrence_selected_of_not_lt (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (i : Fin (P.boundary cut.face.face).length) (hleft : ¬(positiveCutSideIndex P cut horientation hl hr i) < cut.left.length) :
                                            positiveMapOccurrence P cut horientation hl hr cut.face.face, i = rightFace P cut, positiveRightChildSideIndex P cut horientation ((positiveRightSideIndex P cut horientation hl hr i ).addNat 1)
                                            theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveMapOccurrence_retained (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) {f : P.Face} (hface : f cut.face.face) (i : Fin (P.boundary f).length) :
                                            positiveMapOccurrence P cut horientation hl hr f, i = oldFace P cut f, retainedSideIndex P cut hface i
                                            theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positivePreMap_occurrenceSide (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (o : P.BoundaryOccurrence) (t : unitInterval) :
                                            positivePreMap P cut horientation hl hr validP ((P.occurrenceSide o).point t) = (split P cut).polygonalMk (((split P cut).occurrenceSide (positiveMapOccurrence P cut horientation hl hr o)).point t)

                                            Exact side-point computation for the complete forward occurrence transport.

                                            The transported occurrence carries exactly the retained old dart.

                                            Distinct source boundary positions remain distinct after routing the selected face between its two P2 children.

                                            Transport an old-edge source pairing to the corresponding pairing of target occurrences.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              @[simp]
                                              theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveMapPairing_source (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (pairing : P.BoundaryPairing) :
                                              (positiveMapPairing P cut horientation hl hr pairing).source = positiveMapOccurrence P cut horientation hl hr pairing.source
                                              @[simp]
                                              theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveMapPairing_target (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (pairing : P.BoundaryPairing) :
                                              (positiveMapPairing P cut horientation hl hr pairing).target = positiveMapOccurrence P cut horientation hl hr pairing.target
                                              @[simp]
                                              theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positivePreMap_pairing_eq (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (pairing : P.BoundaryPairing) (t : unitInterval) :
                                              positivePreMap P cut horientation hl hr validP (pairing.identification.source.point t) = positivePreMap P cut horientation hl hr validP (pairing.identification.target.point (pairing.identification.parameter t))

                                              Every source gluing generator has equal images under the complete forward P2 map.

                                              theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positivePreMap_respects (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) {x y : P.PolygonalPreRealization} (hxy : (P.PolygonalGluingRel validP) x y) :
                                              positivePreMap P cut horientation hl hr validP x = positivePreMap P cut horientation hl hr validP y

                                              The forward pre-map is constant on the complete source gluing relation.

                                              Local inverse maps for the two target children #

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

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

                                                Include a point of the actual selected target child into the local child quotient.

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

                                                  Include a point of the actual right target child into the local child quotient.

                                                  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 on a retained target face.

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

                                                          Inverse map at an old target-face position, selecting the cut-child inverse exactly at the chosen source face.

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

                                                            Inverse face map indexed before applying the explicit target faceEquiv.

                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            Instances For
                                                              @[simp]
                                                              @[simp]
                                                              theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveIndexedInvFaceMap_castSucc (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (f : P.Face) :
                                                              positiveIndexedInvFaceMap P cut horientation hl hr validP (Fin.castSucc f) = positiveOldInvFaceMap P cut horientation hl 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.positiveInvFaceMap_oldFace (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (f : P.Face) :
                                                                positiveInvFaceMap P cut horientation hl hr validP (oldFace P cut f) = positiveOldInvFaceMap P cut horientation hl hr validP f
                                                                @[simp]
                                                                theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveInvFaceMap_rightFace (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) :
                                                                positiveInvFaceMap P cut horientation hl hr validP (rightFace P cut) = positiveRightChildInvFaceMap P cut horientation hl 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.positiveInvPreMap_oldFace (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (f : P.Face) (z : PolygonCell ((split P cut).boundary (oldFace P cut f)).length) :
                                                                  positiveInvPreMap P cut horientation hl hr validP oldFace P cut f, z = positiveOldInvFaceMap P cut horientation hl hr validP f z
                                                                  @[simp]
                                                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveInvPreMap_rightFace (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (z : PolygonCell ((split P cut).boundary (rightFace P cut)).length) :
                                                                  positiveInvPreMap P cut horientation hl hr validP rightFace P cut, z = positiveRightChildInvFaceMap P cut horientation hl hr validP z
                                                                  @[simp]
                                                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveOldInvFaceMap_selected (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) :
                                                                  positiveOldInvFaceMap P cut horientation hl hr validP cut.face.face = positiveSelectedChildInvFaceMap P cut horientation hl hr validP
                                                                  @[simp]
                                                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveOldInvFaceMap_retained (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) {f : P.Face} (hface : f cut.face.face) :
                                                                  positiveOldInvFaceMap P cut horientation hl hr validP f = retainedInvFaceMap P cut hface validP
                                                                  @[simp]
                                                                  @[simp]
                                                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveRightChildInvFaceMap_apply (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (z : PolygonCell (cut.right.length + 1)) :
                                                                  positiveRightChildInvFaceMap P cut horientation hl hr validP ((positiveRightChildCellHomeomorph P cut horientation) z) = positiveChildGluingInvMap P cut horientation hl hr validP (Quotient.mk'' (Sum.inr z))
                                                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveInvPreMap_retained_apply (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) {f : P.Face} (hface : f cut.face.face) (z : PolygonCell (P.boundary f).length) :
                                                                  positiveInvPreMap P cut horientation hl hr validP oldFace P cut f, (retainedCellHomeomorph P cut hface) z = P.polygonalMk validP f, z
                                                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveInvPreMap_selectedChild_apply (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (z : PolygonCell (cut.left.length + 1)) :
                                                                  positiveInvPreMap P cut horientation hl hr validP oldFace P cut cut.face.face, (positiveSelectedChildCellHomeomorph P cut horientation) z = positiveChildGluingInvMap P cut horientation hl hr validP (Quotient.mk'' (Sum.inl z))
                                                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveInvPreMap_rightChild_apply (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (z : PolygonCell (cut.right.length + 1)) :
                                                                  positiveInvPreMap P cut horientation hl hr validP rightFace P cut, (positiveRightChildCellHomeomorph P cut horientation) z = positiveChildGluingInvMap P cut horientation hl hr validP (Quotient.mk'' (Sum.inr z))
                                                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveInvPreMap_fresh_seam (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (t : unitInterval) :
                                                                  positiveInvPreMap P cut horientation hl hr validP oldFace P cut cut.face.face, (positiveSelectedChildCellHomeomorph P cut horientation) ((PolygonCell.side (Fin.last cut.left.length)) t) = positiveInvPreMap P cut horientation hl hr validP rightFace P cut, (positiveRightChildCellHomeomorph P cut horientation) ((PolygonCell.side 0) (unitInterval.symm t))

                                                                  The inverse pre-map identifies the target's fresh seam for the same local quotient reason used by the forward construction.

                                                                  theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveInvPreMap_mapOccurrence_side (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (o : P.BoundaryOccurrence) (t : unitInterval) :
                                                                  positiveInvPreMap P cut horientation hl hr validP (((split P cut).occurrenceSide (positiveMapOccurrence P cut horientation hl 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 boundary occurrence on an old edge is the transported copy of a source occurrence. The two omitted target occurrences are exactly the fresh seam.

                                                                  Compatible boundary occurrences in a pairing carry the same unoriented edge.

                                                                  Once source and target occurrences agree, compatibility forces the same parameter direction.

                                                                  Boundary pairings are determined by their two occurrences and parameter direction.

                                                                  The two explicitly constructed fresh occurrences exhaust the fresh edge.

                                                                  A target pairing based at an old edge is exactly the transported pairing of the two corresponding source occurrences.

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

                                                                  Occurrence-side form of the exact fresh-seam equality for the inverse pre-map.

                                                                  The inverse pre-map identifies every target gluing generator: old-edge generators are transported source pairings, while the final edge is the fresh child seam.

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

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

                                                                  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.positiveRealizationMap_polygonalMk (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (x : P.PolygonalPreRealization) :
                                                                      positiveRealizationMap P cut horientation hl hr validP (P.polygonalMk validP x) = positivePreMap P cut horientation hl hr validP x
                                                                      @[simp]
                                                                      theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveRealizationInvMap_polygonalMk (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (y : (split P cut).PolygonalPreRealization) :
                                                                      positiveRealizationInvMap P cut horientation hl hr validP ((split P cut).polygonalMk y) = positiveInvPreMap P cut horientation hl hr validP y
                                                                      theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveRealizationInvMap_childGluing (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (q : DiskSquare.ParamChildGluing cut.left.length cut.right.length) :
                                                                      positiveRealizationInvMap P cut horientation hl hr validP (positiveChildGluingMap P cut horientation validP q) = positiveChildGluingInvMap P cut horientation hl hr validP q

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

                                                                      theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveRealizationMap_childGluingInv (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (q : DiskSquare.ParamChildGluing cut.left.length cut.right.length) :
                                                                      positiveRealizationMap P cut horientation hl hr validP (positiveChildGluingInvMap P cut horientation hl hr validP q) = positiveChildGluingMap P cut horientation validP q

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

                                                                      Including a selected-child point in the local child quotient and then in the global quotient is its ordinary polygonal quotient class.

                                                                      Including a right-child point in the local child quotient and then in the global quotient is its ordinary polygonal quotient class.

                                                                      theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.positiveRealization_left_inverse_mk (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (x : P.PolygonalPreRealization) :
                                                                      positiveRealizationInvMap P cut horientation hl hr validP (positivePreMap P cut horientation hl 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.positiveRealization_right_inverse_mk (P : FiniteCyclicPresentation) (cut : P.P2Cut) (horientation : cut.face.orientation = false) (hl : 0 < cut.left.length) (hr : 0 < cut.right.length) (validP : P.IsSurfaceValid) (y : (split P cut).PolygonalPreRealization) :
                                                                      positiveRealizationMap P cut horientation hl hr validP (positiveInvPreMap P cut horientation hl hr validP y) = (split P cut).polygonalMk y

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

                                                                      Complete cut-and-paste certificate for a positive, nondegenerate P2 face split.

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

                                                                        Explicit homeomorphism induced by a positive, nondegenerate P2 face split.

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

                                                                          Propositional realization-invariance form for a positive, nondegenerate P2 face split.

                                                                          Transport across reversal of the chosen cut orientation #

                                                                          Reversing a cut exchanges its two child faces and fixes every retained face.

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

                                                                            Swapping the two cut pieces exchanges the child faces and fixes every retained face.

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

                                                                              The raw edge relabeling for a swapped cut reverses precisely the fresh edge.

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

                                                                                The raw swapped-cut relabeling at the two split presentations' exact edge types.

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

                                                                                  Swapping the two displayed P2 pieces changes only child order and fresh-edge orientation.

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

                                                                                    Identity edge relabeling between the definitionally equal edge types of the two reversed-cut splits. Naming the transport keeps the signed-isomorphism boundary proof transparent.

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

                                                                                      The split presentations obtained from the two orientations of a cut differ only by swapping the two child faces.

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

                                                                                        A negative-orientation nondegenerate cut reduces to the positive theorem after reversing the cut and swapping the two child faces.

                                                                                        Every nondegenerate P2 split preserves the faithful polygonal realization, independently of the chosen traversal orientation.

                                                                                        Every ordinary P2 subdivision preserves the faithful polygonal realization.

                                                                                        For an ordinary-valid source, the exceptional empty-word-sphere alternative in P2Subdivision is impossible, so the public move relation supplies exactly the two positivity hypotheses required by the local two-disk gluing model.