Dear Sage/Sage-combinat devs,

On Mon, Jan 18, 2010 at 10:40:18AM +0100, Nicolas M. Thiery wrote:
> * #7980: Extract basic support for the "concrete representation of an
>    abstract algebra" relation out of the ncsf patch (Jason?)

This is a concept that we have used much in MuPAD-Combinat, and the
design is pretty clear. On the other hand, we need some good naming
suggestions, which is the purpose of this e-mail.

The general concept is as follow: some (many?) algebraic structures
that we want to implement in Sage admit several concrete
representations. To take a simple example:

The symmetric group S_n:
 - as a group C of permutations in cycle notation
 - as a group P of permutations in list notation
 - as a group M of matrices
 - ...

Computationally, the different representations each have their own
merits, and we want them all, and easy coercions between them. That's
our main source of interest and use of the coercion mechanism.

Now, in practice, it is useful to implement parents not only for the
various concrete representations, but also for the abstract algebraic
structure, which plays several roles, among which:

 - a join parent (we would call it facade parent in MuPAD), whose
   elements are represented in any of the concrete parents.
 - a main entry point for the user.
 - an orchestra conductor for all the coercions, ...

All of this to say that we need to model in Sage this relationship
C  <->  A,  where C is a concrete implementation of an abstract
algebraic structure A. We are looking for good vocabulary:

 - C is a concrete representation of A?
 - C is a model for A?
 - A is an abstract algebraic structure?
        an abstract parent?
        a parent with several models?

In practice, that would be reflected by things like:

 - C.model_for() returns A
 - A.models()    returns C, ...
 - C in the category ModelsFor(A)

Thanks in advance for your feedback!

Cheers,
                                Nicolas
--
Nicolas M. ThiƩry "Isil" <nthi...@users.sf.net>
http://Nicolas.Thiery.name/
-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to