Documentation

Mathlib.Data.Finsupp.Weight

weights of Finsupp functions #

The theory of multivariate polynomials and power series is built on the type σ →₀ ℕ which gives the exponents of the monomials. Many aspects of the theory (degree, order, graded ring structure) require to classify these exponents according to their total sum ∑ i, f i, or variants, and this files provides some API for that.

Weight #

We fix a type σ and an AddCommMonoid M, as well as a function w : σ → M.

Degree #

TODO #

noncomputable def Finsupp.weight {σ : Type u_1} {M : Type u_2} (w : σM) [AddCommMonoid M] :
(σ →₀ ) →+ M

The weight of the finitely supported function f : σ →₀ ℕ with respect to w : σ → M is the sum ∑ i, f i • w i.

Equations
Instances For
    @[deprecated Finsupp.weight]
    def MvPolynomial.weightedDegree {σ : Type u_1} {M : Type u_2} (w : σM) [AddCommMonoid M] :
    (σ →₀ ) →+ M

    Alias of Finsupp.weight.


    The weight of the finitely supported function f : σ →₀ ℕ with respect to w : σ → M is the sum ∑ i, f i • w i.

    Equations
    Instances For
      theorem Finsupp.weight_apply {σ : Type u_1} {M : Type u_2} (w : σM) [AddCommMonoid M] (f : σ →₀ ) :
      (Finsupp.weight w) f = f.sum fun (i : σ) (c : ) => c w i
      @[deprecated Finsupp.weight_apply]
      theorem MvPolynomial.weightedDegree_apply {σ : Type u_1} {M : Type u_2} (w : σM) [AddCommMonoid M] (f : σ →₀ ) :
      (Finsupp.weight w) f = f.sum fun (i : σ) (c : ) => c w i

      Alias of Finsupp.weight_apply.

      class Finsupp.NonTorsionWeight {σ : Type u_1} {M : Type u_2} [AddCommMonoid M] (w : σM) :

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

      • eq_zero_of_smul_eq_zero {n : } {s : σ} (h : n w s = 0) : n = 0
      Instances
        theorem Finsupp.nonTorsionWeight_of {σ : Type u_1} {M : Type u_2} (w : σM) [AddCommMonoid M] [NoZeroSMulDivisors M] (hw : ∀ (i : σ), w i 0) :

        Without zero divisors, nonzero weight is a NonTorsionWeight

        theorem Finsupp.NonTorsionWeight.ne_zero {σ : Type u_1} {M : Type u_2} (w : σM) [AddCommMonoid M] [Finsupp.NonTorsionWeight w] (s : σ) :
        w s 0
        theorem Finsupp.weight_sub_single_add {σ : Type u_1} {M : Type u_2} {w : σM} [AddCommMonoid M] {f : σ →₀ } {i : σ} (hi : f i 0) :
        theorem Finsupp.le_weight {σ : Type u_1} (w : σ) {s : σ} (hs : w s 0) (f : σ →₀ ) :
        theorem Finsupp.le_weight_of_ne_zero {σ : Type u_1} {M : Type u_2} [OrderedAddCommMonoid M] {w : σM} (hw : ∀ (s : σ), 0 w s) {s : σ} {f : σ →₀ } (hs : f s 0) :
        theorem Finsupp.le_weight_of_ne_zero' {σ : Type u_1} {M : Type u_3} [CanonicallyOrderedAddCommMonoid M] (w : σM) {s : σ} {f : σ →₀ } (hs : f s 0) :
        theorem Finsupp.weight_eq_zero_iff_eq_zero {σ : Type u_1} {M : Type u_3} [CanonicallyOrderedAddCommMonoid M] (w : σM) [Finsupp.NonTorsionWeight w] {f : σ →₀ } :
        (Finsupp.weight w) f = 0 f = 0

        If M is a CanonicallyOrderedAddCommMonoid, then weight f is zero iff `f=0.

        theorem Finsupp.finite_of_nat_weight_le {σ : Type u_1} [Finite σ] (w : σ) (hw : ∀ (x : σ), w x 0) (n : ) :
        {d : σ →₀ | (Finsupp.weight w) d n}.Finite
        def Finsupp.degree {σ : Type u_1} (d : σ →₀ ) :

        The degree of a finsupp function.

        Equations
        • d.degree = id.support, d i
        Instances For
          @[deprecated Finsupp.degree]
          def MvPolynomial.degree {σ : Type u_1} (d : σ →₀ ) :

          Alias of Finsupp.degree.


          The degree of a finsupp function.

          Equations
          Instances For
            @[simp]
            theorem Finsupp.degree_add {σ : Type u_1} (a b : σ →₀ ) :
            (a + b).degree = a.degree + b.degree
            @[simp]
            theorem Finsupp.degree_single {σ : Type u_1} (a : σ) (m : ) :
            (Finsupp.single a m).degree = m
            theorem Finsupp.degree_eq_zero_iff {σ : Type u_1} (d : σ →₀ ) :
            d.degree = 0 d = 0
            @[deprecated Finsupp.degree_eq_zero_iff]
            theorem MvPolynomial.degree_eq_zero_iff {σ : Type u_1} (d : σ →₀ ) :
            d.degree = 0 d = 0

            Alias of Finsupp.degree_eq_zero_iff.

            @[simp]
            theorem Finsupp.degree_zero {σ : Type u_1} :
            theorem Finsupp.degree_eq_weight_one {σ : Type u_1} :
            Finsupp.degree = (Finsupp.weight 1)
            @[deprecated Finsupp.degree_eq_weight_one]
            theorem MvPolynomial.weightedDegree_one {σ : Type u_1} :
            Finsupp.degree = (Finsupp.weight 1)

            Alias of Finsupp.degree_eq_weight_one.

            theorem Finsupp.le_degree {σ : Type u_1} (s : σ) (f : σ →₀ ) :
            f s f.degree
            theorem Finsupp.finite_of_degree_le {σ : Type u_1} [Finite σ] (n : ) :
            {f : σ →₀ | f.degree n}.Finite