Depending on context, can mean any of:

- is
*known*to be equal to - is
*assigned*to be equal to y - is
*defined*to be equal to . - We’re trying to show is equal to
- The Boolean relation of

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 is equal to .

If I’m using to mean “let be equal to ”, I use either or .

If I’m defining to be equal to , I use or more
often 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 . 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.