On Tue, Jul 8, 2008 at 4:15 PM, Bill Page <[EMAIL PROTECTED]> wrote:
> On Tue, Jul 8, 2008 at 3:06 PM, Gabriel Dos Reis wrote:
>>
>> A /category/ is a collection of specifications.  A /domain/ is a
>> collection of implementations.  An /object/ is any computational
>> values in an OpenAxiom program.  An object has a representation
>> given by a domain.  An object /o/ is said to have type 'd' if 'd'
>> implements the reprsentation for the object /o/.
>>
>> A category constructor is a category-valued function, defined with
>> the term 'Category' as its return type.
>> A domain constructor is a domain-valued function, defined with a
>> category as its return type.
>>
>
> All this sounds great to me! :-)
>
>> Category contructors and domain constructors may be parameterized
>> by domains and categories.
>
> In Axiom category and domain constructors can be parameterized by
> values passed as with any other function. These include domains and
> categories as values. E.g.
>
>  DirectProductCategory(3,Float)
>
> I assume that you did not intend to restrict this use in OpenAxiom.

yes; I left the `parameterized by value' bit out for conciseness, not because
I want to exclude DirectProductCategory, because I thought most of the
recent emails seemed to be wondering about the essence of `category' and
`domain'.  The value parameterization bit is no restriction and also
not essential to get to the essence of `categories' and `domains', IMO.

>
>> Furthermore, domains and categories have runtime representations,
>> e.g. they are reflected as objects in OpenAxiom.  In particular, domains
>> objects have type 'Domain', and category objects have type 'Category'.
>> And 'Domain' and 'Category' are indeed domains, because they
>> implement specifications and provide object representations.
>>
>
> Agreed.
>
>>
>> I did not discuss the notion of /package/, as it is almost like
>> a domain -- it implements specifications -- except that it does not
>> provide object representation.
>>
>
> Right. Thanks Gaby.
>
> What do propose for Type? Do we ever need to be able to write?
>
>  x:Type := Integer
>
> or define a constructor that takes parameters from Type?

>From the `first class value' principle point of view, if you can write

  f(T: Type): Ring  == ...

then one should be able to write

   x: Type := ...

> If so does the
> domain:
>
>  Union(Domain,Category)
>
> make sense? Is it too awkward?

It is a domain that can hold either a domain object or
a category object.

-- Gaby

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