On Thu, Jul 30, 2009 at 06:35:50PM +0200, Franco Saliola wrote:
> I'm forwarding your email to sage-combinat-devel since that group is
> going to eventually want to create modules over finite groups. They
> may even have some experimental code already.
Oops, sorry. With the summer vacations I let this mail to rot away.
We definitely are interested in any progress around representation
theory, even though our topics are more around finite dimensional
algebras and semigroups (but see SymmetricGroupRepresentation by Franco).
Depending on the point of view, there can be several designs. All
depends on what object the focus is:
- The G-module and its elements: the main operations are on elements
x of the G-module, and they are aware of G, so that one could, for
example, do something like::
sage: M = SymmetricGroup(5).irreducible_module([5,3])
sage: x = M(...)
sage: x.orbit()
- Representations and operations on them::
sage: G = SymmetricGroup(5)
sage: rho = G.irreducible_module([5,3])
sage: rho.module()
Vector space of dimension ...
sage: rho.character()
s[5,3]
sage: rho(G.one())
An endomorphism of Vector space of dimension ...
sage: rho.parent()
Representations of SymmetrictGroup(5)
sage: direct_sum([rho, rho1])
...
- (virtual) characters and operations on them, category of
representations, ...
See the related WeylCharacterRing
- G, as a group of operators: the main operation is to manipulate
elements of the G as operators acting on the G-module.
I personally like the second option, for which I had some experimental
code (in a pretty specific context) in MuPAD-Combinat. But again, that
all depends on the context.
> ---------- Forwarded message ----------
> From: VictorMiller <[email protected]>
> Date: Tue, Jul 28, 2009 at 5:04 PM
> Subject: [sage-devel] Developing new classes
> To: sage-devel <[email protected]>
>
> I'm in the process of trying to write a class for G-Modules, where G
> is a finite group (in particular, I'm interested in Galois modules).
> As far as I can see, this doesn't seem to exist in SAGE. In the
> process of doing this I've been reading over code, and noticed that
> there seems to be a certain style of creating new classes to implement
> algebraic constructs. I've noticed that there seems to be liberal
> use of what are called "Factory Functions". Is there some sort of
> write up about the methods that are used to build new classes?
You probably also want to look up UniqueRepresentation? Both are
essentially technical means when one wants to ensure that a given
algebraic structure is constructed only once:
sage: H = FreeModule(QQ, 3)
sage: G = FreeModule(QQ, 3)
sage: G is H
True
You might be interested as well in:
http://combinat.sagemath.org/doc/reference/sage/categories/primer.html
Best regards,
Nicolas
--
Nicolas M. Thiéry "Isil" <[email protected]>
http://Nicolas.Thiery.name/
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send an email to [email protected]
To unsubscribe from this group, send an email to
[email protected]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---