I was filled with crushing disappointment when I learned mathematical notation is "shorthand" and there isn't a formal grammar. Same goes for learning writers take "shortcuts" with the expectation the reader will "fill in the gaps". Ostensibly this is so the writer can do "less writing" and the reader can do "less reading".
There's so much "pure" and "universal" about math, but the humans who write about it are too lazy to write about it in a rigorous manner.
I can't write software w/ the expectation the computer "just knows" or that it will "fill in the gaps". Sure-- I can call libraries, write in a higher-level language to let the compiler make machine language for me, etc. I can inspect and understand the underlying implementations if I want to, though. Nothing relies on the machine "just knowing".
It's feels like the same goddamn laziness that plagues every other human endeavor outside of programming. People can't be bothered to be exact about things because being exact is hard and people avoid hard work.
"We'll have a face-to-face to discuss this there's too much here to put in an email."
Math notation is the way it is because it's what mathematicians have found useful for the purpose of doing and communicating math. If you are upset and disappointed that that's how it is then there's not a lot we can do about it. If there was a better way of doing it, people would be jumping on it. If a different way of doing it would let you achieve more, people would be doing it.
It's not laziness, and I think you very much have got the wrong idea of how it works, why it works, and why it is as it is. Your anger comes across very clearly, and I'm saddened that your experience has left you feeling that way.
Maths is very much about communicating what the results are and why they are true, then giving enough guidance to let someone else work through the details should they choose. Simply giving someone absolutely all the details is not really communicating why something is true.
I'm not good at this, but let me try an analogy. A computer doesn't have to understand why a program gives the result it does, it just has to have the exact algorithm to execute. On the other hand, if I want you to understand why when n is an integer greater than 1, { n divides (n-1)!+1 } if and only if { n is prime } then I can sketch the idea and let you work through it. Giving you all and every step of a proof using Peano axioms isn't going to help you understand.
Similarly, I can express in one of the computer proof assistants the proof that when p is an odd prime, { x^2=-1 has a solution mod p } if and only if { p = 4k+1 for some k }, but that doesn't give a sense of why it's true. But I can sketch a reason why it works, and you can then work out the details, and in that way I'm letting you develop a sense of why it works that way.
Math isn't computing, and complaining that the notation isn't like a computer program is expressing your disappointment (which I'm not trying to minimise, and is probably very real) but is missing the point.
Math isn't computing, and "Doing Math" is not "Writing Programs".
I often wish people were more like computers. It probably wouldn't make the world better but it would make it more comprehensible.
It might also help to think of "scope" in the computing sense. Often you have a paragraph in a math paper using symbols one way, then somewhere else the same symbols crop up with a different meaning. But the scope has changed, and when you practise, you can recognise the change of scope.
We reuse variable names in different scopes, and when something is introduced exactly here, only here, and only persists for a short time, sometimes it's not worth giving it a long, descriptive name. That's also similar to what happens in math. If I have a loop counting from 1 to 10, sometimes it's not worth doing more than:
for x in [1..10] {
/* five lines of code */
}
If you want to know what "x" means then it's right there, and giving it a long descriptive name might very well hamper reading the code rather than making it clearer. That's a judgement call, but it brings the same issues to mind.I hope that helps. You may still not like math, or the notation, but maybe if gives you a handle on what's going on.
PS: There are plenty of mathematicians who complain about some traditional notations too, but not generally the big stuff.
That's only really a good description for the most well trod areas, where people habe bothered to iterate. I think a more realistic statement would be:
"Math notation is the way it is because some mathematician found it sufficient to do and communicate math, and others found it tolerable enough to not bother to change."
Personally, though, my problem has always been where publications use letters and symbols to mean things that are just "known" in some subfield that isn't directly referenced. It's not a problem for direct back and forth communication during development, true, but it dramatically increases the burden on someone who wants to jump in.
That all said, it would still be quite nice if it was somehow more accessable. A lot of papers containing material that's probably actually quite standardizable remain opaque to me, and the notation invariably falls by the wayside if there's a code or language description available.
Many times, math notatons have been thought to be minimal, or most clear possibly, only to fall by the wayside
Whereas this notation serves domain specialists well, it still leaves people like me somewhat confused
A cheat sheet - even to the practical norms - would go a long way
Are you sure it's laziness? Maybe it's a result of there not actually being any universal notation (not even within subfields) or the exactness you refer to really isn't necessary. This doesn't mean that unclear exposition is a good thing. Mathematical writing (as with all writing) should strive towards clarity. But clarity doesn't require some sort of minutely perfectly consistently notation which would be required by a computer because humans are better than computers at handling exactly those kinds of situations.
> People can't be bothered to be exact about things because being exact is hard and people avoid hard work.
I think you have it wrong. People can't be bothered to be as exact because they don't need to. People can understand things even if they are inexact. So can mathematicians. Honestly this is a feature. If computers would just intuitively understand what I tell them to do like a human assistant would, that would be a step up not a step down in human computer interfaces.
I made this point in another comment, but I think it bears repeating and elaboration: Consistency isn't required (at least outside any single paper), but explicitness would be a tremendous boon.
Software incorporates outside context all the time, but it pretty much always does it explicitly (though the explicitness may be transitive, ie. dependencies of dependencies). Math papers often assume context that is not explicitly noted in the citations, nor those papers' citations, etc.
Instead, some of the context might only be found in other papers that cite the same papers you are tracking down. You sometimes need to follow citations both backward and forward from every link in the chain. And unlike following citations backward (ie. the ones each author considered most relevant), the forward links aren't curated and many (perhaps most) will be blind alleys (there also may be cycles in the citation graph, but these are relatively rare). But somehow you have to collect knowledge (or at least passing familiarity) with an encyclopedic corpus in order to at least recognize and place the context left implicit in any one paper in order to understand it.
It's maddening.
That is just an example of bad exposition in my opinion. It's also not technically "unclear" in any notational sense so it's a bit of an aside from this argument. But I agree with you 100% that it is bad bad bad. This is a perfect example of why arguments like "does this proof make coq happy" totally misses the point.
Shall we be satisfied with the same low standards in a technical field, because it is how it is?
Hands-on users of math notation are complaining that it sucks. I'm not sure why a dismissive "works for me" is so often the default response.
It is really easy to complain. People also complain about every popular programming language, but it is really hard to make something that is actually better. It is easy to make something that you yourself think is better, but it is hard to make something that is better in practice.
Are you sure this is because the notation is unclear/imprecise or because you just don't like it? I like certain programming languages and certain programming styles and really don't like others. But in none of the cases (those I like nor those I don't) are they not 100% "clear". The code compiles and executes after all so there really isn't much of an argument that somehow it's underspecified.
The same thing exists in mathematics. There are certain fields of math whose traditional notation/style/approach/etc. are totally incomprehensible to me. There are also many mathematicians who would say the same about my preferences as well.
So my point is that all people are _different_. Some people like certain things and some people like others. How can you hope to please everyone simultaneously? In my experience, there is no field at all that is as precise as mathematics. Sure "code" is precise, but (imo) professional programmers are nowhere near as precise in any general design or conversation than mathematicians. So I find the attack on supposedly bad mathematical notation a bit odd.
Mathematicians constantly try to come up with better methods of explaining things. They put more effort into it than basically any field in my experience. The problems are really that we as humans don't all think the same and that mathematics is just plain hard. We've improved mathematical communication immensely throughout history and we will continue to do so. But we'll never reach some sort of perfect communication style because no single such style could ever exist.
Math is difficult, and a lot of what we have is the result of the sharpest minds doing their best to eke out whatever better understanding of something they can manage. Getting any sort of explanation for something is hard enough, but to get a clear theory with good notation takes an order of magnitude more effort and insight. This can take decades more of collective work.
Imagine complaining about cartographers from a thousand years ago having sketchy maps in "unexplored" regions. Maps are supposed to be precise, you say, there's actual earth there that the map represents! But it takes an extraordinary amount of effort to actually send people to these places to map it out -- it's hardly laziness. Mathematics can be the same way, where areas that are seemingly unrigorous are the sketches of what some explorers have seen (and they check that their accounts line up), then others hopefully come along and map it all in detail.
When reading papers, there's a fine balance of how much detail I want to see. For unfamiliar arguments and notation, it's great to have it explained right there, but I've found having too much detail frustrating sometimes, since after slogging through a page of it you realize "oh, this is the standard argument for such-and-such, I wish they had just said so." You tend to figure that something is being explained because there is some difference that's being pointed out.
I've been doing some formalization in Lean/mathlib, and it is truly an enormous amount of work to make things fully rigorous, even making it so that all notation has a formal grammar. It relies on Lean to fill in unstated details, and figuring out ways to get it to do that properly and efficiently, since otherwise the notation gets completely unworkable.
Yes, we are too lazy to be 100% formal and many times we are too lazy to be mostly formal. This is mostly because we target our writing to other mathematicians who have no need to see every small step and including every step makes the proofs long. On the other hand, I do feel that generally speaking mathematicians should show more of their work and skip fewer steps.
I find your statement "People can't be bothered to be exact about things because being exact is hard and people avoid hard work." to be very true. Being precise is difficult.