Documentation

LeanPool.BrillNoetherGraphs.Tricycle.RegularSubdivisionBridge

The occurrence presentation of a unit-length subdivision spec #

regularSubdivision G k (Utilities/Gonality/GonalityTransport.lean) builds σ_k(G) on the occurrence presentation of G, which labels vertices and edge occurrences by arbitrary Fintype.equivFin bijections. A graph that is already given as spec.graph for a unit-length spec : Spec n p therefore has two descriptions of σ_k, and this module shows they agree:

Nonempty (LaplacianEquiv (spec.scale k hk).graph (regularSubdivision spec.graph k hk))

The content is a slot correspondence. spec.graph.edges is Multiset.map spec.unitEdge univ, so its multiset-as-type (x : V × V) × Fin (count x) is equivalent to spec.Step — compatibly with unitEdge, which is the only property the endpoint conditions of a Spec.Relabeling need. With unit lengths spec.Step ≃ Fin p and spec.Vertex ≃ Fin n, and the relabeling assembles.

The payoff is that the tricycle gap can be stated for regularSubdivisionGonality : CFGraph → ℕ, with no Spec in the statement.

The multiset of edges, as a type #

The slot correspondence. The edge multiset of a subdivision, viewed as a type, enumerates the unit steps — compatibly with unitEdge.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem Utilities.Certificate.SubdivisionGraph.Spec.stepEquivEdges_coe {n p : ℕ} (spec : Spec n p) (step : spec.Step) :
    (spec.stepEquivEdges step).fst = spec.unitEdge step

    Unit-length specs #

    def Utilities.Certificate.SubdivisionGraph.Spec.unitVertexEquiv {n p : ℕ} (spec : Spec n p) (hlen : ∀ (e : Fin p), spec.length e = 1) :
    Fin n ≃ spec.Vertex

    With all lengths one there are no interior vertices.

    Equations
    Instances For
      @[simp]
      theorem Utilities.Certificate.SubdivisionGraph.Spec.unitVertexEquiv_apply {n p : ℕ} (spec : Spec n p) (hlen : ∀ (e : Fin p), spec.length e = 1) (v : Fin n) :
      (spec.unitVertexEquiv hlen) v = spec.coreVertex v
      def Utilities.Certificate.SubdivisionGraph.Spec.unitStepEquiv {n p : ℕ} (spec : Spec n p) (hlen : ∀ (e : Fin p), spec.length e = 1) :
      Fin p ≃ spec.Step

      With all lengths one, every slot has exactly one unit step.

      Equations
      Instances For
        theorem Utilities.Certificate.SubdivisionGraph.Spec.unitEdge_unitStepEquiv {n p : ℕ} (spec : Spec n p) (hlen : ∀ (e : Fin p), spec.length e = 1) (e : Fin p) :
        spec.unitEdge ((spec.unitStepEquiv hlen) e) = (spec.coreVertex (spec.core.tail e), spec.coreVertex (spec.core.head e))

        The relabeling #

        noncomputable def Utilities.Certificate.SubdivisionGraph.Spec.unitCoreEquiv {n p : ℕ} (spec : Spec n p) (hlen : ∀ (e : Fin p), spec.length e = 1) :

        The vertex labelling used by the occurrence presentation, restricted to the core vertices.

        Equations
        Instances For
          noncomputable def Utilities.Certificate.SubdivisionGraph.Spec.unitSlotEquiv {n p : ℕ} (spec : Spec n p) (hlen : ∀ (e : Fin p), spec.length e = 1) :

          The slot labelling used by the occurrence presentation.

          Equations
          Instances For
            theorem Utilities.Certificate.SubdivisionGraph.Spec.edgeAt_unitSlotEquiv {n p : ℕ} (spec : Spec n p) (hlen : ∀ (e : Fin p), spec.length e = 1) (e : Fin p) :
            noncomputable def Utilities.Certificate.SubdivisionGraph.Spec.scaleRelabeling {n p : ℕ} (spec : Spec n p) (hlen : ∀ (e : Fin p), spec.length e = 1) (k : ℕ) (hk : 0 < k) :

            The two presentations of σ_k agree.

            Equations
            Instances For
              noncomputable def Utilities.Certificate.SubdivisionGraph.Spec.scaleLaplacianEquiv {n p : ℕ} (spec : Spec n p) (hlen : ∀ (e : Fin p), spec.length e = 1) (k : ℕ) (hk : 0 < k) :

              The bridge. For a unit-length subdivision specification, scaling the specification by k and building σ_k on the occurrence presentation of its graph give the same graph up to Laplacian equivalence.

              Equations
              Instances For

                The CFGraph-level invariant agrees with the Spec-level one on a unit-length specification.