Open
Description
Algebra.Construct.DirectProduct
and Algebra.Module.Construct.DirectProduct
define some objects which are the binary products of the appropriate algebras, which are moreover in some case also biproducts (products and coproducts together).
This is fine as far as it goes, but does not extend to I
-ary products and sums of (at least) modules (sums have only finitely-many non-zero components, whereas products can have arbitrary I
-ary functions in the carrier)
Analogously to #1906 / #1902 , suggest a refactor to put things 'in the right place':
- define
Product
to introduce all the product algebras; - define
Sum
(orCoproduct
) to introduce the coproducts; - re-export those which are biproduct objects in
DirectProduct
; - consider deprecating that module in favour of
Biproduct
; - ADDED: Nagata's "idealization of a module" construction #2244 makes explicit the left-/right injections (homomorphisms!) from the components of a binary direct sum; so these should be added as part of the construction; as should the corresponding projections for (binary) direct products... together with the injection/projection relations in the case of biproducts...
It seems easiest perhaps to begin by localising things first in Algebra.Module.Construct.*
as a prototype for the the larger task in Algebra.Construct.*