Division of MvPolynomial by monomials #
Main definitions #
MvPolynomial.divMonomial x s: dividesxby the monomialMvPolynomial.monomial 1 sMvPolynomial.modMonomial x s: the remainder upon dividingxby the monomialMvPolynomial.monomial 1 s.
Main results #
MvPolynomial.divMonomial_add_modMonomial,MvPolynomial.modMonomial_add_divMonomial:divMonomialandmodMonomialare well-behaved as quotient and remainder operators.
Implementation notes #
Where possible, the results in this file should be first proved in the generality of
AddMonoidAlgebra, and then the versions specialized to MvPolynomial proved in terms of these.
Please ensure the declarations in this section are direct translations of AddMonoidAlgebra
results.
noncomputable def
MvPolynomial.divMonomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(p : MvPolynomial σ R)
(s : σ →₀ ℕ)
:
MvPolynomial σ R
Divide by monomial 1 s, discarding terms not divisible by this.
Equations
- p.divMonomial s = AddMonoidAlgebra.divOf p s
Instances For
@[simp]
theorem
MvPolynomial.coeff_divMonomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(s : σ →₀ ℕ)
(x : MvPolynomial σ R)
(s' : σ →₀ ℕ)
:
@[simp]
theorem
MvPolynomial.support_divMonomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(s : σ →₀ ℕ)
(x : MvPolynomial σ R)
:
@[simp]
theorem
MvPolynomial.divMonomial_zero
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(x : MvPolynomial σ R)
:
theorem
MvPolynomial.add_divMonomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(x y : MvPolynomial σ R)
(s : σ →₀ ℕ)
:
theorem
MvPolynomial.divMonomial_add
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(a b : σ →₀ ℕ)
(x : MvPolynomial σ R)
:
@[simp]
theorem
MvPolynomial.divMonomial_monomial_mul
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(a : σ →₀ ℕ)
(x : MvPolynomial σ R)
:
@[simp]
theorem
MvPolynomial.divMonomial_mul_monomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(a : σ →₀ ℕ)
(x : MvPolynomial σ R)
:
@[simp]
theorem
MvPolynomial.divMonomial_monomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(a : σ →₀ ℕ)
:
noncomputable def
MvPolynomial.modMonomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(x : MvPolynomial σ R)
(s : σ →₀ ℕ)
:
MvPolynomial σ R
The remainder upon division by monomial 1 s.
Equations
- x.modMonomial s = AddMonoidAlgebra.modOf x s
Instances For
@[simp]
theorem
MvPolynomial.coeff_modMonomial_of_not_le
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
{s' s : σ →₀ ℕ}
(x : MvPolynomial σ R)
(h : ¬s ≤ s')
:
@[simp]
theorem
MvPolynomial.coeff_modMonomial_of_le
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
{s' s : σ →₀ ℕ}
(x : MvPolynomial σ R)
(h : s ≤ s')
:
@[simp]
theorem
MvPolynomial.monomial_mul_modMonomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(s : σ →₀ ℕ)
(x : MvPolynomial σ R)
:
@[simp]
theorem
MvPolynomial.mul_monomial_modMonomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(s : σ →₀ ℕ)
(x : MvPolynomial σ R)
:
@[simp]
theorem
MvPolynomial.monomial_modMonomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(s : σ →₀ ℕ)
:
theorem
MvPolynomial.divMonomial_add_modMonomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(x : MvPolynomial σ R)
(s : σ →₀ ℕ)
:
theorem
MvPolynomial.modMonomial_add_divMonomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(x : MvPolynomial σ R)
(s : σ →₀ ℕ)
:
theorem
MvPolynomial.monomial_one_dvd_iff_modMonomial_eq_zero
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
{i : σ →₀ ℕ}
{x : MvPolynomial σ R}
:
@[simp]
theorem
MvPolynomial.X_mul_divMonomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(i : σ)
(x : MvPolynomial σ R)
:
@[simp]
@[simp]
theorem
MvPolynomial.mul_X_divMonomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(x : MvPolynomial σ R)
(i : σ)
:
@[simp]
theorem
MvPolynomial.X_mul_modMonomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(i : σ)
(x : MvPolynomial σ R)
:
@[simp]
theorem
MvPolynomial.mul_X_modMonomial
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(x : MvPolynomial σ R)
(i : σ)
:
@[simp]
theorem
MvPolynomial.divMonomial_add_modMonomial_single
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(x : MvPolynomial σ R)
(i : σ)
:
theorem
MvPolynomial.modMonomial_add_divMonomial_single
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
(x : MvPolynomial σ R)
(i : σ)
:
theorem
MvPolynomial.X_dvd_iff_modMonomial_eq_zero
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
{i : σ}
{x : MvPolynomial σ R}
:
Some results about dvd (∣) on monomial and X #
@[simp]
theorem
MvPolynomial.monomial_one_dvd_monomial_one
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
[Nontrivial R]
{i j : σ →₀ ℕ}
:
@[simp]
theorem
MvPolynomial.X_dvd_X
{σ : Type u_1}
{R : Type u_2}
[CommSemiring R]
[Nontrivial R]
{i j : σ}
: