[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] species project, was: (Possible) reasons Axiom didn't

From: Martin Rubey
Subject: [Axiom-developer] species project, was: (Possible) reasons Axiom didn't appeal to SoC coders...
Date: 10 Apr 2007 23:40:34 +0200
User-agent: 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

        macro {
                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

and maybe

* 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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]