Documentation

LeanPool.CCDN.AuxiliaryPolynomial.ScaledAuxiliaryCount

Proper affine sections and Bézout counts from prime-scaled homogeneous models. The coordinate slice is x₀=p, and the original points stay integral.

theorem CCDN.scaled_auxiliary_rational_not_dvd {n M : ℕ} (f : MvPolynomial (Fin n) ℤ) (hf0 : f ≠ 0) (hprim : PrimitiveIntegerPolynomial f) {p : ℕ} (hp : Nat.Prime p) (hp0 : ¬↑p ∣ f.coeff 0) (g : MvPolynomial (Fin (n + 1)) ℤ) (hg : g.IsHomogeneous M) (hnd : ¬scaledHomogenize f.totalDegree (↑p) f ∣ g) :

Let p be a prime not dividing the constant coefficient of the primitive integer polynomial f. If a form g is not divisible by the p-scaled homogenization of f, then over ℚ its slice at x₀ = p is not divisible by f.

theorem CCDN.scaled_plane_points_card_le_auxiliary_degree {M t : ℕ} (f : MvPolynomial (Fin 2) ℤ) (hprim : PrimitiveIntegerPolynomial f) (hir : Irreducible ((MvPolynomial.map (Int.castRingHom ℚ)) f)) {p : ℕ} (hp : Nat.Prime p) (hp0 : ¬↑p ∣ f.coeff 0) (g : MvPolynomial (Fin 3) ℤ) (hg : g.IsHomogeneous M) (hnd : ¬scaledHomogenize f.totalDegree (↑p) f ∣ g) (z : Fin t → Fin 2 → ℤ) (hinj : Function.Injective z) (hz : ∀ (i : Fin t), (MvPolynomial.eval (z i)) f = 0) (hzg : ∀ (i : Fin t), (MvPolynomial.eval (Fin.cons (↑p) (z i))) g = 0) :

Once a homogeneous auxiliary nonmultiple has been constructed on the prime-scaled model, its degree gives the original-plane point bound.