Documentation

LeanPool.ClassificationOfSurfaces.FiniteCyclicDerivedRewrites

Derived Gallier--Xu word rewrites #

This file builds the repeated word transformations used after the primitive P1/P2 phase of the normalization proof. It starts with proof-producing infrastructure for one-face cyclic words:

These lemmas keep intermediate validity witnesses out of the public derived-chain APIs.

The unique face of an explicitly indexed one-face presentation.

@[simp]

The edge multiplicity of a one-face presentation is the count in its displayed word.

A permutation of the unoriented edge occurrences preserves one-face surface validity. Orientation signs and cyclic positions are intentionally irrelevant here.

A cyclic rotation of one displayed face word is a signed presentation isomorphism.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.Dyck.normalizationEquivalentOfIsRotated {n : } {sourceWord targetWord : List (SurfaceCellComplex.SignedDart (Fin n))} (hrotated : sourceWord ~r targetWord) (validSource : (oneFace sourceWord).IsSurfaceValid) (validTarget : (oneFace targetWord).IsSurfaceValid) :
    NormalizationEquivalent { presentation := oneFace sourceWord, valid := validSource } { presentation := oneFace targetWord, valid := validTarget }

    A cyclic rotation of ordinary-valid one-face words is a normalization equivalence.

    The Dyck rewrite preserves the unoriented edge-occurrence multiset, hence ordinary validity.

    @[reducible]

    The negatively oriented spelling of the Dyck source.

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

      The corresponding negatively oriented target spelling.

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

        Reversing a identifies the negative source spelling with the positive source spelling.

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

          Reversing a identifies the negative target spelling with the positive target spelling.

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

            The negatively spelled Dyck rewrite also preserves ordinary validity.

            theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.Dyck.negativeNormalizationEquivalent {n : } (a : Fin n) (U V X : List (SurfaceCellComplex.SignedDart (Fin n))) (haU : aList.map edgeOfDart U) (haV : aList.map edgeOfDart V) (haX : aList.map edgeOfDart X) (validSource : (negativeSource a U V X).IsSurfaceValid) (validTarget : (negativeTarget a U V X).IsSurfaceValid) :
            NormalizationEquivalent { presentation := negativeSource a U V X, valid := validSource } { presentation := negativeTarget a U V X, valid := validTarget }

            The generic Dyck rewrite with the distinguished edge displayed negative first.

            The cross-cap rewrite preserves the unoriented edge-occurrence multiset, hence validity.

            @[reducible]

            The cross-cap source with the distinguished edge displayed negative.

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

              The corresponding negatively oriented target.

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

                The negatively oriented cross-cap rewrite preserves ordinary validity.

                The negativeSourceSignedIso declaration.

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

                  The negativeTargetSignedIso declaration.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.Crosscap.negativeNormalizationEquivalent {n : } (a : Fin n) (X Y : List (SurfaceCellComplex.SignedDart (Fin n))) (haX : aList.map edgeOfDart X) (haY : aList.map edgeOfDart Y) (validSource : (negativeSource a X Y).IsSurfaceValid) (validTarget : (negativeTarget a X Y).IsSurfaceValid) :
                    NormalizationEquivalent { presentation := negativeSource a X Y, valid := validSource } { presentation := negativeTarget a X Y, valid := validTarget }

                    The cross-cap rewrite with both distinguished occurrences displayed negative.

                    @[reducible]

                    The adjacent-crosscap source a a X Y.

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

                      The alternate cross-cap target a Y a X⁻¹.

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

                        The alternate adjacent-crosscap rewrite preserves ordinary validity.

                        a a X Y is a rotation of the ordinary cross-cap target obtained from a Y a X⁻¹.

                        theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.Crosscap.adjacentNormalizationEquivalent {n : } (a : Fin n) (X Y : List (SurfaceCellComplex.SignedDart (Fin n))) (haX : aList.map edgeOfDart X) (haY : aList.map edgeOfDart Y) (validSource : (adjacentSource a X Y).IsSurfaceValid) (validTarget : (adjacentTarget a X Y).IsSurfaceValid) :
                        NormalizationEquivalent { presentation := adjacentSource a X Y, valid := validSource } { presentation := adjacentTarget a X Y, valid := validTarget }

                        Gallier--Xu's alternate rule a a X Y ~ a Y a X⁻¹.

                        @[reducible]

                        The source spelling for Gallier--Xu handle extraction.

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

                          The result of the first Dyck rewrite.

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

                            A cyclic spelling of afterFirst exposing the two occurrences of b.

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

                              The result of the second Dyck rewrite.

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

                                A cyclic spelling of afterSecond exposing a⁻¹ before a.

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

                                  The target spelling contains the handle a b a⁻¹ b⁻¹, followed cyclically by Y X V U.

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

                                    Handle extraction preserves the unoriented edge-occurrence multiset, hence ordinary validity.

                                    Rotate the first Dyck target to expose the second distinguished edge.

                                    Rotate the second Dyck target to expose a in the opposite orientation.

                                    theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.Handle.normalizationEquivalent {n : } (a b : Fin n) (U V X Y : List (SurfaceCellComplex.SignedDart (Fin n))) (hab : a b) (haU : aList.map edgeOfDart U) (haV : aList.map edgeOfDart V) (haX : aList.map edgeOfDart X) (haY : aList.map edgeOfDart Y) (hbU : bList.map edgeOfDart U) (hbV : bList.map edgeOfDart V) (hbX : bList.map edgeOfDart X) (hbY : bList.map edgeOfDart Y) (validSource : (source a b U V X Y).IsSurfaceValid) (validTarget : (target a b U V X Y).IsSurfaceValid) :
                                    NormalizationEquivalent { presentation := source a b U V X Y, valid := validSource } { presentation := target a b U V X Y, valid := validTarget }

                                    Gallier--Xu's three-Dyck chain extracts the interleaved opposite pairs as a handle.

                                    @[reducible]

                                    A crosscap followed by a handle, with arbitrary intervening words X and Y.

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

                                      The first alternate cross-cap rewrite.

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

                                        Rotate the first target to expose the two negative occurrences of b.

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

                                          The result of rewriting the two negative occurrences of b.

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

                                            Expose the two negative occurrences of c.

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

                                              The result of rewriting the two negative occurrences of c.

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

                                                Expose the remaining two occurrences of a.

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

                                                  The final spelling is cyclically a a X c c b b Y: three crosscaps.

                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.HandleToCrosscaps.normalizationEquivalent {n : } (a b c : Fin n) (X Y : List (SurfaceCellComplex.SignedDart (Fin n))) (hab : a b) (hac : a c) (hbc : b c) (haX : aList.map edgeOfDart X) (haY : aList.map edgeOfDart Y) (hbX : bList.map edgeOfDart X) (hbY : bList.map edgeOfDart Y) (hcX : cList.map edgeOfDart X) (hcY : cList.map edgeOfDart Y) (validSource : (source a b c X Y).IsSurfaceValid) (validTarget : (target a b c X Y).IsSurfaceValid) :
                                                    NormalizationEquivalent { presentation := source a b c X Y, valid := validSource } { presentation := target a b c X Y, valid := validTarget }

                                                    Gallier--Xu Step 5: a crosscap and a handle are equivalent to three crosscaps.

                                                    @[reducible]

                                                    A cyclic word with the loop block a H a⁻¹, a separating word X, and a block V to move next to the loop.

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

                                                      Rotate the source to expose the negative occurrence of a first.

                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.LoopGrouping.normalizationEquivalent {n : } (a : Fin n) (H X V : List (SurfaceCellComplex.SignedDart (Fin n))) (haH : aList.map edgeOfDart H) (haX : aList.map edgeOfDart X) (haV : aList.map edgeOfDart V) (validSource : (source a H X V).IsSurfaceValid) (validTarget : (target a H X V).IsSurfaceValid) :
                                                        NormalizationEquivalent { presentation := source a H X V, valid := validSource } { presentation := target a H X V, valid := validTarget }

                                                        Gallier--Xu loop grouping is one negative Dyck rewrite after a cyclic rotation.