On Tue, Aug 5, 2008 at 6:47 PM, Bill Page <[EMAIL PROTECTED]> wrote: >>> On the other hand, it seems to me that the issue is not >>> the name of the operation but rather the category to which >>> the operation belongs. >> >> It has lot to do with the name. Most people expect "<" to be somehow >> related to ">=", and to denote total ordering -- and AXIOM certainly does >> that. > > Shall we take a vote? ;-)
Everybody is free to do whatever he wants ;-) > Since OpenAxiom is supposed to be a > "mathematically" system I think it is sufficient that it conform to > common mathematical usage. No argument there. OpenAxiom is a *computational* mathematical system that needs to be useful *today*. At end of the day a computer program needs to be written and translated -- all business abstract maths don't care about. I'm all for beautiful solutions when they are effective. > Certainly the relationship between partial > orders and total ordering is well understood and essential to > mathematics. > > http://en.wikipedia.org/wiki/Totally_ordered_set Thanks for the lecture; but that fails to address the programming problem we face here. > >> >>> 'SetAggregate' does have an *attribute* named >>> 'partiallyOrderedSet'. I do not understand why this is an attribute >>> and not a category with specific exports. >> >> I don't think that is the fundamental problem here. Whether it is >> a category or attribute does not change the problem that "<" has >> already a well defined meaning established in the community. >> > > Sure. That just says that defining "s < t returns true if all elements > of set aggregate s are also elements of set aggregate t" (as given in > the source of SetAggregate) is against common usage. A more common > notation might be "s <= t returns true if all elements of set > aggregate s are also elements of set aggregate t", i.e. a partial > ordering given by set inclusion. Still that does not solve the fundamental problem: "<=" as you define above is not a total order. > > http://en.wikipedia.org/wiki/Partial_order > >>> >>> I agree that explicitly exporting '<' from SetAggregate is harmful. >>> Similarly explicitly exporting 'subset?' is also wrong. >> >> Could you elaborate on why the latter is wrong? >> > > Because it is an explicit export of SetAggregrate. Yes, I can read it is an explicit export. My question is why you think that is wrong. > The documentation > says it is defined as: "subset?(u,v) tests if u is a subset of v. > Note: equivalent to reduce(and,{member?(x,v) for x in u},true,false)". > So 'subset?' relation is something that can and should be defined at a > higher level in the category hierarchy, e.g. in HomogeneousAggregate > which already defines 'member?'. So, is it wrong or not generic enough? > >>> It is >>> conventional to use a symbol such as '<=' for partial ordering, >> >> Not in a context where it already means total ordering. >> > > I don't understand. Even in the context when '<=' is defined by the > category 'OrderedSet', it still makes sense to me to refer to '<=' as > a partial ordering. Only if you forget about any other optimization that OrderedSet implies -- which is happening today. If "<=" is just a partial ordering, not not total ordering then those optimizations are wrong. > >>> and I >>> think it would be usefully represented as an export of a category >>> 'PartiallyOrderedSet' that satisfies the axioms: >> >> I believe that is excessive overloading that does not mix well with >> OrderSet. > > A totally ordered set is also a partially ordered set. In what sense > does this not "mix well"? OK, here is a deal: you have a write access to OpenAxiom repo; create a branch; experiment with your suggestions and let us continue this part of the discussion based on that concrete experiment. I believe it is worth doing and the outcome is very instructive. > >> Furthermore there can be simulatenously many operations >> that partially order a given set (think of usual "<" and divisibility on >> integers). In a sense we already know that the above scheme does >> not scale -- see `the monoid problem'. So just putting "<" is a >> separate category is no solution I fear -- unless we also solve the >> monoid problem. >> > > I agree that there is still the monoid problem. This *is* an instance of the monoid problem: That of thinking that all operations that have some abstract properties must be spelled with a given concrete name. > A solution to the > monoid problem would also likely apply to this case but that it is a > separate problem from the subject of your original message. No, it is not a separate problem. It is exactly an instance of the same general problem: I already gave the example of divisibility -- and there are many more. > The monoid > problem does not prevent us from usefully defining 'Monoid' (and > 'AbelianMonoid') now, and it should not prevent us from defining > concepts like 'PartiallyOrderedSet'. Definitely. I just don't see how that solve the present problem. Maybe you can show me by carrying out the idea in a concrete modification of the OpenAxiom algebra that we can all test and comment on? > >> ... >> The syntactical transformations are supposed to optimize some indirect >> calls in some cases, but I think correctness should come first, >> > > I agree. > > Regards, > Bill Page. > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ open-axiom-devel mailing list open-axiom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open-axiom-devel