Posted by: Gary Ernest Davis on: May 16, 2012
Should we get rid of the “=” sign in mathematics?
Probably,
Robert Recorde had a lovely idea in 1557 when he introduced the “=” sign, writing “… bicause noe 2 thynges can be moare equalle.”
x
Studies have demonstrated that students have 3 problems with equality, as in .
These difficulties are:
Reflexivity: the statement that x=x for all x. Students often see this as wrong because to them it’s nonsensical: the “=” sign is an instruction to do something. What is “2=2” asking us to do?
Symmetry: the statement that if x=y then y=x. To many students this is simply wrong. For example, 2+3=5 is correct because we did something to 2 and 3 to get 5, but 5=2+3 is wrong because it’s meaningless to them.
Transitivity: if x=y and y=z then x=z. A statement such as and so while logically correct is also seen as meaningless by many students because it does not fully involve them using “=” as a production rule – an instruction to do something.
Of course (apart from syntactic identity, such as x-1=x-1 but not x-1=-1+x, which occurs rarely) these are the only properties possessed by equality!
Another common misuse of “=” as a production rule consists of chains of equal signs between propositions, as in (x+y=2 and x-y=4) = (x+y=2 and 2x=6) = (x+y=2 and x=3) = (x=3 and y=-1)
It’s clear that some people do not see there’s a problem:
For a different point of view – and one to which I subscribe – see the video below:
For example, in the high level language Mathematica, (where variable types do not have to be defined), the statement
x=3
means something quite different to what it normally means in mathematics.
It means to establish a place in memory called “x” and to place “3” into that place in memory.
The data analysis language R writes this as
x <- 3
which might, at first, take some getting used to, but is really much more explanatory: put “3” into the place in memory called “x”.
If we give Mathematica the command “x=3” it stores the value “3” in a place in memory called “x”. So if we now want to check whether x is equal to 7-4, we write:
x == 7-4
The program gives the result “True”.
That is because it did two things: it performed the calculation 7-4 to get a result of 3, then looked to see if the value 3 was stored in the space in memory called “x”.
If we gave the software the command
x-1 == 5+2
it responds with”False” because it looks in memory to find “3” in the place called “x”, performs a subtraction, performs and addition, and checks whether the result is the same in both cases.
Mathematica, like many programming languages, also has a form of equality written “===” and called “same as” or “identical”. This refers to exact syntactic identity.
So, for example, when we give Mathematica the instruction
4 === 6-2
we get a result of “False”. That is because the left hand side “4” is not exactly identical in its written form with the left hand side “6-2”.
Similarly, the command
x-1 === -1+x
yields “False”
Why would we ever want such a pedantic meaning for exact literal equality?
On example is when we are performing a large number of calculations, some of which result in “ComplexInfinity” as an answer. If we want to delete these cases from our list of answers we cannot simply ask the software to find the cases x for which “x == ComplexInfinity”. That is because ComplexInfinity” is not a value against which the memory in x can be tested for equality. So we look, instead for cases x for which “x === ComplexInfnity”. The program looks in memory at x to see if there is a literal sting that reads “ComplexInfinity”. If there is, it deletes that string (provide you asked it to do that).
The point is that “==” allows for semantic interpretations, unlike “===” which demands exact literal syntactic equality.
I have on many occasions “corrected” students who wrote “4-2 -> 2”, but now I’m not so sure.
As a production rule sign “->” is not too bad. It has an arrow of direction, indicating that the left hand side was to be interpreted through an arithmetic procedure and the right hand side asserts this procedure led to the number 2.
This is not a bad thing, and in light of the many confusions in mathematics about “=”, and the more precise use of “=” in computer science, maybe it’s time to ditch Robert Recorde’s ingenious notation? At the very least, we should be more careful about its use.
Children aren’t born knowing about “=” and its use in mathematics. They, if not their teachers, could get used to a more careful use of equality.
Thought-provoking. I don’t think the abuse of “=” by computer scientists and poorly-instructed students is enough grounds to change its meaning. But what this is leading me to conclude if that basic arithmetic problems should probably never be posed using an equals sign (it’s just sort of lazy shorthand for an actual question, anyway).
[…] Should we get rid of the “=” sign in mathematics?, from Republic of Math. […]
I agree that many students learning this language that is maths do find an instinctive difference or mismatch between a process giving a result with an = in between and two sides of an equation simply being in balance. They are not ‘wrong’!
In the first instance, they produce the ‘equation’ by working through the process . In the second, the equatio is presented to them to process to a result and the equivalences of the two ‘staes’ are rarely if ever discussed with or explained to them in my experience.
1 | Alex Greene
May 17, 2012 at 6:14 am
If students can’t even grasp the equals sign, are we teaching them the wrong thing after all?
The modern usage of the equals sign as an assignment symbol comes from the development of high level computing languages, and is not a mathematical development. Its usage as assignment, rather than to denote the usage “is equal to in value” defining the right side of an equation in terms of its relationship with the left hand side of the equation, and denoting equality rather than > “is greater than” or < "is less than," is pretty much amortised in computing usage – but outside of its use in high level languages, = is pretty much amortised in mathematics and in everyday life.
People use = in everyday language to denote "is the same as," "has equal value to" and so on. They do not generally confuse the assignment = from computing. A few nerds use the C++ / Java == to denote equals, but generally people think that = means "equals," not "assign."
The argument is invalid. Students will have to just learn what all of their predecessors have learned, or those who currently teach should resign in disgrace for their failure.