Republic of Mathematics blog

When textbooks are free …

Posted by: Gary Ernest Davis on: May 22, 2012

Should we get rid of the “=” sign in mathematics?

Posted by: Gary Ernest Davis on: May 16, 2012

Should we get rid of the “=” sign in mathematics?

Robert Recorde

Probably, since it creates more confusion than it alleviates.

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 \frac{6-2}{2}=2.

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 \frac{6-2}{2}=2and 2=\frac{20-10}{10} so \frac{6-2}{2}=\frac{20-10}{10} 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:

  • MathnasiumMiddletown ‏@MiddletownMath It’s a challenge in itself to instill a basic appreciation of #Math in younger students. Messing with = won’t change that.
  • MathnasiumMiddletown ‏@MiddletownMath We acknowledge the study, we just don’t see THAT as a serious problem in day-to-day interaction with kids and #Math!

For a different point of view – and one to which I subscribe – see the video below:

 

Programming languages use equality differently

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.