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
@[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
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 = 0n = 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.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
    @[deprecated Finsupp.degree]
    def MvPolynomial.degree {σ : Type u_1} (d : σ →₀ ) :

    Alias of Finsupp.degree.


    The degree of a finsupp function.

    Equations
    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