Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Examples of common false beliefs in mathematics (mathoverflow.net)
245 points by gballan on Jan 31, 2022 | hide | past | favorite | 172 comments


It's kind of humbling to know that I can't understand any of that. I barely passed mathematics in British high school - but for some reason took to quadratic equations and other slightly more advanced maths in college, I enjoyed it back then - but simply cannot read nor understand just about all of the topics in that thread.

I'd have to look up what the "/" in "M/L" means in the 5th reply (I didn't)

There are so many _symbols_ used in mathematics. It's all as if they're spells written by wizened greybeard wizards and passed down to apprentices throughout the centuries.


> There are so many _symbols_ used in mathematics. It's all as if they're spells written by wizened greybeard wizards and passed down to apprentices throughout the centuries.

Think of it as jumping into a new codebase you have never worked with before. It is full of strange functions calling each other for unknown reasons. It takes a while to get a good intuition for why.

M/L could be written Field-extension(M, L). That might make it easier to Google what's going on, rather than having to pick up a group theory book. And indeed in this case it would be extra helpful, because M/L could also mean "quotient group" or even "division" depending on the type of the objects M and L. I personally prefer M:L for field extensions.

But Googling individual concepts is hardly a good way to learn group theory. So I don't think it matters too much. For anyone that spends enough time working in the given field, the notation is by far the easiest thing to figure out.

In general it is nice that mathematics - still being largely a handwritten endeavor - has the freedom to introduce new notation where it makes sense. See https://mathoverflow.net/questions/42929/suggestions-for-goo... for cool examples of new notation improving the lives of everyone.


> For anyone that spends enough time working in the given field, the notation is by far the easiest thing to figure out.

I want to emphasize this because the weirdness of math notation comes up often. The difficulty of grasping mathematical concepts far outweighs notational concerns. Getting used to notation in a specific field is an absolute drop in the bucket compared to understanding the theorems and proofs, and often the reason notation is so idiosyncratic and inconsistent is because it's meant to try to reflect human intuition, which is idiosyncratic and inconsistent in comparison to the mathematics from which it is derived.

Once you really get into mathematics, notation is so far down the list of things that make learning mathematics hard that I don't think it's worth the associated cost of trying to change it on a large scale.


I'm not a computer scientist but as a programmer I enjoy dabbling in computer science papers and while I often do understand the underlying concepts (sometimes very well since I've been using these concepts daily for decades) I often find myself incapable of following a paper just because the notation is hopelessly obtuse.

The immediate example for me would be lambda calculus which makes a lot of sense to me when expressed in code (be it lisp, python or Rust) but just looks like vomit in theoretical papers, for instance:

        (λy.M)[x := N] = λy.(M[x := N]), if x ≠ y and y ∉ FV(N)
This looks like a perl one liner from an obfuscation contest.

Why is it that software engineers in a few decades have come to the conclusion that proper variable naming is important and abuse of sigils a bad idea but mathematics don't feel the same way?


Variable naming is important because variables are used to represent almost anything, you have autocomplete and search so longer variable names are quickly typed, and most lines of codes will have one, two or three of these names.

On the other hand, notation in mathematics is used to represent only a limited set of common concepts for the field, you don't have autocomplete and a single line can contain a lot of concepts. For example, compare two expressions of Stokes' theorem (given HN typesetting limitations):

    ∫_A dω = ∫_∂A ω
versus

   integral(A, differential(ω)) = integral(boundary(A), ω)
While the second one is easier to understand at a first glance, the problem of that equation is not the symbols but the concepts behind them. And to understand the concepts you're going to go over similar equations time and time again, and at that point the extra letters and extra space used is going to complicate both writing and reading the equations. Of course, there is always people who overuse and underuse notation, but if mathematics relies heavily on notation it's for a reason: it's useful.

Edit: Also, the second one is only "easy" if you're familiarized with function calling in programming. One could argue that to go full notation-less you should only write in proper sentences, and that would make it even more complex.


> One could argue that to go full notation-less you should only write in proper sentences, and that would make it even more complex.

Reading Newton’s principia is humbling. He does that the whole book; it takes him pages to explain concepts we now learn before university and that can be condensed in a couple of equations. Finding words to describe the maths he uses is difficult, you can almost feel the insane amount of work just to translate the concepts into sentences. It’s a wonderful example, and of course a masterpiece. But reading it is also very difficult because of all the noise around the concepts. Words are fine to give an intuitive understanding, but at some point you need equations.

Same for Maxwell’s equations, for example. You’d spend less time learning basic calculus and algebra than trying to understand what the hell he was meaning.

Or 19th-century chemists, who used fancy and complicated names for compounds that are described much more clearly and succinctly with a chemical formula. Yes, you need to learn the formalism, but it pays off.

Some counter examples are Einstein and Feynman, who could communicate complex concepts with words in an understandable way. Though even them need some abstract notation at some point (lots of it, actually).


I can search the words. I can ask people what the words mean. If don’t even know what the symbols are called then how do I begin?

I had this problem when I started higher level maths and the Greek alphabet was used. I couldn’t ask what a symbol meant when I couldn’t say what the symbol was. I couldn’t write down a symbol whose name was read out when I didn’t know what it should look like.

I tried learning the Greek alphabet but flash cards and spaced repetition didn’t work for my ADHD brain and I just had to stop doing maths, which was a shame, because up to that point I was good at it.


> I can search the words. I can ask people what the words mean. If don’t even know what the symbols are called then how do I begin?

Usually by looking at the words that surround the equation. Most math texts will introduce notation in words, and it's common to repeat something in words and notation (e.g. 'let the field extension L/k...'). I have studied math for five years and I don't think I ever had the problem of not knowing how to search for something. The only problem I had with notation was finding the LaTeX code for a specific symbol, but other than that the bigger problem were the concepts.

There are also glossaries at the end of books and in some specialized pages too (https://en.wikipedia.org/wiki/Glossary_of_mathematical_symbo...)

> I couldn’t ask what a symbol meant when I couldn’t say what the symbol was. I couldn’t write down a symbol whose name was read out when I didn’t know what it should look like.

In my classes these problems were usually solved by asking "what's that wiggly thingy" or "how do you write 'alpha'".

And the greek alphabet is not used because mathematicians like to annoy people. There are certain customs for how objects are notated. x,y,z for unknowns/variables; f,g,h for variables; α,β for angles; A,B for matrices; G, H for groups... They are used because, even though they might be harder for beginners, they aren't harder than the concepts they're describing and help a lot in reducing the cognitive load when reading things.


Great to hear you didn’t find these things a problem and that they aren’t really that hard to understand.


Not sure whether you're being sarcastic, but in case you are:

The internet, including this forum, is chock-full of people making useless comments like "well I like it" or "it works for me", just asserting their views or experiences while advancing no argument and offering no discussion.

The post you just replied to is not doing that.

The poster you replied to is taking the time to describe and explain his experiences and their implications. He's contributed a lot more to the conversation than you have, and doesn't deserve sarcasm.


You weren't sure whether I was being sarcastic, yet you /are/ sure that the post I sarcastically responded to was written in the spirit of contribution, and was not itself insincere.


Sincerity doesn't matter when the commenter is correct. I've taken plenty of math classes, and everything he describes is accurate.


There's only 24 letters in the Greek alphabet, and any given piece of math doesn't use more than a few of them at a time.

You're clearly capable of learning at least one alphabet, why was the second so much harder?


First one probably took hundreds of hours or practice and a ton of exposure, to be fair.


> First one probably took hundreds of hours or practice and a ton of exposure, to be fair.

Learning the Greek alphabet shouldn't take more than 10 hours. Not that one needs to. I never did. However, in a given discipline, practitioners tend to be consistent on which Greek letters they use for which concepts. As long as you spend time on a given topic, the Greek symbols should become ingrained - just as knowing how to write a for loop in C would become if you do it often enough.

And I would hope people studying math spend a lot more than hundreds of hours on it. If someone came and complained about the arcane syntax used in programming languages and hadn't spent, say, 100 hours programming, I don't think you would give much weight to their views.


Actually you have an example of the unexplained oddness there: what does the underscore mean?


I can't put subscript on HN (or at least I don't know how), see https://en.wikipedia.org/wiki/Generalized_Stokes_theorem (first equation) for how it should be typeset.


> (λy.M)[x := N] = λy.(M[x := N]), if x ≠ y and y ∉ FV(N)

As someone who spent a lot of time in mathy subjects, this is very readable to me - even though I don't know lambda calculus. I'd posit that if you have trouble with this, it is merely due to not spending much time in math.

Imagine someone who spent all his time in BASIC and he suddenly reads a Java codebase, and complains about the syntax.

> Why is it that software engineers in a few decades have come to the conclusion that proper variable naming is important and abuse of sigils a bad idea but mathematics don't feel the same way?

Because they've been doing it for a few hundred years longer than SW engineers have. I hear this refrain often here on HN. I would love to see someone write a textbook on electromagnetics or quantum mechanics using this verbose notation. The derivation of a harmonic oscillator (without ladder operators) takes a few pages of this concise notation. I shudder how lengthy it would be when more verbose.


I would recommend two things:

1. Since you seem to someone who reads papers sometimes, I would encourage you define your "programming notation" and start proving theorems in that notation. Do it for sufficiently complex proofs: the ones that require a few different lemmas, span several pages, and use some non-trivial algebra. Then, attempt to present your proof to someone in your notation. Judge for understanding.

2. You might very well succeed. But if you don't, wonder why out of many many software engineers (or profs at software engineering oriented degrees) over the past few decades who read math/cs papers, no one attempted to use "programming notation" to write a book or notes to communicate mathematics to others?


WRT 2, plenty of people use more "programming" style notation. Most cryptography papers these days define algorithms as sequences of steps that look quite a bit like code, just with Greek letters for many of the variable names (but italicized words for function names). EG this paper[1] picked from the last week of IACR preprints shows the style. That's just the first one I clicked, the title looked interesting. Most of the rest use a similar style.

The big reason for single-letter variable names is that historically multiplication can be denoted by concatenation. It makes formulae shorter, so they don't need line breaks. Personally I don't think that's a huge benefit, particularly when there's more than one sort of product possible so you end up needing to explicitly denote multiplication anyway.

[1] https://eprint.iacr.org/2022/106.pdf (Page 7-8)


Not everything in math is suitably expressed (or, perhaps, discussed) in an algorithmic form. Much (most?) of mathematics is operating at a level of abstraction that is far removed from an underlying machine model (in contrast to algorithms, like, well, the cryptographic algorithms you mention).

Take matrix multiplication, imagine seeing this:

  C = zero(m,p)
  for k from 1 to n
    for i from 1 to m
      for j from 1 to p
        C_ij += A_ik * B_kj
Now suppose that B is invertible and we actually want to know A in terms of B and C. Oops, we can't figure it out because we've tied ourselves to this algorithmic expression. In contrast to a more typical algebraic expression which describes not a computation but a relation:

  C = AB
  CB^-1 = ABB^-1
  CB^-1 = A
Perform that manipulation with the algorithmic description that helpfully obfuscates the relationship between the parts.

[And this is a small example, algorithmic expressions of algebraic ideas, like plain English expressions of the same, does not scale very well.]


Sure, as a physicist, I have written papers with pseudocode for algorithms, and I think we would do well to express algorithms in this way. That's definitely an improvement that is slowly percolating various fields. But most mathematical theorems and their proofs are not algorithms, and not suitable for expressing this way.

The reason for single-letter variable names is that mathematics is best learned by manipulating ideas by hand on paper and pen. And that many mathematical expressions are long and if we started using longer names, we would end up writing only a couple of statements per page, which would be much annoying than just using symbols.


> 1. Since you seem to someone who reads papers sometimes, I would encourage you define your "programming notation" and start proving theorems in that notation.

Dijkstra did just that[1]. That same site has hundreds of examples of him proving things in that very programmer friendly notation. Bear in mind that Dijkstra was trained as a “mathematical engineer” for his higher education.

I’m not trying to be controversial, but traditional mathematicians are decades behind the best computing scientists when it comes to crafting formalisms. To be fair the typical practicing programmer is even further behind.

I can only speculate about the appeal of a notation that makes it difficult or impossible to just let symbol manipulation do the heavy lifting. Perhaps mathematicians enjoy the intellectual exercise of holding all those concepts in mind? Perhaps they, like many guilds, appreciate the barriers to outsiders that they feel increase their own prestige? Or perhaps it’s just sheer inertia? I really don’t know.

[1] https://www.cs.utexas.edu/users/EWD/transcriptions/EWD13xx/E...


> I’m not trying to be controversial, but traditional mathematicians are decades behind the best computing scientists when it comes to crafting formalisms.

Could you provide examples? The Dijkstra article doesn't seem like a marked improvement.

> Perhaps mathematicians enjoy the intellectual exercise of holding all those concepts in mind?

Mathematics is not symbol manipulation. I wish it was as easy as that. Mathematics requires you to hold all the concepts in mind while studying and working.

> Perhaps they, like many guilds, appreciate the barriers to outsiders that they feel increase their own prestige?

I am incapable of finding an example where the barrier to outsiders is the notation and not the concepts themselves.


> Could you provide examples? The Dijkstra article doesn't seem like a marked improvement.

As I said, there are hundreds of examples on that site.

> Mathematics is not symbol manipulation. I wish it was as easy as that. Mathematics requires you to hold all the concepts in mind while studying and working.

Of course concepts must be understood, but that doesn't mean they need to be held in mind for the vast majority of the derivation. In many cases for example it's sufficient to know that an operation is associative to perform some manipulation, without needing to fuss over the specifics of the concept that operation captures. Unless of course you insist on a notational convention where the syntax is semantically ambiguous, as is common practice among traditional mathematicians.

> I am incapable of finding an example where the barrier to outsiders is the notation and not the concepts themselves.

What does the following mean? What concepts must be held in mind to understand it?

  sin(s + i + n)

Even the average graduate mathematician is absurdly above the general population average for raw cognitive ability. Because of this, the frankly primitive approach to syntax is less of an impediment to doing interesting work than it would otherwise be. On the other hand if one desires to make mathematics more accessible to persons of ordinary intelligence, then reducing the cognitive load by clearly defining the semantics of a formula using an unambigous syntax is certainly necessary. Evidently though that's of little importance to the mathematical guild.


> As I said, there are hundreds of examples on that site.

In that article or in the whole site? Because the article just seems like different notation, no great improvements.

> In many cases for example it's sufficient to know that an operation is associative to perform some manipulation

Whenever that's the case, mathematicians have already found a way to use notation to that advantage. See for example the case of groups and rings, where the operations are usually denoted by '+' and '·' (addition and multiplication) even when they might not necessarily be those operations just because it makes operations more intuitive.

> What does the following mean? What concepts must be held in mind to understand it?

Well, you need to know what the sinus is and what is addition. If you don't have those concepts it doesn't matter that I write sin(s + i + n) or 'The sinus of s plus i plus n' (not to mention that there's ambiguity there too, does 'of' refer to 's' or 's plus i plus n).

> On the other hand if one desires to make mathematics more accessible to persons of ordinary intelligence, then reducing the cognitive load by clearly defining the semantics of a formula using an unambigous syntax is certainly necessary. Evidently though that's of little importance to the mathematical guild.

Notation is not the issue when explaining mathematics. The mathematical guild has done a ton of effort in improving math education, and you'll be able to find videos and texts that barely have any notation or equations. Notation exists because once you learn the concepts, it reduces the cognitive load of transmitting those concepts.


> Well, you need to know what the sinus is and what is addition. If you don't have those concepts it doesn't matter that I write sin(s + i + n) or 'The sinus of s plus i plus n' (not to mention that there's ambiguity there too, does 'of' refer to 's' or 's plus i plus n).

Incorrect. In the example I gave one merely needed to understand multiplication, addition, and the distributive property. And you, who are observably skilled in the art of mathematics, failed to follow a grade school level formula. So much for ambiguous syntax not being an impediment to understanding even when all concepts involved are comprehended.

> Notation is not the issue when explaining mathematics. The mathematical guild has done a ton of effort in improving math education, and you'll be able to find videos and texts that barely have any notation or equations.

It's baffling to me that anyone would attempt to argue that ambiguous syntax is not an issue for explaining mathematics. Please understand that the following unflattering comparison is intended merely for clarity and not to insult. To me it feels like trying to argue with a flat earther that the world is round. The absurdity makes argumentation virtually impossible.

> Notation exists because once you learn the concepts, it reduces the cognitive load of transmitting those concepts.

I agree. In fact that's germane to my original point. The mathematics guild is using primitive notation compared to what computing scientists discovered in the latter half of the 20th century. I'm not saying that notation is bad or even that the traditional amgbigous syntax isn't an improvement over just writing everything out in some natural language. I'm saying the mathematics guild is stubbornly ignoring notational advances that further reduces cognitive load.

> The mathematical guild has done a ton of effort in improving math education

Then how do we explain the complete lack of measurable progress in the average American secondary school student's mathematical ability? It appears to me that regardless of how much effort has been expended, little has come of it.


> Incorrect. In the example I gave one merely needed to understand multiplication, addition, and the distributive property. And you, who are observably skilled in the art of mathematics, failed to follow a grade school level formula. So much for ambiguous syntax not being an impediment to understanding even when all concepts involved are comprehended.

So which notation would you propose that would allow me to understand the formula without knowing those concepts?

> It's baffling to me that anyone would attempt to argue that ambiguous syntax is not an issue for explaining mathematics. Please understand that the following unflattering comparison is intended merely for clarity and not to insult. To me it feels like trying to argue with a flat earther that the world is round. The absurdity makes argumentation virtually impossible.

I am not saying it's not "an issue", I am saying it's not the issue. Ambiguous notation is a problem, yes, but when our language is ambiguous too I don't think it's a problem you can fully solve. And definitely one that will be solved by removing notation.

> I'm saying the mathematics guild is stubbornly ignoring notational advances that further reduces cognitive load.

Such as? Because I still haven't seen those advances.

> Then how do we explain the complete lack of measurable progress in the average American secondary school student's mathematical ability? It appears to me that regardless of how much effort has been expended, little has come of it.

I'd guess that has more to do with local policies and resources than any effort of any mathematician. It seems weird to evaluate the work of a global community based on a measurements of schools in a specific country.


First I want to say that I really appreciate your responses. You're obviously writing in good faith and I'm finding this interesting. Thank you for helping me clarify my own understanding.

> So which notation would you propose that would allow me to understand the formula without knowing those concepts?

We agree on the importance of understanding concepts. I showed the difficulty for one who does understand the concepts. Surely a student who is learning them and thus by definition doesn’t know them would have even greater difficulties. I propose that a notational convention that forgoes the invisible multiplication operator and that distinguishes between ordering operations and function application rather than using parentheses for both would be considerably more clear. Such as, for example, the one Dijkstra adopted. I’m confident that you would have easily understood either of the following:

  sin.(s + i + n)
Or

  s*i*n*(s + i + n)
A student who doesn't understand one or more of the necessary concepts will at least be able to see from the syntax that different concepts are being expressed. I don’t think 1-3 extra glyphs is too high a price to pay for that reduction in ambiguity. There is still ambiguity of course, such as are the expressions in R or C? I like type declarations for that reason. By the way I do agree with you that no syntactic improvement can completely eliminate ambiguity. I just think we should still do our level best to avoid introducing it gratuitously.

Once the student has achieved proficiency with the requisite concepts using a more sensible notation, supposing they have an interest in further study, they will then need to learn the customary notation on account of the great and valuable body of work that uses it. I think that’s acceptable though since learning new syntax will always be a part of learning math and as you say the real challenge is mastering concepts and not syntax.

> It seems weird to evaluate the work of a global community based on a measurements of schools in a specific country.

You make a good point here. It would be better to make a global comparison using something like PISA math scores and seeing if didactic innovation has resulted in any improvement in the places it has been implemented. I’m not aware of any such improvement, but the world is a big place so that’s hardly evidence that there isn’t any.


> Surely a student who is learning them and thus by definition doesn’t know them would have even greater difficulties

But a student who is learning them will not start by looking at the equation, but at the concept, and that concept will disambiguate between sin() and s·i·n.

The example you use is interesting. Yes, that would remove ambiguity between sin() and sin. But how would that notation evolve? If in most instances it's clear when you have function application and when it's multiplication, people will stop writing it. Same with the multiplication operator.

Not to mention that notation also introduces ambiguity, because the dot is part of the written language, so you'll have instances where it isn't clear whether the dot means "apply function" and when it means "sentence stop".

Even assuming that the notation stays and doesn't devolve to something that's faster to write and to read, what did we actually achieve? We wouldn't have removed the complexity of learning trigonometric functions. You wouldn't stop a student from doing sin.(a + b) = sin.a + sin.b, for example, or trying to use the same formulas for sin and cos.

My point is that while you will have some instances where notation could be improved (and naming too, for example closed and open sets are confusing because they are not inverse properties) because most of the time what's difficult is the concept itself, notation is like an extra step after having gone up four flights of stairs.


> But a student who is learning them will not start by looking at the equation, but at the concept, and that concept will disambiguate between sin() and s·i·n.

Some symbolic (broadly construed, including drawings, vocalizations, etc) representation is going to be required to communicate any concept. Why not use one that's minimally ambiguous? I get your point that we can hope the student will not struggle too much with the meaning of sin on the day the day the sine function is being taught. Even so, concepts once introduced usually appear elsewhere. We shouldn't be surprised if after learning both the sine and the invisible multiplication operator, the student might be confused as to whether or not some string is a sequence of multiplications or a function name. This isn't just hypothetical either, I've been in enough math classes to see the students of ordinary intelligence struggle with this.

> The example you use is interesting. Yes, that would remove ambiguity between sin() and sin. But how would that notation evolve? If in most instances it's clear when you have function application and when it's multiplication, people will stop writing it. Same with the multiplication operator.

I consider using invisible operators to be generally unwise. I wouldn't consider adding ambiguity to save a key or pen stroke a wise trade-off. I'm aware that many mathematicians do, and all I can say to that is that it baffles me. In humility I'm willing to allow that they know something I don't, so perhaps my bafflement is a personal defect. Even so I don't think I want to repair it. In my own work I appreciate the clarity too much. And since that work is just reasoning about programs I want to write and amounts to personal notes and not something I have any interest in publishing, it doesn't much matter to anyone else what notation I use.

> Not to mention that notation also introduces ambiguity, because the dot is part of the written language, so you'll have instances where it isn't clear whether the dot means "apply function" and when it means "sentence stop".

LaTeX and other comparable typesetting software adequately solve for this. As for manuscript, there are also ways to indicate whether a portion thereof is a formula or explanatory text. What I really think is important though isn't the choice of the glyph "." but avoiding using the same symbol for two completely unrelated concepts like precedence and function application.

> Even assuming that the notation stays and doesn't devolve to something that's faster to write and to read, what did we actually achieve? We wouldn't have removed the complexity of learning trigonometric functions. You wouldn't stop a student from doing sin.(a + b) = sin.a + sin.b, for example, or trying to use the same formulas for sin and cos.

Reading speed is by chunk and not character count. I challenge the notion that f(x+y) is faster to read than f.(x+y). As for being slower to write, I doubt that any mathematics beyond the most basic arithmetic are constrained by typing speed. I accept that there may be a stronger argument for some kind of shorthand in manuscript, but I still doubt the savings are worth it.

As an aside I find this pleasantly parseable:

  sin.(a + b) = 1/csc.(a + b)
although a student who failed to recognize that application binds more strongly than division might suffer. That mathematics deals with parsed expressions and not substrings is certainly a vital concept.

> My point is that while you will have some instances where notation could be improved (and naming too, for example closed and open sets are confusing because they are not inverse properties) because most of the time what's difficult is the concept itself, notation is like an extra step after having gone up four flights of stairs.

I think a better analogy is that it's like going up a set of stairs where the occasional step is false and drops into a pit. Once one gets used to the pits one can navigate the stairs virtually as well as if they weren't there, but that's hardly an argument in favor of booby trapping the stairs. It certainly will make things considerably harder for first time climbers.

Nevertheless, I continue to agree that learning concepts is the more challenging and interesting part of mathematics. I also welcome improvements in clarifying concepts. Sadly, making a complicated concept easier to understand is a much greater challenge than making an ambiguous and muddled syntax unambiguous and clear. My preference is that we pursue both, because they're complementary.


> This isn't just hypothetical either, I've been in enough math classes to see the students of ordinary intelligence struggle with this.

I honestly have not seen that. Maybe some minor confusion between sin and asin maybe, but most of the time it's clear what it's meant.

> I consider using invisible operators to be generally unwise. I wouldn't consider adding ambiguity to save a key or pen stroke a wise trade-off. I'm aware that many mathematicians do, and all I can say to that is that it baffles me. In humility I'm willing to allow that they know something I don't, so perhaps my bafflement is a personal defect. Even so I don't think I want to repair it. In my own work I appreciate the clarity too much.

I have seen tons of times authors omitting notation to make it less cumbersome. It's usually preceded by something like "we omit X for brevity/simplicity in the following". The reason is that symbolic notation exists for density of information and focus. When clarity, details and specifics are required, mathematicians use text.

> LaTeX and other comparable typesetting software adequately solve for this.

Funnily enough, they also solve for sin() and sin if you use \sin (or \mathrm{sin}).

> Reading speed is by chunk and not character count. I challenge the notion that f(x+y) is faster to read than f.(x+y)

The dot is short enough to not change things too much, but compare "xy + yz + zy + xyz" to "xy + yz + zy + xy*z". And this happens a lot, because often you want only symbols for things that matter and remove the redundant things. For example, if you're doing calculus you'll often write down the arguments for the functions, but in differential equations you'll omit them because they're not really important.

> Nevertheless, I continue to agree that learning concepts is the more challenging and interesting part of mathematics. I also welcome improvements in clarifying concepts. Sadly, making a complicated concept easier to understand is a much greater challenge than making an ambiguous and muddled syntax unambiguous and clear. My preference is that we pursue both, because they're complementary.

Yes, but my point is that while notation can sometimes be improved, the relation effort/gains is usually small. For starters, notation is not the hardest things one faces when learning mathematics. Then, you have the issue of improvements in one aspect of notation causing problems in other aspects because the set of symbols we have is limited (for example, dot is used as the dot product in vector spaces too). And of course, the problem of changing notation that is already written. Sometimes the gains are worth the effort, such as the ceiling/floor notation of Iverson (and the bracket, although I don't think it's as standard). But that's reasoning mathematicians use for/against notation changes. It's not because having difficult notation is enjoyable or because it acts as gatekeeping.


Regarding using some notation for multiplication:

You'll be hard pressed to find any symbol/notation that isn't overloaded with other operators in math. Things like '*' and the 'x' symbols have different meanings in different contexts, and when you're doing those things, and need multiplication, you run into problems.

Personally, and I know I'm not alone, when I convert physics equations to code, the '*' symbol is one of the ones that make reading code challenging.

For function application, I can see the problem, and I'm sure most have gotten confused at one point or other where they're not sure if it's a function application vs multiplication. But as others have pointed out, the context makes it clearer.

I think one of the key differences between many here and those who favor the notation is that in SW, the wish is the formalized version (i.e. the code) is readable enough to understand, without much prose (i.e. comments). In mathematics, it usually is not the case - in fact, one of my math professors often had to point out to students that it's better if they wrote part of their answer in prose rather than purely logic symbols. In that sense, there often is little ambiguity. It really should be clear from the context whether you're dealing with the sine function or multiplying symbols. If it isn't, the problem isn't the notation, but the lack of understanding of the context. Having a guide to the notation will not elucidate much.

And for the one who uses a lot of math (some engineers, physicists, and of course mathematicians) - having to write (any) symbol for multiplication is crazy tedious - even if it is just a dot. There is a reason they opt not to put it.


I don't see anything in that link that is markedly different from math notation used by one math community or the other. Sure, there are difference that are "improvements" in some sense of the word, and I think some of those can be adopted. But nothing major, that will somehow massively reduce the complexity of understanding mathematics by non-experts.


> But nothing major, that will somehow massively reduce the complexity of understanding mathematics by non-experts.

To give just one example, when done properly the use of hinting in the multi-line equational proof format will certainly ease the non-expert’s task of following a proof.


The two-column proof has been a thing in math education for over a century [1]. I have been told by math educators that it is almost universally detested by school students, because of how it restricts their thinking. Nevertheless, it would be useful at the research level to include more of this hinting. But hinting is not a notational issue at all.

[1] https://deepblue.lib.umich.edu/bitstream/handle/2027.42/4265...


The equational and two column proof formats aren’t the same. Perhaps you should read Dijkstra’s monograph’s section on it to understand the differences. And to say they are somehow isomorphic is to miss the point entirely. Sure “x is equal to y” means the same as “x = y”, but even the traditionalists recognize the merits of Recorde’s notational device, even if they fail to follow the greater implications thereof.


Heck, I think that Dijkstra invented his own notation for numbers for a presentation/teaching system that he was developing. (I can't find any references to it - I'm desperately hoping that someone else who might have any idea what vague thing I'm alluding to has actually seen it and can link it here)


I can completely understand using shorthand for complicated proofs (defining what they mean at the start). After all that's what I do in code as well: I often import and alias variables in the local scope, but it's limited to a very well defined context and explicit.

What I disapprove of is using these very terse syntax in definitions like, say, in Wikipedia articles.

In other words it's like how I have no issue using a variable named "int i;" locally in a function, but I'd consider it a very bad practice if a library exported a global "extern int I;" in their public interface.


Usually mathematics is hard to understand if a subject matter is new. Most of the time there are some common examples that everyone learns about in a subject, and you learn to notate them along the way. When you write new mathametics you try to stick to the conventions from those examples.

The common way you learn mathematics, the notation comes automatically, and new mathematics is often understood as a variation on the examples you learn.

Some of these conventions you probably know, like having i for the varying number in a sum or product (or loop in programming) which goes up to an integer n.

If you called an integer f or a complex number n it would make it much harder to read.


> Why is it that software engineers in a few decades have come to the conclusion that proper variable naming is important and abuse of sigils a bad idea but mathematics don't feel the same way?

If yo read code in standard libraries, you'll see a lot of either single-letter variables or extremely generic variable names.

Most mathematics is dealing with things at least one level of abstraction higher than a standard library.

In most programs outside of things like standard libraries, a variable usually stands for something concrete and specific. A customer. An order. A specific type of element in a UI. Etc.

In theory papers, a variable usually stands in for something generic and general. An arbitrary program. An arbitrary finite set. Etc. Sometimes even an arbitrary program in a programming language that is not defined in particular but only in general (e.g., "any language with parametric polymorphism", "any language with a specific sort of binding structure between things in these two syntactic categories", etc.).

Again, standard libraries already start using more generic variable names, and most theory papers are dealing with an abstraction level higher than standard libraries.


I'll give some examples in the most strong-man way possible: by choosing the standard library of a famously verbose language (Java). Here are a few examples, with increasing levels of abstraction mapping onto increasing use of single-variable names:

1. A byte is pretty damn concrete. The Java byte implementation [1] uses almost exclusively single-letter names (b,s) or names that are so generic that they might as well be single-letter names (e.g., anotherByte instead of b). When more meaningful names are used, it's because they are public type names (String, int), which is, again, pretty damn concrete.

2. The next level of abstraction is Generics. Here, even Java -- a language whose verbosity is a long-standing joke -- starts using single-letter variable names for both types and values [2].

3. Finally, we dive into things that abstract over generics [3] and start seeing weird sigils in addition to single-letter names. (What does Predicate<? super E> mean?!)

And, again, this is a strong-manned example, since Java is famously verbose and I'm choosing some of the most-used and therefore most verbosely documented .java files in the world.

Notice, btw, that natural language documentation increases as the verbosity of names decreases. This is the same in math, where those symbols are small pieces of 20+ page papers full of english prose explaining the meaning of the symbols.

And, again most mathematics is dealing with things at least one level of abstraction higher than anything you find in a standard library. Sometimes several levels of abstraction.

[1] Byte.java

[2] Dequeue.java

[3] Collection.java


People are different. For the kind of person who's likely to get heavily into math, any infelicities of notation are lower-order problems, that's true.

For other people, the function of math in the school system seems to be mainly to sort them by math ability -- and for that, artificial barriers aren't a problem. So there's little demand for better UX design for nonspecialists. Sucks if you think society would be better off if more people appreciated/understood/applied more math.


I have to vehemently disagree. Notation does more to keep mathematics the domain of nerds than anything else. It's unintuitive, uninformative, excessively complicated jargon which exists only to gatekeep and save paper. It's simply backwards to continue to use such an error-prone system in times of modern technology.


> It's unintuitive, uninformative, excessively complicated jargon which exists only to gatekeep and save paper.

As a mathematician, notation exists because it's easier to read things with good notation than without. I have some advanced mathematics books in my table and in most of the pages you'll find far more text than notation. Notation is usually explained when it starts being used, usually in the definition. For example, the problem with understanding the notation "Aut(L|k)" is not the notation, because if the author wrote "group of field automorphisms of L fixing k elementwise" I'd be equally lost if I don't understand those words. And once I understand those words, the notation makes it easier to read and understand things whenever the author is talking about that group, because your brain automatically identifies the concept associated with the notation instead of having to read the words and linking them with the concept.


People who don't understand math have this phantasy that they would understand everything only if mathematicians decided to use normal language instead of math symbols. This is just a phantasy, there is no simplification if you stop using math symbols, in fact it is just the opposite. Try to describe some intricate math without symbols and you'll see this.


I do complex math without using greek letters and other untypable characters all the time. It's called programming. The order of operations is explicit, the operations themselves are explicit, and there is very little room for ambiguity. The notation is only for saving space, not because it's the be-all end-all absolute best solution for representing mathematics.


Sorry to tell you, but most programming is just elementary school math and boolean operations. In many cases it doesn't even require high school math. I'm not saying it is easy, but it certainly doesn't require any sophisticated math.


> I do complex math without using greek letters and other untypable characters all the time. It's called programming.

This is simple math.

Start writing formal proofs for your programs. You will then be in the realm of something more complex (and still far lower than the level in a research paper).

Even a proof of the complexity of your algorithm (let alone the correctness) will get ugly without this notation.


My first step to trying to understand an unfamiliar equation or proof is, if I am to have any hope of figuring it out, always breaking it down by term and operation and figuring out WTF each one means in context. Usually on paper. In normal words. Typically I end up turning it into something more "algorithmic" (OK, what happens as the value "passes through" this operation, and then on to this next one...). I'm 1000% useless at understanding equationally- or identity-focused writing, and have to both painstakingly decipher every term and translate it to something more algorithm-like before I can do anything more than stare at the page and drool.

So... yes, I do think it would help if at least some of that were already done for me. As it is it takes so damn long that I don't bother unless I have a good reason.


> Think of it as jumping into a new codebase you have never worked with before. It is full of strange functions calling each other for unknown reasons. It takes a while to get a good intuition for why.

Having done consulting, I frankly disagree. Except pathological cases most of the codebases I've been involved in it's possible to open a file at random at quickly make sense of what happens even without prior exposure. With math papers my experience is that you have to go 3/4 references deep before startit to understand where the notation comes from which wastes hours and hours. They should provide normalized names that could be searched for in e.g. a coq-based database of math concepts or something like that.


> With math papers my experience is that you have to go 3/4 references deep before startit to understand where the notation comes from which wastes hours and hours.

Most of the time you'd need even more hours to understand not the notation but the concept themselves. In this list there isn't that much weird notation compared to weird words. For example, 'The Krull dimension of a noetherian integral domain is finite'. Even without notation, I'd expect a non-math major to have to go read 8-10 wikipedia pages just to understand "Krull dimension".


And in codebases you can always search/grep for function names, so it easy to find the definition of everything.

In math it is a strange symbol in a PDF and you cannot search for at all


This is more a limitation of computers and search engines. The move to using more Unicode like in Julia (and hopefully away from PDF to (m)HTML) should make this issue better.


It is also because the notation with single symbols is too short

In code someone would write "lightspeed" and that can be searched. In a paper, they write "c" and when you search for it you find thousands of unrelated things.


> Think of it as jumping into a new codebase you have never worked with before. It is full of strange functions calling each other for unknown reasons. It takes a while to get a good intuition for why.

I think about this analogy from time to time, when I get frustrated by maths. Myself not being mathematician but on occasion needing to read a research paper, my frustration is typically begins with the raw syntax of maths. It’s so obviously optimized for the combined limitations of the human brain’s limited short term memory and the human hand’s speed of writing/typing. Which probably is the correct optimization for high level practitioners.

For communication with non experts, it’s dreadful, but I think fixable post-facto with a auto-notation tool. Think black.py for maths.


Here's the lens I use, hopefully it will help.

A terse equation or statement in mathematics represents what you will understand, the rest of the paper is to get you there.

Wanting to read the main equations and understand them, so as to use that knowledge reading the paper, is backward. If the main equation was ax^2+bx+c=0, you wouldn't need to read the paper, right? It's about the quadratic equation, it's aimed at primary students.

But that's how it works, we keep pounding away at the paper: taking notes, following references, thinking a lot about each of the definitions, then eventually, you look at the main equation and say "oh. ok. I know what this says now".


> Think of it as jumping into a new codebase you have never worked with before. It is full of strange functions calling each other for unknown reasons. It takes a while to get a good intuition for why.

I've basically abandoned all languages/ecosystems that aren't, at the very least, extremely grep-friendly. Static types preferred so I can get that sweet, sweet auto-refactoring, jump-to-references/definition, docs-on-hover, et c.

If we expected people to read code like they're expected to read math, I'd have taken the huge pay hit and left the profession by now. It'd be a choice between that or a spiral into depression ending in tragedy. I don't know how math-loving folks can stand it.


For textbooks, it's a non-concern because the meaning of each equation is explained in the surrounding text. The amount of new notation (by which I mean symbols such as / for group division or notation for differentiation and integration, rather than variable names) introduced by any given textbook is not that much, and as others have pointed out, by the time you finish reading the associated theorems, examples, and have done some of the exercises (very much underrated part of learning mathematics), if you understand the concept represented by the notation, the notation itself is trivial to remember.

Variables, as opposed to notation, tend to be local in scope, so 1) it isn't vital to have a memorable name and 2) it wouldn't really help to have a 'proper' name, either. As an example, if we're talking about two elements from a group, we usually talk about two elements, a and b, in a group, G. Could you call them elements 1 and 2 from an ExampleGroup? Maybe, but there's no clarity provided since these variables are only scoped for a given section. Additionally, longer equations means that it takes longer to read through and check steps like algebraic manipulation in a proof, or application of a lemma or theorem.

What is globally scoped are things like theorems, lemmas, definitions, etc., and those are easy to track down since they are by convention numbered after chapter and section.


>Think of it as jumping into a new codebase you have never worked with before. It is full of strange functions calling each other for unknown reasons. It takes a while to get a good intuition for why.

Software engineers have built careers off of making code more readable, both in terms of the language itself and the codebase it applies to. Mathematicians seem to go out of their way to make their work as obtuse as possible.

Can you imagine if software engineers had stopped at C? If we were all still trying to apply the spiral rule [0] to read everything? That's what reading math papers feels like. It feels like you stopped at C and are unwilling to even consider that there could be a better way to express things.

[0]http://c-faq.com/decl/spiral.anderson.html


> Mathematicians seem to go out of their way to make their work as obtuse as possible.

Mathematicians go out of their way to make their work as understandable as possible. If they wanted to make it as obtuse as possible, you'd just see a picture of chaotic scribbles on a blackboard.

> That's what reading math papers feels like. It feels like you stopped at C and are unwilling to even consider that there could be a better way to express things.

Do you have any suggestions?

Mathematics is a hard subject because it deals with concepts in several levels deep of abstraction. That's a complexity that you can't escape. You can't expect to read a math paper (aimed at researchers in the same field) and understand everything, the same way it would be unreasonable to ask you to write your code in a way that someone who isn't familiar with either programming or the concepts your code works with to understand it if they went to read it.


If I give you suggestions, you're just going to say, "well that's the way we've always done it and people will be confused if we change now", which is exactly what they said about C until someone decided enough was enough.

Even something as simple as the set of integers being the letter Z requires you to understand German to know why we chose Z (and not I) in the first place. Or d/dx being totally unintuitive for anyone not well-versed in differential calc. I'm quite certain that every student learning calc thinks "Well the d's just cancel out there". Granted, I've heard the intuition behind the notation and I understand why it's tolerated. Still, it seems less helpful than it could be if mathematicians weren't married to tradition.


> If I give you suggestions, you're just going to say, "well that's the way we've always done it and people will be confused if we change now", which is exactly what they said about C until someone decided enough was enough.

Believe me, there are a lot of people trying to find better ways to teach and communicate mathematics. There's inertia, of course, but it wouldn't be the first time people change notation because it's better.

> Even something as simple as the set of integers being the letter Z requires you to understand German to know why we chose Z (and not I) in the first place.

I mean, you'd just move from confusing people who don't speak German to confusing people who don't speak English.

> Or d/dx being totally unintuitive for anyone not well-versed in differential calc.

You are not going to find any notation for a derivative that makes the concept intuitive for people that don't know differential calculus. If anything, it's more intuitive than f'.

> Still, it seems less helpful than it could be if mathematicians weren't married to tradition.

Or maybe the tradition has been built because after decades of mathematics nobody has found anything better.


> There are so many _symbols_ used in mathematics. It's all as if they're spells written by wizened greybeard wizards and passed down to apprentices throughout the centuries.

It's a misconception commonly held by non-mathematicians that the symbols are somehow the key to mathematics. I often see complaints, particularly on HN, of it being "impossible to read" research mathematics due to "all the dense symbols".

This isn't how it works. You learn the mathematics. That's hard. As you go along, you realize that some things that require a lot of words can be condensed. So you make up symbols, or, more likely, the source that you're using teaches you some commonly-agreed-upon symbols. Now, once you've learned the math at hand, the symbol isn't the issue anymore.

(Sure, it's a bit of a pain when people disagree about symbols for concepts that everyone agrees should be abbreviated, but in the big picture it's minor)


Japanese is easy, you just learn Japanese and the symbols that are commonly agreed upon to represent it.


This isn't a good analogy, because if you have a human brain then you already understand all the concepts that Japanese is used to represent (except maybe some cultural things that are hard to translate).

In contrast, the language of mathematical notation is used for expressing concepts that are utterly unfamiliar and unintuitive. As a language, mathematical notation is nowhere near the complexity of a full human language, or even a programming language. It's much simpler than that. But the concepts behind it don't come naturally and have to be studied carefully.


While this is true, it doesn't help that postwar mathematics seems to have run out of useful names for things.

Understanding what an algebraic group "really is" (with variations and extensions e.g. Lie groups) is more than one lifetime's work, but if you know what "group" means in English, well, you won't be disappointed. "Ring", even "field" kind of work this way.

If I ever really develop an intuition for what a magma is, and I doubt it, this will not resemble the molten core of the earth. Or will it?


Symbols in math come cheap. Many different books and papers use different symbology for the same idea. Is why a lot of math books have a list at the outset for agreement on what symbol would stand for what idea.

On the other hand, you cannot use non-standard symbols to represent a sound in English. For example, nobody reading an English text will pronounce the letter "k" as "d" whereas mathematicians might do something like that, but they'll let you know in the opening pages of their book.


One of the reasons that Japanese is hard (for a westerner) is that all the symbols used to write Japanese text are unknown. Mathematics is expressed in logic, and that logic is most often expressed in a human language that the reader knows (such as English) plus some symbols. Those symbols are usually either known, or are introduced on a supportive framework of logic, a human language, and known symbols.


> That's hard.


To be fair, I have a graduate degree in engineering and working on a different PhD and there were many things in that these I didn't understand. It's really incredible to me how quickly everything just became category theory in literature - like overnight.

And stuff that used to be simple algebra is now explained as something like 'Abelian group linear transformations'.

I haven't heard of "smash products on pointed spaces" for example, and idk why I would think them to be associative. Fun language though.


From what little I scrolled, I didn't see any category theory. Just some elementary group theory, point-set topology, real analysis, linear algebra etc Most of it standard material for undergrad math majors.

> And stuff that used to be simple algebra is now explained as something like 'Abelian group linear transformations'.

"Simple algebra" means different things in different professions? For example, Dummit&Foote's Abstract Algebra[0] would be considered "elementary algebra" by most mathematicians. For another example, Principles of Mathematical Analysis by Walter Rudin[1] is "elementary analysis".

[0] https://www.amazon.com/Abstract-Algebra-3rd-David-Dummit/dp/...

[1] https://www.amazon.com/Principles-Mathematical-Analysis-Inte...


It's not a race, but I'm even worse; I just tune out and shut down completely in the face of mathematical formulas on webpages. It's a really visceral reaction.

I've done mathematics in secondary school (coordinate systems, Pythagorean wotsit), but I can still visualize those and put them into practical use. Later on I had statistics and linear algebra - that last one I had to redo and really work on, it was only after I did a minor in game design that I could finally map that math to a practical application.

But I just don't have the background - or interest! - in anything else related to math. And I don't miss it either, else I would force myself to learn about it.


It's not just you. Stephen Hawking said that for each equation he included in A Brief History of Time, he would cut his readership in half.


Do you have the same reaction to math in code form? I think I often don’t have the patience to expand things like symbols and ranges in my head in the case of mathematical notation, but math-as-code doesn’t require the same effort.


I have the same with code. I only read or write simple stuff. I used to like mathematics on school, until I just couldn't follow it anymore. It got me hot (physically), with headache akin to migraine. Which gotten worse throughout the years I studied. Now I tend to avoid such state. Its not worth the hassle.

There's a couple of professions/qualities I have a lot of respect for, mathematicians is one of them. I appreciate them for three reasons: their ability to deal with the sheer complexity correctly and calmly, the fact it is unbiased, like science used to be (or rather: a couple of sciences aren't). The third reason is the one outlined above, generally: its a quality I've been unable to possess.


I struggle with math notation but have no trouble with math written as code (C, python functions....). It took me years to be able to see a summation as a for loop.


Amusingly, I'm somewhat the opposite - math written as code takes a lot more parsing to understand. And with regards to for loops, I'll quote something I read a long time ago:

> “When you see a for, while, or do, all you know is that some kind of loop is coming up. To acquire even the faintest idea of what that loop does, you have to examine it. Not so with algorithms. Once you see a call to an algorithm, the name alone sketches the outline of what it does.”[0]

It's why in my last C++ job, I spent a lot of time convincing colleagues to use more of the functions in the algorithms library - so that it's easier to see what they're trying to do, and less likely to insert a bug.

Consider languages that have the ~sum~ function. Would you recommend they instead write a for loop? If not, just replace ~sum~ with the Sigma symbol and you have the mathematical notation.

[0] http://www.drdobbs.com/stl-algorithms-vs-hand-written-loops/...


> I'd have to look up what the "/" in "M/L" means in the 5th reply (I didn't)

M/L means that M is a field-extension over L. A concrete example would be C/R (the complex numbers over the reals).

Algebraic number theory, in particular Galois theory, studies field extensions by looking at the group of symmetries: the field automorphisms of the larger field that fix the smaller field. For the concrete example above, the Galois group is a group with two elements: the identity function and the function that maps i to -i and keeps real numbers fixed. It's not a coincidence that the dimension of C as an R-vector space is the same as the size of this group (or that the degree of the polynomial that has i (and -i) as roots has degree 2).


If anyone is wondering why field extensions aren't transitive, you can watch Fields medalist Dr. Richard Borcherds explain it: https://youtu.be/zAqVrdNE81g?t=798


I'm not a mathematician so I don't know if my reply here has any impact either. I don't understand the + in the first reply! It's an addition of vector spaces, but I'd have to go look up into definitions or subject material to understand what it means..

On the note of notation, mathematics repurposes notation all the time, hopefully in a way that helps the person reading to understand by analogy or at least not be mislead by the ananlogy.

You said M/L and the / I think of then is quotient group, but that's apparently not what it means (I wouldn't know without reading it in context).


> I don't understand the + in the first reply!

If X and Y are vector spaces (e.g., a line or a plane through the origin), then X+Y is the sum of all elements of each.

If you think about this example (dim(X)=1 and dim(Y)=2) you can easily recover the first formula intutively. There are two cases for the formula

   dim(X+Y) = dim(X) + dim(Y) - dim(X ∩ Y)
Case 1: X is a line inside the plane Y. In that case X+Y=Y and X∩Y=X, and the formula of the dimensions becomes 2=1+2-1

Case 2: X intersects Y at the origin. In that case X+Y is a three-dimensional space and X∩Y is 0, thus the formula says 3=1+2-0.


And you need some rule for what summing the elements means, where does it come from, I'm curious? If it's just a formal sum then the elements are incomparable between different spaces - and we can't say that one contains the other.

I think I must understand when you say "X + Y" is the sum of elements that you're not using a formal sum {x} + {y} of each element x, and y but you mean sort of like the union of elements in X and Y?


No, the idea is that they are all vectors in the same all-encompassing vector space. You can always sum them. What's missing on the formula is that all of these vector spaces are subspaces of the same larger one. That's implicit, otherwise the sum wouldn't make sense. Think that you are playing inside R^n and juggling a few lower-dimensional subspaces of it.


You can think of each vector space as being embedded in the direct sum of the two.


That makes sense, thanks!


> I don't understand the +

To add to the confusion, in some contexts the sum is the same as ("isomorphic to") the product!


Reading about unfamiliar mathematics always gives me empathy for my 7yo's struggles to remember and work with basic arithmetic notation. It's only obvious once you've internalized it! Until then it's completely arbitrary and you constantly need to remind yourself what all the squiggles on the page really mean, which is hard when you're still trying to wrap your minds around the concepts themselves.


Quadratic equations are now a standard part of British secondary school mathematics.


"Back in mah day" - they weren't :)


I think you may have wiped them from your memory. :-)


> There are so many _symbols_ used in mathematics. It's all as if they're spells written by wizened greybeard wizards and passed down to apprentices throughout the centuries.

That's exactly what they are!


I wonder what’s going on with the passive aggressive edit war in this answer: https://mathoverflow.net/a/23521

It’s about whether Euclid’s proof that there’s no finite set of primes is a proof by contradiction or not. The fact that this is disputed at all shows a certain unwillingness to use original sources — maybe each of them only looked at a different textbook’s restatement of the proof. Because no matter whether a proof of the theorem can be stated without contradiction, it took me all of 30 seconds to find a translation of the original proof to show that Euclid did in fact use one:

> I say that G is not the same with any of the numbers A, B, and C.

> If possible, let it be so. Now A, B, and C measure DE, therefore G also measures DE. But it also measures EF. Therefore G, being a number, measures the remainder, the unit DF, which is absurd.

(http://aleph0.clarku.edu/~djoyce/java/elements/bookIX/propIX...)


You can read the proof as saying that for any finite set of primes, there is a prime number outside the set. And within the context of Euclid's proof, given the set {A,B,C} of primes, the proof constructs a prime G outside of it.

Within constructive logic, there are different non-equivalent definitions of infiniteness (that are all equivalent in classical logic):

  - A set is non-finite if its finiteness leads to a contradiction.

  - A set is infinite if any finite subset of it can be extended.
Infiniteness implies non-finiteness, but non-finiteness does not imply infiniteness. Further discussion can be found here: http://nlab-pages.s3.us-east-2.amazonaws.com/nlab/show/infin...

Within the context of the MathOverflow answer, the claim that Euclid's proof establishes infiniteness as opposed to non-finiteness, is correct. And the proof is therefore not "by contradiction", because that would only show non-finiteness.

[edit] Edited out some impoliteness.


Trying to be maximally precise, the prime G isn’t really constructed, but it must exist because ABC+1 must have a prime factorization by the fundamental theorem of arithmetic. And the contraction is that G can’t be any of {A, B, C}.

Edit: The above added a nit-picky side-point to your original response, which was a lot shorter. Afterwards, you edited your reply to be a lot more exhaustive and a lot less... friendly? I don't think that's the best way to use HN's edit window. But see my grandchild comment below for my response to all the points you edited in afterwards.


G's existence is proved in a way which is valid in constructive foundations. It is therefore constructed.

And this construction can be carried out algorithmically: Just find the prime factors of ABC+1.

Obviously, this is not computationally efficient, but constructive logic doesn't care. Constructive logic only cares that a construction can be carried out, and that its worst case time complexity has some explicit bound. The existence of this bound for finding larger primes implies a weak bound on the density of the primes.

Also, I made some edits to my original comment.


Yes, you edited your reply to be a lot less polite after you saw my reply to your reply, and I don’t think I did anything to provoke that. I might’ve responded differently if I had realized you were in attack mode.

Some points I’d like to clarify:

1. Multiple contradictory edits in the answer is weird by Stack Exchange standards regardless of the merits of the discussion, that’s the main thing I observed.

2. Whether Euclid uses contradiction or not is not really open to interpretation: the word “absurd” appears right in the proof. If people want to split hairs about whether that contradiction is in the lemma or the main proof, I guess fine.

3. There are of course multiple subschools of constructivism that accept and don’t accept different things. Not all of them ignore computational complexity. For example, some ultrafinitists reject the unique prime factorization theorem on the basis that you can’t really execute the factorization algorithm even for relatively modest numbers. To be clear, that’s not exactly my view, but I would for example agree that something like “just find the prime factors” sweeps a bit of relevant subtlety under the rug: you can only do that conceptually, not actually.


> Yes, you edited your reply to be a lot less polite after you saw my reply to your reply, and I don’t think I did anything to provoke that. I might’ve responded differently if I had realized you were in attack mode.

Sorry. Point taken. I'm way too quick to annoy at the moment, and I retroactively edit too much. I probably should keep my comments relatively unchanged after making them.

> If people want to split hairs

This entire discussion is about splitting hairs. And the MO answer acknowledges that there's a contradiction somewhere, and only argues over where it is. See the last edit on the answer.


> Sorry. Point taken. I'm way too quick to annoy at the moment

That makes two of us. No offense taken.


On the other hand, "Euclid's proof is not not by contradiction" is a (probably unintentional) meta-restatement of the constructive vs. classical approaches.


This statement can be proved without contradiction (except the little one in the middle mentioned in the current answer):

(1) Given a finite set of primes {p_1, ... p_n}, then there exists another prime not in that set.

However, turning that into the following statement does require proof by contradiction (or, equivalently, the law of the excluded middle):

(2) There are an infinite number of primes

Euclid himself made statement (1) and proved it without contradiction, so looking at the original source gives the impression that you don't need it. But (2) is so similar-looking that many people incorrectly make the deduction that it doesn't need proof by contradiction either.


You could state (2) as a contrapositive where your re-phrasing of (2) is:

If A is the set of all primes, then A is an infinite set.

Contrapositive proof: Suppose A is a finite set containing only primes. By (1) we know there exists some p not in A and therefore A is not the set of all primes.

I don't believe contrapositive needs law of excluded middle but I'm honestly not sure. Logic is not my area


Oops, perhaps I meant proof by contradiction is equivalent to contrapositive (rather than equivalent to law of excluded middle). If you write out a classic high school proof by contradiction formally, then you find yourself basically writing out the contrapositive.

Let's say you know A and ~B=>~A, then you can deduce B. Proof by contradiction: assume otherwise, i.e. ~B, then by ~B=>~A you have ~A, but that contradicts A.

So if you have ~B=>~A then you have A=>B.


Okay yup, turns out this is correct and it's slightly upsetting to me honestly haha. Just for someone else if they're interested where contrapositive and contradiction both use law of excluded middle (the ==* step requires it):

Contrapositive:

A-> B == A or ~B == ~B or A ==* ~B or ~(~A) == ~B -> ~A

Contradiction:

~(~A and B) == ~~A or ~B ==* A or ~B == A -> B


You might be interested to know that in intuitionistic logic, you still have a one-sided contrapositive law, i.e. (A > B) > (~B > ~A):

  [1] A > B(assumption)
  [2] ~B (assumption)
  [3] A (assumption)
  [4] B (modus ponens on 1 and 3)
  [5] ~A (proof of negation on 3, 4 and 2)
It's only the converse that no longer holds. In general familiar equivalences from classical logic are still valid in intuitionistic logic but only in one direction.


What you have quoted is a proof of negation, which is not the same as proof by contradiction. Your quoted part of the proof is constructive, ergo not by contradiction.

Proof by contradiction has the following form: ~A -> false |- A. But the quoted proof has the form A -> false |- ~A.


The issue is that some people believe in intuitionistic logic, so to them, there's a difference between assuming something is true and deriving absurdity in order to prove its negation (which they think is perfectly fine, and which is what Euclid was doing), and assuming that its negation is false and deriving absurdity in order to prove that it's true (which they think is a logical error). They reserve the term "proof by contradiction" only for the latter type of proof, i.e. the one they think is not a valid type of proof. Whereas for believers in classical logic, to say that something is true is just to say that its negation is false, so they don't generally care about the distinction between these two types of proof---as far as they're concerned it's a valid proof, and a "proof by contradiction", either way.


> which they think is a logical error

This is FUD designed to discredit intuitionistic logic.

An instance of LEM is not "a logical error"; it is merely a claim which requires justification. For the claim at hand -- i.e. some natural number G is a member of a finite, constructed set, or it is not -- the corresponding LEM instance is perfectly true [and proven]. We say that the claim is decidable. So (given that we have a proof the claim is decidable) there would be no problem in intuitionistic logic with this part of Euclid's proof even if it took the form of a proof by contradiction (which of course it doesn't).

To make a more general rebuttal of the FUD, proofs by contradiction are not automatically invalid in intuitionistic logic; they just require one extra piece of evidence.

Furthermore the claim that whether something is a proof by contradiction depends on one's position on the logical validity of LEM is ridiculous on its face. There is a fact of the matter as to whether any given proof is by contradiction. There may be disagreements as to the definition of "proof by contradiction", but the definition which includes proof of negation is completely useless. In mathematics we usually treat useless definitions as in some sense "false" in order to facilitate communication - e.g., 1 could be prime depending on definitions, but that would be useless so we facilitate communication by treating "1 is prime" as false. Likewise here we should treat as false the claim that the quoted section of Euclid's proof is by contradiction.

Source for claims about LEM/proof by contradiction: https://www.ams.org/journals/bull/2017-54-03/S0273-0979-2016...


I am certainly not intending to intentionally spread FUD, though I guess you probably mean that I am unintentionally propagating FUD spread by other people.

All I mean by saying it's a "logical error" is that it's not an argument which is always valid. Of course particular instances can still be correct.

I think a definition of "proof by contradiction" which includes proof of negation is useful if you are reasoning classically (and this doesn't have to be something you always do, or always avoid; you can reason classically some of the time and intuitionistically some of the time). Although the ideal situation to avoid any confusion would be to have three separate terms, one covering both types of proof and two for the individual types.


That edit history is ridiculuous and one of the reasons I hate such reddit-esque conversations. It's a bunch of people thinking they know their stuff giving wrong answers.


It's things like this that help me to remember how very little I know about mathematics. I looked about halfway down and saw that I didn't have the slightest idea what any of them were talking about. I console myself with the thought that there are other subject matters that I am an expert in that they are not. Probably.


No worries. I have a PhD in physics and understand a small fraction as well. Some I have no idea where to place (even though I went though extended math, and I quite like the subject).


For most of these you’d likely be able to understand the concept at a good enough level to see the contradiction if you looked up the definition of the concepts. For example I think the one about tr(AB)=tr(BA) not holding for arbitrary permutations across a set of more than two matrices is something you could try proving yourself.


The weight of the names in this thread is really something. I'm constantly amazed at the quality of what is posted on Mathoverflow. Kudos to them for harbouring such a community.


Something intersting about MathOverflow is that it started as an independent site, with the creators eventually agreeing to make it part of the StackExchange network. I believe part of the agreement allows the owners of MathOverflow to break off from the main site again, in the event of a major disagreement between MO and SE. I'm sure they're glad to have an escape hatch given the recent aquisition!


Somewhat related: I just learned of an Open Source rival to StackExcange by the name of Codidact. [0] Looks like they have an active math subdomain. [1]

[0] https://codidact.org/

[1] https://math.codidact.com/


Heh, I guess that makes them the Texas of StackExchange.


These look so advanced to me the whole thread looks like nerds hurling dark magic spells at each other. And I consider myself technical.


I guess the probability theory and statistics is the field with most false beliefs. It's because human intuition doesn't really work, but everyone is trying to use it anyway.

For example, the answers mention the belief that if 3 distributions are pairwise independent then they're jointly independent. Another false belief is that if 2 distributions are independent then they are conditionally independent. Also, people might think that you can pick a real number from R uniformly.


Yes, people think they have some idea of what is random, when in fact the human mind is made to pickup on patterns. For example, people think that a random set of numbers is one where different numbers appear evenly distributed, which is just false.


> people might think that you can pick a real number from R uniformly

This one seems to stand out though - is there a specific "non-math" situation where this is going to cause problems ?


Any unspecified conceptual problem of the type “choose a number” has this issue.


How is "conceptual problem" different from "math-only context" ?


I can't imagine a reasonable non-math context :)


The most common false belief I met during the years is that people think you can use math as-is in software. Reality is that you almost always need knowledge about numerical methods and for easier things you need to understand how floating-point arithmetic works.


I think fixed-point math is highly underrated in programming and needs better language support. Otherwise people try to use floats for world coordinate systems and end up with the Far Lands.


Well, error analysis is one of the most abstruse areas of mathematics.


Can someone give a counterexample for this one? I read the comments but I still don't see how it's false:

> If f is a smooth function with df = 0, then f is constant.

I assume the smoothness and df = 0 criteria are said to hold on the whole domain, right? Yet the claim is that f fails to be constant over the same domain?


Consider a disconnected domain (say, union of a few open balls in R^n), and f being constant in each connected component, but having different values in each ball. The differential is indeed everywhere 0 in the entire domain.


D'oh, I missed the possibility of an open domain. Thanks!


And, even better, the dimension of the kernel of d just counts how many connected components the domain has.

There is a similar thing in graph theory, where the kernel of the incidence matrix counts how many connected components a graph has.


Yea, the statement is missing "locally constant". It's a poor example given the assumptions are not clearly stated.


Oh, these kind of problems happen time and again in real-life maths: you use a lemma until someone points out that you are assuming something which may not take place (like connectedness of the domain, here).


Yea, but like I said, it's a poor example as a "false belief" in this context, because as stated, it isn't false for some unwritten assumptions and is false for other unwritten assumptions. In mathematics, well and actually everything, the importance of assumptions is paramount. The problem is just ill-stated.

This happens in engineering and software all the time. Time and time again, issues being resolved usually revolves around clarifying assumptions.


Got a degree in math. For me, the repeated act of rigorously proving counter-intuitive results put me into a state of mind where I tried to avoid having "beliefs" until they were proven results.


This article's posting on HN is possibly inspired by the recent post about the unreasonable uses of bubble sort [0] as it is a counterintuitive belief in CS that an inefficient algorithm could ever be useful. I am pretty sure that there are other beliefs in the computing world that are also common and completely false, such as "Deleting a file removes the data from the drive" or "Twice the number of cores working on a task means the process will finish twice as quickly."

[0]: https://news.ycombinator.com/item?id=30112906


Here's an interesting one: "this set is open, hence it is not closed". Apparently this is wrong, and R is both open and closed. Does anyone have a clear explanation as to why this is or what this means? I can't quite understand the comment explaining it.


Let me try to explain it: One usually thinks of open sets as collections of numbers without a "boundary" - the boundary of the set is not part of the set but outside of it. If we look at the open set, we see that it's just "interior" points. You may have seen this when distinguishing on the number line between intervals like (-1,2) and [-1,2].

(-1,2) are all number between -1 and 2, but not including -1 and 2. [-1,2] however are the same numbers, but including -1 and 2. Slightly different sets, where the former is open and the latter is closed.

Another way to think about it is for any point in (-1,2), we can find some number that is "closer to the boundary" but still in the set. This is not true for [-1,2] if we pick -1, because any number below -1 is suddenly outside the set. -1 is a boundary point, and therefore that side of the interval is not open!

Why do we need this? Well, lots of calculus is about sequences that converge in smaller and smaller distances. One can for example define whether a function "jumps" by checking whether the inputs have boundary points or not (etc.).

But for math people, this is not general enough, because it requires things like distances. Hence, they have a more general definition: There's a collection of stuff, and open sets are sets of this stuff that follow some rules.

Now here is the important part: Closed sets do not have an extra set of rules. Instead, they are just defined as the complement (or opposite) of an open set.

So R - the set of all real numbers - has a complement which is the empty set. The opposite of "all numbers" is nothing! Since R is open, by definition, the empty set is closed.

Cool. But then, if we take our rules, we see the the empty set is also open. Whoops. Then, again by definition - the opposite of the empty set - which is R, so all numbers - is closed.

Confusion conclusion: Both R and its complement, the empty set, are both closed and open at the same time.


You can define closed sets positively as well. A closed set is one which includes its whole boundary. An open set is one which excludes its whole boundary. Clearly then it is possible for a set to contain only part of its boundary, in which case it's neither closed nor open. Somewhat less obviously, it's possible for a set's boundary to be empty, in which case it is both closed and open.


We just call those sets "clopen".


Thank you for the clear explanation! Pretty sure we talked about open and closed intervals in my first week of undergrad but as a mechanical engineer we stopped there and never took a look at the more general concept.


It's just unfortunate terminology -- a closed set is one whose complement is open, not one which is not open.


Indeed. Sets are not doors, as the saying goes, because they can be open and closed at the same time.


It's not a common false belief, IMO. On the first day you learn about open and closed sets, you learn that the for any metric space S, the set S is open in S and the empty set is open in S, and they're closed as well. (Students typically get introduced the concepts in the context of metric spaces.)

Note that sets are always closed or open relative to some other specified (often implied) set S.

In some courses, a closed set (in S) is defined to be a set which is the complement S-T for some open set T. In others, a closed set (in S) is defined to be a set which contains all its limit points (in S). And then whichever isn't the definition gets proven as a theorem.


I think the first _and_only_ day many people learn about open and closed sets is when they learn about the specific example of open and closed intervals in ℝ. That happens early in high school.

The misconception is about not knowing that the generalization to arbitrary sets has some unexpected properties.

(Half-open intervals are neither open nor closed, by the way)


I never learned about open and closed "sets" in R, in high school, only intervals.


Indeed, sets come later, around university, and I would assume that most university fields that use mathematics do NOT need to care about some sets like R (and C ?) having the clopen property ?


I guess all intervals are sets (they are a collection of numbers after all) but not all sets are intervals. Any mathematicians here to tell me if I just said something stupid?


No, that's correct.


So can a set that's not an interval be open or closed?


I'm currently reading (almost finished, in fact), Roger Penrose's The Road to Reality. Despite having most of a master's in mathematics, I found his comment early on about trying to keep the mathematics accessible to be a bit laughable. Modern mathematics can get abstruse very quickly. It's likely that a typical HN reader could read the abstract of a PhD dissertation in just about any field except mathematics and have an idea of what the dissertation is doing. For mathematics, it's possible that even with a PhD if the dissertation is outside their specialty they might not know what it's about.


> Many student believe that 1 plus the product of the first n primes is always a prime number.

Wow, pretty sure I read this in New Scientist magazine in the early 2000s, quoting some "cryptography expert". Guess he wasn't such an expert.


... or the journalist misunderstood and misquoted the expert.


I’m getting re-asked cookie preferences every time I go to sites like SO. Is it OK for sites to ask for cookie preferences on return visits to their sites after preferences have been set and “saved”? Or maybe I’ve turned off the Cookie that would have saved preferences…


I've just cosmetic-blocked those banners on uBlock Origin. It's a bit annoying to have to do it on every SE site, but these banners are huge and cover up a lot of the page, so it's worth it.


> If f is a smooth function with df=0, then f is constant.

Why would this be wrong? If the derivative is zero everywhere, how would the function not be constant? Or does this mean something completely different?


Think about the domain of the function

EDIT: Someone already provided the answer here https://news.ycombinator.com/item?id=30146426


These seem fairly advanced, so I don’t know if I would call them “common”. But maybe I am out of the loop. Are these concepts and very specific sounding beliefs actually widely known to math majors or CS majors?


Yes (although not for CS majors, this is very math heavy). For all of the top answers I went through, I think most math majors have believed it, know someone who has believed it, or could at least plausibly see how someone could believe it.

To the question of how advanced these are, with only a few exceptions, the majority of things there are covered in undergraduate analysis, algebra, and topology courses.


For context, mathoverflow is for math professionals, that is, math degree and above, so high level mathematics. I wouldn't expect CS majors to know about topology, complex analysis, advanced algebra... But for math majors, these are common.


Yep. There's also https://math.stackexchange.com/ for math questions lower than research level.


Math Majors, yes. CS majors, maybe? It really depends on how the university treats CS.

At the University of Waterloo, CS is strictly in the faculty of Math, so I'd expect students to know much of this (I think? I'm in Computer Engineering at UW, which is a distinctively different program).

OTOH, I'd imagine things are different in universities where CS is thought of as its own major, with no Software Engineering/Computer Engineering as an alternative.


Computer science at U Washington (UW also) is hosted in the college of arts and sciences and engineering as two different programs. But the former program has its own faculty and isn’t related to the math department in the closest. The latter program doesn’t have its own faculty at all, sharing with computer science and electrical engineering.


Interesting! I was actually about to go to U of Washington, but ended up avoiding due to the fact that they don't let students directly into CS, but instead have a cut-off system in second year.


Many of them are part of a standard CS curriculum. Most of them are part of a standard math curriculum. The "level of difficulty" is very uneven, though.

Things like "Many students believe that 1 plus the product of the first primes is always a prime number" (a misunderstandment of Euclid's proof that there exist infinitely many prime numbers) or "If A implies B then B implies A" (difference between a necessary and a sufficient condition) are literally middle-school math.

Things like "If 𝑓(𝑥,𝑦) is a polynomial with real coefficients, then the image of 𝑓 is a closed subset of ℝ" are high-school level.

The top answer about dimensions of vector spaces is a well-known undergraduate-level "trap".

"The Krull dimension of a noetherian integral domain is finite." is, to be brutally honest, not a sentence I understand in the slightest.


The Krull dimension one is one of the few that might not be found in an undergraduate program. You'd probably come across it in an algebra class that straddles the line between upper undergrad and intro graduate coursework (but Noetherian integral domain is something you would usually find in the sophomore/junior undergrad algebra class often taken as a prerequisite for the other hypothetical class).

Also

> "If 𝑓(𝑥,𝑦) is a polynomial with real coefficients, then the image of 𝑓 is a closed subset of ℝ"

I don't think that this is high school level. Secondary school level math rarely touches anything related to multivariate polynomials (and usually doesn't have a notion of "closed sets" beyond closed intervals, but that's not as relevant apart from how the problem is stated).


Yeah, I studied CS, so my background in algebra beyond elementary concepts is very limited. As you said in another comment this is very math heavy.

I don't doubt that what you're saying is true, it's just something far outside what I personally am familiar with.


I have a math degree, and I could understand most of them by the end of my second year.


Common false beliefs in people who know way more about math than I do.


I'm surprised this didn't devolve into a "0.9999 == 1" flame war. Good on the SO mods.


Most of the proofs of that (like 1/3 * 3) feel like they're trying to trick you, but if you just write it as "0.999… == 1.000…" it feels obvious and easy to visualize to me.


Not sure if "belief" is the right word.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: