#10963: More functorial constructions
-------------------------------------+-------------------------------------
Reporter: nthiery | Owner: stumpc5
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-6.1
Component: categories | Resolution:
Keywords: days54 | Merged in:
Authors: Nicolas M. Thiéry | Reviewers: Simon King, Frédéric
Report Upstream: N/A | Chapoton
Branch: | Work issues:
public/ticket/10963 | Commit:
Dependencies: #11224, #8327, | eb7b486c6fecac296052f980788e15e2ad1b59e4
#10193, #12895, #14516, #14722, | Stopgaps:
#13589, #14471, #15069, #15094, |
#11688, #13394, #15150, #15506 |
-------------------------------------+-------------------------------------
Comment (by nthiery):
Replying to [comment:450 pbruin]:
> The existing `summand_*` methods I could find are
> {{{
> CartesianProduct.summand_projection()
> Sets.CartesianProducts.ParentMethods.summand_projection()
> Sets.CartesianProducts.ElementMethods.summand_projection()
> Sets.CartesianProducts.ElementMethods.summand_split()
> CombinatorialFreeModule_CartesianProduct.summand_embedding()
> CombinatorialFreeModule_CartesianProduct.summand_projection()
> }}}
> Maybe the quickest solution is to insert better-named aliases for these,
rename the method `summands()` introduced here, and later deprecate
`summand_projection()` and `summand_split()` in a different ticket.
>
> My first reflex would be to rename `summand_projection()` to
`projection()` and `summand_split()` to `tuple()`.
If you believe this is urgent enough to belong to #10963, then please
go ahead, and I'll review it.
> If this is too conflict-prone, maybe using the prefix `cartesian_`
suggested by Simon would be a solution?
Yes, we definitely want long explicit names to avoid conflicts.
> For products of modules (the last two methods in the above list),
calling the components "summands" is OK if and only if there are only
finitely many summands/factors; in that case the product and sum coincide,
since modules form an additive category.
Yup. CartesianProducts only covers finite cartesian products / finite
sums, so that's ok. Hmm, this was apparently not spelled out
explicitly, but all the code makes this assumption. I just fixed that.
> I'm confused; isn't a Cartesian product of monoids just the Cartesian
product of the underlying sets, with the obvious monoid structure?
Yes!
> Or do you mean that a generic monoid will have a `factors()` method that
does something unrelated?
To raise any confusion: I mean that if you construct a monoid M as a
cartesian product of other monoids, you would get a `M.factors()`
method which would have nothing to do with the concept of
factorization in the monoid M.
Cheers,
Nicolas
--
Ticket URL: <http://trac.sagemath.org/ticket/10963#comment:465>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.