Bill Page wrote:
> Supoose I say: please consider the domain RomainNumeral. You can use
> 
> )show RomanNumeral
> 
> and discover what it exports. Maybe I would like to "extend" this list
> of exports to include new functions such as 'five', 'ten', 'fifty',
> 'hundred' etc. It seems to me that I should be able to do this without
> looking at the source code for RomanNumeral. This is exactly what you
> *can* do with Aldor's extend. The only reason you cannot do it some
> other way is because you cannot determine exactly the category to
> which RomanNumeral belongs.
> 

I think you misunderstood how Aldor extend works: when you extend D
you effectively change category to which D belong.  In Aldor you
_can_ not change category after it is defined (extend is limited
to ordinary domains).  So in Aldor you can extend D only
because you _can not_ determine exactly the category to which
D belong -- if you have Cat(D) in hand and you extend D than
either Cat(D) will be out of date or you need to also extend
Cat(D).  IMHO either will break a lot in Aldor design.

> The context of the discussion with Stephen was his presentation on
> "Domain, SubDomain, and categories". Stephen defined Domain as the set
> of all domains and Category as the power set of Domain (set of all
> subsets of Domain). In other words a category is a subset of Domain.
> 
> There is one category in Category that corresponds to Domain. In Axiom
> we call this category Type. But in Category we will also find the
> *empty* category (not the same as Type!) which consists of the empty
> set of domains, and we will also find for each domain in Domain a
> corresponding singleton set containing just that domain in Category.
>

I am affraid that this picture is very good to explain ideas, but
can not be taken too literally.  For one it ignores dynamic
behaviour (which is very important for extend).  The second
thing is that to better describe Axiom or Aldor type system we
need to assume that each category is infinite: given category 
C you can always define domain which belongs to this category,
so all categories are non-empty.  You can also define a new category
C1 which adds a signature.  Of course, domain which has (belongs to C1)
is different than domain which meraly belongs to C, but does
not implement this new signature.  Inductively you can define
an infinite sequence of domains which are pairwise different and
all belong to C.

So "singleton" category can not be just one element set.  And
there is no reason to assume that given definitions:

D : CatD == ...

D2 : CatD == ...

D3 : Cat(D) == ...

that D3 will have some special relation to D which does not
hold for D2.  Rather, Cat(D) would just spare you effort needed
to define CatD (of course in presence of parameters defining
CatD may be impossible).

-- 
                              Waldek Hebisch
[EMAIL PROTECTED] 

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/fricas-devel?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to