Documentation

LeanPool.BrillNoetherGraphs.Bananas.Jacobian.BananaTorsionSlopes

Slope arithmetic for torsion classes on banana graphs #

This file generalizes the normalized-slope part of ThetaPrincipal.lean from three strands to an arbitrary banana. It is the potential-theoretic input to the corrected Proposition 4.19: a principal multiple of a marked difference has one common endpoint rise, while every unmarked strand carries a nonzero integral slope when that rise is nonzero.

Evaluate a firing script at a strand position, with value zero beyond the strand endpoint.

Equations
Instances For

    The difference of consecutive firing-script values along a strand.

    Equations
    Instances For
      theorem Bananas.bananaPathValue_eq {g : ℕ} (B : Banana g) (script : firingScript (Utilities.Certificate.SubdivisionGraph.Spec.graph B)) (α : Fin (g + 1)) (r : ℕ) (hr : r ≤ B.length α) :
      bananaPathValue B script α r = script (strandVertex B α ⟨r, ⋯⟩)
      theorem Bananas.bananaStepSlope_eq {g : ℕ} (B : Banana g) (script : firingScript (Utilities.Certificate.SubdivisionGraph.Spec.graph B)) (α : Fin (g + 1)) (r : ℕ) (hr : r < B.length α) :
      bananaStepSlope B script α r = script (strandVertex B α ⟨r + 1, ⋯⟩) - script (strandVertex B α ⟨r, ⋯⟩)
      theorem Bananas.sum_bananaStepSlope {g : ℕ} (B : Banana g) (script : firingScript (Utilities.Certificate.SubdivisionGraph.Spec.graph B)) (α : Fin (g + 1)) :
      ∑ r ∈ Finset.range (B.length α), bananaStepSlope B script α r = script (rightEndpoint B) - script (leftEndpoint B)

      Express the strand slope in the stored edge orientation, reversing its order and sign when needed.

      Equations
      Instances For

        Extracting the initial slope from a principal divisor #

        The sum of a divisor's coefficients at the interior vertices of one strand.

        Equations
        Instances For

          The sum of interior divisor coefficients weighted by their distance from the left endpoint.

          Equations
          Instances For

            The initial slope on a strand is determined by the common rise and the zeroth and first interior moments of the principal divisor.

            theorem Bananas.exists_prin_eq_neg_marked_difference_of_torsionWitness {G : CFGraph} (u v : G.V) (k : ℕ) (hk : TorsionWitness (mark G u v) k) :
            ∃ (script : firingScript G), (prin G) script = ↑k • (oneChip v - oneChip u)

            A torsion witness supplies a potential whose principal divisor is the negative marked difference. This orientation makes the left-endpoint sum equal to -k in the endpoint cases.

            theorem Bananas.torsion_interior_initialSlope_equations {g k : ℕ} (B : Banana g) (α β : Fin (g + 1)) (i : Utilities.Certificate.SubdivisionGraph.Spec.PathPosition B α) (j : Utilities.Certificate.SubdivisionGraph.Spec.PathPosition B β) (hi : Utilities.Certificate.SubdivisionGraph.Spec.IsInteriorPosition B α i) (hj : Utilities.Certificate.SubdivisionGraph.Spec.IsInteriorPosition B β j) (hαβ : α ≠ β) (hk : TorsionWitness (mark (Utilities.Certificate.SubdivisionGraph.Spec.graph B) (strandVertex B α i) (strandVertex B β j)) k) :
            ∃ (script : firingScript (Utilities.Certificate.SubdivisionGraph.Spec.graph B)) (rise : ℤ) (slope : Fin (g + 1) → ℤ), rise = script (rightEndpoint B) - script (leftEndpoint B) ∧ ∑ γ : Fin (g + 1), slope γ = 0 ∧ ↑(B.length α) * slope α = rise + ↑(B.length α - ↑i) * ↑k ∧ ↑(B.length β) * slope β = rise - ↑(B.length β - ↑j) * ↑k ∧ ∀ (γ : Fin (g + 1)), γ ≠ α → γ ≠ β → ↑(B.length γ) * slope γ = rise

            Initial-slope equations for a principal multiple of two distinct interior marks. The three cases are the two marked strands and every unmarked strand.

            The finite-sum arithmetic behind the torsion lower bound #

            theorem Bananas.endpoint_slope_period_gt_genus {g k : ℕ} (hk : 0 < k) (length : Fin (g + 1) → ℕ) (hlen : ∀ (a : Fin (g + 1)), 0 < length a) (s : Fin (g + 1) → ℤ) (rise : ℤ) (hrise : ∀ (a : Fin (g + 1)), rise = ↑(length a) * s a) (hsum : ∑ a : Fin (g + 1), s a = -↑k) :
            g < k

            If every strand has the same nonzero integral rise and the left endpoint is one of the marks, the marked multiple is strictly larger than the genus. This is the slope form of paper Lemma 4.20.

            theorem Bananas.endpoint_penultimate_slope_period_gt_genus {g k : ℕ} (hk : 0 < k) (distinguished : Fin (g + 1)) (length : Fin (g + 1) → ℕ) (hlen : ∀ (a : Fin (g + 1)), 0 < length a) (hdist : 2 ≤ length distinguished) (s : Fin (g + 1) → ℤ) (rise : ℤ) (hriseOther : ∀ (a : Fin (g + 1)), a ≠ distinguished → rise = ↑(length a) * s a) (hriseDist : rise = ↑(length distinguished) * s distinguished + ↑k) (hsum : ∑ a : Fin (g + 1), s a = -↑k) :
            g < k

            Slope form of the endpoint/penultimate case (paper Lemma 4.23).

            theorem Bananas.interior_torsion_rise_zero_or_period_ge_genus {g k : ℕ} (_hg : 1 ≤ g) (B : Banana g) (α β : Fin (g + 1)) (i : Utilities.Certificate.SubdivisionGraph.Spec.PathPosition B α) (j : Utilities.Certificate.SubdivisionGraph.Spec.PathPosition B β) (hi : Utilities.Certificate.SubdivisionGraph.Spec.IsInteriorPosition B α i) (hj : Utilities.Certificate.SubdivisionGraph.Spec.IsInteriorPosition B β j) (hαβ : α ≠ β) (hTO : IsTorsionOrder (mark (Utilities.Certificate.SubdivisionGraph.Spec.graph B) (strandVertex B α i) (strandVertex B β j)) k) :
            ∃ (script : firingScript (Utilities.Certificate.SubdivisionGraph.Spec.graph B)) (rise : ℤ) (slope : Fin (g + 1) → ℤ), rise = script (rightEndpoint B) - script (leftEndpoint B) ∧ ∑ γ : Fin (g + 1), slope γ = 0 ∧ ↑(B.length α) * slope α = rise + ↑(B.length α - ↑i) * ↑k ∧ ↑(B.length β) * slope β = rise - ↑(B.length β - ↑j) * ↑k ∧ (∀ (γ : Fin (g + 1)), γ ≠ α → γ ≠ β → ↑(B.length γ) * slope γ = rise) ∧ (rise = 0 ∨ g ≤ k)

            For two distinct interior marks, a nonzero endpoint rise already forces the torsion period to be at least the genus. This is the common sign argument behind all interior exceptional cases of Proposition 4.19.

            theorem Bananas.fintype_sum_eq_two_of_zero_off {n : ℕ} (s : Fin n → ℤ) (a b : Fin n) (hab : a ≠ b) (hoff : ∀ (c : Fin n), c ≠ a → c ≠ b → s c = 0) :
            ∑ c : Fin n, s c = s a + s b
            theorem Bananas.zero_rise_cross_oneOff_forces_both_length_two {g k : ℕ} (B : Banana g) (α β : Fin (g + 1)) (i : Utilities.Certificate.SubdivisionGraph.Spec.PathPosition B α) (j : Utilities.Certificate.SubdivisionGraph.Spec.PathPosition B β) (hαβ : α ≠ β) (hi : ↑i = 1) (hj : ↑j + 1 = B.length β) (hiInt : Utilities.Certificate.SubdivisionGraph.Spec.IsInteriorPosition B α i) (hjInt : Utilities.Certificate.SubdivisionGraph.Spec.IsInteriorPosition B β j) (hk : 0 < k) (slope : Fin (g + 1) → ℤ) (hsum : ∑ γ : Fin (g + 1), slope γ = 0) (hAlpha : ↑(B.length α) * slope α = ↑(B.length α - ↑i) * ↑k) (hBeta : ↑(B.length β) * slope β = -↑(B.length β - ↑j) * ↑k) (hOther : ∀ (γ : Fin (g + 1)), γ ≠ α → γ ≠ β → ↑(B.length γ) * slope γ = 0) :
            B.length α = 2 ∧ B.length β = 2

            In the zero-rise near-opposite case, both marked strands have length two. This is the corrected zero-rise core of paper Lemma 4.27.

            Corrected Lemma 4.27 for the near-opposite interior family.

            theorem Bananas.isTorsionOrder_swap_marks {G : CFGraph} (u v : G.V) {k : ℕ} (hTO : IsTorsionOrder (mark G u v) k) :

            Corrected Lemma 4.23: an endpoint and the penultimate point of a strand have torsion order strictly larger than the genus.

            Reflected endpoint/near-endpoint form of the preceding theorem.