Documentation

LeanPool.BrillNoetherGraphs.Utilities.Subdivision.TrivalentExpansion

A genus-generic trivalent expansion #

Every connected ordered loopless core all of whose vertices carry at least three slot ends is the image of a cubic ordered loopless core under an equal-genus topological contraction.

The construction is the centipede: a core vertex w of valence d is replaced by a path of d - 2 trivalent vertices, each carrying one or two free legs, and the d slot ends at w are distributed along those legs. The fibre over w is a tree (a path), so contracting all fibres preserves b₁.

Counting is uniform: writing g = p - n + 1 for the genus of the core, the expanded core has 2 (g - 1) vertices and 3 (g - 1) slots, which is exactly what trivalence forces (2E = 3V and E - V + 1 = g).

The output is packaged as Utilities.Subdivision.CoreExpansion.ExpansionData, so Utilities.Subdivision.CoreExpansion.ExpansionData.certificate_topologicalValid turns it into an actual topological contraction certificate from a positive subdivision of the expanded cubic core onto any positive subdivision of the given core.

An adjacent-flip lemma #

theorem Utilities.Subdivision.TrivalentExpansion.exists_flip_down (P : ℕ → Prop) {a : ℕ} (ha : P a) (b : ℕ) :
a ≤ b → ¬P b → ∃ (k : ℕ), k + 1 ≤ b ∧ P k ∧ ¬P (k + 1)

Walking down from a point where P holds to a point where it fails crosses an adjacent flip.

theorem Utilities.Subdivision.TrivalentExpansion.exists_adjacent_flip {m : ℕ} (P : ℕ → Prop) {a b : ℕ} (ham : a < m) (hbm : b < m) (ha : P a) (hb : ¬P b) :
∃ (k : ℕ), k + 1 < m ∧ (P k ∧ ¬P (k + 1) ∨ ¬P k ∧ P (k + 1))

Two points of Fin m on opposite sides of a predicate are separated by an adjacent flip inside Fin m.

The centipede leg map #

Position along the centipede of the k-th slot end at a vertex of valence D. Ends 0 and 1 sit on the first centipede vertex, ends D - 2 and D - 1 on the last, and each remaining end has a centipede vertex to itself.

Equations
Instances For

    The expanded core, before it is indexed by Fin #

    @[reducible, inline]

    Vertices of the expansion: for each core vertex w, a centipede of slotValence C w - 2 vertices.

    Equations
    Instances For
      @[reducible, inline]

      Slots of the expansion: the slotValence C w - 3 centipede edges at each core vertex, plus one carrier for each core slot.

      Equations
      Instances For

        The centipede vertex carrying a given slot end.

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

          The tail end of a core slot, as an element of the slot-end set.

          Equations
          Instances For

            The head end of a core slot, as an element of the slot-end set.

            Equations
            Instances For

              Tail endpoint of an expansion slot.

              Equations
              Instances For

                Head endpoint of an expansion slot.

                Equations
                Instances For

                  Counting #

                  Indexing the expansion by Fin #

                  An indexing of the expansion vertices.

                  Equations
                  Instances For

                    An indexing of the expansion slots.

                    Equations
                    Instances For

                      The centipede expansion datum.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        @[simp]
                        theorem Utilities.Subdivision.TrivalentExpansion.exists_slot {n p : ℕ} (C : Certificate.ExplicitPotential.Core n p) (hDeg : ∀ (w : Fin n), 3 ≤ Certificate.PseudocorePresentation.slotValence C w) (e : Fin (3 * (p - n))) :
                        ∃ (a : BigE C), (eEquiv C hDeg) a = e

                        Every expansion slot index comes from an abstract expansion slot.

                        theorem Utilities.Subdivision.TrivalentExpansion.exists_vertex {n p : ℕ} (C : Certificate.ExplicitPotential.Core n p) (hDeg : ∀ (w : Fin n), 3 ≤ Certificate.PseudocorePresentation.slotValence C w) (v : Fin (2 * (p - n))) :
                        ∃ (x : BigV C), (vEquiv C hDeg) x = v

                        Every expansion vertex index comes from an abstract expansion vertex.

                        The expansion conditions #

                        theorem Utilities.Subdivision.TrivalentExpansion.bigCore_loopless {n p : ℕ} (C : Certificate.ExplicitPotential.Core n p) (hDeg : ∀ (w : Fin n), 3 ≤ Certificate.PseudocorePresentation.slotValence C w) (hLoop : ∀ (j : Fin p), C.tail j ≠ C.head j) (e : Fin (3 * (p - n))) :
                        (data C hDeg).bigCore.tail e ≠ (data C hDeg).bigCore.head e

                        Fibre connectivity #

                        theorem Utilities.Subdivision.TrivalentExpansion.fibre_crossing {n p : ℕ} (C : Certificate.ExplicitPotential.Core n p) (hDeg : ∀ (w : Fin n), 3 ≤ Certificate.PseudocorePresentation.slotValence C w) (T : Finset (Fin (2 * (p - n)))) (w : Fin n) (ia ib : Fin (Certificate.PseudocorePresentation.slotValence C w - 2)) (ha : (vEquiv C hDeg) ⟨w, ia⟩ ∈ T) (hb : (vEquiv C hDeg) ⟨w, ib⟩ ∉ T) :
                        ∃ (e : Fin (3 * (p - n))), (data C hDeg).kind e = CoreExpansion.SlotKind.contracted ∧ (data C hDeg).fib ((data C hDeg).bigCore.tail e) = w ∧ ((data C hDeg).bigCore.tail e ∈ T ∧ (data C hDeg).bigCore.head e ∉ T ∨ (data C hDeg).bigCore.head e ∈ T ∧ (data C hDeg).bigCore.tail e ∉ T)

                        Two centipede vertices over the same core vertex on opposite sides of a subset are separated by a contracted slot of that centipede.

                        The expansion conditions hold.

                        The expanded core is cubic #

                        The expansion slot end attached to a core slot end.

                        Equations
                        Instances For

                          The expansion slot end attached to the k-th slot end at w lies over the centipede vertex its leg index names.

                          theorem Utilities.Subdivision.TrivalentExpansion.three_le_card_of_three_mem {α : Type} {s : Finset α} {a b c : α} (hab : a ≠ b) (hac : a ≠ c) (hbc : b ≠ c) (ha : a ∈ s) (hb : b ∈ s) (hc : c ∈ s) :
                          3 ≤ s.card

                          The expanded core is connected #

                          The genus-generic trivalent expansion theorem #

                          theorem Utilities.Subdivision.TrivalentExpansion.exists_expansion {n p : ℕ} (C : Certificate.ExplicitPotential.Core n p) (hLoop : ∀ (j : Fin p), C.tail j ≠ C.head j) (hDeg : ∀ (w : Fin n), 3 ≤ Certificate.PseudocorePresentation.slotValence C w) (hConn : C.Connected) :
                          ∃ (D : CoreExpansion.ExpansionData n p (2 * (p - n)) (3 * (p - n))), D.Conditions C ∧ D.bigCore.Cubic ∧ D.bigCore.Connected

                          Trivalent expansion. Every connected ordered loopless core of minimum slot valence three is the target of an equal-genus topological contraction from a cubic connected ordered loopless core, whose size is forced by trivalence: 2 (g - 1) vertices and 3 (g - 1) slots, where g = p - n + 1 is the genus.