Irreducibility of linear and quadratic polynomials #
MvPolynomial.irreducible_of_totalDegree_eq_one: a multivariate polynomial oftotalDegreeone is irreducible if its coefficients are relatively prime.For
c : n →₀ R,MvPolynomial.sumSMulX cis the linear polynomial $\sum_i c_i X_i$ of $R[X_1\dots,X_n]$.MvPolynomial.irreducible_sumSMulX: if the support ofcis nontrivial, ifRis a domain, and if the only common divisors to allc iare units, thenMvPolynomial.sumSMulX cis irreducible.For
c : n →₀ R,MvPolynomial.sumXSMulY cis the quadratic polynomial $\sum_i c_i X_i Y_i$ of $R[X_1\dots,X_n,Y_1,\dots,Y_n]$. It is constructed as an object ofMvPolynomial (n ⊕ n) R, the first component ofn ⊕ nrepresents theXindeterminates, and the second component represents theYindeterminates.MvPolynomial.irreducible_sumSMulXSMulY: if the support ofcis nontrivial, the ringRis a domain, and the only divisors common to allc iare units, thenMvPolynomial.sumSMulXSMulY cis irreducible.
TODO #
Treat the case of diagonal quadratic polynomials, $ \sum c_i X_i ^ 2$. For irreducibility, one will need that there are at least 3 nonzero values of
c, and that the only common divisors to allc iare units.Addition of quadratic polynomial of both kinds are relevant too.
Prove, over a field, that a polynomial of degree at most 2 whose quadratic part has rank at least 3 is irreducible.
Cases of ranks 1 and 2 can be treated as well, but the answer depends on the terms of degree 0 and 1. Eg, $X^2-Y$ is irreducible, but $X^2$, $X^2-1$, $X^2-Y^2$ are not. And $X^2+Y^2$ is irreducible over the reals but not over the complex numbers.
A multivariate polynomial f whose support is nontrivial,
such that some variable i appears with exponent 1 in one nontrivial monomial,
whose monomials have disjoint supports, and which is primitive, is irreducible.
The quadratic polynomial $$\sum_{i=1}^n X_i Y_i$$. #
The linear polynomial $$\sum_i c_i X_i$$.
Instances For
The quadratic polynomial $$\sum_i c_i X_i Y_i$$.
Equations
- MvPolynomial.sumSMulXSMulY = Finsupp.linearCombination R fun (i : n) => MvPolynomial.X (Sum.inl i) * MvPolynomial.X (Sum.inr i)