Documentation

TauCeti.RingTheory.MvPolynomial.Dehomogenization

Dehomogenization and the affine gradient criterion #

Setting the i-th coordinate to one turns a polynomial in n + 1 variables into a polynomial in n variables. The remaining coordinates are indexed by i.succAbove. We compute evaluation and partial derivatives of this substitution, and prove that at a zero of a homogeneous equation its full gradient vanishes exactly when the gradient of the affine equation vanishes. Thus the usual nonsingularity test can be checked in any standard affine chart of a projective hypersurface; for a plane curve, take n = 2.

Euler's identity recovers the omitted partial derivative. No invertibility of the degree is needed, so the criterion also applies when the characteristic divides the degree.

Conversely, a homogeneous polynomial is recovered from its degree and its equation in one chart (TauCeti.dehomogenize_injOn), and every polynomial of total degree at most N is the equation of some homogeneous polynomial of degree N (TauCeti.exists_isHomogeneous_dehomogenize_eq). Together they lift a factorization in an affine chart to a factorization of the homogeneous equation, up to a power of the omitted coordinate.

Combined with the weak Nullstellensatz, the pointwise criterion gives an identity of ideals: if every point of a projective hypersurface over an algebraically closed extension K of k lying in a standard affine chart is nonsingular, then in that chart the equation and its partial derivatives generate the unit ideal of the polynomial ring over k (TauCeti.span_insert_range_pderiv_dehomogenize_eq_top).

References #

noncomputable def TauCeti.dehomogenize {n : ℕ} {R : Type u_1} [CommSemiring R] (i : Fin (n + 1)) :

The substitution setting coordinate i to one and keeping the other coordinates, indexed in increasing order by i.succAbove.

Instances For
    @[simp]
    theorem TauCeti.dehomogenize_X {n : ℕ} {R : Type u_1} [CommSemiring R] (i j : Fin (n + 1)) :

    Variables are substituted by inserting one at the chosen coordinate.

    Dehomogenizing a monomial drops the exponent of the chosen coordinate and keeps the others, indexed by i.succAbove.

    @[simp]
    theorem TauCeti.dehomogenize_rename_succAbove {n : ℕ} {R : Type u_1} [CommSemiring R] (i : Fin (n + 1)) (p : MvPolynomial (Fin n) R) :

    Substituting after adjoining the omitted variable recovers the original polynomial. In particular, every affine polynomial is the dehomogenization of a polynomial.

    @[simp]
    theorem TauCeti.aeval_dehomogenize {n : ℕ} {R : Type u_1} [CommSemiring R] {S : Type u_2} [CommSemiring S] [Algebra R S] (i : Fin (n + 1)) (p : MvPolynomial (Fin (n + 1)) R) (a : Fin n → S) :

    Evaluation in an affine chart at a point of an R-algebra is evaluation of the homogeneous coordinates with the chosen coordinate equal to one.

    @[simp]
    theorem TauCeti.eval_dehomogenize {n : ℕ} {R : Type u_1} [CommSemiring R] (i : Fin (n + 1)) (p : MvPolynomial (Fin (n + 1)) R) (a : Fin n → R) :

    Evaluation in an affine chart is evaluation of the homogeneous coordinates with the chosen coordinate equal to one.

    theorem TauCeti.totalDegree_dehomogenize_le {n : ℕ} {R : Type u_1} [CommSemiring R] (i : Fin (n + 1)) (p : MvPolynomial (Fin (n + 1)) R) :

    Dehomogenization does not increase the total degree.

    theorem TauCeti.coeff_dehomogenize_of_isHomogeneous {n : ℕ} {R : Type u_1} [CommSemiring R] {p : MvPolynomial (Fin (n + 1)) R} {d : ℕ} (hp : p.IsHomogeneous d) (i : Fin (n + 1)) {s : Fin (n + 1) →₀ ℕ} (hs : Finsupp.degree s = d) :

    For a homogeneous p of degree d and an exponent s of total degree d, the coefficient of p at s is the coefficient of the affine equation at the restriction of s to the retained coordinates. The i-th entry of s is determined by the others, so no information is lost.

    theorem TauCeti.coeff_dehomogenize_single {n : ℕ} {R : Type u_1} [CommSemiring R] {p : MvPolynomial (Fin (n + 1)) R} {d : ℕ} (hp : p.IsHomogeneous d) (i : Fin (n + 1)) (j : Fin n) :

    For a homogeneous p of degree d, the coefficient of X_j ^ d in the affine equation is the coefficient of the corresponding power X_{i.succAbove j} ^ d in p.

    theorem TauCeti.dehomogenize_injOn {n : ℕ} {R : Type u_1} [CommSemiring R] (i : Fin (n + 1)) (d : ℕ) :

    Dehomogenization is injective on homogeneous polynomials of a fixed degree: a homogeneous polynomial is determined by its degree and its equation in any standard affine chart.

    theorem TauCeti.exists_isHomogeneous_dehomogenize_eq {n : ℕ} {R : Type u_1} [CommSemiring R] (i : Fin (n + 1)) {p : MvPolynomial (Fin n) R} {N : ℕ} (hp : p.totalDegree ≤ N) :
    ∃ (q : MvPolynomial (Fin (n + 1)) R), q.IsHomogeneous N ∧ (dehomogenize i) q = p

    Homogenization: every polynomial p in n variables of total degree at most N is the equation in the i-th standard affine chart of a homogeneous polynomial of degree N in n + 1 variables, obtained by padding each homogeneous component of p with a power of X_i.

    @[simp]
    theorem TauCeti.map_dehomogenize {n : ℕ} {R : Type u_1} [CommSemiring R] {S : Type u_2} [CommSemiring S] (f : R →+* S) (i : Fin (n + 1)) (p : MvPolynomial (Fin (n + 1)) R) :

    Changing coefficients commutes with dehomogenization.

    @[simp]
    theorem TauCeti.pderiv_dehomogenize {n : ℕ} {R : Type u_1} [CommSemiring R] (i : Fin (n + 1)) (j : Fin n) (p : MvPolynomial (Fin (n + 1)) R) :

    Partial differentiation in a retained coordinate commutes with dehomogenization.

    theorem TauCeti.eval_pderiv_add_sum_dehomogenize {n : ℕ} {R : Type u_1} [CommSemiring R] (i : Fin (n + 1)) {p : MvPolynomial (Fin (n + 1)) R} {d : ℕ} (hp : p.IsHomogeneous d) (a : Fin n → R) (ha : (MvPolynomial.eval a) ((dehomogenize i) p) = 0) :

    Euler's identity at a zero in an affine chart: the omitted partial derivative plus the coordinate-weighted sum of the retained partial derivatives is zero.

    theorem TauCeti.forall_eval_pderiv_eq_zero_iff_dehomogenize {n : ℕ} {R : Type u_1} [CommSemiring R] (i : Fin (n + 1)) {p : MvPolynomial (Fin (n + 1)) R} {d : ℕ} (hp : p.IsHomogeneous d) (a : Fin n → R) (ha : (MvPolynomial.eval a) ((dehomogenize i) p) = 0) :
    (∀ (l : Fin (n + 1)), (MvPolynomial.eval (i.insertNth 1 a)) ((MvPolynomial.pderiv l) p) = 0) ↔ ∀ (j : Fin n), (MvPolynomial.eval a) ((MvPolynomial.pderiv j) ((dehomogenize i) p)) = 0

    At a zero of a homogeneous equation, the homogeneous gradient vanishes if and only if the gradient of the equation in any chosen affine chart vanishes.

    theorem TauCeti.exists_eval_pderiv_ne_zero_iff_dehomogenize {n : ℕ} {R : Type u_1} [CommSemiring R] (i : Fin (n + 1)) {p : MvPolynomial (Fin (n + 1)) R} {d : ℕ} (hp : p.IsHomogeneous d) (a : Fin n → R) (ha : (MvPolynomial.eval a) ((dehomogenize i) p) = 0) :
    (∃ (l : Fin (n + 1)), (MvPolynomial.eval (i.insertNth 1 a)) ((MvPolynomial.pderiv l) p) ≠ 0) ↔ ∃ (j : Fin n), (MvPolynomial.eval a) ((MvPolynomial.pderiv j) ((dehomogenize i) p)) ≠ 0

    A homogeneous gradient is nonzero at a zero of the equation exactly when the affine gradient is nonzero. Over a field, this is the nonsingularity criterion.

    theorem TauCeti.eval_pderiv_eq_neg_sum_dehomogenize {n : ℕ} {R : Type u_1} [CommRing R] (i : Fin (n + 1)) {p : MvPolynomial (Fin (n + 1)) R} {d : ℕ} (hp : p.IsHomogeneous d) (a : Fin n → R) (ha : (MvPolynomial.eval a) ((dehomogenize i) p) = 0) :

    At a zero of a homogeneous equation, the omitted partial derivative is determined by the retained partial derivatives.

    theorem TauCeti.eval_dehomogenize_div {n : ℕ} {k : Type u_1} [Semifield k] (i : Fin (n + 1)) {p : MvPolynomial (Fin (n + 1)) k} {d : ℕ} (hp : p.IsHomogeneous d) (b : Fin (n + 1) → k) (hi : b i ≠ 0) :
    (MvPolynomial.eval fun (j : Fin n) => b (i.succAbove j) / b i) ((dehomogenize i) p) = (b i)⁻¹ ^ d * (MvPolynomial.eval b) p

    At a homogeneous point whose i-th coordinate is nonzero, evaluation in the standard affine chart differs by the inverse d-th power of that coordinate.

    theorem TauCeti.forall_eval_pderiv_eq_zero_iff_dehomogenize_div {n : ℕ} {k : Type u_1} [Semifield k] (i : Fin (n + 1)) {p : MvPolynomial (Fin (n + 1)) k} {d : ℕ} (hp : p.IsHomogeneous d) (b : Fin (n + 1) → k) (hi : b i ≠ 0) (hb : (MvPolynomial.eval b) p = 0) :
    (∀ (l : Fin (n + 1)), (MvPolynomial.eval b) ((MvPolynomial.pderiv l) p) = 0) ↔ ∀ (j : Fin n), (MvPolynomial.eval fun (j : Fin n) => b (i.succAbove j) / b i) ((MvPolynomial.pderiv j) ((dehomogenize i) p)) = 0

    Over a semifield, a nonzero homogeneous coordinate can be normalized to one without changing whether the gradient vanishes. The derivatives of the affine equation are evaluated at the coordinate ratios.

    theorem TauCeti.exists_eval_pderiv_ne_zero_iff_dehomogenize_div {n : ℕ} {k : Type u_1} [Semifield k] (i : Fin (n + 1)) {p : MvPolynomial (Fin (n + 1)) k} {d : ℕ} (hp : p.IsHomogeneous d) (b : Fin (n + 1) → k) (hi : b i ≠ 0) (hb : (MvPolynomial.eval b) p = 0) :
    (∃ (l : Fin (n + 1)), (MvPolynomial.eval b) ((MvPolynomial.pderiv l) p) ≠ 0) ↔ ∃ (j : Fin n), (MvPolynomial.eval fun (j : Fin n) => b (i.succAbove j) / b i) ((MvPolynomial.pderiv j) ((dehomogenize i) p)) ≠ 0

    Over a field, nonsingularity of a point of a homogeneous hypersurface is equivalent to a nonzero partial derivative of the equation in any affine chart containing it. For a plane equation this applies uniformly to all three standard charts.

    theorem TauCeti.span_insert_range_pderiv_dehomogenize_eq_top {n : ℕ} {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] [IsAlgClosed K] {p : MvPolynomial (Fin (n + 1)) k} {d : ℕ} (hp : p.IsHomogeneous d) (i : Fin (n + 1)) (hsm : ∀ (a : Fin n → K), (MvPolynomial.aeval (i.insertNth 1 a)) p = 0 → ∃ (l : Fin (n + 1)), (MvPolynomial.aeval (i.insertNth 1 a)) ((MvPolynomial.pderiv l) p) ≠ 0) :

    Nonsingularity of a projective hypersurface, chart by chart: let p be homogeneous over k, and suppose that at every zero of p in K^(n + 1) with i-th coordinate 1, for an algebraically closed extension K of k, some partial derivative of p is nonzero. Then in the i-th standard affine chart the equation and its partial derivatives generate the unit ideal of k[X₁, …, Xₙ].