#19613: Implement basic representations of semigroups
-------------------------------------+-------------------------------------
       Reporter:  tscrim             |        Owner:  sage-combinat
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-7.1
      Component:  group theory       |   Resolution:
       Keywords:  representation,    |    Merged in:
  semigroups,                        |    Reviewers:
        Authors:  Travis Scrimshaw   |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:                     |  38529351ae5581559a6a33a6fc6fe825b974ef81
  public/representations/basic_implementation-19613|     Stopgaps:
   Dependencies:                     |
-------------------------------------+-------------------------------------

Comment (by darij):

 I've reviewed the ticket up to `TrivialRepresentation`. However, exposing
 `self._module` the way I've done it is incompatible with your
 implementation of `TrivialRepresentation`, and this is a design question I
 feel is in need of discussion. What do you think is the right way?

 1. Unexpose `self._module`, since any method that uses linear algebra on
 `self._module` can just as well use it on `self`.

 2. Set `self._module = self` for a `TrivialRepresentation`.

 3. Implement `TrivialRepresentation` using the general `Representation`
 constructor.

 I don't see anything wrong with either of these options, but I am not the
 one to judge. A caveat with 1 is that coders need to be dissuaded from
 using `self._module` in their code (and this is a tricky thing to do,
 because not everyone will have a `TrivialRepresentation` in their
 doctests). Option 2 might incur endless loops or unwanted memory
 persistence, but I don't know. Option 3 feels like overkill, but it's the
 most straightforward thing.

 Speaking of endless loops, do you have an idea why this gives one?
 {{{
 sage: G = groups.permutation.Dihedral(4)
 sage: R = G.regular_representation(left=False)
 sage: x = R.an_element()
 sage: x*x
 }}}

--
Ticket URL: <http://trac.sagemath.org/ticket/19613#comment:11>
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 https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to