#18758: Allow actions of a parent on itself
-------------------------------------+------------------------
       Reporter:  SimonKing          |        Owner:
           Type:  enhancement        |       Status:  new
       Priority:  major              |    Milestone:  sage-6.8
      Component:  coercion           |   Resolution:
       Keywords:  actions on itself  |    Merged in:
        Authors:                     |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
   Dependencies:  #18756             |     Stopgaps:
-------------------------------------+------------------------

Comment (by SimonKing):

 I had a look at sage.combinat, and it turns out that the situation is not
 sooooo bad as I thought.
 1. `Permutation` needs to be sanitised. It inherits from `Element`. Since
 here I plan to introduce a default `Element.__mul__` using coercion model,
 `Permutation.__mul__` needs to be removed, and instead we need an action.
 It would be easy to implement, and I bet it is faster.
 2. `Word` does not even inherit from `Element`, but it mimics the element-
 parent scheme (by providing a cdef `_parent` attribute and a `parent()`
 method). It should be possible to determine the result of multiplication
 by looking at the involved parents. Hence:
   - It would be a good idea to implement something like pushouts for
 families of words. Thus:
   - It would make sense to have a `WordFunctor` construction functor from
 `Sets()` to an appropriate category. The appropriate category could be
 `Monoids()` in the case of finite or infinite words, but could be `Sets()`
 in the case of "words avoiding 12" and those things (i.e., the product of
 two pattern avoiding words is not necessarily pattern avoiding).

   Then, one could finally take advantage of Sage's coercion framework for
 words.

 I suggest to sanitise Permutation here, but keep Word for a later ticket.

--
Ticket URL: <http://trac.sagemath.org/ticket/18758#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