On Fri, Jul 4, 2008 at 2:18 PM, Gabriel Dos Reis wrote:
> Bill Page writes:
>
> | On Fri, Jul 4, 2008 at 7:40 AM, Gabriel Dos Reis wrote:
> | > Bill Page writes:
> | >
> | > | On Thu, Jul 3, 2008 at 12:18 PM, Gabriel Dos Reis wrote:
> | >
> | > | There is a related problem with the definition of the domain
> | > | 'Category' - is it a domain or a category?
> | >
> | > Category is conceptually a category, just like Domain is conceptually
> | > a category.
> |
> | What do you mean by "conceptually a category"? As far as I can see
> | Domain is a domain - not conceptually a category at all.
>
> Why?
>

Simply because I can write:

  x:Domain := Domain

The only category I can see associated with Domain is called Type in
OpenAxiom. By "conceptually a category" do you just mean that Domain
is conceptually the same as Type?

> ...
> |
> | To me the phrase: "... the *domain* Type" (my emphasis **) says
> | specifically that Type is a domain. How else can I understand it?
>
> OK, let me rephrase my question.   We are trying to understanding
> why `Type' *must* be a domian (your position).

No. I am only pointing out that Type is a domain in Aldor. I did not
claim that this necessary. My claim however *is* that Domain in
OpenAxiom plays the same role as Type in Aldor and that in OpenAxiom
Domain is a domain.

I admit that in OpenAxiom Type might usefully be defined as a
category. In that case it does not make sense to write

   x:Type := ...

but that is ok because all we need is

   x:Domain := ...

| > | I think the way out of this mess was correctly identified by Stephen
| > | Watt in the description of Aldor when he wrote: (ibid.):
| > |
| > | "Each domain is itself a value belonging to the domain Type. Domains
| > | may additionally belong to some number of subtypes (of Type), known
| > | as categories."
> ...
> Nothing in the semantics specification (the quote above without the
> first sentence) requires Type to be a domain.
>

I agree.

> ...
> Could you supply an executable semantics for the plain English
> quote?
>

I am not clear on exactly what you mean by "executable semantics", but
to do that probably requires a definition of subtype. I am sure you
are aware that the details (for Aldor) are provided in the Aldor Users
Guide, but here all we need is an understanding of categories as
forming a lattice (complete partial order) or inclusion relation given
by 'Join' and 'with', having Type as it's least element. For example
compiling:

   X():Category == Join(Y,Z)

and

  A():X == add ...

defines A as belonging to X, Y, Z and Type.

> ...
> |
> | > The decision to make Type a domain is a separate one.
> |
> | If I want to be able to write:
> |
> | x:Type := ...
> |
> | then it seems very clear that Type must be a domain.
>
> If it is so very clear to you, then you must be able to explain
> the reasons so very simply.
>

The only values in Axiom (and Aldor) are objects of some domain.

> Why is it so fundamental that Type must be a domain, and that
> reason does not carry to Ring? After all, why can't one write
>
>    y: Ring := Integer
>
> ?

In Aldor that is ok. The fact that Type is a domain does carry over to Ring.

In OpenAxiom Type is a category so that status of Ring as a type is
less clear. However in a separate email I did make a proposal for what
it might stand for in this context.

> ...
> So, if you could write
>
>    x: Ring := ...
>
> Would Ring cease to be a category?
>

No.

> ...

Regards,
Bill Page.

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
open-axiom-devel mailing list
open-axiom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

Reply via email to