Depending on context, \(x = y\) can mean any of:
- \(x\) is known to be equal to \(y\)
- \(x\) is assigned to be equal to y
- \(x\) is defined to be equal to \(y\).
- We’re trying to show \(x\) is equal to \(y\)
- The Boolean relation of \(x = y\)
I get around this by using distinct forms of the equals sign for each of the nuances above.
I only use the equals sign when I know \(x\) is equal to \(y\).
If I’m using \(x = y\) to mean “let \(x\) be equal to \(y\)”, I use either \(x \gets y\) or \(x := y\).
If I’m defining \(x\) to be equal to \(y\), I use \(x \equiv y\) or more often \(x \stackrel{def}{=} y\) because my triple equals sign looks terrible when handwritten. The spacing is always off.
When I’m trying to show 2 sides are equal, I use \(\stackrel{?}{=}\). This has the advantage of making it clear that it’s wrong to transform both sides because I don’t know that they’re equal.The question mark conveys the idea of “dunno if they’re equal”.
For the last one, I use ==
like in programming. I’m used to it.
These distinctions may be overkill, but I think they make intent clearer, which is all the more valuable when you’re in a thicket of symbols without a map.