Documentation

LeanPool.MarkoffModP.BGS.HasseWeil.PlaneFrobeniusDeflation

Frobenius deflation for affine plane curves #

If the first partial derivative vanishes in characteristic p, every first coordinate exponent is divisible by p. This module contracts those exponents, proves that substitution X₀ ↦ X₀^p reconstructs the original polynomial, and records the exact invariants needed by the affine Hasse--Weil reduction: absolute irreducibility, the other partial derivative, the supplied bidegree bound, and the finite-field affine point count.

Unlike a coordinate shear, this operation does not enlarge the other coordinate degree, and it strictly lowers the actual first coordinate degree whenever that degree is positive.

noncomputable def BGS.HasseWeil.planeFirstInflateSubstitution (R : Type u_1) [CommRing R] (p : ℕ) :
Fin 2 → MvPolynomial (Fin 2) R

Substitute X₀^p for X₀, leaving X₁ unchanged.

Equations
Instances For
    noncomputable def BGS.HasseWeil.planeFirstInflateHom (R : Type u_1) [CommRing R] (p : ℕ) :

    The one-coordinate Frobenius expansion homomorphism.

    Equations
    Instances For
      noncomputable def BGS.HasseWeil.planeFirstDeflate (R : Type u_1) [CommRing R] (p : ℕ) (f : MvPolynomial (Fin 2) R) :

      Divide the exponents of X₀ by p, discarding coefficients whose exponents are not divisible by p.

      Equations
      Instances For
        theorem BGS.HasseWeil.planeFirstInflateHom_planeFirstDeflate {R : Type u_1} [CommRing R] [IsDomain R] (p : ℕ) [CharP R p] (hp : p ≠ 0) (f : MvPolynomial (Fin 2) R) (hderiv : (MvPolynomial.pderiv 0) f = 0) :
        noncomputable def BGS.HasseWeil.scaleFirstExponent (p : ℕ) (m : Fin 2 →₀ ℕ) :

        Multiply only the first exponent of a plane monomial by p.

        Equations
        Instances For
          @[simp]
          theorem BGS.HasseWeil.hasBidegreeAtMost_of_planeFirstInflateHom {R : Type u_1} [CommRing R] (p : ℕ) (hp : 0 < p) {f : MvPolynomial (Fin 2) R} {firstDegree secondDegree : ℕ} (hdegree : External.HasBidegreeAtMost ((planeFirstInflateHom R p) f) firstDegree secondDegree) :
          External.HasBidegreeAtMost f firstDegree secondDegree

          A bidegree bound for a one-coordinate inflation descends to the unexpanded polynomial without loss.

          noncomputable def BGS.HasseWeil.planeFirstFrobeniusPointEquiv (K : Type u_2) [Field K] [Fintype K] (p : ℕ) [Fact (Nat.Prime p)] [CharP K p] :
          K × K ≃ K × K

          Frobenius in the first coordinate, identity in the second.

          Equations
          Instances For
            @[simp]
            theorem BGS.HasseWeil.planeFirstFrobeniusPointEquiv_apply (K : Type u_2) [Field K] [Fintype K] (p : ℕ) [Fact (Nat.Prime p)] [CharP K p] (z : K × K) :

            Frobenius bijects the affine zero set of an inflation with the affine zero set of the unexpanded polynomial.

            Equations
            Instances For
              theorem BGS.HasseWeil.exists_planeFirstFrobeniusDeflationStep (K : Type u_2) [Field K] [Fintype K] [DecidableEq K] (f : MvPolynomial (Fin 2) K) (firstDegree secondDegree : ℕ) (hdegree : External.HasBidegreeAtMost f firstDegree secondDegree) (habsolute : Irreducible ((MvPolynomial.map (algebraMap K (AlgebraicClosure K))) f)) (hpartialFirst : (MvPolynomial.pderiv 0) f = 0) (hpartialSecond : (MvPolynomial.pderiv 1) f ≠ 0) (hfirstDegree : 0 < MvPolynomial.degreeOf 0 f) :

              One strict Frobenius-deflation step in the first coordinate. The second partial derivative is retained, absolute irreducibility and the affine point count descend, and no supplied bidegree bound is enlarged.

              Iterating the strict first-coordinate step terminates. Unless the original polynomial has actual first degree zero, it produces a polynomial with both coordinate partials nonzero, without increasing the supplied bidegree bounds or changing the affine point count.