<[EMAIL PROTECTED]> wrote: > Hi Alex, > With all due respect to your well-deserved standing in the Python > community, I'm not convinced that equality shouldn't imply invariance > under identical operations.
So, why aren't you satisfying my request? Provide a simple concrete definition of what your idea of equality WOULD behave like. I notice that your lack of response stands out like a sore thumb -- all you're providing is a set of constraints you desire and a collection of illfounded analogies and handwaving. Traditional mathematics does not support the concept of "change", nor the distinction between equality and identity; the "real world" has no way to define what modifications are "identical" except by their effects (if the results differ, either the original equality was ill-posited or the modifications were not "identical"). But the real world DOES have the concept of "performing exactly the same sequence of operational steps", and, by THAT definition of "equal modifications", then your assertion: > make identical modifications to the engines of two identical > automobiles, I expect the difference in performance to be identical. is ill-founded -- or, rather, your *expectation* may be ill-founded. Take two systems of any significant complexity that are similar enough to be called "identical" by ALL observers (because trying to ascertain the differences, if any, would inevitably perturb the systems irretrievably by Heisenberg's effect -- i.e., there are no OBSERVABLE differences, which by Occam's Razor requires you to posit the systems are equal, because you cannot prove otherwise -- and entities must not be multiplied beyond necessity, so supposing that "observably equal" systems are indeed equal is Occam-compliant). Now, perform "identical" (ditto) modifications: in the real world, due to quantum effects, there WILL be sub-observable differences in what you're doing to the first one and to the second one. If the systems are unstable to start with, they may well amplify those differences to observable proportions -- and there you are: the effect of the "equal" change on "equal" system may easily become observably unequal. Philosophically, you may classify this as an "observation" of both systems, which reasoning backwards lead you to posit that either the systems were NOT equal to start with or the modifications weren't... that is, IF you also posit determinism, which, as well we know, is an unwarrantedly strong hypothesis for systems in which the differences at quantum level matter. Feel free to follow Einstein (and diverse light-years away from the last few decades of physics) in positing that there MUST exist "hidden variables" (unobservable except maybe in destructive, irreversible ways) explaining the difference -- I'll stick with the mainstream of physics and claim your expectation was badly founded to start with. I can debate epistemology with the best, but this is not really the proper forum for this -- starting with the crucial distinction, what it means, in mathematics OR in the real world, to state that two systems are "equal but NOT identical"? In the end, such debates tend to prove rather futile and unproductive, however. In the world of programming languages, we cut through the chase by requesting *operational* (Brouwer-ian, mathematically speaking) definitions. Provide the *operational* definition of how you WANT equality checking to work, contrast it with my simple two-lines one, and THEN we can have a meaningful debate of which one is the correct one to use in the core of a programming language that has the (blessing and curse of) mutable data objects... Alex -- http://mail.python.org/mailman/listinfo/python-list