Documentation

Mathlib.RingTheory.MvPolynomial.Basic

Multivariate polynomials over commutative rings #

This file contains basic facts about multivariate polynomials over commutative rings, for example that the monomials form a basis.

Main definitions #

Main statements #

TODO #

Generalise to noncommutative (semi)rings

instance MvPolynomial.instCharP (σ : Type u) (R : Type v) [CommSemiring R] (p : ) [CharP R p] :
instance MvPolynomial.instExpChar (σ : Type u) (R : Type v) [CommSemiring R] (p : ) [ExpChar R p] :
theorem MvPolynomial.mapRange_eq_map (σ : Type u) {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (p : MvPolynomial σ R) (f : R →+* S) :
Finsupp.mapRange f p = (map f) p
def MvPolynomial.restrictSupport {σ : Type u} (R : Type v) [CommSemiring R] (s : Set (σ →₀ )) :

The submodule of polynomials that are sum of monomials in the set s.

Instances For
    noncomputable def MvPolynomial.basisRestrictSupport {σ : Type u} (R : Type v) [CommSemiring R] (s : Set (σ →₀ )) :
    Module.Basis (↑s) R (restrictSupport R s)

    restrictSupport R s has a canonical R-basis indexed by s.

    Instances For
      theorem MvPolynomial.restrictSupport_mono {σ : Type u} (R : Type v) [CommSemiring R] {s t : Set (σ →₀ )} (h : s t) :
      theorem MvPolynomial.restrictSupport_eq_span {σ : Type u} (R : Type v) [CommSemiring R] (s : Set (σ →₀ )) :
      restrictSupport R s = Submodule.span R ((fun (x : σ →₀ ) => (monomial x) 1) '' s)
      theorem MvPolynomial.mem_restrictSupport_iff {σ : Type u} (R : Type v) [CommSemiring R] {s : Set (σ →₀ )} {r : MvPolynomial σ R} :
      r restrictSupport R s r.support s
      @[simp]
      theorem MvPolynomial.monomial_mem_restrictSupport {σ : Type u} (R : Type v) [CommSemiring R] {s : Set (σ →₀ )} {m : σ →₀ } {r : R} :
      (monomial m) r restrictSupport R s m s r = 0
      theorem MvPolynomial.restrictSupport_nsmul {σ : Type u} (R : Type v) [CommSemiring R] (n : ) (s : Set (σ →₀ )) :
      restrictSupport R (n s) = restrictSupport R s ^ n
      def MvPolynomial.restrictSupportIdeal {σ : Type u} (R : Type v) [CommSemiring R] (s : Set (σ →₀ )) (hs : IsUpperSet s) :

      The ideal defined by restrictSupport R s when s is an upper set.

      Instances For
        def MvPolynomial.restrictTotalDegree (σ : Type u) (R : Type v) [CommSemiring R] (m : ) :

        The submodule of polynomials of total degree less than or equal to m.

        Instances For
          def MvPolynomial.restrictDegree (σ : Type u) (R : Type v) [CommSemiring R] (m : ) :

          The submodule of polynomials such that the degree with respect to each individual variable is less than or equal to m.

          Instances For
            theorem MvPolynomial.mem_restrictTotalDegree (σ : Type u) {R : Type v} [CommSemiring R] (m : ) (p : MvPolynomial σ R) :
            p restrictTotalDegree σ R m p.totalDegree m
            theorem MvPolynomial.mem_restrictDegree (σ : Type u) {R : Type v} [CommSemiring R] (p : MvPolynomial σ R) (n : ) :
            p restrictDegree σ R n sp.support, ∀ (i : σ), s i n
            theorem MvPolynomial.mem_restrictDegree_iff_sup (σ : Type u) {R : Type v} [CommSemiring R] [DecidableEq σ] (p : MvPolynomial σ R) (n : ) :
            p restrictDegree σ R n ∀ (i : σ), Multiset.count i p.degrees n
            noncomputable def MvPolynomial.basisMonomials (σ : Type u) (R : Type v) [CommSemiring R] :
            Module.Basis (σ →₀ ) R (MvPolynomial σ R)

            The monomials form a basis on MvPolynomial σ R.

            Instances For
              @[simp]
              theorem MvPolynomial.coe_basisMonomials (σ : Type u) (R : Type v) [CommSemiring R] :
              (basisMonomials σ R) = fun (s : σ →₀ ) => (monomial s) 1
              instance MvPolynomial.instFree (σ : Type u) (R : Type v) [CommSemiring R] :

              The R-module MvPolynomial σ R is free.