On Sat, Mar 26, 2011 at 03:28:49AM -0700, Simon King wrote: > I guess that F.basis() should have some index set. Here, it seems > natural to me to choose M=FreeMonoid(3,['x','y','z']): If m is in M > then F.basis()[m] returns the corresponding element of F. > > Is that the only requirement to F.basis()?
And it should model the basis of F; in particular here, we might want to do things like: for b in F.basis(): ... The best is to implement ``basis`` using a Family, as is done in CombinatorialFreeModule. In fact, we should probably lift this definition to ModulesWithBasis, possibly adding a method F.basis_keys() to encapsulate the current ``_basis_keys`` attribute of CombinatorialFreeModule. > Concerning compatibility: Rather than indexing the basis with the > elements of M, one could index it by the words in the alphabet > 'x','y','z'. Or better: the elements of the FreeMonoid should really be words! > Is there a protocol for doing conversion by changing the index set, > yet? Not yet. > Such conversions could indeed facilitate consistency between > different implementations of "the same" algebra. Indeed! Cheers, 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-devel@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.