Documentation

LeanPool.CCDN.Algebra.PointSeparation

Point separation for polynomial sections #

Powers of any nonzero element vanishing at the selected points give independent classes.

theorem CCDN.section_powers_independent {K : Type u_1} {A : Type u_2} {B : Type u_3} {ι : Type u_4} [Field K] [CommRing A] [IsDomain A] [Algebra K A] [CommRing B] [Algebra K B] [Finite ι] (φ : A →ₐ[K] B) (h : ι → A) (hlin : LinearIndependent K fun (i : ι) => φ (h i)) (l : A) (hl : l ≠ 0) (hzero : φ l = 0) (N : ℕ) :
LinearIndependent K fun (t : ι × Fin N) => h t.1 * l ^ ↑t.2

Powers of a nonzero element killed by an algebra homomorphism, times elements with independent images, form an independent family. The target algebra may be trivial.

theorem CCDN.separator_images_independent {K : Type u_1} {A : Type u_2} {ι : Type u_3} [Field K] [CommRing A] [Algebra K A] [Finite ι] [DecidableEq ι] (φ : ι → A →ₐ[K] K) (h : ι → A) (hsep : ∀ (i j : ι), (φ i) (h j) = if i = j then 1 else 0) :
LinearIndependent K fun (j : ι) => (AlgHom.pi φ) (h j)

Elements separated by algebra homomorphisms have independent simultaneous images.

theorem CCDN.separator_powers_independent {K : Type u_1} {A : Type u_2} {ι : Type u_3} [Field K] [CommRing A] [IsDomain A] [Algebra K A] [Finite ι] [DecidableEq ι] (φ : ι → A →ₐ[K] K) (h : ι → A) (l : A) (hl : l ≠ 0) (hzero : ∀ (i : ι), (φ i) l = 0) (hsep : ∀ (i j : ι), (φ i) (h j) = if i = j then 1 else 0) (N : ℕ) :
LinearIndependent K fun (t : ι × Fin N) => h t.1 * l ^ ↑t.2

Powers of a nonzero element times point separators are jointly independent when that element vanishes under all point evaluations.

theorem CCDN.exists_point_separators {K : Type u_1} {σ : Type u_2} {ι : Type u_3} [Field K] [Finite ι] [DecidableEq ι] (z : ι → σ → K) (hz : Function.Injective z) :
∃ (h : ι → MvPolynomial σ K), ∀ (i j : ι), (MvPolynomial.eval (z i)) (h j) = if i = j then 1 else 0

Explicit polynomial interpolation at a finite family of distinct affine points.