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 X
andX →₀ ℤ
FreeAbelianGroup.coeff
: the multiplicity ofx : X
ina : FreeAbelianGroup X
FreeAbelianGroup.support
: the finset ofx : X
that occur ina : FreeAbelianGroup X
The group homomorphism FreeAbelianGroup X →+ (X →₀ ℤ)
.
Equations
- FreeAbelianGroup.toFinsupp = FreeAbelianGroup.lift fun (x : X) => Finsupp.single x 1
Instances For
The group homomorphism (X →₀ ℤ) →+ FreeAbelianGroup X
.
Equations
- Finsupp.toFreeAbelianGroup = Finsupp.liftAddHom fun (x : X) => (AddMonoidHom.flip (smulAddHom ℤ (FreeAbelianGroup X))) (FreeAbelianGroup.of x)
Instances For
The additive equivalence between FreeAbelianGroup X
and (X →₀ ℤ)
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A
is a basis of the ℤ-module FreeAbelianGroup A
.
Equations
- FreeAbelianGroup.basis α = { repr := AddEquiv.toIntLinearEquiv (FreeAbelianGroup.equivFinsupp α) }
Instances For
Isomorphic free abelian groups (as modules) have equivalent bases.
Equations
Instances For
Isomorphic free abelian groups (as additive groups) have equivalent bases.
Equations
Instances For
Isomorphic free groups have equivalent bases.
Equations
- FreeAbelianGroup.Equiv.ofFreeGroupEquiv e = FreeAbelianGroup.Equiv.ofFreeAbelianGroupEquiv (MulEquiv.toAdditive (MulEquiv.abelianizationCongr e))
Instances For
Isomorphic free groups have equivalent bases (IsFreeGroup
variant).
Equations
Instances For
coeff x
is the additive group homomorphism FreeAbelianGroup X →+ ℤ
that sends a
to the multiplicity of x : X
in a
.
Equations
- FreeAbelianGroup.coeff x = AddMonoidHom.comp (Finsupp.applyAddHom x) FreeAbelianGroup.toFinsupp
Instances For
support a
for a : FreeAbelianGroup X
is the finite set of x : X
that occur in the formal sum a
.
Equations
- FreeAbelianGroup.support a = (FreeAbelianGroup.toFinsupp a).support