Conversion between add_monoid_algebra
and homogenous direct_sum
#
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This module provides conversions between add_monoid_algebra
and direct_sum
.
The latter is essentially a dependent version of the former.
Note that since direct_sum.has_mul
combines indices additively, there is no equivalent to
monoid_algebra
.
Main definitions #
add_monoid_algebra.to_direct_sum : add_monoid_algebra M ι → (⨁ i : ι, M)
direct_sum.to_add_monoid_algebra : (⨁ i : ι, M) → add_monoid_algebra M ι
- Bundled equiv versions of the above:
add_monoid_algebra_equiv_direct_sum : add_monoid_algebra M ι ≃ (⨁ i : ι, M)
add_monoid_algebra_add_equiv_direct_sum : add_monoid_algebra M ι ≃+ (⨁ i : ι, M)
add_monoid_algebra_ring_equiv_direct_sum R : add_monoid_algebra M ι ≃+* (⨁ i : ι, M)
add_monoid_algebra_alg_equiv_direct_sum R : add_monoid_algebra A ι ≃ₐ[R] (⨁ i : ι, A)
Theorems #
The defining feature of these operations is that they map finsupp.single
to
direct_sum.of
and vice versa:
as well as preserving arithmetic operations.
For the bundled equivalences, we provide lemmas that they reduce to
add_monoid_algebra.to_direct_sum
:
add_monoid_algebra_add_equiv_direct_sum_apply
add_monoid_algebra_lequiv_direct_sum_apply
add_monoid_algebra_add_equiv_direct_sum_symm_apply
add_monoid_algebra_lequiv_direct_sum_symm_apply
Implementation notes #
This file largely just copies the API of data/finsupp/to_dfinsupp
, and reuses the proofs.
Recall that add_monoid_algebra M ι
is defeq to ι →₀ M
and ⨁ i : ι, M
is defeq to
Π₀ i : ι, M
.
Note that there is no add_monoid_algebra
equivalent to finsupp.single
, so many statements
still involve this definition.
Basic definitions and lemmas #
Interpret a add_monoid_algebra
as a homogenous direct_sum
.
Equations
Interpret a homogenous direct_sum
as a add_monoid_algebra
.
Equations
Lemmas about arithmetic operations #
add_monoid_algebra.to_direct_sum
and direct_sum.to_add_monoid_algebra
together form an
equiv.
Equations
- add_monoid_algebra_equiv_direct_sum = {to_fun := add_monoid_algebra.to_direct_sum _inst_2, inv_fun := direct_sum.to_add_monoid_algebra (λ (m : M), _inst_3 m), left_inv := _, right_inv := _}
The additive version of add_monoid_algebra.to_add_monoid_algebra
. Note that this is
noncomputable
because add_monoid_algebra.has_add
is noncomputable.
Equations
- add_monoid_algebra_add_equiv_direct_sum = {to_fun := add_monoid_algebra.to_direct_sum _inst_2, inv_fun := direct_sum.to_add_monoid_algebra (λ (m : M), _inst_3 m), left_inv := _, right_inv := _, map_add' := _}
The ring version of add_monoid_algebra.to_add_monoid_algebra
. Note that this is
noncomputable
because add_monoid_algebra.has_add
is noncomputable.
Equations
- add_monoid_algebra_ring_equiv_direct_sum = {to_fun := add_monoid_algebra.to_direct_sum _inst_3, inv_fun := direct_sum.to_add_monoid_algebra (λ (m : M), _inst_4 m), left_inv := _, right_inv := _, map_mul' := _, map_add' := _}
The algebra version of add_monoid_algebra.to_add_monoid_algebra
. Note that this is
noncomputable
because add_monoid_algebra.has_add
is noncomputable.
Equations
- add_monoid_algebra_alg_equiv_direct_sum = {to_fun := add_monoid_algebra.to_direct_sum _inst_4, inv_fun := direct_sum.to_add_monoid_algebra (λ (m : A), _inst_6 m), left_inv := _, right_inv := _, map_mul' := _, map_add' := _, commutes' := _}