Documentation

Mathlib.Algebra.FreeAbelianGroup.Finsupp

Isomorphism between FreeAbelianGroup X and X →₀ ℤ #

In this file we construct the canonical isomorphism between FreeAbelianGroup X and X →₀ ℤ. We use this to transport the notion of support from Finsupp to FreeAbelianGroup.

Main declarations #

noncomputable def FreeAbelianGroup.toFinsupp {X : Type u_1} :

The group homomorphism FreeAbelianGroup X →+ (X →₀ ℤ).

Instances For
    noncomputable def Finsupp.toFreeAbelianGroup {X : Type u_1} :

    The group homomorphism (X →₀ ℤ) →+ FreeAbelianGroup X.

    Instances For
      @[simp]
      theorem FreeAbelianGroup.toFinsupp_of {X : Type u_1} (x : X) :
      toFinsupp (of x) = fun₀ | x => 1
      @[simp]
      theorem Finsupp.toFreeAbelianGroup_single {X : Type u_1} (x : X) (n : ) :
      noncomputable def FreeAbelianGroup.equivFinsupp (X : Type u_1) :

      The additive equivalence between FreeAbelianGroup X and (X →₀ ℤ).

      Instances For
        noncomputable def FreeAbelianGroup.coeff {X : Type u_1} (x : X) :

        coeff x is the additive group homomorphism FreeAbelianGroup X →+ ℤ that sends a to the multiplicity of x : X in a.

        Instances For
          noncomputable def FreeAbelianGroup.support {X : Type u_1} (a : FreeAbelianGroup X) :

          support a for a : FreeAbelianGroup X is the finite set of x : X that occur in the formal sum a.

          Instances For
            @[simp]
            theorem FreeAbelianGroup.mem_support_iff {X : Type u_1} (x : X) (a : FreeAbelianGroup X) :
            x a.support (coeff x) a 0
            theorem FreeAbelianGroup.notMem_support_iff {X : Type u_1} (x : X) (a : FreeAbelianGroup X) :
            xa.support (coeff x) a = 0
            @[simp]
            theorem FreeAbelianGroup.support_of {X : Type u_1} (x : X) :
            (of x).support = {x}
            @[simp]
            theorem FreeAbelianGroup.support_zsmul {X : Type u_1} (k : ) (h : k 0) (a : FreeAbelianGroup X) :
            (k a).support = a.support
            @[simp]
            theorem FreeAbelianGroup.support_nsmul {X : Type u_1} (k : ) (h : k 0) (a : FreeAbelianGroup X) :
            (k a).support = a.support