Dear Andrew and Nicolas,

Nicolas--thanks for you comments! I'm glad to hear that the basic design
I had in mind isn't totally crazy. :)

Andrew, thanks for agreeing to review!  I will try to work on this in
the next few weeks.  Please add yourself to the cc of trac ticket #9265,
and I'll post whatever progress I make there.

>  Is there any documentation written
> about how all of this is about to work?

I don't think there is any completely comprehensive documentation on
categories. Doing sage.categories.primer?  will get you started, but all
I know how to do after that is look at examples. (Of which there are
some very good ones!)

Cheers,
Jason


On 09/02/2010 09:33 AM, Andrew Mathas wrote:
> Dear Nicolas and Jason,
> 
> I am happy to be the reviewer. Is there any documentation written
> about how all of this is about to work? I have looked a little for it
> without success. My impression is that the general structure is very
> well thought out but without having Nicolas or Florent sitting next to
> you it is hard to learn what the intended design is!
> 
> Andrew
> 
> On Sep 1, 2:53 am, "Nicolas M. Thiery" <nicolas.thi...@u-psud.fr>
> wrote:
>>         Hi Jason!
>>
>> For once, I am trying hard to procrastinate on the Sage-Combinat
>> e-mails in order to focus on finishing our paper with Florent and
>> Anne, instead of the converse; hence my slow answer.
>>
>> Thanks for your long post! It sounds all fine to me. I'll just insert
>> a couple micro comments below. I hope someone goes on and implements
>> this! It would be great if you could do with Andrew as reviewer (or
>> the converse, or with whatever pair programming scheme fits you).
>>
>> On Thu, Aug 19, 2010 at 12:11:47PM -0400, Jason Bandlow wrote:
>>> The 'metaclass' trick is so that both of these will work, and the
>>> parents will be set appropriately.  Anyway, here is what I roughly think
>>> the element classes should look.
>>
>> And I should mention that the "metaclass trick" is nothing but a
>> syntactic sugar so that one can use the same name Tableau for both:
>>
>>  - the function used to create a tableau
>>  - the base class for all tableaux.
>>
>> Currently in Sage, those two gadgets are usually distinct (think
>> Partition/Partition_class which makes it inconvenient for the user to
>> access Partition_class, say for an isinstance test.
>>
>>> class Tableaux(UniqueRepresentation, Parent):
>>> ...
>>> class SemistandardTableaux(UR, Parent, Tableaux): # similar
>>> class StandardTableaux(UR, Parent, SemistandardTableaux): # similar
>>
>> No need to specify again UR and Parent; those are inherited through
>> Tableaux.
>>
>>> Finally we have the specific parent classes.  I think they should look
>>> roughly as follows.
>>
>>> ****  The parent classes ****
>>
>>> class Tableaux_all(Tableaux):
>>>   def __init__(self):
>>>     super(Tableaux_all, self).__init__()
>>>       # I don't know a good category, since general tableaux (which
>>>       # allow, for example, real-number entries) are not enumerable.
>>
>> I guess Sets() is the best we can do.
>>
>>> class SemistandardTableaux_all(DisjointUnionEnumeratedSets,
>>>                   SemistandardTableaux):
>>
>>>   def __init__(self):
>>>     DisjointUnionEnumeratedSets.__init__(
>>>             self, Family(NonNegativeIntegers(),
>>>             SemistandardTableaux_size),
>>>             facade=True, keepkey = False)
>>>      # Note that I'm not clear on what facade and keepkey do.
>>>      # They may not be necessary or advisable.
>>
>>  * With keekkey = True, the elements of the disjoint union would be of
>>    the form (5, Partition([3,2])). That's only useful when one wants
>>    to construct the disjoint union of a collection of sets which are
>>    not originally disjoint (e.g. building n copies of a given set).
>>
>>  * facade = True/False controls whether, for x in
>>    SemiStandardTableaux(), x.parent() is SemiStandardTableaux() or
>>    SemiStandardTableaux(shape=...)
>>
>>> class SemistandardTableaux_size(SemistandardTableaux):
>>
>>>   def __init__(self, size):
>>>     super(SemistandardTableaux_size, self).__init__(
>>>               category = InfiniteFiniteEnumeratedSets())
>>
>> Interesting category :-) But yes, the category should be set to one or
>> the other depending on what makes sense.
>>
>>                                 Nicolas
>> --
>> Nicolas M. Thi ry "Isil" <nthi...@users.sf.net>http://Nicolas.Thiery.name/
> 


-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To post to this group, send email to sage-combinat-de...@googlegroups.com.
To unsubscribe from this group, send email to 
sage-combinat-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sage-combinat-devel?hl=en.

Reply via email to