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 #
FreeAbelianGroup.equivFinsupp: group isomorphism betweenFreeAbelianGroup XandX →₀ ℤFreeAbelianGroup.coeff: the multiplicity ofx : Xina : FreeAbelianGroup XFreeAbelianGroup.support: the finset ofx : Xthat occur ina : FreeAbelianGroup X
The group homomorphism FreeAbelianGroup X →+ (X →₀ ℤ).
Instances For
The group homomorphism (X →₀ ℤ) →+ FreeAbelianGroup X.
Instances For
@[simp]
@[simp]
theorem
Finsupp.toFreeAbelianGroup_single
{X : Type u_1}
(x : X)
(n : ℤ)
:
(toFreeAbelianGroup fun₀ | x => n) = n • FreeAbelianGroup.of x
@[simp]
theorem
Finsupp.toFreeAbelianGroup_comp_singleAddHom
{X : Type u_1}
(x : X)
:
toFreeAbelianGroup.comp (singleAddHom x) = (smulAddHom ℤ (FreeAbelianGroup X)).flip (FreeAbelianGroup.of x)
@[simp]
@[simp]
@[simp]
@[simp]
theorem
FreeAbelianGroup.toFinsupp_toFreeAbelianGroup
{X : Type u_1}
(f : X →₀ ℤ)
:
toFinsupp (Finsupp.toFreeAbelianGroup f) = f
The additive equivalence between FreeAbelianGroup X and (X →₀ ℤ).
Instances For
@[simp]
theorem
FreeAbelianGroup.equivFinsupp_symm_apply
(X : Type u_1)
(a : X →₀ ℤ)
:
(equivFinsupp X).symm a = Finsupp.toFreeAbelianGroup a
@[simp]
theorem
FreeAbelianGroup.equivFinsupp_apply
(X : Type u_1)
(a : FreeAbelianGroup X)
:
(equivFinsupp X) a = toFinsupp a
coeff x is the additive group homomorphism FreeAbelianGroup X →+ ℤ
that sends a to the multiplicity of x : X in a.
Instances For
support a for a : FreeAbelianGroup X is the finite set of x : X
that occur in the formal sum a.
Instances For
@[simp]
@[simp]
@[simp]
@[simp]
theorem
FreeAbelianGroup.support_zsmul
{X : Type u_1}
(k : ℤ)
(h : k ≠ 0)
(a : FreeAbelianGroup X)
:
@[simp]
theorem
FreeAbelianGroup.support_nsmul
{X : Type u_1}
(k : ℕ)
(h : k ≠ 0)
(a : FreeAbelianGroup X)
: