Documentation

LeanPool.BrillNoetherGraphs.Tricycle.Degree5

Lemma 3.6 and Corollary 3.7 #

Van Dobben de Bruyn–Smit–van der Wegen, Lemma 3.6: on any subdivision H of the minimal tricycle, a positive-rank v₀-reduced divisor of degree at most 5 carries exactly two chips on v₀ and exactly one chip on each transition path. Corollary 3.7, dgon(H) ≥ 5, is then immediate, and holds for every length vector — which is what makes the left-hand side of the tricycle gap a minimum over all σ_k rather than a bound at one k.

How the bookkeeping is kept linear #

The source's regions Cᵢ and its closed transition paths overlap. To keep the chip counting explicit, every count is expressed in the slot coordinate system of Utilities/Subdivision/SpecBurning.lean — the seven core-vertex values D (coreVertex v) and the fifteen slot-interior totals slotInteriorChips D e. Each geometric conclusion is then a linear inequality in those twenty-two integers, the degree identity is one more, and linarith finishes. No Finset union, no inclusion–exclusion.

Aggregates #

The chips on the closed transition path i, from vᵢ⁺ to vᵢ₊₁⁻.

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

    The chips on the cycle Cᵢ.

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

      The chips on the interiors of the two spokes meeting Cᵢ.

      Equations
      Instances For

        Transporting the slot dictionary to an arbitrary subdivision #

        Cycle blocking on the tricycle #

        theorem Utilities.Tricycle.two_le_cycleChips_of_minus_burned {spec : Certificate.SubdivisionGraph.Spec 7 15} {D : CFDiv spec.graph} {w : spec.Vertex} (hcore : spec.core = tricycleCore) (hEff : effective D) (i : Fin 3) (hu : spec.coreVertex (vMinus i) ∈ Gonality.burned spec.graph D w) (hu' : spec.coreVertex (vPlus i) ∉ Gonality.burned spec.graph D w) :
        2 ≤ cycleChips spec D i

        If vᵢ⁻ burns and vᵢ⁺ does not, the cycle Cᵢ carries two chips.

        theorem Utilities.Tricycle.two_le_cycleChips_of_plus_burned {spec : Certificate.SubdivisionGraph.Spec 7 15} {D : CFDiv spec.graph} {w : spec.Vertex} (hcore : spec.core = tricycleCore) (hEff : effective D) (i : Fin 3) (hu : spec.coreVertex (vPlus i) ∈ Gonality.burned spec.graph D w) (hu' : spec.coreVertex (vMinus i) ∉ Gonality.burned spec.graph D w) :
        2 ≤ cycleChips spec D i

        If vᵢ⁺ burns and vᵢ⁻ does not, the cycle Cᵢ carries two chips.

        Chips on a transition path from a burned/unburned split #

        theorem Utilities.Tricycle.one_le_transitionPath_up {spec : Certificate.SubdivisionGraph.Spec 7 15} {D : CFDiv spec.graph} {w : spec.Vertex} (hcore : spec.core = tricycleCore) (hEff : effective D) (i : Fin 3) (hb : spec.coreVertex (vPlus i) ∈ Gonality.burned spec.graph D w) (hnb : spec.coreVertex (vMinus (i + 1)) ∉ Gonality.burned spec.graph D w) :
        1 ≤ spec.slotInteriorChips D (transitionSlot i) + D (spec.coreVertex (vMinus (i + 1)))

        The fire enters transition path i at vᵢ⁺ and is stopped before vᵢ₊₁⁻: the path carries a chip strictly past vᵢ⁺.

        theorem Utilities.Tricycle.one_le_transitionPath_down {spec : Certificate.SubdivisionGraph.Spec 7 15} {D : CFDiv spec.graph} {w : spec.Vertex} (hcore : spec.core = tricycleCore) (hEff : effective D) (i : Fin 3) (hb : spec.coreVertex (vMinus (i + 1)) ∈ Gonality.burned spec.graph D w) (hnb : spec.coreVertex (vPlus i) ∉ Gonality.burned spec.graph D w) :

        The fire enters transition path i at vᵢ₊₁⁻ and is stopped before vᵢ⁺.

        theorem Utilities.Tricycle.burned_vMinus_of_chipFree {spec : Certificate.SubdivisionGraph.Spec 7 15} {D : CFDiv spec.graph} {w : spec.Vertex} (hcore : spec.core = tricycleCore) (hEff : effective D) (i : Fin 3) (hzero : transitionPathChips spec D i = 0) (hb : spec.coreVertex (vPlus i) ∈ Gonality.burned spec.graph D w) :
        spec.coreVertex (vMinus (i + 1)) ∈ Gonality.burned spec.graph D w

        A chip-free transition path conducts the fire from vᵢ⁺ to vᵢ₊₁⁻.

        Evaluating the slot dictionary at concrete indices #

        @[simp]
        @[simp]
        @[simp]
        @[simp]
        theorem Utilities.Tricycle.fin3_cases (i : Fin 3) :
        i = 0 ∨ i = 1 ∨ i = 2

        The Fin 6 spoke index of vᵢ⁻.

        Equations
        Instances For

          The Fin 6 spoke index of vᵢ⁺.

          Equations
          Instances For

            The degree identity in slot coordinates #

            theorem Utilities.Tricycle.deg_expand (spec : Certificate.SubdivisionGraph.Spec 7 15) (D : CFDiv spec.graph) :
            CFDiv.degree D = D (spec.coreVertex 0) + D (spec.coreVertex 1) + D (spec.coreVertex 2) + D (spec.coreVertex 3) + D (spec.coreVertex 4) + D (spec.coreVertex 5) + D (spec.coreVertex 6) + (spec.slotInteriorChips D 0 + spec.slotInteriorChips D 1 + spec.slotInteriorChips D 2 + spec.slotInteriorChips D 3 + spec.slotInteriorChips D 4 + spec.slotInteriorChips D 5 + spec.slotInteriorChips D 6 + spec.slotInteriorChips D 7 + spec.slotInteriorChips D 8 + spec.slotInteriorChips D 9 + spec.slotInteriorChips D 10 + spec.slotInteriorChips D 11 + spec.slotInteriorChips D 12 + spec.slotInteriorChips D 13 + spec.slotInteriorChips D 14)

            Total degree, written out in the twenty-two slot coordinates.

            The burned-transition-vertex indicator #

            noncomputable def Utilities.Tricycle.burnedInd (spec : Certificate.SubdivisionGraph.Spec 7 15) (D : CFDiv spec.graph) (w : spec.Vertex) (v : Fin 7) :

            1 if the transition vertex v is burned, 0 otherwise.

            Equations
            Instances For
              theorem Utilities.Tricycle.burnedInd_nonneg (spec : Certificate.SubdivisionGraph.Spec 7 15) (D : CFDiv spec.graph) (w : spec.Vertex) (v : Fin 7) :
              0 ≤ burnedInd spec D w v
              theorem Utilities.Tricycle.burnedInd_le_one (spec : Certificate.SubdivisionGraph.Spec 7 15) (D : CFDiv spec.graph) (w : spec.Vertex) (v : Fin 7) :
              burnedInd spec D w v ≤ 1
              theorem Utilities.Tricycle.burnedInd_of_mem {spec : Certificate.SubdivisionGraph.Spec 7 15} {D : CFDiv spec.graph} {w : spec.Vertex} {v : Fin 7} (h : spec.coreVertex v ∈ Gonality.burned spec.graph D w) :
              burnedInd spec D w v = 1
              theorem Utilities.Tricycle.burnedInd_of_not_mem {spec : Certificate.SubdivisionGraph.Spec 7 15} {D : CFDiv spec.graph} {w : spec.Vertex} {v : Fin 7} (h : spec.coreVertex v ∉ Gonality.burned spec.graph D w) :
              burnedInd spec D w v = 0

              Lemma 3.5(b) in slot coordinates #

              theorem Utilities.Tricycle.helper_b_sum {spec : Certificate.SubdivisionGraph.Spec 7 15} {D : CFDiv spec.graph} {w : spec.Vertex} (hcore : spec.core = tricycleCore) (hEff : effective D) (hred : qReduced spec.graph (spec.coreVertex centre) D) (hrank : rank spec.graph D ≥ 1) (hw : D w = 0) :
              burnedInd spec D w 1 + burnedInd spec D w 2 + burnedInd spec D w 3 + burnedInd spec D w 4 + burnedInd spec D w 5 + burnedInd spec D w 6 ≤ D (spec.coreVertex 0) + (spec.slotInteriorChips D 0 + spec.slotInteriorChips D 1 + spec.slotInteriorChips D 2 + spec.slotInteriorChips D 3 + spec.slotInteriorChips D 4 + spec.slotInteriorChips D 5)

              The two half-counts of Lemma 3.6's first paragraph #

              theorem Utilities.Tricycle.three_le_forward {spec : Certificate.SubdivisionGraph.Spec 7 15} {D : CFDiv spec.graph} {w : spec.Vertex} (hcore : spec.core = tricycleCore) (hEff : effective D) (j : Fin 3) (hj : spec.coreVertex (vMinus j) ∈ Gonality.burned spec.graph D w) :
              3 ≤ cycleChips spec D j + spec.slotInteriorChips D (transitionSlot j) + D (spec.coreVertex (vMinus (j + 1))) + burnedInd spec D w (vMinus j) + burnedInd spec D w (vPlus j) + burnedInd spec D w (vMinus (j + 1))

              Forward half-count. If vⱼ⁻ is burned, then Cⱼ together with the closed transition path leaving vⱼ⁺ carries three, counting each burned transition vertex in it as one.

              theorem Utilities.Tricycle.three_le_backward {spec : Certificate.SubdivisionGraph.Spec 7 15} {D : CFDiv spec.graph} {w : spec.Vertex} (hcore : spec.core = tricycleCore) (hEff : effective D) (j : Fin 3) (hj : spec.coreVertex (vPlus j) ∈ Gonality.burned spec.graph D w) :
              3 ≤ cycleChips spec D j + spec.slotInteriorChips D (transitionSlot (j + 2)) + D (spec.coreVertex (vPlus (j + 2))) + burnedInd spec D w (vPlus j) + burnedInd spec D w (vMinus j) + burnedInd spec D w (vPlus (j + 2))

              Backward half-count. If vⱼ⁺ is burned, then Cⱼ together with the closed transition path entering vⱼ⁻ carries three, counting each burned transition vertex in it as one.

              Lemma 3.6, first paragraph: every transition path carries a chip #

              theorem Utilities.Tricycle.one_le_transitionPathChips {spec : Certificate.SubdivisionGraph.Spec 7 15} {D : CFDiv spec.graph} (hcore : spec.core = tricycleCore) (hEff : effective D) (hred : qReduced spec.graph (spec.coreVertex centre) D) (hrank : rank spec.graph D ≥ 1) (hdeg : CFDiv.degree D ≤ 5) (i : Fin 3) :

              Lemma 3.6, second paragraph: two chips on the centre #

              theorem Utilities.Tricycle.two_le_centre_add_spokePair {spec : Certificate.SubdivisionGraph.Spec 7 15} {D : CFDiv spec.graph} (hcore : spec.core = tricycleCore) (hEff : effective D) (hred : qReduced spec.graph (spec.coreVertex centre) D) (hrank : rank spec.graph D ≥ 1) (i : Fin 3) (hcy : cycleChips spec D i ≤ 1) :
              2 ≤ D (spec.coreVertex 0) + spokePairChips spec D i

              A cycle with at most one chip is entirely burned by the fire started at one of its own chip-free transition vertices, so both of its spokes' transition vertices are burned, and Lemma 3.5(b) charges two chips to the centre and those two spokes.

              theorem Utilities.Tricycle.centre_spokePair_or_cycle {spec : Certificate.SubdivisionGraph.Spec 7 15} {D : CFDiv spec.graph} (hcore : spec.core = tricycleCore) (hEff : effective D) (hred : qReduced spec.graph (spec.coreVertex centre) D) (hrank : rank spec.graph D ≥ 1) (i : Fin 3) :
              2 ≤ D (spec.coreVertex 0) + spokePairChips spec D i ∨ 2 ≤ cycleChips spec D i

              The disjunctive form fed to the eight-way case split below.

              Lemma 3.6 #

              theorem Utilities.Tricycle.lemma_graad5 {spec : Certificate.SubdivisionGraph.Spec 7 15} {D : CFDiv spec.graph} (hcore : spec.core = tricycleCore) (hEff : effective D) (hred : qReduced spec.graph (spec.coreVertex centre) D) (hrank : rank spec.graph D ≥ 1) (hdeg : CFDiv.degree D ≤ 5) :
              D (spec.coreVertex 0) = 2 ∧ transitionPathChips spec D 0 = 1 ∧ transitionPathChips spec D 1 = 1 ∧ transitionPathChips spec D 2 = 1

              Lemma 3.6. On any subdivision of the minimal tricycle, a positive-rank v₀-reduced divisor of degree at most five has exactly two chips on v₀ and exactly one chip on each of the three transition paths.

              Corollary 3.7 #

              Corollary 3.7. Every subdivision of the minimal tricycle has divisorial gonality at least five — for every length vector, hence for every σ_k. This is what makes the left-hand side of the tricycle gap a minimum rather than a bound at one k.