Direct sum #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines the direct sum of abelian groups, indexed by a discrete type.
Notation #
⨁ i, β i
is the n-ary direct sum direct_sum
.
This notation is in the direct_sum
locale, accessible after open_locale direct_sum
.
References #
direct_sum β
is the direct sum of a family of additive commutative monoids β i
.
Note: open_locale direct_sum
will enable the notation ⨁ i, β i
for direct_sum β
.
Equations
- direct_sum ι β = Π₀ (i : ι), β i
Instances for direct_sum
- direct_sum.add_comm_monoid
- direct_sum.inhabited
- direct_sum.has_coe_to_fun
- direct_sum.add_comm_group
- direct_sum.unique
- direct_sum.unique_of_is_empty
- direct_sum.module
- direct_sum.smul_comm_class
- direct_sum.is_scalar_tower
- direct_sum.is_central_scalar
- module.free.direct_sum
- direct_sum.add_comm_group_set_like
Equations
Equations
mk β s x
is the element of ⨁ i, β i
that is zero outside s
and has coefficient x i
for i
in s
.
Equations
- direct_sum.mk β s = {to_fun := dfinsupp.mk s, map_zero' := _, map_add' := _}
of i
is the natural inclusion map from β i
to ⨁ i, β i
.
Equations
- direct_sum.of β i = dfinsupp.single_add_hom β i
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.
to_add_monoid φ
is the natural homomorphism from ⨁ i, β i
to γ
induced by a family φ
of homomorphisms β i → γ
.
Equations
from_add_monoid φ
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
- direct_sum.from_add_monoid = direct_sum.to_add_monoid (λ (i : ι), ⇑add_monoid_hom.comp_hom (direct_sum.of β i))
set_to_set β S T h
is the natural homomorphism ⨁ (i : S), β i → ⨁ (i : T), β i
,
where h : S ⊆ T
.
Equations
- direct_sum.set_to_set β S T H = direct_sum.to_add_monoid (λ (i : ↥S), direct_sum.of (λ (i : subtype T), β ↑i) ⟨↑i, _⟩)
Equations
A direct sum over an empty type is trivial.
The natural equivalence between ⨁ _ : ι, M
and M
when unique ι
.
Equations
- direct_sum.id M ι = {to_fun := ⇑(direct_sum.to_add_monoid (λ (_x : ι), add_monoid_hom.id M)), inv_fun := ⇑(direct_sum.of (λ (_x : ι), M) inhabited.default), left_inv := _, right_inv := _, map_add' := _}
Reindexing terms of a direct sum.
Equations
- direct_sum.equiv_congr_left h = {to_fun := (dfinsupp.equiv_congr_left h).to_fun, inv_fun := (dfinsupp.equiv_congr_left h).inv_fun, left_inv := _, right_inv := _, map_add' := _}
Isomorphism obtained by separating the term of index none
of a direct sum over option ι
.
Equations
The natural map between ⨁ (i : Σ i, α i), δ i.1 i.2
and ⨁ i (j : α i), δ i j
.
Equations
- direct_sum.sigma_curry = {to_fun := dfinsupp.sigma_curry (λ (i : ι) (j : α i), add_zero_class.to_has_zero (δ i j)), map_zero' := _, map_add' := _}
The natural map between ⨁ i (j : α i), δ i j
and Π₀ (i : Σ i, α i), δ i.1 i.2
, inverse of
curry
.
Equations
- direct_sum.sigma_uncurry = {to_fun := dfinsupp.sigma_uncurry (λ (i : ι) (j : α i) (x : (λ (j : α i), δ i j) j), ne.decidable x 0), map_zero' := _, map_add' := _}
The natural map between ⨁ (i : Σ i, α i), δ i.1 i.2
and ⨁ i (j : α i), δ i j
.
Equations
- direct_sum.sigma_curry_equiv = {to_fun := direct_sum.sigma_curry.to_fun, inv_fun := dfinsupp.sigma_curry_equiv.inv_fun, left_inv := _, right_inv := _, map_add' := _}
The canonical embedding from ⨁ i, A i
to M
where A
is a collection of add_submonoid M
indexed by ι
.
When S = submodule _ M
, this is available as a linear_map
, direct_sum.coe_linear_map
.
Equations
- direct_sum.coe_add_monoid_hom A = direct_sum.to_add_monoid (λ (i : ι), add_submonoid_class.subtype (A i))
The direct_sum
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
direct_sum.subgroup_is_internal_iff_independent_and_supr_eq_top
and
direct_sum.is_internal_submodule_iff_independent_and_supr_eq_top
.