Finite multivariate generic perturbations #
A finite family of nonzero real multivariate polynomials can be made simultaneously nonzero by an arbitrarily small perturbation of any prescribed assignment. The proof avoids a separate density or transversality library.
First multiply the finite family. Since the real numbers form an infinite integral domain,
MvPolynomial.funext implies that a nonzero polynomial has at least one nonzero evaluation. Join
the original assignment to such an evaluation by a straight line. Every multivariate polynomial
then becomes a nonzero univariate polynomial because its value at parameter one is nonzero. A
small positive parameter avoiding the finitely many roots gives the required perturbation.
A nonzero real multivariate polynomial has a nonzero evaluation.
A finite family of nonzero real multivariate polynomials has one common nonvanishing assignment.
Substitute the affine line from a to b into a multivariate polynomial.
Equations
- NRR.FiniteMultivariateGenericPerturbation.linePolynomial a b P = MvPolynomial.eval₂ Polynomial.C (fun (j : J) => Polynomial.C (a j) + Polynomial.X * Polynomial.C (b j - a j)) P
Instances For
Evaluation of the line polynomial is multivariate evaluation at the affine line.
At parameter one, the line polynomial evaluates at the target assignment.
A target nonvanishing evaluation makes the corresponding line polynomial nonzero.
Simultaneously avoid a finite family of polynomial degeneracy conditions by an arbitrarily small positive displacement along one common affine line.