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

Reply via email to