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