#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):

 Replying to [comment:14 tscrim]:
 > Replying to [comment:13 darij]:
 > > Replying to [comment:12 tscrim]:
 > > > I would go with 1. I did not expose it because the representation
 behaves like a module (you better not say something about ducktyping here)
 and it is there only for internal use. You're getting to one of the
 reasons why `TrivialRepresentation` is not a subclass of `Representation`.
 If you really feel that it should be exposed, then I would have `module()`
 return `self` so there is a consistent API. (Unfortunately I don't think
 we have the infrastructure in place to setup the necessary coercions.)
 > >
 > > Wait, what? `TrivialRepresentation` does not inherit from
 `Representation`? This I really don't like. Particularly if you don't
 expose `self._module`, there should be no reason to keep the trivial one
 out of it.
 >
 > Why should it? They are completely different implementations.

 Implementations yes, but the underlying concepts should be of the same
 type. One of the next steps will be a direct sum of two representations,
 for example. You do want to be able to add a regular and a trivial
 representation, I assume?

 > > S3. At some point we will need a way to tell if a given representation
 is left or right. I think this should be a property (not underscored)
 which is a boolean or `None` (for two-sided). Do you agree?
 >
 > If anything, this should be a method, not an (hidden) attribute.
 However, I do agree we need something. Althought AFAIK this is the first
 time we have a left but not necessarily a right module.
 >
 > > S4. In the `_acted_upon_` of `TrivialRepresentation`, does
 `_from_dict(d)` do the right thing when `d == 0` ?
 >
 > This will never happen as `monomial_coefficients` returns a `dict`.
 However, I do see a potential when acting on the zero element. I will
 check/doctest this.

 You multiply all the entries of that `dict` with
 `sum(scalar.coefficients())`. If this sum is 0, then it's suddenly a
 `dict` full of zeroes.
 >
 > (I'm waiting for `7.1.beta1` to come out before I make any changes. You
 know as soon as I bump my Sage to beta0, beta1 will be released...)

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