Direct sum #
This file defines the direct sum of abelian groups, indexed by a discrete type.
Notation #
⨁ i, β i
is the n-ary direct sum DirectSum
.
This notation is in the DirectSum
locale, accessible after open DirectSum
.
References #
Equations
- instInhabitedDirectSum ι β = inferInstanceAs (Inhabited (Π₀ (i : ι), β i))
Equations
- instAddCommMonoidDirectSum ι β = inferInstanceAs (AddCommMonoid (Π₀ (i : ι), β i))
Equations
- instDFunLikeDirectSum ι β = inferInstanceAs (DFunLike (Π₀ (i : ι), β i) ι β)
Equations
- instCoeFunDirectSumForall ι β = inferInstanceAs (CoeFun (Π₀ (i : ι), β i) fun (x : Π₀ (i : ι), β i) => (i : ι) → β i)
Pretty printer defined by notation3
command.
Equations
- One or more equations did not get rendered due to their size.
Instances For
⨁ i, f i
is notation for DirectSum _ f
and equals the direct sum of fun i ↦ f i
.
Taking the direct sum over multiple arguments is possible, e.g. ⨁ (i) (j), f i j
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- instDecidableEqDirectSum ι β = inferInstanceAs (DecidableEq (Π₀ (i : ι), β i))
Equations
- DirectSum.instAddCommGroup β = inferInstanceAs (AddCommGroup (Π₀ (i : ι), β i))
mk β s x
is the element of ⨁ i, β i
that is zero outside s
and has coefficient x i
for i
in s
.
Equations
- DirectSum.mk β s = { toFun := DFinsupp.mk s, map_zero' := ⋯, map_add' := ⋯ }
Instances For
of i
is the natural inclusion map from β i
to ⨁ i, β i
.
Equations
- DirectSum.of β i = DFinsupp.singleAddHom β i
Instances For
If two additive homomorphisms from ⨁ i, β i
are equal on each of β i y
,
then they are equal.
If two additive homomorphisms from ⨁ i, β i
are equal on each of β i y
,
then they are equal.
See note [partially-applied ext lemmas].
toAddMonoid φ
is the natural homomorphism from ⨁ i, β i
to γ
induced by a family φ
of homomorphisms β i → γ
.
Equations
- DirectSum.toAddMonoid φ = DFinsupp.liftAddHom φ
Instances For
fromAddMonoid φ
is the natural homomorphism from γ
to ⨁ i, β i
induced by a family φ
of homomorphisms γ → β i
.
Note that this is not an isomorphism. Not every homomorphism γ →+ ⨁ i, β i
arises in this way.
Equations
- DirectSum.fromAddMonoid = DirectSum.toAddMonoid fun (i : ι) => AddMonoidHom.compHom (DirectSum.of β i)
Instances For
setToSet β S T h
is the natural homomorphism ⨁ (i : S), β i → ⨁ (i : T), β i
,
where h : S ⊆ T
.
Equations
- DirectSum.setToSet β S T H = DirectSum.toAddMonoid fun (i : ↑S) => DirectSum.of (fun (i : Subtype T) => β ↑i) ⟨↑i, ⋯⟩
Instances For
Equations
- DirectSum.unique = DFinsupp.unique
A direct sum over an empty type is trivial.
Equations
- DirectSum.uniqueOfIsEmpty = DFinsupp.uniqueOfIsEmpty
The natural equivalence between ⨁ _ : ι, M
and M
when Unique ι
.
Equations
- DirectSum.id M ι = { toFun := ⇑(DirectSum.toAddMonoid fun (x : ι) => AddMonoidHom.id M), invFun := ⇑(DirectSum.of (fun (x : ι) => M) default), left_inv := ⋯, right_inv := ⋯, map_add' := ⋯ }
Instances For
Reindexing terms of a direct sum.
Equations
- DirectSum.equivCongrLeft h = { toEquiv := DFinsupp.equivCongrLeft h, map_add' := ⋯ }
Instances For
Isomorphism obtained by separating the term of index none
of a direct sum over Option ι
.
Equations
- DirectSum.addEquivProdDirectSum = { toEquiv := DFinsupp.equivProdDFinsupp, map_add' := ⋯ }
Instances For
The natural map between ⨁ (i : Σ i, α i), δ i.1 i.2
and ⨁ i (j : α i), δ i j
.
Equations
- DirectSum.sigmaCurry = { toFun := DFinsupp.sigmaCurry, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The natural map between ⨁ i (j : α i), δ i j
and Π₀ (i : Σ i, α i), δ i.1 i.2
, inverse of
curry
.
Equations
- DirectSum.sigmaUncurry = { toFun := DFinsupp.sigmaUncurry, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The natural map between ⨁ (i : Σ i, α i), δ i.1 i.2
and ⨁ i (j : α i), δ i j
.
Equations
- DirectSum.sigmaCurryEquiv = { toFun := (↑DirectSum.sigmaCurry).toFun, invFun := DFinsupp.sigmaCurryEquiv.invFun, left_inv := ⋯, right_inv := ⋯, map_add' := ⋯ }
Instances For
The canonical embedding from ⨁ i, A i
to M
where A
is a collection of AddSubmonoid M
indexed by ι
.
When S = Submodule _ M
, this is available as a LinearMap
, DirectSum.coe_linearMap
.
Equations
- DirectSum.coeAddMonoidHom A = DirectSum.toAddMonoid fun (i : ι) => AddSubmonoidClass.subtype (A i)
Instances For
The DirectSum
formed by a collection of additive submonoids (or subgroups, or submodules) of
M
is said to be internal if the canonical map (⨁ i, A i) →+ M
is bijective.
For the alternate statement in terms of independence and spanning, see
DirectSum.subgroup_isInternal_iff_independent_and_supr_eq_top
and
DirectSum.isInternal_submodule_iff_independent_and_iSup_eq_top
.