Conversion between AddMonoidAlgebra
and homogeneous DirectSum
#
This module provides conversions between AddMonoidAlgebra
and DirectSum
.
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
MonoidAlgebra
.
Main definitions #
AddMonoidAlgebra.toDirectSum : AddMonoidAlgebra M ι → (⨁ i : ι, M)
DirectSum.toAddMonoidAlgebra : (⨁ i : ι, M) → AddMonoidAlgebra M ι
- Bundled equiv versions of the above:
addMonoidAlgebraEquivDirectSum : AddMonoidAlgebra M ι ≃ (⨁ i : ι, M)
addMonoidAlgebraAddEquivDirectSum : AddMonoidAlgebra M ι ≃+ (⨁ i : ι, M)
addMonoidAlgebraRingEquivDirectSum R : AddMonoidAlgebra M ι ≃+* (⨁ i : ι, M)
addMonoidAlgebraAlgEquivDirectSum R : AddMonoidAlgebra A ι ≃ₐ[R] (⨁ i : ι, A)
Theorems #
The defining feature of these operations is that they map Finsupp.single
to
DirectSum.of
and vice versa:
as well as preserving arithmetic operations.
For the bundled equivalences, we provide lemmas that they reduce to
AddMonoidAlgebra.toDirectSum
:
addMonoidAlgebraAddEquivDirectSum_apply
add_monoid_algebra_lequiv_direct_sum_apply
addMonoidAlgebraAddEquivDirectSum_symm_apply
add_monoid_algebra_lequiv_direct_sum_symm_apply
Implementation notes #
This file largely just copies the API of Mathlib/Data/Finsupp/ToDFinsupp.lean
, and reuses the
proofs. Recall that AddMonoidAlgebra M ι
is defeq to ι →₀ M
and ⨁ i : ι, M
is defeq to
Π₀ i : ι, M
.
Note that there is no AddMonoidAlgebra
equivalent to Finsupp.single
, so many statements
still involve this definition.
Basic definitions and lemmas #
Interpret an AddMonoidAlgebra
as a homogeneous DirectSum
.
Equations
- f.toDirectSum = Finsupp.toDFinsupp f
Instances For
Interpret a homogeneous DirectSum
as an AddMonoidAlgebra
.
Equations
- f.toAddMonoidAlgebra = DFinsupp.toFinsupp f
Instances For
Lemmas about arithmetic operations #
AddMonoidAlgebra.toDirectSum
and DirectSum.toAddMonoidAlgebra
together form an
equiv.
Equations
- addMonoidAlgebraEquivDirectSum = { toFun := AddMonoidAlgebra.toDirectSum, invFun := DirectSum.toAddMonoidAlgebra, left_inv := ⋯, right_inv := ⋯ }
Instances For
The additive version of AddMonoidAlgebra.addMonoidAlgebraEquivDirectSum
.
Equations
- addMonoidAlgebraAddEquivDirectSum = { toFun := AddMonoidAlgebra.toDirectSum, invFun := DirectSum.toAddMonoidAlgebra, left_inv := ⋯, right_inv := ⋯, map_add' := ⋯ }
Instances For
The ring version of AddMonoidAlgebra.addMonoidAlgebraEquivDirectSum
.
Equations
- addMonoidAlgebraRingEquivDirectSum = { toFun := AddMonoidAlgebra.toDirectSum, invFun := DirectSum.toAddMonoidAlgebra, left_inv := ⋯, right_inv := ⋯, map_mul' := ⋯, map_add' := ⋯ }
Instances For
The algebra version of AddMonoidAlgebra.addMonoidAlgebraEquivDirectSum
.
Equations
- One or more equations did not get rendered due to their size.