On Tue, Aug 5, 2008 at 8:42 PM, Gabriel Dos Reis wrote:
> ...
> Again, my problem is not that I do not understand what a partially
> ordered set is -- I guess you can give me credit for that [I know I'd
> assume that anybody contributing to this discuss understands
> those basic notions until proven otherwise :-)]
>

Personally as you know, I do give you a lot of *credit*. This is an
email-based discussion - most normal cues from a face to face meeting
are missing. In my experience it is not safe to assume anything about
the people potentially contributing to the discussion - even it that
means maybe offending someone by making what to them might seem like
unnecessary definitions and references. By making such references it
is definitely not my intention to suggest any deficiency on anyone's
part.

> The problem is that even if you define a separate category named
> PartiallyOrderetSet that exports "<" and the likes, that still does not
> solve a fundamental problem: That many partial orderings may exist
> on the same domain, and if we stipulate that any partial ordering must
> be spelled "<", then we have an impossible situation:  This is exactly
> an instance of the general monoid problem.  This is why I view this
> solution as abstractly attractive but programmatically ineffective --
> unless the monoid problem is solved.
>

Ok. What do you think of this solution (passing symbols) that I have
been discussing with Ralf?

http://axiom-wiki.newsynthesis.org/SandBoxAbelianDuck

)abbrev category ASSOC Associative
++ m(m(a,b),c) = m(a,m(b,c))
Associative(m:Symbol):Category == with
  m:(%,%) -> %  ++ multiplication

---------

where the compiler does already replace 'm' with the symbol passed as
an argument. The problem with this approach actually occurs at a later
stage in the compilation where the parameter occurs to the right of
the ==. E.g.

)abbrev category ID Identity
++ m(u,a)=a and m(a,u)=a
Identity(u:Symbol,m:Symbol):Category == Commutative(m) with
       u: () -> %  ++ unit

-------

Somewhere else we get the complaint:

>> System error:
   |Identity;| [or a callee] requires more than one argument.

--------

Is the cause clear to you?

I recall Stephen Watt's comment during the recent workshop that they
(meaning the ScratchPad project I presume) tried to make this sort of
solution work but abandoned it for reasons which he did not elaborate.
Do you have some ideas about what these reasons might have been?

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