Documentation

LeanPool.CCDN.Projection.FixedCoordinateElimination

Full-degree affine elimination also gives an integral projection of the projective closure, fixing its homogenizing coordinate.

One bounded integer-matrix elimination step on the standard Fin-indexed polynomial rings, ready for iteration.

The restriction of a bounded homogenization to the hyperplane at infinity is exactly its highest indicated homogeneous component.

For f of total degree at most D, the degree-D homogenization of f, restricted to the hyperplane at infinity X₀ = 0, is the degree-D homogeneous component of f.

def CCDN.finEliminationMatrix {n : ℕ} (b : Option (Fin n) → ℤ) :
Fin n → Fin (n + 1) → ℤ

The integer matrix whose i-th row is the linear form b none * X (i + 1) - b (some i) * X 0, eliminating the coordinate X 0 along the direction b.

Equations
Instances For
    theorem CCDN.finEliminationMatrix_height {n d : ℕ} (b : Option (Fin n) → ℤ) (hb : ∀ (i : Option (Fin n)), 0 ≤ b i ∧ b i ≤ ↑d + 1) (i : Fin n) (j : Fin (n + 1)) :

    If every entry of the direction b lies in [0, d + 1], then every entry of the elimination matrix has absolute value at most d + 1.

    def CCDN.closurePivotEquiv (n : ℕ) :
    Fin (n + 2) ≃ Option (Fin (n + 1))

    The reindexing of Fin (n + 2) that sends coordinate 1 to none and the remaining coordinates, in order, to some 0, some 1, …; it makes the homogenizing coordinate 0 the first retained coordinate.

    Equations
    Instances For
      @[simp]

      The pivot reindexing sends coordinate 0 to some 0.

      @[simp]

      The pivot reindexing sends coordinate 1 to none.

      @[simp]

      The pivot reindexing sends coordinate i + 2 to some (i + 1).

      @[simp]

      The inverse pivot reindexing sends none to coordinate 1.

      @[simp]

      The inverse pivot reindexing sends some 0 to coordinate 0.

      @[simp]

      The inverse pivot reindexing sends some (i + 1) to coordinate i + 2.

      theorem CCDN.fixedCoordinateElimination_isIntegral {n : ℕ} (I : Ideal (MvPolynomial (Fin (n + 1)) ℚ)) (f : MvPolynomial (Fin (n + 1)) ℚ) (hf : f ≠ 0) (hfi : f ∈ I) (b : Option (Fin n) → ℤ) (hb : ↑(b none) ≠ 0) (hdir : (MvPolynomial.eval (Fin.cons ↑(b none) fun (i : Fin n) => ↑(b (some i)))) ((MvPolynomial.homogeneousComponent f.totalDegree) f) ≠ 0) :

      A full-degree direction for an affine ideal equation gives an integral map of projective closures whose first coordinate remains X₀.