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 ∑(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 ∑(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 : σ}, n • w s = 0 → n = 0
      Instances
        theorem Finsupp.NonTorsionWeight.eq_zero_of_smul_eq_zero {σ : Type u_1} {M : Type u_2} [AddCommMonoid M] {w : σ → M} [self : Finsupp.NonTorsionWeight w] {n : ℕ} {s : σ} (h : n • w s = 0) :
        n = 0
        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.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.

        def Finsupp.degree {σ : Type u_1} (d : σ →₀ ℕ) :

        The degree of a finsupp function.

        Equations
        • d.degree = ∑ i ∈ d.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
            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