On Wed, Jul 9, 2008 at 7:19 AM, Gabriel Dos Reis wrote: > Bill Page writes: > | In a previous email you said you thought SubDomain was "half-baked". > > Indeed. > > | If you meant this in the sense of "not fully implemented" then I agree > > Not just fully implemented, but also not fully specified, and in fact > the semantics seems fuzzy (at best) once one starts using it. For > example, the SubDomain constructor takes two arguments: The > parent domain and the predicate that test whether to consider an > object a member of the subdomain. Yet, you have use it with only > one argument without specficifying what that would mean. >
Are we talking about the same "SubDomain constructor"? The one to which I was referring is produced by Axiom and FriCAS when you create a value referring to a category. E.g. (1) -> c:=INS (1) IntegerNumberSystem Type: SubDomain Domain As far as I can see 'SubDomain' here is is a category constructor that takes only one argument. There is another "subdomain constructor" that one can find in the source code for PositiveInteger and NonNegativeInteger: PositiveInteger: Join(OrderedAbelianSemiGroup,Monoid) with gcd: (%,%) -> % ++ gcd(a,b) computes the greatest common divisor of two ++ positive integers \spad{a} and b. commutative("*") ++ commutative("*") means multiplication is commutative : x*y = y*x == SubDomain(NonNegativeInteger,#1 > 0) add This construction presumably returns a domain. I think these are related, as I speculated in my previous email, but they are certainly not the same. > ... > | I argued that Type is just Domain as a category and the OpenAxiom > | interpret already returns: > | > | (1) -> Domain has Type > | > | (1) true > | Type: Boolean > > I don't think this is evidence that Type is just Domain. > > In fact we have been through the argument that Type is a domain > before and I do not remember we reached a definite conclusion. I am sorry to be confusing but I did not mean to imply that Type is just domain. It is very clear that in all versions of Axiom Type is a category. Would you say that (2) and (3) below are identical? (2) -> universe()$Set(IntegerMod 3) (2) {1,2,0} Type: Set IntegerMod 3 (3) -> IntegerMod 3 (3) IntegerMod 3 Type: Domain Since SubDomain is a power set constructor like Set, 'Type' is a category like 'universe()$SubDomain(Domain)' just as {1,2,0} is 'IntegerMod 3' as a set. > ... > | So having Type extend SetCategory and define Domain and Category > | in terms of Type seemed to make sense. However I also wanted Type > | to be the top of the category hierarchy (supremum of the lattice) so > | I guess this is half-baked (ill-conceived). All we really need is > > Well, I do not understand why everything T satisfies > > T has Type > > should have an equality. That is my point. > You are right. What I wrote in my previous email about extending Type was incorrect. 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