Documentation

Groebner.Defs

@[simp]
theorem MonomialOrder.zero_le {σ : Type u_1} (m : MonomialOrder σ) (a : m.syn) :
0 a

0 is less then any σ →₀ ℕ w.r.t. monomial order.

theorem MonomialOrder.toSyn_eq_zero_iff {σ : Type u_1} (m : MonomialOrder σ) (a : σ →₀ ) :
m.toSyn a = 0 a = 0
theorem MonomialOrder.toSyn_lt_iff_ne_zero {σ : Type u_1} (m : MonomialOrder σ) {a : m.syn} :
0 < a a 0
theorem MonomialOrder.degree_add_eq_right_of_degree_lt {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] {f p : MvPolynomial σ R} (h : m.toSyn (m.degree f) < m.toSyn (m.degree p)) :
m.degree (f + p) = m.degree p
theorem MonomialOrder.degree_sum_le {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] {α : Type u_3} {s : Finset α} {f : αMvPolynomial σ R} :
m.toSyn (m.degree (∑ xs, f x)) s.sup fun (x : α) => m.toSyn (m.degree (f x))
theorem MonomialOrder.ne_zero_of_degree_ne_zero {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] {f : MvPolynomial σ R} (h : m.degree f 0) :
f 0
theorem MonomialOrder.degree_mem_support_iff {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] (f : MvPolynomial σ R) :
noncomputable def MonomialOrder.leadingTerm {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] (f : MvPolynomial σ R) :

The leading term in a non-zero multivariate polynomial is the term of the polynomial's degree in the polynomial. The leading term in the zero polynomial is defined as the zero polynomial.

Equations
Instances For
    def MonomialOrder.IsRemainder {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] (p : MvPolynomial σ R) (B : Set (MvPolynomial σ R)) (r : MvPolynomial σ R) :

    Given a multivariate polynomial $p$ and a set $B$ of multivariate polynomials over a commutative semiring $R$, and a monomial order. If there exists a $g : B \to R[X]$ with finite support, and a multivriate polynomial $r$, such that

    1. $p = \sum_{b\in B} g(b)b + r,$
    2. degree of any non-zero $g(b)b$ where b\in B is less than or equal to the degree of $p$,
    3. none of terms of $r$ is divisible by leading monomial of a non-zero elements of $B$,

    then $r$ is called a remainder of $p$ on division by "divisors" $B$.

    A statement that r is a remainder of p on division by B w.r.t. a monomial order m is denoted as m.IsRemainder p B r.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem MonomialOrder.isRemainder_def' {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] (p : MvPolynomial σ R) (B : Set (MvPolynomial σ R)) (r : MvPolynomial σ R) :
      m.IsRemainder p B r (∃ (g : MvPolynomial σ R →₀ MvPolynomial σ R), g.support B p = (Finsupp.linearCombination (MvPolynomial σ R) id) g + r bB, m.toSyn (m.degree (b * g b)) m.toSyn (m.degree p)) cr.support, g'B, g' 0¬m.degree g' c

      A variant of IsRemainder without coercion of a Set (MvPolynomial σ R).

      theorem MonomialOrder.isRemainder_def'' {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] (p : MvPolynomial σ R) (B : Set (MvPolynomial σ R)) (r : MvPolynomial σ R) :
      m.IsRemainder p B r (∃ (g : MvPolynomial σ RMvPolynomial σ R) (B' : Finset (MvPolynomial σ R)), B' B p = xB', g x * x + r b'B', m.toSyn (m.degree (b' * g b')) m.toSyn (m.degree p)) cr.support, bB, b 0¬m.degree b c

      A variant of IsRemainder where g : MvPolynomial σ R →₀ MvPolynomial σ R is replaced with a function g : MvPolynomial σ R → MvPolynomial σ R without limitation on its support.

      theorem MonomialOrder.isRemainder_finset {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] (p : MvPolynomial σ R) (B' : Finset (MvPolynomial σ R)) (r : MvPolynomial σ R) :
      m.IsRemainder p (↑B') r (∃ (g : MvPolynomial σ RMvPolynomial σ R), p = xB', g x * x + r b'B', m.toSyn (m.degree (b' * g b')) m.toSyn (m.degree p)) cr.support, bB', b 0¬m.degree b c
      theorem MonomialOrder.isRemainder_of_insert_zero_iff_isRemainder {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] (p : MvPolynomial σ R) (B : Set (MvPolynomial σ R)) (r : MvPolynomial σ R) :
      m.IsRemainder p (insert 0 B) r m.IsRemainder p B r

      Remainders are preserved on insertion of the zero polynomial into the set of divisors.

      theorem MonomialOrder.isRemainder_sdiff_singleton_zero_iff_isRemainder {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] (p : MvPolynomial σ R) (B : Set (MvPolynomial σ R)) (r : MvPolynomial σ R) :
      m.IsRemainder p (B \ {0}) r m.IsRemainder p B r

      Remainders are preserved with the zero polynomial removed from the set of divisors.

      theorem MonomialOrder.isRemainder_zero {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] {B : Set (MvPolynomial σ R)} {r : MvPolynomial σ R} (hB : bB, IsRegular (m.leadingCoeff b)) (h : m.IsRemainder 0 B r) :
      r = 0
      theorem MonomialOrder.isRemainder_zero₀ {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommSemiring R] {B : Set (MvPolynomial σ R)} {r : MvPolynomial σ R} (hB : bB, IsRegular (m.leadingCoeff b) b = 0) (h : m.IsRemainder 0 B r) :
      r = 0
      theorem MonomialOrder.isRemainder_zero' {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] (B : Set (MvPolynomial σ R)) [IsCancelMulZero R] {r : MvPolynomial σ R} (h : m.IsRemainder 0 B r) :
      r = 0
      theorem MonomialOrder.isRemainder_finset₁ {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] (p : MvPolynomial σ R) (B' : Finset (MvPolynomial σ R)) (hB' : b'B', IsRegular (m.leadingCoeff b')) (r : MvPolynomial σ R) :
      m.IsRemainder p (↑B') r (∃ (g : MvPolynomial σ RMvPolynomial σ R), p = xB', g x * x + r (∀ b'B', m.toSyn (m.degree (b' * g b')) m.toSyn (m.degree p)) (p = 0g = 0)) cr.support, bB', b 0¬m.degree b c
      theorem MonomialOrder.isRemainder_finset₀₁ {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] (p : MvPolynomial σ R) (B' : Finset (MvPolynomial σ R)) (hB' : b'B', IsRegular (m.leadingCoeff b') b' = 0) (r : MvPolynomial σ R) :
      m.IsRemainder p (↑B') r (∃ (g : MvPolynomial σ RMvPolynomial σ R), p = xB', g x * x + r (∀ b'B', m.toSyn (m.degree (b' * g b')) m.toSyn (m.degree p)) (p = 0g = 0)) cr.support, bB', b 0¬m.degree b c
      theorem MonomialOrder.isRemainder_finset'₁ {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] [IsCancelMulZero R] (p : MvPolynomial σ R) (B' : Finset (MvPolynomial σ R)) (r : MvPolynomial σ R) :
      m.IsRemainder p (↑B') r (∃ (g : MvPolynomial σ RMvPolynomial σ R), p = xB', g x * x + r (∀ b'B', m.toSyn (m.degree (b' * g b')) m.toSyn (m.degree p)) (p = 0g = 0)) cr.support, bB', b 0¬m.degree b c
      theorem MonomialOrder.leadingTerm_eq_zero_iff {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] (p : MvPolynomial σ R) :
      m.leadingTerm p = 0 p = 0

      The leading term in a multivariate polynomial is zero if and only if this polynomial is zero.

      @[simp]
      theorem MonomialOrder.leadingTerm_zero {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommSemiring R] :
      def MonomialOrder.IsGroebnerBasis {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_3} [CommSemiring R] (G : Finset (MvPolynomial σ R)) (I : Ideal (MvPolynomial σ R)) :

      Fix a monomial order on the polynomial ring $k[x_1, \ldots, x_n]$.A finite subset $G = \{g_1, \ldots, g_t\}$ of an ideal $I \subseteq k[x_1, \ldots, x_n]$, with $I \ne \{0\}$, is said to be a Gröbner basis (or standard basis) if $$ \langle \operatorname{LT}(g_1), \ldots, \operatorname{LT}(g_t) \rangle = \langle \operatorname{LT}(I) \rangle. $$ Using the convention that $\langle \emptyset \rangle = \{0\}$, we define the empty set $\emptyset$ to be the Gröbner basis of the zero ideal $\{0\}$.

      Equations
      Instances For
        noncomputable def MonomialOrder.sPolynomial {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] (f g : MvPolynomial σ R) :

        The $S$-polynomial of $f$ and $g$ is the combination $$ S(f, g) = \frac{x^\gamma}{\mathrm{LT}(f)} \cdot f - \frac{x^\gamma}{\mathrm{LT}(g)} \cdot g. $$

        Equations
        Instances For
          theorem MonomialOrder.sPolynomial_antisymm {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] (f g : MvPolynomial σ R) :

          the S-polynomial of $f$ and $g$ is antisymmetric: $$ \Sph{f}{g} = -\Sph{g}{f} $$

          @[simp]
          theorem MonomialOrder.sPolynomial_left_zero {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] (g : MvPolynomial σ R) :
          m.sPolynomial 0 g = 0

          For any polynomial $g \in \MvPolynomial{\sigma}{R}$ and monomial order $m$, the S-polynomial with zero as first argument vanishes: $$ \Sph{0}{g} = 0 $$

          @[simp]
          theorem MonomialOrder.sPolynomial_right_zero {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] (f : MvPolynomial σ R) :
          m.sPolynomial f 0 = 0

          For any polynomial $g \in \MvPolynomial{\sigma}{R}$ and monomial order $m$, the S-polynomial with zero as second argument vanishes: $$ \Sph{f}{0} = 0 $$

          theorem MonomialOrder.sPolynomial_def {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] (f g : MvPolynomial σ R) :
          @[simp]
          theorem MonomialOrder.sPolynomial_self {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] (f : MvPolynomial σ R) :
          m.sPolynomial f f = 0
          theorem MonomialOrder.div_set' {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] {B : Set (MvPolynomial σ R)} (hB : bB, IsUnit (m.leadingCoeff b)) (p : MvPolynomial σ R) :
          ∃ (r : MvPolynomial σ R), m.IsRemainder p B r
          theorem MonomialOrder.div_set'₀ {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] {B : Set (MvPolynomial σ R)} (hB : bB, IsUnit (m.leadingCoeff b) b = 0) (p : MvPolynomial σ R) :
          ∃ (r : MvPolynomial σ R), m.IsRemainder p B r

          Let $G'' \subseteq R[\mathbf{X}]$ be a set of polynomials where every nonzero element has a unit leading coefficient: $$ \forall g \in G'',\ \big(\mathrm{IsUnit}(\LC_m(g)) \lor g = 0\big) $$ Then for any polynomial $p \in R[\mathbf{X}]$, there exists a remainder $r$ satisfying: $$ \mathsf{IsRemainder}_m\,p\,G''\,r $$ where $\LC_m(g)$ denotes the leading coefficient of $g$ under monomial order $m$.

          theorem MonomialOrder.leadingTerm_degree_eq {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] (f : MvPolynomial σ R) :
          theorem MonomialOrder.leadingTerm_degree_eq' {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] (f : MvPolynomial σ R) :
          m.toSyn (m.degree (m.leadingTerm f)) = m.toSyn (m.degree f)
          theorem MonomialOrder.degree_sub_leadingTerm {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] (f : MvPolynomial σ R) :
          m.toSyn (m.degree (f - m.leadingTerm f)) < m.toSyn (m.degree f) f - m.leadingTerm f = 0
          theorem MonomialOrder.degree_sub_leadingTerm_lt_degree {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommRing R] {f : MvPolynomial σ R} (h : f - m.leadingTerm f 0) :
          m.toSyn (m.degree (f - m.leadingTerm f)) < m.toSyn (m.degree f)
          theorem MonomialOrder.degree_sub_leadingTerm_lt_iff {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] {f : MvPolynomial σ R} :
          m.toSyn (m.degree (f - m.leadingTerm f)) < m.toSyn (m.degree f) m.degree f 0
          theorem MonomialOrder.degree_sPolynomial_le {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] (f g : MvPolynomial σ R) :
          m.toSyn (m.degree (m.sPolynomial f g)) m.toSyn (m.degree fm.degree g)
          theorem MonomialOrder.coeff_sPolynomial_sup_eq_zero {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] (f g : MvPolynomial σ R) :
          MvPolynomial.coeff (m.degree fm.degree g) (m.sPolynomial f g) = 0
          theorem MonomialOrder.degree_sPolynomial {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] (f g : MvPolynomial σ R) :
          m.toSyn (m.degree (m.sPolynomial f g)) < m.toSyn (m.degree fm.degree g) m.sPolynomial f g = 0
          theorem MonomialOrder.degree_sPolynomial_lt_sup_degree {σ : Type u_1} {m : MonomialOrder σ} {R : Type u_2} [CommRing R] [NoZeroDivisors R] {f g : MvPolynomial σ R} (h : m.sPolynomial f g 0) :
          m.toSyn (m.degree (m.sPolynomial f g)) < m.toSyn (m.degree fm.degree g)
          theorem MonomialOrder.sPolynomial_lt_of_degree_ne_zero_of_degree_eq {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] {h₁ h₂ : MvPolynomial σ R} (h : m.degree h₁ = m.degree h₂) (hs : m.sPolynomial h₁ h₂ 0) :
          m.toSyn (m.degree (m.sPolynomial h₁ h₂)) < m.toSyn (m.degree h₁)

          $h_1, h_2 \in k[\mathbf{x}], lm(h_1) = lm(h_2), S(h_1, h_2) \ne 0$, then $lm(S(h_1, h_2)) < lm(h_1)$.

          theorem MonomialOrder.degree_mul' {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] [NoZeroDivisors R] {f g : MvPolynomial σ R} (hf : f * g 0) :
          m.degree (f * g) = m.degree f + m.degree g

          Monomial degree of product

          theorem MonomialOrder.not_mem_support_of_degree_lt {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] {f g : MvPolynomial σ R} (h : m.toSyn (m.degree f) < m.toSyn (m.degree g)) :
          m.degree gf.support
          theorem MonomialOrder.sPolynomial_mul_monomial {σ : Type u_1} (m : MonomialOrder σ) {R : Type u_2} [CommRing R] [IsCancelMulZero R] (p₁ p₂ : MvPolynomial σ 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.div_set'' {σ : Type u_1} (m : MonomialOrder σ) {k : Type u_2} [Field k] (B : Set (MvPolynomial σ k)) (p : MvPolynomial σ k) :
          ∃ (r : MvPolynomial σ k), m.IsRemainder p B r

          Let $k$ be a field, and let $G'' \subseteq k[x_i : i \in \sigma]$ be a set of polynomials. Then for any $p \in k[x_i : i \in \sigma]$, there exists a generalized remainder $r$ of $p$ upon division by $G''$.