Hacker News new | ask | show | jobs
by dekhn 10 days ago
I had a few moments of this in the past. For example, in my quantum class the teacher wrote "H Psi = E Psi" on the board, we all laughed, "just cancel the psi" but it turns out one was a multiplcation and the other was a matrix multiplication (operator) and so we had to learn all new nomenclature.

Similarly, at some point somebody pointed out to me "the reason you're confused is that the bold on that variable means it's a matrix"

7 comments

That is why Iverson invented APL. As a notation to get rid of all those inconsistencies in math notation. And for years he taught math classes with APL on the blackboard without computers.

whether he succeeded, is debatable. But APL is definitely powerful, succinct and "regular".

In APL you don't infer the operation from the types at all. × is elementwise, +.× is inner product /always/, on scalars, vectors, matrices, whatever. The glyph tells you what happens. Nothing is bold, nothing is inferred, nothing depends on what your professor assumed you'd absorbed.

I've been trying to get into Iversonian languages myself with the book: Calculous on J

For something like APL modulo the Unicode symbols:

https://t3x.org/klong/

hi, would you mind linking to the book?

https://www.jsoftware.com/help/learning/23.htm is the closest i've found, but wondering if i'm missing something perhaps, Julia?

tyvm

Probably this: Kenneth E. Iverson - Calculus https://www.jsoftware.com/books/pdf/calculus.pdf
makes sense! thanks very much
I mean, unfortunately being completely explicit and pedantic does not scale.

Imagine that instead of being able to use high-level programming languages, you had to write in assembly everywhere, all the time.

That's what software engineers and computer scientists' suggestions of redoing mathematical notation fee like to mathematicians.

These efforts also don't go anywhere because research mathematics moves beyond elementary arithmetic very quickly, and once you're there, "descriptive" notation becomes as incomprehensible as whatever mathematicians use.

My favorite moment of this kind was when the teacher said 'Ok, and for the rest of the course we will look at a completely different problem', and the equation he wrote down was exactly the same as before. Except that the letters referred to vectors/matrices now.
Aye.

A decade or so ago I wondered if the reason maths was hard was the names being optimised for writing by hand. Everything's single letters if they can get away with it, so when mathematicians run out of Latin alphabet, they use Greek, bold, etc.

Even integration's ∫ is a fancy elongated s.

CS version would be e.g. integral(function=some_named_function, from=a, to=b, with_respect_to=argument_of_function), which may be longer, but is less opaque, especially when you get in so deep there's 3 other people in the world who've looked into this specific problem and you had to invent your own operations.

But that's all an outsider's perspective. I stopped with two A-levels in maths and further maths.

Nope, math notations are optimized for reading, not writing (consider that people still use symbols on computers despite it being quite a bit more tedious to type). The conciseness makes it easier for you to see structural patterns and do symbolic manipulation in your mind's eye. Even something basic like the wave equation would become completely illegible with an expanded notation like that.

Same reason why we write 5-3, not subtract(minuend=five, subtrahend=three).

For those of us with strong verbal processing and weak symbolic/pattern processing, this makes math much more difficult to approach.

Interestingly, discrete math feels the most "verbal" of all the subfields of math I've encountered (I haven't gone very deep). I think this is because notation in discrete math is is somehow closer to compressed prose or logic, whereas other forms of math use notation to fill in for long sequences of symbolic manipulation.

Not sure if that makes sense... I'm curious whether anyone else experiences it that way.

No, math is difficult to approach because it's genuinely deep. Trying to verbalize what is going on is extremely difficult, because you end up saying stuff like "and then do that to all of these things, and then do it again to all of the results, and so on ad infinitum, and then take the collection of all of that, and join it with the collection of doing the same procedure as before starting with a different set of objects, and then join those to yet another set of objects and the results of their operations, ad infinitum, ad infinitum..."

People genuinely struggle to think verbally or visually once we extend beyond 3 dimensions and start talking about infinite-dimensional constructs, uncountable sets, and so on...

Of course, I understand this, and I hope that my comment didn't come across as saying that math would be easier to "do" if it were all fully verbal. Symbolic reasoning and interpretation are necessary for complex reasoning.

And math is, as you know, a deep but traversable graph. The traversal inherently requires a familiarity with the nodes you pass through when reaching a foreign or more difficult concept.

However, I'll give you an example. If I read through more complex math that I’m not comfortable with in Sage, I can build an intuition for the structure of the problem more easily than if I view the “raw” notation. In that sense, it is easier to for me to “approach” — but approaching something is very different from fluently using it — and I’m under no illusion that approaching a topic is the same as beginning to understand it.

Again, this is definition-dependent. To me, “approaching” something means beginning to glean how I might one day understand it. E.g. watching a 3B1B video feels like “approaching” a topic. Here we reach the limits of language already :)

At some point though, the speed of reading/writing is limiting what you can understand. Think of "not fitting the needed formulas/theorems in cache".
I did study math at university for a while. Dropped out eventually. In the beginning I was super annoyed by the brevity and hated it. But after like 3 months it suddenly became natural. I also appreciate the clarity of how mathematicians introduce new ways to write things. That is sometimes even more verbose than some random API docs for a new function…
yes! I really find when computer science ppl start using math notation to describe algorithm very pretentious. we have programming languages in comp sci, we don't need it!
Look up "APL" and "J".
There's a reason they're not more popular...
I was reading about Tao's efforts to get more people to use Lean and apparently a big roadblock for people is that Lean uses very specific static typing.

e.g. to use a very simple example on a white board "3" is "overloaded" as:

- the integer 3

- the rational number 3

- the whole number 3

- etc

When you write a proof in Lean, you have to specify the the type of "3" you mean.

Having using Python/Perl and Java over the years, I get that some math folks found handling this daunting or at a minimum friction to getting into using Lean.

LLMs seem to have been a big help here just for the "translate my math notation into a proof" feature.

To get the hang of this, I used Leanstral (Mistral’s LEAN agent) to vibe-code things like “the game of bridge” and then read the LEAN code.
Sometimes I wonder if mathematics would have been significantly more improved if they hadn't insisted on notating their variables as single letters and also indicated variable types out-of-line (or at all)...

but then I take a look at literally anything the Haskell people do and realize that it probably wouldn't have helped.

For what it's worth, it's not a problem with multiple kinds of multiplication (multiplication by a scalar can be viewed as multiplication by a specific kind of matrix), but with the idea that one can cancel in a multiplication. Since you can't cancel in matrix multiplication, you run into unexpected trouble when you try to do so, even if that's the only multiplication in sight. (In fact, you can't cancel in scalar multiplication either unless you've checked that you aren't multiplying by 0 …. Also, I'll note that surely no young mathematician has encountered the P = NP problem without thinking for a sophomoric moment that the solution is N = 1.)
P = NP is actually one of the worst abuses of symbology I've seen in math.

"""During his own Google interview, Jeff Dean was asked the implications if P=NP were true. He said "P = 0 or N = 1." Then, before the interviewer had even finished laughing, Jeff examined Google's public certificate and wrote the private key on the whiteboard."""

I'd call P = NP computer science rather than math, but perhaps it's reasonable to call it sufficiently on the theoretical side of CS that it really is math.
>For example, in my quantum class the teacher wrote "H Psi = E Psi" on the board, we all laughed, "just cancel the psi" but it turns out one was a multiplcation and the other was a matrix multiplication (operator) and so we had to learn all new nomenclature.

This is one of the great things about Lean becoming used for more and more mathematics: understanding exactly how an operator/function is defined is just an IDE click or few away. It completely removes the ambiguity present in hand-written proofs, although it still can require a lot of reading to actually meaningfully understand the definitions.

I would expand on this. AI is great for me because it can read the equations I don't understand and turn it into code I can understand. I've worked in science for decades and it's still like pulling teeth to replicate a competitor's paper when they are vague and sloppy with their description (often intentionally).
ugh, I had some text book that used R for a scalar value and (edit: \u{MATHEMATICAL BOLD FRAKTUR CAPITAL R} here) for a matrix that was related to the scalar and I had to go back and re-learn a month of material once I figured out that the font was being used with intent