Math is made for people to read and write, and they have different 'domain specific languages' for different parts of math.
Now what would be useful is a tool, perhaps something like a large language model, to automatically translate from the notation used in one area of math into another.
That can't be a fully mechanical procedure (hence the need for something flexible like an LLM), because it's part and parcel of human mathematics to abuse notation here and there in the name of ergonomics.
My personal pet peeve is defining a function like f(x) := x + 3, and then treating f(x) as the name of the function, instead of just f. But really, it's just a harmless abuse of notation when done by some humans to other humans.
Getting 'f' vs 'f(x)' right mostly is really important for programmers who deal with higher order functions in general all the time. Most mathematicians don't fall into that category.
You could say calculus deals with higher order functions, like the derivative. And that's a valid way to look at it. But most people get by just fine using special purpose notation for the derivative and not thinking about it as a function just like 'f'.)
I used := to emphasis that I am defining 'f' here, not just writing down any old equation. (Eg like like in the example "Find all functions f such that f(x + 1) = x * f (x).")
Though if you wanted to be pedantic about notation, I could have written that as with the x on the other side of the :=, like f := \x -> x + 3 (for Haskell inspired notation) or f := (x |-> x + 3) where |-> means the little arrow I draw by hand to denote a mapping when I'm writing math on a chalk board or piece of paper.
I'm not sure why := would denote a computation? At most you might want to use it to denote an assignment in a mutable context?
Operators and functionals?
Mathematicians deal with higher order functions all the time, e.g. in functional analysis.
OTOH, the lack of rigor is definitely one of the problems of contemporary math. Many years ago, when I was a student, I studied one paper, coauthored by 2 people - call them X and Y. X was a very established mathematician, Y was a relative newcomer. There was one (set-theoretical) argument I couldn't understand, so I asked Y (he was my advisor's friend) about it. He told me "yeah, X asked me this, too, and I told him to use Zorn's lemma, and after a moment of thinking, he said, Β«yeah, that would workΒ»". I'm not set theorist myself, but it smelled suspicious to me, so I asked another friend, who knew much more about set theory than me. He smiled and said "of course it's wrong, it's a very common mistake".
Had X and Y written out the argument more rigorously, we'd have one less published result with no correct proof...
And I have quite a few other anecdotes like this, unfortunately.
One professor at my former faculty once told how he approaches refereeing papers. "For the first 30 minutes, I try to prove the main result myself. If I don't succeed, I spend the next 30 minutes trying to find a counterexample. This way I write most reviews in half an hour."
A few years ago I coauthored a book about non-linear analysis. Quite a few quite interesting topics. One of the coauthors insisted on writing out proofs in detail and rigorously, and now we joke that our book is the first one where some (quite established and known in this field) theorems are proved correctly for the first time. (And that includes proofs with gaps/mistakes in both research papers and monographs, btw.)
I specifically meant getting this is important for programmers who deal with higher order functions.
It is not so important for mathematicians who deal with higher order functions.
Mostly because the intended audience for their writings is smarter than a computer, and there's typically more context.
In math, := is typically used to denote a definition. Using equality (=) only makes sense if both sides of the equality sign already have a definition.
i mentioned this up-thread but is that why := is assignment in Pascal? Wasn't Pascal the main academic language there for a while?
Edit: On math.SE[2] someone claims that it's notation borrowed form programming. Someone else claims that it was introduced by Bourbaki, which might predate programming, as Bourbaki started publishing in the 1930s. However, I couldn't find any evidence of this from skimming a few Bourbaki PDFs.
[1] https://en.wikipedia.org/wiki/Assignment_(computer_science)
f = y+3 makes sense f(x) = y+3 does not make sense (at least to me), f(y) = y+3 makes sense however.
f(x) is a function of x correct? It's articulated as "f of x".
> I wonder why you used ':=' instead of '=' to define 'f'. There is no computation going on, right?
:= is assignment in Pascal iirc, maybe that's where it's coming from.
For example, that could describe a constant function that doesn't depend on x, and y is a free variable that gets its value from context.
Or y could implicitly be a function of x. That happens a lot in calculus or physics.
For example the convention to use the greek alphabet for certain things. This is totally arbitrary and you could have also used emoticons instead (had they existed). But what this means is that the pupil, before tackling the meat of the mathematical problem has to accept that weird looking letter they have never seen for no real reason whatsoever.
And I say that as someone who can fluently read the greek alphabet.
If we changed symbols now, it would create an even bigger mess. Because the people that learn the new symbols, could not read any textbook published before 0 A.D. (Anno Discombobuli)
Sure, back then when everybody who learned trigonometry had a classical education with ancient greek picking greek letters when the latin alphabet wouldn't do was a rational decision. It just hasn't aged well.
Virtually all the textbooks use those symbols. Do you have a viable and better alternative to suggest or are you just complaining? And I didn't assume that you know or don't know something, I just wrote it down for the sake of the argument. We are not having a private conversation, we are contributing to a public discussion.
Math also uses made up symbols specific to math a lot (integral, summations, arrows, operators...).
If you want to claim that Greek is the problem, how would you solve the problem of insufficient symbols?
Adding another alphabet alleviates those issues somewhat but even with greek letters added in we still run into this issue somewhat commonly.
Btw, even mathematicians don't mind writing out `sin` or `cos` or `ln` in their formulas. So they are certainly not completely averse to multiple letters.
Agreed. But yet... some of the approaches taken to deal with that can be wildly annoying. Actually, using the Greek letters is probably the best of the lot, since they are a completely different set of characters with known pronunciations.
OTOH, sometimes you'll see people use both upper-case and lower-case latin letters in the same problem, forcing you to read it in stilted language like "The derivative of Big X with respect to y, plus the integral of Little x ..." Aaarrgggh.[1]
And then you get the "stylized" letters, which are (mostly) just Latin letters, but have no obvious unique pronunciation or verbalization without going through contortions. I mean, what do you say for "π" especially if there is also a "n" on the page? And who's even going to recognize these monstrosities unless you're already a mathematician: π, π, π? Aaarrggggghhh.
[1]: to be fair, you could have the same problem with mixed case of Greek letters, but I haven't seen that as a common problem. But maybe that's only because I'm not a mathematician. shrug
Judging maths on its syntax is like judging a poem or work of literature on its font. It really isn't a central thing.