Documentation

Mathlib.RingTheory.MvPolynomial.WeightedHomogeneous

Weighted homogeneous polynomials #

It is possible to assign weights (in a commutative additive monoid M) to the variables of a multivariate polynomial ring, so that monomials of the ring then have a weighted degree with respect to the weights of the variables. The weights are represented by a function w : σ → M, where σ are the indeterminates.

A multivariate polynomial φ is weighted homogeneous of weighted degree m : M if all monomials occurring in φ have the same weighted degree m.

Main definitions/lemmas #

weightedDegree #

def MvPolynomial.weightedDegree {M : Type u_2} {σ : Type u_3} [AddCommMonoid M] (w : σM) :
(σ →₀ ) →+ M

The weightedDegree of the finitely supported function s : σ →₀ ℕ is the sum ∑(s i)•(w i).

Equations
Instances For
    theorem MvPolynomial.weightedDegree_apply {M : Type u_2} {σ : Type u_3} [AddCommMonoid M] (w : σM) (f : σ →₀ ) :
    (MvPolynomial.weightedDegree w) f = Finsupp.sum f fun (i : σ) (c : ) => c w i
    def MvPolynomial.weightedTotalDegree' {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] [SemilatticeSup M] (w : σM) (p : MvPolynomial σ R) :

    The weighted total degree of a multivariate polynomial, taking values in WithBot M.

    Equations
    Instances For

      The weightedTotalDegree' of a polynomial p is if and only if p = 0.

      The weightedTotalDegree' of the zero polynomial is .

      def MvPolynomial.weightedTotalDegree {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] [SemilatticeSup M] [OrderBot M] (w : σM) (p : MvPolynomial σ R) :
      M

      When M has a element, we can define the weighted total degree of a multivariate polynomial as a function taking values in M.

      Equations
      Instances For

        The weightedTotalDegree of the zero polynomial is .

        def MvPolynomial.IsWeightedHomogeneous {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] (w : σM) (φ : MvPolynomial σ R) (m : M) :

        A multivariate polynomial φ is weighted homogeneous of weighted degree m if all monomials occurring in φ have weighted degree m.

        Equations
        Instances For
          def MvPolynomial.weightedHomogeneousSubmodule (R : Type u_1) {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] (w : σM) (m : M) :

          The submodule of homogeneous MvPolynomials of degree n.

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

            The submodule weightedHomogeneousSubmodule R w m of homogeneous MvPolynomials of degree n is equal to the R-submodule of all p : (σ →₀ ℕ) →₀ R such that p.support ⊆ {d | weightedDegree w d = m}. While equal, the former has a convenient definitional reduction.

            The submodule generated by products Pm * Pn of weighted homogeneous polynomials of degrees m and n is contained in the submodule of weighted homogeneous polynomials of degree m + n.

            theorem MvPolynomial.isWeightedHomogeneous_monomial {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] (w : σM) (d : σ →₀ ) (r : R) {m : M} (hm : (MvPolynomial.weightedDegree w) d = m) :

            Monomials are weighted homogeneous.

            A polynomial of weightedTotalDegree is weighted_homogeneous of degree .

            theorem MvPolynomial.isWeightedHomogeneous_C {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] (w : σM) (r : R) :
            MvPolynomial.IsWeightedHomogeneous w (MvPolynomial.C r) 0

            Constant polynomials are weighted homogeneous of degree 0.

            theorem MvPolynomial.isWeightedHomogeneous_zero (R : Type u_1) {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] (w : σM) (m : M) :

            0 is weighted homogeneous of any degree.

            theorem MvPolynomial.isWeightedHomogeneous_one (R : Type u_1) {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] (w : σM) :

            1 is weighted homogeneous of degree 0.

            theorem MvPolynomial.isWeightedHomogeneous_X (R : Type u_1) {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] (w : σM) (i : σ) :

            An indeterminate i : σ is weighted homogeneous of degree w i.

            theorem MvPolynomial.IsWeightedHomogeneous.coeff_eq_zero {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] {φ : MvPolynomial σ R} {n : M} {w : σM} (hφ : MvPolynomial.IsWeightedHomogeneous w φ n) (d : σ →₀ ) (hd : (MvPolynomial.weightedDegree w) d n) :

            The weighted degree of a weighted homogeneous polynomial controls its support.

            theorem MvPolynomial.IsWeightedHomogeneous.inj_right {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] {φ : MvPolynomial σ R} {m : M} {n : M} {w : σM} (hφ : φ 0) (hm : MvPolynomial.IsWeightedHomogeneous w φ m) (hn : MvPolynomial.IsWeightedHomogeneous w φ n) :
            m = n

            The weighted degree of a nonzero weighted homogeneous polynomial is well-defined.

            theorem MvPolynomial.IsWeightedHomogeneous.add {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] {φ : MvPolynomial σ R} {ψ : MvPolynomial σ R} {n : M} {w : σM} (hφ : MvPolynomial.IsWeightedHomogeneous w φ n) (hψ : MvPolynomial.IsWeightedHomogeneous w ψ n) :

            The sum of two weighted homogeneous polynomials of degree n is weighted homogeneous of weighted degree n.

            theorem MvPolynomial.IsWeightedHomogeneous.sum {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] {ι : Type u_4} (s : Finset ι) (φ : ιMvPolynomial σ R) (n : M) {w : σM} (h : is, MvPolynomial.IsWeightedHomogeneous w (φ i) n) :
            MvPolynomial.IsWeightedHomogeneous w (Finset.sum s fun (i : ι) => φ i) n

            The sum of weighted homogeneous polynomials of degree n is weighted homogeneous of weighted degree n.

            theorem MvPolynomial.IsWeightedHomogeneous.mul {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] {φ : MvPolynomial σ R} {ψ : MvPolynomial σ R} {m : M} {n : M} {w : σM} (hφ : MvPolynomial.IsWeightedHomogeneous w φ m) (hψ : MvPolynomial.IsWeightedHomogeneous w ψ n) :

            The product of weighted homogeneous polynomials of weighted degrees m and n is weighted homogeneous of weighted degree m + n.

            theorem MvPolynomial.IsWeightedHomogeneous.prod {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] {ι : Type u_4} (s : Finset ι) (φ : ιMvPolynomial σ R) (n : ιM) {w : σM} :
            (is, MvPolynomial.IsWeightedHomogeneous w (φ i) (n i))MvPolynomial.IsWeightedHomogeneous w (Finset.prod s fun (i : ι) => φ i) (Finset.sum s fun (i : ι) => n i)

            A product of weighted homogeneous polynomials is weighted homogeneous, with weighted degree equal to the sum of the weighted degrees.

            theorem MvPolynomial.IsWeightedHomogeneous.weighted_total_degree {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] {φ : MvPolynomial σ R} {n : M} [SemilatticeSup M] {w : σM} (hφ : MvPolynomial.IsWeightedHomogeneous w φ n) (h : φ 0) :

            A non zero weighted homogeneous polynomial of weighted degree n has weighted total degree n.

            The weighted homogeneous submodules form a graded monoid.

            Equations
            • =
            def MvPolynomial.weightedHomogeneousComponent {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] (w : σM) (n : M) :

            weightedHomogeneousComponent w n φ is the part of φ that is weighted homogeneous of weighted degree n, with respect to the weights w. See sum_weightedHomogeneousComponent for the statement that φ is equal to the sum of all its weighted homogeneous components.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem MvPolynomial.coeff_weightedHomogeneousComponent {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] {w : σM} (n : M) (φ : MvPolynomial σ R) [DecidableEq M] (d : σ →₀ ) :

              The n weighted homogeneous component of a polynomial is weighted homogeneous of weighted degree n.

              @[simp]
              theorem MvPolynomial.weightedHomogeneousComponent_C_mul {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] {w : σM} (φ : MvPolynomial σ R) (n : M) (r : R) :
              (MvPolynomial.weightedHomogeneousComponent w n) (MvPolynomial.C r * φ) = MvPolynomial.C r * (MvPolynomial.weightedHomogeneousComponent w n) φ
              theorem MvPolynomial.weightedHomogeneousComponent_eq_zero' {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] {w : σM} (n : M) (φ : MvPolynomial σ R) (h : dMvPolynomial.support φ, (MvPolynomial.weightedDegree w) d n) :
              theorem MvPolynomial.sum_weightedHomogeneousComponent {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] (w : σM) (φ : MvPolynomial σ R) :

              Every polynomial is the sum of its weighted homogeneous components.

              theorem MvPolynomial.finsum_weightedHomogeneousComponent {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] (w : σM) (φ : MvPolynomial σ R) :
              theorem MvPolynomial.weightedHomogeneousComponent_weighted_homogeneous_polynomial {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [AddCommMonoid M] {w : σM} [DecidableEq M] (m : M) (n : M) (p : MvPolynomial σ R) (h : p MvPolynomial.weightedHomogeneousSubmodule R w n) :
              (MvPolynomial.weightedHomogeneousComponent w m) p = if m = n then p else 0

              The weighted homogeneous components of a weighted homogeneous polynomial.

              @[simp]
              theorem MvPolynomial.weightedHomogeneousComponent_zero {R : Type u_1} {M : Type u_2} [CommSemiring R] {σ : Type u_3} [CanonicallyOrderedAddCommMonoid M] {w : σM} (φ : MvPolynomial σ R) [NoZeroSMulDivisors M] (hw : ∀ (i : σ), w i 0) :

              If M is a CanonicallyOrderedAddCommMonoid, then the weightedHomogeneousComponent of weighted degree 0 of a polynomial is its constant coefficient.

              def MvPolynomial.NonTorsionWeight {M : Type u_2} {σ : Type u_3} [CanonicallyOrderedAddCommMonoid M] (w : σM) :

              A weight function is nontorsion if its values are not torsion.

              Equations
              Instances For
                theorem MvPolynomial.nonTorsionWeight_of {M : Type u_2} {σ : Type u_3} [CanonicallyOrderedAddCommMonoid M] {w : σM} [NoZeroSMulDivisors M] (hw : ∀ (i : σ), w i 0) :
                theorem MvPolynomial.weightedDegree_eq_zero_iff {M : Type u_2} {σ : Type u_3} [CanonicallyLinearOrderedAddCommMonoid M] {w : σM} (hw : MvPolynomial.NonTorsionWeight w) {m : σ →₀ } :
                (MvPolynomial.weightedDegree w) m = 0 ∀ (x : σ), m x = 0

                If w is a nontorsion weight function, then the finitely supported function m : σ →₀ ℕ has weighted degree zero if and only if ∀ x : σ, m x = 0.

                A multivatiate polynomial is weighted homogeneous of weighted degree zero if and only if its weighted total degree is equal to zero.

                If w is a nontorsion weight function, then a multivariate polynomial has weighted total degree zero if and only if for every m ∈ p.support and x : σ, m x = 0.