[Aldor-l] Aldor-Meet

Bill Page bill.page at newsynthesis.org
Tue Nov 20 11:04:15 EST 2007


On 11/20/07, Ralf Hemmecke wrote:
> >> ...
> >> That looks like a bug---Well, it's not, because gave a clear definition
> >> of "Meet".
> >
> > ? I am not sure exactly what you meant to say here except perhaps to
> > repeat that there is no formal definition of Meet. I think however
> > that Oleg's approach is correct.
>
> If we accept Oleg as the authority who defines the language then I
> must agree. I would have guessed exactly the same as Oleg. Would
> you accept me as someone who defines the Aldor language? I don't
> care what the compiler implements, I care about an official specification.
>

In general I would not simply accept any as the "authority". I think
that would lead to the kind of subjective idiosyncrasies that we see
in most other languages. Rather I would very much rather that the
language be based on some commonly accepted theory - the more general
the better (e.g. category theory :-). Then the authority becomes the
much more objective issue of how well a particular interpretation of
some language construct fits with this theory. I think one of the more
remarkable features of Aldor is just how sell Aldor (almost) succeeds
is achieving this ideal state.

> ...
> > It seems to me that specialization is the normal "top down" approach
> > for designing categories and domains in Aldor (and in Axiom), but that
> > generalization based on Meet might also be a useful "bottom-up"
> > approach.
>
> Maybe. "Meet" would allow to create more general categories based on
> existing ones. That would allow to introduce categories in the middle of
> an Aldor category hierarchy. Oh... now I remember that Stephen said
> something in that direction at the 2007 Aldor workshop.
>
> For example, you have Group, SemiGroup, and RingWithOne. Imagine
> now you have a lot of domains that export
>
> SemiGroup with {1: %}
>
> Maybe now you want to introduce a category Monoid with exactly those
> exports. Would you like to say
>
> extend D1: Monoid == add;
> ...
> extend Dn: Monoid == add;
>
> for all the n domains that I mentioned above? Hopefully you don't forget
> one.
>
> If you just would have to say
>
> define Monoid: Category == Meet(Group, RingWithOne);
>
> and all the "has" constructions would work properly, actually now I
> believe they should work as you asked for it initially, i.e.
>
> The program from
>    http://aldor.org/pipermail/aldor-l_aldor.org/2007-November/000815.html
> should return "true" for all the three cases.
>

:-)

What is the correct interpretation of 'define' in this case?

But I do not expect

  D1 has M12 or  D2 has M12

to evaluate to True.

> But now it is even more important that Meet gets a proper definition,
> since without an "extend", D1 would not explicitly have been declared to
> be of category "Monoid" and so "D1 has Monoid" should return false
> according to the AUG.pdf p. 81:
>
> Quote:
>    Note that Aldor is constructed so that a domain is only a member
>    of a named category if it explicitly inherits from the category---not
>    if it merely exports the same collection of (explicit) declarations.
>

I agree.

Regards,
Bill Page.




More information about the Aldor-l mailing list