Documentation

LeanPool.ClassificationOfSurfaces.FiniteCyclicNormalization

Stable closure for Gallier--Xu normalization chains #

Directed P1/P2 chains and common subdivisions preserve ordinary validity internally. The cross-cap rewrite additionally reads one refined face backwards, and the current orientation-sensitive validity predicate is not invariant under arbitrary face reversal.

ValidPresentation therefore bundles the ordinary-validity witness at every node of a normalization chain. NormalizationStep has exactly two proof-producing seams:

The equivalence closure composes these seams, and its realization theorem needs no extra intermediate validity arguments. This is the stable target for the remaining derived normalization chains.

An ordinary-valid finite cyclic presentation, used as a node in a normalization chain.

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

    One validity-safe normalization comparison. Common subdivisions cover the P1/P2/signed closure; the second constructor covers an independent choice of face traversal in either direction.

    Instances For

      A one-sided-degenerate P2 split is a normalization step.

      Every normalization step preserves the faithful polygonal realization of its bundled valid endpoints.

      Equivalence closure of validity-safe normalization comparisons.

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

        A directed subdivision is a normalization equivalence, using its target as the common subdivision.

        A one-sided-degenerate P2 split is a normalization equivalence.

        A normalization chain yields a homeomorphism of the faithful polygonal realizations of its endpoints.

        theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.Dyck.normalizationEquivalent {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 : (source a U V X).IsSurfaceValid) (validTarget : (target a U V X).IsSurfaceValid) :
        NormalizationEquivalent { presentation := source a U V X, valid := validSource } { presentation := target a U V X, valid := validTarget }

        The generic Dyck rewrite as a node in the stable normalization closure.

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

        The generic cross-cap rewrite as a three-step normalization chain: split the source, reverse the right refined face, and merge to the target.

        Contract a canonical P1 expansion inside the normalization closure.

        theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.mergeNormalizationEquivalent (P : FiniteCyclicPresentation) (cut : P.P2Cut) (hcut : cut.IsNondegenerate) (validP : P.IsSurfaceValid) :
        NormalizationEquivalent { presentation := split P cut, valid := } { presentation := P, valid := validP }

        Merge the two children of a nondegenerate canonical P2 split inside the normalization closure.

        theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.oneSidedMergeNormalizationEquivalent (P : FiniteCyclicPresentation) (cut : P.P2Cut) (honeSided : cut.left = [] 0 < cut.right.length 0 < cut.left.length cut.right = []) (validP : P.IsSurfaceValid) :
        NormalizationEquivalent { presentation := split P cut, valid := } { presentation := P, valid := validP }

        Merge the two children of a one-sided-degenerate P2 split. This is the inverse form needed by cancellation chains, where one child is a monogon.

        theorem LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.P2.ordinaryMergeNormalizationEquivalent (P : FiniteCyclicPresentation) (cut : P.P2Cut) (hcut : cut.IsNondegenerate cut.left = [] 0 < cut.right.length 0 < cut.left.length cut.right = []) (validP : P.IsSurfaceValid) :
        NormalizationEquivalent { presentation := split P cut, valid := } { presentation := P, valid := validP }

        Merge any ordinary-valid canonical P2 split whose cut is either nondegenerate or one-sided-degenerate.