Documentation

Groebner.MonomialOrder

@[simp]
theorem MonomialOrder.monic_leadingTerm {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] (p : MvPolynomial σ R) :
theorem MonomialOrder.support_leadingTerm {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] (p : MvPolynomial σ R) [Decidable (p = 0)] :
theorem MonomialOrder.support_leadingTerm' {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] {p : MvPolynomial σ R} (hp : p 0) :
theorem MonomialOrder.le_degree_of_mem_support {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] {p : MvPolynomial σ R} {a : σ →₀ } (ha : a p.support) :
m.toSyn a m.toSyn (m.degree p)
@[simp]
theorem MonomialOrder.monic_one' {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] :
m.Monic 1
@[simp]
theorem MonomialOrder.monic_of_subsingleton {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] [Subsingleton (MvPolynomial σ R)] (p : MvPolynomial σ R) :
m.Monic p
theorem MonomialOrder.degree_le_degree_of_support_subset {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] {p q : MvPolynomial σ R} (h : p.support q.support) :
m.toSyn (m.degree p) m.toSyn (m.degree q)
theorem MonomialOrder.degree_mul_le' {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] {f g : MvPolynomial σ R} :
m.toSyn (m.degree (f * g)) m.toSyn (m.degree f) + m.toSyn (m.degree g)
@[simp]
theorem MonomialOrder.leadingCoeff_mul' {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] [NoZeroDivisors R] {f g : MvPolynomial σ R} :
theorem MonomialOrder.sPolynomial_decomposition_of_degree_sum_smul_le₀ {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_4} [CommRing R] {d : m.syn} {ι : Type u_3} {B : Finset ι} {c : ιR} {g : ιMvPolynomial σ R} (hd : bB, m.toSyn (m.degree (g b)) = d IsUnit (m.leadingCoeff (g b)) g b = 0) (hfd : m.toSyn (m.degree (∑ bB, c b g b)) < d) :
∃ (c' : ιιR), bB, c b g b = b₁B, b₂B, c' b₁ b₂ m.sPolynomial (g b₁) (g b₂)
theorem MonomialOrder.sPolynomial_decomposition_of_degree_sum_smul_le {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_4} [CommRing R] {d : m.syn} {ι : Type u_3} {B : Finset ι} {c : ιR} {g : ιMvPolynomial σ R} (hB : bB, IsUnit (m.leadingCoeff (g b))) (hd : bB, m.toSyn (m.degree (g b)) = d) (hfd : m.toSyn (m.degree (∑ bB, c b g b)) < d) :
∃ (c' : ιιR), bB, c b g b = b₁B, b₂B, c' b₁ b₂ m.sPolynomial (g b₁) (g b₂)
theorem MonomialOrder.sPolynomial_decomposition_of_degree_sum_le {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_4} [CommRing R] {d : m.syn} {ι : Type u_3} {B : Finset ι} {g : ιMvPolynomial σ R} (hd : bB, m.toSyn (m.degree (g b)) = d IsUnit (m.leadingCoeff (g b)) g b = 0) (hfd : m.toSyn (m.degree (∑ bB, g b)) < d) :
∃ (c : ιιR), bB, g b = b₁B, b₂B, c b₁ b₂ m.sPolynomial (g b₁) (g b₂)
theorem MonomialOrder.sPolynomial_monomial_mul_of_mem_nonZeroDivisors {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_3} [CommRing R] {p₁ p₂ : MvPolynomial σ R} (hp₁ : m.leadingCoeff p₁ nonZeroDivisors R) (hp₂ : m.leadingCoeff p₂ nonZeroDivisors R) (d₁ d₂ : σ →₀ ) (c₁ c₂ : R) :
m.sPolynomial ((MvPolynomial.monomial d₁) c₁ * p₁) ((MvPolynomial.monomial d₂) c₂ * p₂) = (MvPolynomial.monomial ((d₁ + m.degree p₁) ⊔ (d₂ + m.degree p₂) - m.degree p₁m.degree p₂)) (c₁ * c₂) * m.sPolynomial p₁ p₂
theorem MonomialOrder.sPolynomial_monomial_mul_of_mem_nonZeroDivisors' {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_3} [CommRing R] {p₁ p₂ : MvPolynomial σ R} (hp₁ : m.leadingCoeff p₁ nonZeroDivisors R) (hp₂ : m.leadingCoeff p₂ nonZeroDivisors R) (d₁ d₂ : σ →₀ ) (c₁ c₂ : R) :
m.sPolynomial ((MvPolynomial.monomial d₁) c₁ * p₁) ((MvPolynomial.monomial d₂) c₂ * p₂) = (MvPolynomial.monomial (m.degree ((MvPolynomial.monomial d₁) c₁ * p₁)m.degree ((MvPolynomial.monomial d₂) c₂ * p₂) - m.degree p₁m.degree p₂)) (c₁ * c₂) * m.sPolynomial p₁ p₂
theorem MonomialOrder.support_add_of_leadingTerm_add_leadingTerm_eq_zero {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] {p q : MvPolynomial σ R} (h : m.leadingTerm p + m.leadingTerm q = 0) (a : σ →₀ ) :
a (p + q).supporta p.support m.toSyn a < m.toSyn (m.degree p) a q.support m.toSyn a < m.toSyn (m.degree q)
@[simp]
theorem MonomialOrder.leadingTerm_neg {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_3} [CommRing R] (p : MvPolynomial σ R) :
theorem MonomialOrder.support_sub_of_leadingTerm_eq_leadingTerm {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_3} [CommRing R] {p q : MvPolynomial σ R} (h : m.leadingTerm p = m.leadingTerm q) (a : σ →₀ ) :
a (p - q).supporta p.support m.toSyn a < m.toSyn (m.degree p) a q.support m.toSyn a < m.toSyn (m.degree q)
theorem MonomialOrder.degree_rename_killCompl_le_degree {σ : Type u_1} {m : MonomialOrder σ} {σ' : Type u_2} {R : Type u_3} [CommSemiring R] {f : σ'σ} (hf : Function.Injective f) {p : MvPolynomial σ R} :
noncomputable def MonomialOrder.withBotDegree {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] (f : MvPolynomial σ R) :

the degree of a multivariate polynomial with respect to a monomial ordering

Equations
Instances For
    noncomputable def MonomialOrder.toWithBotSyn {σ : Type u_1} (m : MonomialOrder σ) :
    Equations
    Instances For
      @[simp]
      theorem MonomialOrder.toWithBotSyn_apply_coe {σ : Type u_1} {m : MonomialOrder σ} (a : σ →₀ ) :
      m.toWithBotSyn a = (m.toSyn a)

      Given a monomial order with bot, notation for the corresponding strict order relation on WithBot (σ →₀ ℕ)

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        Given a monomial order with bot, notation for the corresponding order relation on WithBot (σ →₀ ℕ)

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem MonomialOrder.withBotDegree_eq {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] (f : MvPolynomial σ R) [Decidable (f = 0)] :
          m.withBotDegree f = if f = 0 then else (m.degree f)
          @[simp]
          theorem MonomialOrder.withBotDegree_eq_coe_degree_iff {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] (f : MvPolynomial σ R) :
          m.withBotDegree f = (m.degree f) f 0
          @[simp]
          theorem MonomialOrder.withBotDegree_eq_bot_iff {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] (f : MvPolynomial σ R) :
          @[simp]
          theorem MonomialOrder.withBotDegree_monomial {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] (d : σ →₀ ) (c : R) [Decidable (c = 0)] :
          theorem MonomialOrder.withBotDegree_C {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] (c : R) [Decidable (c = 0)] :
          @[simp]
          theorem MonomialOrder.withBotDegree_neg {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_3} [CommRing R] (f : MvPolynomial σ R) :
          @[simp]
          theorem MonomialOrder.withBotDegree_one {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] [Nontrivial R] :
          @[simp]
          theorem MonomialOrder.withBotDegree_mul {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] (f g : MvPolynomial σ R) [NoZeroDivisors R] :
          theorem MonomialOrder.withBotDegree_sum_le {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] {α : Type u_3} {s : Finset α} {f : αMvPolynomial σ R} :
          m.toWithBotSyn (m.withBotDegree (∑ xs, f x)) s.sup fun (x : α) => m.toWithBotSyn (m.withBotDegree (f x))
          theorem MonomialOrder.le_withBotDegree {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] {f : MvPolynomial σ R} {d : σ →₀ } (hd : d f.support) :