Documentation

LeanPool.CCDN.Algebra.HomogeneousSlice

Restriction to a nonzero constant homogenizing coordinate. Proper affine sections follow from homogeneous nonmultiples also on x₀=h, not just x₀=1.

noncomputable def CCDN.firstCoordinateScaleHom (R : Type u_1) [CommRing R] {n : ℕ} (h : R) :
MvPolynomial (Fin (n + 1)) R →ₐ[R] MvPolynomial (Fin (n + 1)) R

The R-algebra endomorphism of MvPolynomial (Fin (n + 1)) R that substitutes C h * X 0 for the first variable and fixes the other variables.

Equations
Instances For

    Composing the scalings of the first variable by h and by k gives the scaling by k * h.

    @[simp]

    Scaling the first variable by 1 is the identity.

    noncomputable def CCDN.firstCoordinateScale (K : Type u_1) [Field K] {n : ℕ} (h : K) (hh : h ≠ 0) :
    MvPolynomial (Fin (n + 1)) K ≃ₐ[K] MvPolynomial (Fin (n + 1)) K

    For nonzero h in a field K, the K-algebra automorphism of MvPolynomial (Fin (n + 1)) K substituting C h * X 0 for the first variable; its inverse scales by h⁻¹.

    Equations
    Instances For
      theorem CCDN.firstCoordinateScaleHom_homogeneous {R : Type u_1} [CommRing R] {n d : ℕ} (h : R) {f : MvPolynomial (Fin (n + 1)) R} (hf : f.IsHomogeneous d) :

      Scaling the first variable preserves homogeneity of degree d.

      noncomputable def CCDN.homogeneousSlice {R : Type u_1} [CommRing R] (n : ℕ) (h : R) :

      Restriction of a polynomial in n + 1 variables to the slice x₀ = h: the ring homomorphism sending X 0 to C h and X i.succ to X i.

      Equations
      Instances For
        theorem CCDN.homogeneousSlice_eq_chart_scale {R : Type u_1} [CommRing R] {n : ℕ} (h : R) (f : MvPolynomial (Fin (n + 1)) R) :

        The restriction of f to the slice x₀ = h is the affine chart x₀ = 1 of f with its first variable scaled by h.

        theorem CCDN.homogeneousSlice_eval {R : Type u_1} [CommRing R] {n : ℕ} (h : R) (f : MvPolynomial (Fin (n + 1)) R) (x : Fin n → R) :

        Evaluating the restriction of f to the slice x₀ = h at x is evaluating f at the point Fin.cons h x.

        theorem CCDN.homogeneousSlice_degree_le {R : Type u_1} [CommRing R] {n d : ℕ} (h : R) {f : MvPolynomial (Fin (n + 1)) R} (hf : f.IsHomogeneous d) :

        The restriction of a homogeneous polynomial of degree d to the slice x₀ = h has total degree at most d.

        theorem CCDN.homogeneousSlice_monomial {R : Type u_1} [CommRing R] {n : ℕ} (h : R) (m : Fin (n + 1) →₀ ℕ) (c : R) :

        The restriction of the monomial monomial m c to the slice x₀ = h is the monomial with exponent chartExponent m and coefficient c * h ^ m 0.

        theorem CCDN.homogeneousSlice_scaledHomogenize {R : Type u_1} [CommRing R] {n d : ℕ} (h : R) (f : MvPolynomial (Fin n) R) (hf : f.totalDegree ≤ d) :

        If f has total degree at most d, then restricting the scaled homogenization scaledHomogenize d h f to the slice x₀ = h gives C (h ^ d) * f.

        theorem CCDN.rational_homogeneousSlice_not_dvd {n d M : ℕ} {f g : MvPolynomial (Fin (n + 1)) ℤ} {h : ℤ} (hh : h ≠ 0) (hf : f.IsHomogeneous d) (hf0 : f ≠ 0) (hg : g.IsHomogeneous M) (hprim : PrimitiveIntegerPolynomial f) (hd : ((homogeneousSlice n h) f).totalDegree = d) (hnd : ¬f ∣ g) :

        Integer nonmultiples of a primitive homogeneous equation stay proper on a nonzero rational slice preserving the degree.