"Bill Page" <[EMAIL PROTECTED]> writes: | 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.
Yes, I've done lot of technical work by email in larger forums; it has almost always worked well to assume a minimum of `domain knowledge' from the other end of the communication link -- until proven otherwise (and if the minimum domain knowledge is missing, that usually shows up very quickly). Unless, of course, we are in typical `teacher/student' setting (which is not the case here); but even there you get good results by assuming a minimum knowledge :-). That helps quikcly get to the meat of the problems, and possibly solutions; that also saves from many distractions :-) | > 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 I think I already offered my opinion about this when we were in Hagenberg. My problem with this is that it associate the associative property with a symbol, not an operation. That is a problem because an operation is not just an symbol. An operation is described by a name, a domain of computation (or package) and its signature. Otherwise, one gets into the same trap as the M&M who as able to evaluate M * N - N * M to *integer* 0, no matter what M and N might be. I believe I already sketched a solution that I'm working on (I hoped Yixin would pick it up, but that is not coming). It realies on the notion of `modemap'. So in the typical System F/AXIOM style, I would write the above as Associative(T: Type, Modemap(T,T,T): op): Category == with nil There is no export because associativity is essentially a logical axiom. In Implicit System F, or in a forall-quantified style I would write forall(T: Type) . Associative(Modemap(T,T,T): op): Category == with nil so that when I say Associative(_+$Integer), T gets deduced to Integer. You can see how this relates to the issue Stephen and I discussed at the workshop in Hagenber. | --------- | | 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 have to have a complete working system to get my head around the problem. | | 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? In fact, as it turned out at the workshop Stephen was also solving that same problem; but from a different angle; I'm not sure he abandonned. I think we did not finish the discussion -- but I mentioned that I was solving it by making modemaps more real; he observed that also permits ML-style polymorphism. -- Gaby ------------------------------------------------------------------------- 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