"Bill Page" <[EMAIL PROTECTED]> writes: > Hmmm... So what is the meaning of < in AN? Ok, I guess that it is just > whatever is exported by Expression Integer. The fact that the positive > roots appear < 0 while the negative roots appear > 0 must be just an > accident of some strange lexical ordering rules for expressions. :-(
Well, it's not so strange, it's the order used for hashing. Yes, it's high time to separate mathematical order and internal hashing order. Waldek proposed a programme in the thread "RFC: Orders in algebra" some time ago, as you know. There was a long discussion, but little result. I believe that we wanted too much. Here is the original programme: > 1) create a new category, say Comparable which has functions > like lessThen, lessOrEqual etc. > 2) Change domains that use unnatural order to use comparisons from > Comparable > 3) Undefine unnatural orders (remove them from OrderedSet) > 4) If possible define natural ones > > In particular for Expression w probably should _not_ define an > order, but rather make '<' produce elements of new domain > 'Inequality' (like Equation, but for ordered comparisons). I guess it would be best to just go ahead and implement a simple version of this at first. In fact, Bill, you did already implement a version of Inequation and Inequality. There was a lot of discussion about that, too. So I guess, there was *too much* functionality. It's probably better to start with uncontroversial things. Sage also implements some functionality for equation, inequations and inequalities, maybe this could serve as comparison. Martin sage: var('x y') (x, y) sage: sin(x) < 5 sin(x) < 5 sage: ieq = _ sage: ieq. ieq.add_to_both_sides ieq.expand ieq.operator ieq.solve ieq.assume ieq.find_root ieq.rename ieq.subs ieq.category ieq.forget ieq.reset_name ieq.substitute ieq.db ieq.left ieq.rhs ieq.subtract_from_both_sides ieq.divide_both_sides ieq.left_hand_side ieq.right ieq.variables ieq.dump ieq.lhs ieq.right_hand_side ieq.version ieq.dumps ieq.multiply_both_sides ieq.save sage: ieq2 = sin(x) <> 5 sage: ieq2. ieq2.add_to_both_sides ieq2.expand ieq2.operator ieq2.solve ieq2.assume ieq2.find_root ieq2.rename ieq2.subs ieq2.category ieq2.forget ieq2.reset_name ieq2.substitute ieq2.db ieq2.left ieq2.rhs ieq2.subtract_from_both_sides ieq2.divide_both_sides ieq2.left_hand_side ieq2.right ieq2.variables ieq2.dump ieq2.lhs ieq2.right_hand_side ieq2.version ieq2.dumps ieq2.multiply_both_sides ieq2.save ------------------------------------------------------------------------- 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