#18223: new categories for cartesian products with orders
-------------------------------------+-------------------------------------
       Reporter:  dkrenn             |        Owner:
           Type:  enhancement        |       Status:  needs_work
       Priority:  major              |    Milestone:  sage-6.7
      Component:  categories         |   Resolution:
       Keywords:  sd67               |    Merged in:
        Authors:                     |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  public/ticket/18223                |  b924b94bc2e1aa12021cc70b3a919532aa1e350a
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------
Changes (by vdelecroix):

 * status:  needs_review => needs_work


Comment:

 Hello Daniel,

 1. There are tons of product orders that you can define on a cartesian
 product of posets. You want to write a category for each of them? It is
 not at all usable for people that wants to build a custom product. The aim
 of categories is to factorize code not to expand the amount of work. I
 think that you should seriously develop another strategy for providing an
 order to a product of posets.

 2. Moreover, this looks very unnatural to me:
 {{{
 sage: P = Poset((srange(10), lambda left, right: left <= right))
 sage: Q = cartesian_product((P, P, P),
 ....: extra_category=Posets().CompareLexCartesianProduct())
 }}}
   IMHO, something like the following would be better
 {{{
 sage: posets.cartesian_product((P,P,P), order = my_order)
 }}}
   where order could also be a custom function or a string like 'lex',
 'product', ... this second remark is just from the user point of view.

 3. If there is one product, it should be the cartesian product (or the
 coordinate wise product) which is the categorical one (when morphisms are
 the monotone functions). Though as there is a lack of definitions, I am
 not sure that `Hom` between two posets are the monotone functions. Would
 be interesting to settle that.

 4. Sided remark: this will not work with cython Element classes (as there
 is no element_class)
 {{{
 self.element_class.__le__ = \
 lambda left, right: left.parent().le(left, right)
 }}}

 Vincent

--
Ticket URL: <http://trac.sagemath.org/ticket/18223#comment:9>
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/d/optout.

Reply via email to