Documentation

CslibFrontier.Computability.Complexity.Problems.Graph.RotationSystem.VertexMerge

Identifying two distinct incident vertices at specified corners #

The second endpoint name is replaced by the first throughout the actual listed graph. The successor swap joins precisely the two old vertex cycles. Complete orbit counting proves the one-cycle-per-vertex contract, including singleton old vertex rotations. Edge positions and ends are unchanged; this is not a higher-arity constraint reflection.

Identify the second corner's vertex with the first, retaining all listed edge positions.

Instances For

    Merging vertex names retains the actual indexed edge/end occurrence.

    Instances For
      @[simp]

      Literal endpoint renaming at each retained indexed end.

      The incident vertices after merging are exactly the old incident names except the removed second name. Declared points do not enter this dart-indexed correspondence.

      Instances For

        Exactly one nonempty vertex fiber is removed, including when either old fiber was unary.

        Join the two distinct vertex fibers at the specified oriented corners. Its successor is computed by one outgoing swap, and all orbit/vertex facts are proved from that permutation.

        Instances For
          @[simp]

          Vertex identification preserves the original indexed edge reversal.

          @[simp]

          Literal successor permutation of the constructed vertex identification.

          The first chosen corner continues with the second old forward block.

          The second chosen corner continues with the first old forward block.

          theorem Cslib.Complexity.Graph.RotationSystem.rotate_mergeVertices_other {G : Graph} (r : G.RotationSystem) (h k d : G.Dart) (hk : h.vertex ≠ k.vertex) (hd : d ≠ h) (he : d ≠ k) :
          (r.mergeVertices h k hk).rotate ((mergeDartEquiv h k) d) = (mergeDartEquiv h k) (r.rotate d)

          Every successor outside the two chosen corners is literally retained.