#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.

Reply via email to