[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] species project, was: (Possible) reasons Axiom didn't
[Axiom-developer] species project, was: (Possible) reasons Axiom didn't appeal to SoC coders...
10 Apr 2007 23:40:34 +0200
Gnus/5.09 (Gnus v5.9.0) Emacs/21.4
"Bill Page" <address@hidden> writes:
> > * a free Aldor, or, since this is quite unlikely to happen,
> I still think it is possible. Please keep up the pressure however you
> can. Most recently (two weeks ago) it was publicly promised by Steven Watt
> that there would be some news within a week. But we are still waiting ...
well, the trouble really is: in what sense do you expect aldor to be open
source? would you be happy if it was open source but without granting the right
for redistribution? I expect something of this sort. And, although I believe
that this would still be great, I also believe that in this case it would be
better to have a free implementation of the Aldor language, too, even if it
implements only a subset and is, say, much slower.
This model works very well in the Lisp world, and it would prevent another
MuPAD catastrophy from happening...
> I think it would be great if you and other members of the "Species project"
> could find a way to make your work more visible (and therefore more
> interesting) to others.
There are two developers: Ralf and me. We do have at least two advisors:
Nicolas Thiery for maths and design and Christian Aistleitner for Aldor.
> I still do not completely understand the objectives and what has been
> accomplished so far.
We implemented Andre Joyal's theory of "Combinatorial Species", as developed by
Francois Bergeron, Gilbert Labelle and Pierre Leroux
in a *very* mathematical manner. In one sentence: a species is a collection of
labelled objects, closed under relabelling.
I.e., to define binary trees (the labels are on the leaves) they write:
B = X + B*B
and we write
CS == CombinatorialSpecies;
X == SingletonSpecies;
B(L: LabelType): CS L == Plus(X, Times(B, B))(L) add;
I hope, you see the similarity. To define forests of binary trees we continue
F(L: LabelType): CS L == Compose(SetSpecies, B)(L) add;
So far we can
* generate exhaustively the structures - and also use them, i.e., for example,
write a function that computes the height of a given tree.
* experimentally, generate exhaustively the isomorphismtypes of the structures.
For example, we can generate all set partitions, but also all integer
* compute the generating function (in the sense of a lazy stream) for the
structures, the isomorphismtypes, but also a formal power series that
generalises these two generating functions, namely, the cycle index series.
Our next goals are
* extend to multisorted species, i.e., species where the labels are structured
according to colour
* investigate vectorial species, i.e., functors from the category of finite
sets into the category of finite dimensional vector spaces
* investigate whether we can compute the molecular expansion of a species