Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Math

Mathematician Reveals 'Equals' Has More Than One Meaning In Math (sciencealert.com) 118

"It turns out that mathematicians actually can't agree on the definition of what makes two things equal, and that could cause some headaches for computer programs that are increasingly being used to check mathematical proofs," writes Clare Watson via ScienceAlert. The issue has prompted British mathematician Kevin Buzzard to re-examine the concept of equality to "challenge various reasonable-sounding slogans about equality." The research has been posted on arXiv. From the report: In familiar usage, the equals sign sets up equations that describe different mathematical objects that represent the same value or meaning, something which can be proven with a few switcharoos and logical transformations from side to side. For example, the integer 2 can describe a pair of objects, as can 1 + 1. But a second definition of equality has been used amongst mathematicians since the late 19th century, when set theory emerged. Set theory has evolved and with it, mathematicians' definition of equality has expanded too. A set like {1, 2, 3} can be considered 'equal' to a set like {a, b, c} because of an implicit understanding called canonical isomorphism, which compares similarities between the structures of groups.

"These sets match up with each other in a completely natural way and mathematicians realised it would be really convenient if we just call those equal as well," Buzzard told New Scientist's Alex Wilkins. However, taking canonical isomorphism to mean equality is now causing "some real trouble," Buzzard writes, for mathematicians trying to formalize proofs -- including decades-old foundational concepts -- using computers. "None of the [computer] systems that exist so far capture the way that mathematicians such as Grothendieck use the equal symbol," Buzzard told Wilkins, referring to Alexander Grothendieck, a leading mathematician of the 20th century who relied on set theory to describe equality.

Some mathematicians think they should just redefine mathematical concepts to formally equate canonical isomorphism with equality. Buzzard disagrees. He thinks the incongruence between mathematicians and machines should prompt math minds to rethink what exactly they mean by mathematical concepts as foundational as equality so computers can understand them. "When one is forced to write down what one actually means and cannot hide behind such ill-defined words," Buzzard writes. "One sometimes finds that one has to do extra work, or even rethink how certain ideas should be presented."

Mathematician Reveals 'Equals' Has More Than One Meaning In Math

Comments Filter:
  • Also in PHP (Score:3, Funny)

    by Ubi_NL ( 313657 ) <joris...benschop@@@gmail...com> on Friday June 21, 2024 @03:06AM (#64566081) Journal

    I knew this for decades. PHP already has 4 different meanings of equal. Mathematics sure is slow to catch up

    • They can just do it like javascript -- whether two things are equal depends on the number of equal signs.

      https://www.destroyallsoftware... [destroyallsoftware.com]

      • They can just do it like javascript -- whether two things are equal depends on the number of equal signs.

        https://www.destroyallsoftware... [destroyallsoftware.com]

        Considering javasciipt is a quantum computing language [imgur.com], sure, why not.

      • by deKernel ( 65640 )

        So one equals sign means "equals", two means "super equals" and three means "super duper equals" then?

        • So one equals sign means "equals", two means "super equals" and three means "super duper equals" then?

          One equal sign is assignment. Two equals sign is equivalent (same value, but may involve casting to a different type). Three equals signs is identical - same value and type.

        • 3 bananas equals 3 apples if you just count number of objects and not their types.

          If you consider the types they aren't equal.

    • Love them PL jokes.

    • by Dwedit ( 232252 )

      That awkward moment when 'return flase' leads to remote code execution... [medium.com]

      Gotta love programming languages where a typo of the word "false" suddenly becomes a string literal which evaluates as true when used in any boolean operation.

      • While that sucks, I think the moral of the story is don't eval() files on the server that the server has, not only permission to write to, but CODE THAT WRITES TO THEM that's protected by a flimsy screen door with a busted lock. I've abused eval() manys a time and I feel bad about it, but actually putting the configuration manipulation code on the public facing side? Well that would just give me the yips so bad I wouldn't be able to sleep. Compared to that, "PHP Warning: Use of undefined constant flase - a
    • Re:Also in PHP (Score:5, Informative)

      by gtall ( 79522 ) on Friday June 21, 2024 @05:34AM (#64566277)

      No, they are not slow. Even the summary indicates they were not slow. The notion of "equality" started getting redefined with the set theorists in the early 1900s. It progressed further with category theory starting in the late 1940s and through the 1950s, 1960s, 1970s, 1980s, 1990a, 2000+. This is all very tricky business and the author is correct to point it out for computer programs...although if you know what you are doing you have already taken the correct notion of equality (really equivalence) into account in your program.

      One current re-evaluation is homotopy type theory: https://en.wikipedia.org/wiki/... [wikipedia.org], which uses a notion of groupoid to formalize equivalence as a notion of equality (put very grossly).

      Two brief quotes to show just how far the notion has evolved (univalent foundations refers to using equivalence as the notion of equality...put very grossly and somewhat inaccurately...think of it is, if I cannot tell two types apart via morphisms, then they are essentially the same):

      "The phrase "univalent foundations" is agreed by all to be closely related to homotopy type theory, but not everyone uses it in the same way. It was originally used by Vladimir Voevodsky to refer to his vision of a foundational system for mathematics in which the basic objects are homotopy types, based on a type theory satisfying the univalence axiom, and formalized in a computer proof assistant."

      Note the 'computer proof assistant'. The next quote:

      "As of 2015, intense research work was underway to model and formally analyse the computational behavior of the univalence axiom in homotopy type theory.[38]

      Cubical type theory is one attempt to give computational content to homotopy type theory.[39]

      However, it is believed that certain objects, such as semi-simplicial types, cannot be constructed without reference to some notion of exact equality. Therefore, various two-level type theories have been developed which partition their types into fibrant types, which respect paths, and non-fibrant types, which do not. Cartesian cubical computational type theory is the first two-level type theory which gives a full computational interpretation to homotopy type theory"

      The "paths" are paths of morphisms. Note the reference to computational content.

    • by vbdasc ( 146051 )

      Mathematics sure is slow to catch up

      Mathematicians knew that before the oldest of PHP's creators was born.

  • ...to exactly 0 programmers. Equality is insidious.

    • and yet I still meet developers who don't know that that using = on float/decimal is a bad idea. When an error due to using = on a float happened 6 months out of University (Elec Eng). They were doing a bunch of add/subtraction on decimals, and then comparing floatVariable == 0, I had to write a program to prove it as no one else would believe that was the problem.
      • Re:This is news... (Score:4, Interesting)

        by UnknownSoldier ( 67820 ) on Friday June 21, 2024 @05:36PM (#64568003)

        I can only imagine their shock and horror when they discover x == x + 1 for large values when using float32 and float64. i.e. Mantissa isn't large enough.

        e.g.

        #include <stdio.h>
        #include <math.h>
         
        int main()
        {
            float before32 = (float)( 1 << 24 );
            float after32 = before32 + 1.0f;
            bool same32 = (after32 == before32);
            printf( "%f\n", before32 );
            printf( "%f\n", after32 );
            printf( "Same: %d\n", same32 );
         
            double before64 = (double)( 1ull << 53 );
            double after64 = before64 + 1.0;
            bool same64 = (after64 == before64);
            printf( "%f\n", before64 );
            printf( "%f\n", after64 );
            printf( "Same: %d", same64 );
         
            return 0;
        }

  • instanceof (Score:2, Insightful)

    by La Gris ( 531858 )

    {1, 2, 3} can be considered 'equal' to a set like {a, b, c}

    This problem is already solved in computing languages:
    {1, 2, 3} instanceof {a, b, c}

    • I've never seen that syntax before, what is it , Matlab?

      • by flink ( 18449 )

        Java has an instanceof operator used to compare a literal or variable to a class, but doesn't have a syntax for literal sets like that.

        You also can't use it to compare two literals. instanceof can only compare a literal expression to a type name, not a type reference. e.g. {1,2,3} instanceof java.util.Set, not {1,2,3} instanceof {a,b,c}.getClass(). You'd have to do something like {a, b, c}.getClass().isAssignableFrom( {1,2,3}.getClass() ).

  • Quick someone tell Terrence Howard he was right all along!
  • Equality (Score:4, Interesting)

    by jd ( 1658 ) <imipak@NOsPam.yahoo.com> on Friday June 21, 2024 @03:51AM (#64566131) Homepage Journal

    There are at least four different equals signs in mathematics:
    Equality (two ones), Identical (three lines), approximately (wavy lines), and of equal magnitude (two lines where the top line has a bump).

    These symbols allow mathematicians to differentiate the subtle differences.

    If you introduced all four to computer software, then most of the problem would vanish.

    • by jd ( 1658 )

      Since I posted that, I found there's actually another symbol, congruency. This is three lines, where the top line is wavy.

      Two things are congruent when the same operation produces an equivalent result.

      This would seem to work here, but the sheer number of symbols means adding another symbol would not add significant complexity.

    • Re:Equality (Score:5, Interesting)

      by martin-boundary ( 547041 ) on Friday June 21, 2024 @06:19AM (#64566331)
      The "problems" would not vanish (some of us don't think there's a problem).

      It is tempting to think of elementary school mathematics symbols like = as fixed and timeless, for those who haven't come across more advanced mathematics. In fact, symbols in mathematics have no intrinsic meanings, they are shorthands for whatever the universe of discourse requires.

      It goes something like this: mathematicians want to talk about something, they make up definitions in terms of some basic undefined objects which everyone agrees will not be important going forward. Then they try to do computations with the definitions. This gets tedious quickly to write out in words, so they make up symbols to represent important relationships, and the combinations of symbols often show patterns that are helpful too. Then they sometimes invent symbols that are shorthand for groups of symbols, because the patterns become tedious.

      Ultimately the symbols for equality in mathematics are both numerous and in fact not important. That's why there are so many, including the ones you mentioned. Different subcultures of mathematics users (which includes physicists and engineers) will invent their own meanings too. Your interpretations arise from the particular path you took in life, and you also saw these symbols in books you read.

      In very rare cases, such as when computing with integers or real numbers, the = sign is so well established by hundreds of years of usage that the meaning is immediately clear. But even then mathematicians sometimes reuse the sign for something else entirely, so it's best not to jump to conclusions.

      For example, mathematicians may write 1 = 13 (mod 12) if they want to calculate with hours of the day. Sometimes people write three lines instead of = but that is by no means enforced. And often the (mod 12) is not written, because it's tedious and obvious. So then you are left with 1 = 13, a perfectly good equation asserting an equality between two objects in the universe of discourse.

      • I forgot to mention, it's interesting by the way to leaf through the classic history of mathematical notation by Florian Cajori [wikipedia.org]. It will show you tons of competing symbols for all sorts of things. Many have disappeared, but sometimes an old symbol can become fashionable again for something else entirely.
      • The "problems" would not vanish (some of us don't think there's a problem).

        If the literal system that works on the mathematical binary concept of ones and zeros can’t quite grasp what you’re trying to say (“vanish” as per the parent), then I fully expect AI to find many a mathematical correction as it matures far beyond our petty equality squabbles of subtlety.

        TFS reads like we should be re-examining why we have so many definitions for equality within the world of math. Does it help the humans more than the actual math? Have humans made math a bit insuffe

        • by jd ( 1658 )

          Theorem provers are currently decent and adequate for many tasks. (Such a theorem prover solved the four colour problem, for example, even though humans can't understand or verify the proof.)

          Non-standard language doesn't cut it in a world where you need to use theorem provers or standardised syntaxes (such as Z notation, Pi Calculus, etc). You end up with a large vocabulary that requires everything to be shown from first principles, which is a bloody stupid approach.

          "How it's done" is not a refrain that'll

          • Yes theorem provers are a great thing for deductive reasoning in DSLs. The world is richer for them, and they even help current state of the art AI models to do some Euclidean geometry [nature.com].

            But I am reminded of Russell and Whitehead's Principia [wikipedia.org], which took the automatic theorem proving approach seriously and tried to translate all of 19th century mathematics into precise statements. It was a tour de force (even ignoring Goedel's incompleteness theorems which were discovered later). However, almost nobody then

      • by mysidia ( 191772 )

        Ultimately the symbols for equality in mathematics are both numerous and in fact not important.

        The symbols are important because you Need to standardize them for other people to understand, especially computers.

        It makes sense to Require the proofs be translated into a suitable form for the machine.

        This might mean that all the Equals signs used for Isomorphism have to be changed to a different sign before Typing the proof into the computer and Publishing it.

        If you don't use standard symbols according to the

    • by necro81 ( 917438 )

      of equal magnitude (two lines where the top line has a bump)...
      If you introduced all four to computer software, then most of the problem would vanish.

      Oh, well, let me just find the "two lines where the top line has a bump" key on my keyboard.

    • by allo ( 1728082 )

      There are quite a bit more and mostly people define them before they use them if it would be unclear. So I guess there are at least 20 common meanings. TFA is just bullshit, there is no new equality, but people who are not used to symbols being reused with slightly different meanings.

      Just thing about it. When are two lists the same? Does the order matter or not? I could say they are the same in the sense a programmer would and define an unorder_equal (or for programmers a sorted_equal) which means they cont

  • by Qbertino ( 265505 ) <moiraNO@SPAMmodparlor.com> on Friday June 21, 2024 @03:54AM (#64566137)

    It obviously isn't the same thing. They should just find a new symbol.

    This isn't surprising. Algebra is a complete mess. Mathematicians are notoriously sloppy with notation and syntax. They can be, because it's humans communicating with humans.
    This is the exact reason Programmers often find it frustratingly difficult to grasp math. It's not math, it's the algebra causing the manifold problems. I have yet to find a useful reference manual for Algebra.

    • Kind of a tangent, but - I think this sort of thing demonstrates just how far away the dream of AGI is.

      • Kind of a tangent, but - I think this sort of thing demonstrates just how far away the dream of AGI is.

        Yeah, or how sloppy humans can get with even something as absolute as math.

        Just because math is considered a “language” doesn’t mean ’baccy-chewin’ hillbilly should become a variant of it. No wonder the working world has found a way to basically abandon the need for Algebra math in the workplace. Sloppy bullshit, is sloppy.

      • by zlives ( 2009072 )

        no reason to bring trig into the conversation, lets continue badmouthing algebra.

    • At least at their lowest level, they do arithmetic. Everything else has to be built up upon that and it can have limitations.

      Computer scientists for example never could get pure first order predicate logic to work on a computer so for example Prolog was the best go at this but it only uses a subset called Horn Clauses.

      Whether this situation will change with AI I have no idea, but the point is computers can be limited as to what they can do maths wise no matter how good the programmer.

      • by gtall ( 79522 )

        Once you have to quantify over infinite domains that cannot be described intensionally, then you are at least using first order logic and you won't be working with the model structure. A good approach is to concentrate on mathematical proofs, those are finite and a language like AGDA can be used. It at least has a version of dependent type theories. Essentially, you use intuitionistic logic in computational form.

    • by gtall ( 79522 ) on Friday June 21, 2024 @05:44AM (#64566287)

      Algebra is not causing the problem, see Birkhoff and MacLane's book Algebra for a traditional version, it is very precise.

      For a more modern version of algebra, go check Categorical Algebra, it will give you all the preciseness you require. Come back in 100 years after you grok it all.

      If you want to start at foundations, read Birkhoff's On the Structure of Abstract Algebra, 1935. The modern version is Algebraic Theories started (among others) by Bill Lawvere with Functorial Semantics of Algebraic Theories, 1963 (for the cheap 3 pager), or his thesis Functorial Semantics of Algebraic Theories and Some Algebraic Problems in the Context of Functorial Semantics of Algebraic Theories. A good book is Algebraic Theories by Adamek Rosicky Vitale, 2011. An earlier book by Manes (1976) is Algebraic Theories.

      • by pjt33 ( 739471 )

        What the paper actually says is that algebraic geometry is rife with the problem, because the published literature is full of mentions of canonical isomorphisms which don't define the term "canonical", and which can't be inferred automatically.

    • From a mathematical point of view, they are very much the same thing.

      Arithmetic can be proven via set theory (going back to early 20th century) - https://en.wikipedia.org/wiki/... [wikipedia.org]

      This is not convenient if you actually want to get something done - but that's a computer problem, not a maths problem.

      • But it isnt "the" mathematical point of view

        ...so you arent actually saying anything _informative_ because in no way does saying it is "a" mathematical point of view provide the _sense_ of it

        Yes, and more narrowly alphabets are interchangeable in a _sense_ also .. the sunday newspaper has a cryptogram after all...

        When these papers dont communicate the sense of it, they failed at communication, and this does go directly to the problem with math notation vs, say, what computer scientists use to notate.
    • If you required a different symbol for every different potential interpretation of =* then you'd quickly run out of symbols that look remotely like =. Rather, the author of something must take responsibility for being sufficiently clear what they symbols they use mean, and the reader must take care to ensure they grasp the author's intended meaning. That's the way it is, the way it's always been, and the way it has to be.

      *(e.g. equality of natural numbers, equality of integers, equality of rational numbers,

  • by backslashdot ( 95548 ) on Friday June 21, 2024 @04:41AM (#64566203)

    He and the dumb "journalist" (and apparently slashdot editors too, unless they're trying to humor us) are finding out stuff the rest of us have known since elementary school. Wait until he discovers that in mathematics sometimes numbers can be represented by letters.

  • by joeblog ( 2655375 ) on Friday June 21, 2024 @05:32AM (#64566273) Homepage

    Admittedly this is a really boring subject for most people, but I find "comparability" in coding and maths a common problem that I've given quite a bit of though to and find interesting.

    The most common comparability trap for coders is that "sets" are usually under the hood memory addresses (aka pointers). I discovered how this confuses nearly every novice programmer years ago when I did a MooC teaching matrices using Python. I think languages like Python which do away with C's &x and *p notation actually confuse novices more than they help because it's not obvious that x = [1,2,3] is a "reference" which will be globally mutated in whatever function it gets changed. I passed course by first converting the "matrices" as in nested arrays to text, and then back which I thought was an awful hack, but later discovered JSON basically makes that technique the norm.

    In classical logic, there's equality and "implication" which once I went "aha", found helped improve my database queries a lot. Thinking of logic as "two value algebra", specifically 0 and 1, equality is pretty simple whereas that the truth table for implications (commonly written p => q) actually means p <= q took me some time to figure out. For p and q to be equal, implication has to work both ways, ie p <= and q <= p.

    That might not seem useful and required knowing another thing I only grasped fairly late in life: classical logic and set theory are related, and that for lots of ps and qs that means P and Q are equal if P subset Q union Q subset P is not the empty set.

    My notes on how to write that in SQL or Prolog for database I've put on the web at https://frontiersoftware.co.za... [frontiersoftware.co.za] if there's anyone who shares my weird interest in this.

  • So trivial (Score:5, Interesting)

    by GlobalEcho ( 26240 ) on Friday June 21, 2024 @06:28AM (#64566335)

    Mathematician (no longer practicing) here.

    Mathematical statements are highly context-specific, far more so than most non-mathematicians realize. And so, almost any concept, such as "flatness", "prime", "representation", "multiplication" and indeed "equality" depends on highly specific circumstances.

    In different contexts, for example, the word "prime" refers to a kind of integer. In others, to a kind of polynomial, or a kind of algebraic group.

    Consider the following abstract from a journal article "On the arithmetic moduli schemes of PEL Shimura varieties" published in the year 2000:

    A detailed study of the Shimura varieties associated to unitary groups U(r,s) over an imaginary quadratic field K is done. It turns out that, when |rs|>1, the models given by Rapoport-Zink’s construction are not flat over those primes P of K that divide the discriminant of K
    . This fact contradicts the flatness conjecture stated in the above-mentioned work of Rapoport and Zink. However, the author proves that the moduli scheme for the modified moduli problem is flat in the case of unitary groups of type U(r,1).

    Even to understand what this abstract is saying would require most mathematicians to spend weeks of study (the exception being algebraic geometers who presumable already know what Rapoport and Zink did, and what a Shimura variety is). The words prime and flat in this abstract do not mean what lay readers would expect.

    Picking on the concept of equality (equivalence classes, whatever) seems like an almost trivially small part of the problem in relating real mathematics to computation. There's a gulf between solving that problem and having a computer actually understand what a unitary group is in a mathematical context.

    Specifically with respect to different concepts of equality, I will add that this is one of those places where operator overloading makes a ton of sense. If you are doing integer math, equality is the usual thing, and if you have infinite sequences of rationals (e.g. when constructing the real numbers), equality is something quite different.

  • "challenge various reasonable-sounding slogans about equality."

    Oh, the places we could go with that, lol

  • We've had â (triple bar) since forever. Sadly /. still doesn't understand Unicode, so I'll write it differently:

    _______
    _______
    _______

    Which means "identical". Not sure what's all the fuss about.

  • As others have stated, programmers know of this concept for a long time as https://en.wikipedia.org/wiki/... [wikipedia.org] overloading. But when I explain this concept to n00bs, I bring up vocab as an example. The word "running" has multiple meanings in different context. "My computer is running!", "The water is running", "I'm running to the store", etc.

    • by allo ( 1728082 )

      Programmers do overloading, mathematicians just do definitions.
      Two frumbles are equal if their cramble is the same. By an abuse of notation we use the equals sign in the following paragraphs when comparing frumbles.

  • ... then all hell breaks lose. A computer scientist understands that. Apparently, some mathematicians do not and got lazy. This is an easy fix: Stop being lazy and differentiate between the two.

  • as it will make it harder to show that they are making claims that do not add up.

  • “It depends on what the meaning of the word ‘is’ is." - Bill Clinton in his testimony to the grand jury
  • by Slicker ( 102588 ) on Friday June 21, 2024 @08:32AM (#64566501)

    So this seems akin to -- (do values evaluate the same-ish) vs === (do the values evaluate the same and are also structured the same).
    It's not exactly that but similar.

    This reminds me a lot of the word "is" in English. What does it mean? It merely states that there is some kind of relationship between two things without specifyng what kind of relationship yet given with a connotation of high authority. It's very strange. I think "is" is the equals of the broadest most vague sense yet implying absolute truthfulness. This is how we get by in English or any natural language. We rely on vagueness simplify communication by removing the rough edges of specificity and thereby leading us to at least think we are in agreement. With specificity, we seldom are.

    Logic is a heuristic. It is not fundamental to the universe but emergent between things from relative perspectives. The universe comprises oscillations. That is, linear relationships from the absolute perspective and logic only from individual relative perspectives. Of course, logic always breaks down at some point. Or as Godel proved, it is unavoidable incomplete.

    • by Opyros ( 1153335 )

      This reminds me a lot of the word "is" in English. What does it mean?

      Bill Clinton, is that you?

  • ... really convenient if..." You were lazy and now it's come to bite you in the ass. Who knew!
  • >> A set like {1, 2, 3} can be considered 'equal' to a set like {a, b, c}

    Wait so set equality is entirely based on just the number (and type?) of members in the set? that seems self-evidently ridiculous for nearly all useful cases. I mean consider what it means to say {1, 2, 3} is 'equal' to {-42, 4.0007, 10^42}.

    • by allo ( 1728082 )

      Simplest Use-Case: You want to store it on a PC. Then it needs the same amount of memory.

      • by JustNiz ( 692889 )

        That's equating the metadata (in this case, size), not the data itself.

        • by allo ( 1728082 )

          Math people don't think in these terms. They can define any operator they want and then use it.

          We say A -_- B, if sets A and B contain the element p.
          Now it is easy to see, that A-_-B and B-_-C follows A-_-C.

          For equality operators the interesting part is if they are an equivlance relation.

          > A binary relation {\displaystyle \,\sim \,} on a set X {\displaystyle X} is said to be an equivalence relation, if and only if it is reflexive, symmetric and transitive. That is, for all a , b , {\displaystyle a,b,} a

          • by allo ( 1728082 )

            To make it easier to understand for programmers: A relation is a function with two arguments that returns True if it holds and false if it doesn't. In python you could for example overwrite __eq__. For it to be useful, you should make sure your __eq__ function behaves like one would expect, see above. Still nobody stops you from doing other stuff with it ... only the next person who reads it will hate you.

          • by JustNiz ( 692889 )

            That's like saying 5 Fingered Death Punch and the Spice Girls are exactly the same just because there's 5 artists in each group.

            • by allo ( 1728082 )

              Yes.

              The whole point is, that you are free to define your relations in any way you want as long as you write which kind of relation you are using and your definitions are not contradictory.

            • by allo ( 1728082 )

              The problem you're probably having is that you are stuck with one definition of equality, when you say "are exactly the same" and thinking of something that would be in terms of computer people bitwise comparison, while a math paper can just define an equality operator that only compares the magnitude of the sets, or, like in my example, the presence of a specific item. Some axioms should hold for the relation to be useful, but then an equivalence relation doesn't need to mean things to be "exactly the same

  • ... has had this forever. Lisp 1.5 in the early 1960's had EQ versus EQUAL (see below).
    In semi-modern Common Lisp, we have:

    (EQ X Y)
              X and Y are the same object
    (EQL X Y)
              X and Y are EQ, or represent the same number, or represent the same character
    (EQUAL X Y)
              X and Y are EQL, or are (conses or strings or bit-vectors or pathnames) with EQUAL contents
    (EQUALP X Y)
              X and Y are EQUAL, or are (arrays or structures or hash tables) with EQUALP contents

    • and plenty of other languages have multiple kinds of equality. Ruby has four (that you can also add your own to)

    • by Dwedit ( 232252 )

      C# has the == operator (normally reference equality), and obj.Equals method (object equality)

      There are some exceptions though, == can be overridden and turned into object equality (such as Strings), and object equality testing often does a reference equality test first to skip testing contents.

  • Nothing new here. That there is a difference between "equivalent" and "the same" has been around since I was in school. Something new here? Or just a rehash of old idea by a new generation???
    • by pjt33 ( 739471 )

      Terry Tao describes three stages of personal mathematical development: pre-formal, formal, and post-formal. The point of this paper is that professional mathematicians are in the post-formal stage, but in translating their proofs to formal derivations from axioms for consumption by theorem-checking software the author has found that they're frequently relying on unspecified isomorphisms. While in any concrete case it may be clear how to construct the isomorphisms, the theorem prover wants a single construct

  • The issue has prompted British mathematician Kevin Buzzard to re-examine the concept of equality ...

    Now Florida is going to ban Math too. :-)

  • by Tony Isaac ( 1301187 ) on Friday June 21, 2024 @01:11PM (#64567267) Homepage

    ...for extremely large values of 2.

  • by Mr_Blank ( 172031 ) on Friday June 21, 2024 @02:20PM (#64567529) Journal

    I never liked the concept of overloaded operators, one symbol with multiple meanings based on the context of the variables it is used against.

    Sure, it might save a lot of lines of code if done properly. Sure it might be intuitive to the original developer and support team. But someday before the sunset of the system, someone is going to read that code for support or upgrades and be in one heck of a mess. I preferred to use clearly named functions instead of overloaded operators.

The first myth of management is that it exists. The second myth of management is that success equals skill. -- Robert Heller

Working...