Secondary math education, for me in the UK, didn't deal with anything outside of elementary algebra, Euclidean geometry, some statistics, and relatively simple calculus. Nobody talked to us about imaginary or complex numbers, or bayes theorem, decision theory, or non-trivial mechanics problems until I was in college (age 16+). Nobody mentioned matrices, broader number theory or discrete transforms until I was in university. I studied EE not compsci. Things like algorithmic complexity I had to learn for myself and from Knuth. I'm trying to grok group theory right now to help with my understanding of crypto. Before this, it was never mentioned throughout my education, so I don't know what courses you would have had to take to learn that. The fact that I didn't even know group theory was important to crypto until after I had made the choice strikes me as a bad sign.
The common theme at every level is learning cherry-picked skills, before you're even told what the branches of mathematics even are. Everything seems disjointed because you're not taught to look past the trees for the forest. Most people infact, even technical folk, go through their entire lives without knowing the forest even exists. Any idiot can point to a random part of their anatomy and posit that there's a field of study dedicated to it. The same goes for mechanics or computer science. You just can't do that with mathematics as a student.
I loath academic papers. Often I find I spend days or weeks deciphering mathematics in compsci papers only to find the underlying concept is intuitive and plain, but you're forced to learn it bottom up, constructing the authors original genius from the cryptic scrawlings they left in their paper... and you realise a couple of block diagrams and a few short paragraphs could have made the process a lot less frustrating.
So many ideas seem closed to mortals because of the nature of mathematics.
Often I find I spend days or weeks deciphering mathematics in compsci papers only to find the underlying concept is intuitive and plain, but you're forced to learn it bottom up, constructing the authors original genius from the cryptic scrawlings they left in their paper... and you realise a couple of block diagrams and a few short paragraphs could have made the process a lot less frustrating.
This is SO TRUE.
The same thing happens to me regularly, and not just with "computer science" but with other technical fields, hard sciences, and mathematics. The purpose of most academic papers is not to explain (let alone teach!) ideas in an intuitive manner, but rather to express them in formal, correct, unambiguous terms -- that is, to make them as accurate and critique-proof as possible for publication in some journal.
> The purpose of most academic papers is not to explain (let alone teach!) ideas in an intuitive manner, but rather to express them in formal, correct, unambiguous terms -- that is, to make them as accurate and critique-proof as possible for publication in some journal. Their intended audience is subject matter experts.
Their purpose really is to let the authors show off how smart they are, impress their peers, and advance their careers. The other properties derive from that.
;-)
edit: I don't want to disparage research in general, BTW, but specifically, the scientific paper redaction process.
I assume you mean the "reduction" process. The "redaction" process is an important part of the scientific process!
I know you were being sarcastic, but I think you are also being a bit unfair. Publication is necessary these days at perhaps an unfortunate rate, I agree.
However at least most research mathematicians publish largely to share ideas. After all, that's the best part of the job. Certainly this is true of the vast majority of them in my experience, and the ones weren't motivated by this tended to be very focused on teaching and very good at it.
Just as a specific example, I had this experience with Bayes' Theorem <http://en.wikipedia.org/wiki/Bayes%27_theorem>. As an informal paper for my computer security class, we used Bayes' theorem to implement aimbot detection in a simple FPS. It sounds like a big, complicated theorem with a special name that some genius had to come up with and has complicated notation involving probabilities and logic symbols.
And then it's basically (paraphrasing with reckless abandon) just the probably of your event divided by the total probability space. Lots of words and jargon and theory given in countless papers and articles, and it pretty much just boils down to intuitive addition, multiplication, and division.
And our aimbot detector actually worked pretty damn well! Just gather some data points to determine probabilities, plug them into the simple formula, and it was always correct in our test cases.
"and it pretty much just boils down to intuitive addition, multiplication, and division."
Or does it? After all, probability is one of the very first mathematical tools to be divised, but a rigorous theoretical underpinning for probability and statistics had to wait until measure theory, millenia later. And this was not for want of trying.
Part of what makes things "boil down" to the simple and intuitive is years of hard work. Reading Newtons original work on the calculus is painful and convoluted, it took many hands to polish it to the point you might have seen it in.
If we've done our jobs well as mathematicians, eventually the essence of an idea will be easy to understand an apply. If you really want to understand it though, you may have to dig into some much deeper work. And often, as with many thing is in mathematics, human intuition will just tend to be wrong about it (e.g. the Monty Hall problem).
It's the same with the crypto we rely on. There are some quite complex mathematical underpinnings for the primitives, but once understand their properties all the common protocols are actually incredibly trivial. DSA and various other iconic crypto protocols are just linear algebra using these new mathematical primitives. The complexity is about the same as using hash functions to build hash tables. Making protocols secure is actually mostly an implementation challenge (as it is with hash tables), and keeping systems secure, pragmatically, is about key management and social challenges.
I was incredibly proud when I noticed, just through algebraic manipulation, without reading it anywhere first, that you should be able to extract the public key used to create an an ECDSA signature. Schnorr signatures don't have this property. This is kind of sad in a way becaue it's trivial, but you have no know how the primitive functions and the difference between a field and a group.
Unambiguous? I wish! The notation in most fields is way more ambiguous than code; you're expected to resolve the ambiguity by the norms of whatever research community it's for. Code isn't necessarily clear, but at least all the information is there to be decoded.
And what's sad is that this "formal, correct, unambiguous term" pattern doesn't only apply in academic papers, but also in textbooks and learning and education (e.g. have you ever read a statistics textbook?) -- when we are trying to teach students concepts, we end up getting the opposite of what we wanted to achieve.
The purpose of most academic papers is not to explain (let alone teach!) ideas in an intuitive manner, but rather to express them in formal, correct, unambiguous terms -- that is, to make them as accurate and critique-proof as possible for publication in some journal.
In other words, the purpose is primarily tenure and advancement.
The issue is that a lot of intuitive stuff is wrong. When you formalize, you remove the simple, intuitive explanation - but you make it much harder for you to remain wrong, if you are wrong - or to become wrong, if you started off right.
As a simple explanation, consider the difference between explaining the Monty Hall problem - which might seem to be philosophical, open to interpretation - and coding it up. The moment you code it up --- go ahead, code up a monte carlo simulation that compares the two alternatives of switching doors or maintaining the same choices, and spits out a running count of which is what percentage correct. I'll wait while you code. ---
the moment you do that, you see two lines in your code that make the explanation 100% irrefutable and completely obvious.
That is why papers are written this way. Intuition can go both ways.
That would be more convincing if the scientific papers were written in a way that make the point as clearly as the coded-up version of Monty Hall problem. In practice, it's more like they publish the assembly code and when you ask why they didn't do it in Python or something, they lecture you about the need for formal rigor.
I think there's generally selection bias about what part of an exposition makes the "a-ha" hit in two ways. First, your a-ha moment may not be the same as someone else's, but you're less likely to observe theirs. Second, your own a-ha is likely the product of a larger production than the moment itself of which you're most attuned to.
A good mathematical author must be guarding against both of these selection biases.
Why 100? Why not just 5? Some people would 'get' it at five, some people at 100, and some people at a million. If you have to choose out of a million doors, and no matter what the host opens all but one of them, so that your prize is either behind the door you picked, or behind the other one -- then should you switch your choice?
Well, obviously, you should - with a million doors, it becomes obvious that you have just a 1 in 1,000,000 chance of having picked it.
But thing is - that "obvious" thing 'should' be just as obvious with 1000 doors, 100, 20, 5, or...3....
It's a matter of degree - not kind.
So appealing to a way of intuiting it that is a lot more 'obvious' - while in fact having the exact same format of question, just goes to underscore how fickle intuition can be.
That said, taking individual variables to ridiculous extremes is a great way to thought experiment and an awesome way to get intuition to work better.
That's odd, I found the 100 doors example is the most efective way of explaining it.
It's easy, pick a door, then the host discards 98 doors in which the car isn't. Do they still think that the probability of the other door left is the same than the one they picked? I want to play gambling games with them!
Pick a door, the host discards 98 doors
where the car isn't. There are now two
doors left, so it's 50:50.
Actually, I'm with them (except for the 50:50 bit). I don't find the 100 door version any more convincing than the 3 door version. Under the usual assumptions the reveal of the other doors gives no information about the one you picked, so that will always remain 1/N. The remaining door will therefore be (N-1)/N, which is bigger if N>2. So switch.
For me the problem is that math papers/articles lack a proper API documentation. By that I mean that it's very hard for me to understand what a lot of symbols mean because mathematicians (and physicians) love to use single letters to name various concepts and functions.
Worse, they also like to use the same symbol to denote different things in different fields. I'm sure it's extremely convenient to have a shorthand when working and sharing "code" with some peers in the know but for stuff like wikipedia articles it makes things appear more complex and obscure than they should.
I don't mind if people call a local function variable "n" in some code, it's usually non ambiguous. But if you export a variable "n" in an external API you will be screamed at. Why is it ok for maths?
To give a quick example, the letter R in maths can mean the set of real numbers. It can also (with a different typeface!) mean Ramanujan summation. Oh wait, you're doing physics? Then R is the gas constant, silly.
Also, i is the imaginary unit. Except in physics, then it's j, because i is used for currents. Makes sense.
I agree. To clarify, its not that the reader gets confused between the gas constant and the set of real numbers. The issue is never actually explicitly stating "R represents the set of real numbers" or "n is a natural number".
At uni it once took me hours to work out that "." was used for function application in one particular paper. "." was also used for multiplication and (in some example code) had the usual object oriented meaning in the same paper. It was incredibly frustrating.
> The issue is never actually explicitly stating "R represents the set of real numbers" or "n is a natural number".
It's at the start of like... every book ever. Pretty much any book on mathematics will start off with a fairly in-depth list of symbols.
It's the math equivalent of expecting you know what a 'while' loop is when you go reading through the documentation for a library (reading a paper) - basic programming literacy is assumed.
Yep, it's also a good practice for programming. Describe every single-letter variable in the README, which everyone obviously reads and memorizes before diving into the code. I still do this as a throwback to the days when we wrote code on parchment that cost a week's wages per square cubit.
You realize that there are fairly standard single letter variables in programming, for which people are supposed to understand the type of the object, right?
I see a lot of 'n' for a number, 'i', 'j', 'k' for loop indexes, 'a' and 'b' for the variables in a swap function, 'f' and 'g' for various things involving function composition.
The case of knowing what a capital pi or sigma means, however, is much more like knowing what a "while" loop is.
This makes me realise the potential that a supposed "Math API" has. Mathematical functions described visually, with unambiguous terms, and even properly named variables so they can be implemented even if you don't understand how they function entirely.
I would love to see a wiki style website that aims to produce such a wealth of information.
I've argued the same with a mathematician friend of mine. I hate academic papers because of their seemingly convoluted and backwards way of explaining things. His answer was that papers were not made to convey thoughts to laymen, they were made to communicate facts and proofs with as little ambiguity as possible, optimized for reading by other mathematicians. It's meant to be high bandwidth (hence the terse style and lack of intuitive explanation) and low ambiguity (hence the seemingly backwards order of explaining things and the pages of "a is blah, b is foo").
It's an interesting discussion because from the mathematician's perspective, they don't see why they should cater to anyone who doesn't bother absorbing the lingua franca and the method of delivery. Countering that is the philosophical argument that information should be as available as possible. Countering that is how practical and useful that is, and whether the cost / benefit would be worth it.
I still think we can have our cake and eat it too, but I'm not sure. I think if the purpose is merely to transmit proofs and axioms unambiguously, I think we can have a language that performs just that and nothing else. I think stuff like this exists, but I don't know why it isn't the standard to publish with it.
Then the explanation can reside alongside this unambiguous description, and can take whatever liberties it pleases.
I think the process of peer review often causes papers to be optimized for being hard to critique rather than easy to understand. I have myself participated in writing papers where we decided to leave out some non-crucial but very useful detail just because it opens up too many questions and opportunities for critique.
> I still think we can have our cake and eat it too, but I'm not sure. I think if the purpose is merely to transmit proofs and axioms unambiguously, I think we can have a language that performs just that and nothing else. I think stuff like this exists, but I don't know why it isn't the standard to publish with it.
Math papers are written with high compression using standard tables of translations to reduce the processing load when trying to manipulate several things at once.
But why present these in English, where you have to manually apply those tables of translations, knowing full well that humans are error prone?
Why not use a computer readable and standardized language like coq / gallina (http://en.wikipedia.org/wiki/Coq), where you can verify the proof unquestionably and immediately AND you can use a compiler to translate the theorem into latex / english / whatever form you want immediately?
If the "standard tables of translations" really exist and are really as standard as you claim, this method is clearly superior and that table can be utilized to translate to "mathematician lingo" if people still desire to stick to that.
They're generally published in symbols, which largely have a direct translation in to more formal methods, with the English being included to comment on the motivations, things which might not be formalized in the theory, etc.
The primary purpose of mathematics papers is for distributing information between mathematicians in a form which it's easy for them to integrate in to reasoning about new theorems. To reason about new theorems, you really want as many ideas/concepts to be able to be present in the mathematician's head free of context (ie, with the structure represented, but ignoring the traditional intuition about what it is or used for, which English naming can bias towards).
Part of the problem of Coq is that you'd have to formalize a lot of the metatheory in to something computable, and we've been struggling to find a good approach to that since the 40s/50s. We have a lot of trouble with trying to formalize the axioms in a way that you can compute results from them. (Axiom of choice + axiom of excluded middle can cause problems in Coq, for instance.)
A secondary concern is that the translations from full sequences of axiomatic steps to constructs which are higher level (ie, built on the idea that some axiomatic steps must exist in this instance, but we haven't found them explicitly) can be really complicated, as well as much bulkier.
A math paper is usually no more than tens of pages, while a computer proof of a theorem can run in to the thousands.
Your reply is fascinating - the part about size difference and the difficulty in expressing certain things in theorem provers.
About the size difference, I don't understand why it takes so much longer. What is so fundamentally different about Coq (or E or whatever) that it takes so much more space that just specifying it with mathematical notation?
Is it because you have to start from scratch? Has no one created a "standard library of existing theorems / proofs" that one can depend on?
Or is it because mathematical notation is just that much more expressive?
So if verifying proofs is that difficult, what the heck are mathematicians doing when they read a paper? Not really actually verifying the proof? It's hard to believe that verification is one of those things that humans are just better at. (As opposed to, say, formulating new ideas, which is fundamentally difficult for computers)
What is it that is so fundamentally difficult about verifying proofs formally, when a mathematician can just read a paper and call it done?
If provable theorems are too hard, why don't we simply just start with a parseable mathematical notation standard? It's be pretty similar conceptually, but would be standardized. Surely that's not too difficult? That could still serve as the portion of the paper that is the "transmitting new findings formally" part, whereas the remaining part can be devoted to explanation.
You seem to imply that mathematical notation should be standardized, but are omitting that even languages explicitly meant for computation are not.
Why do you think mathematics should be more standardized than programming? (Actually, I'd argue it's already more standardized than programming, and you're arguing for some kind of extreme position.)
Sorry, forgot to reply to part I had meant to:
> Is it because you have to start from scratch? Has no one created a "standard library of existing theorems / proofs" that one can depend on?
It's because we have essentially picked the parts of mathematics we're going to force to be true about half way up the stack. If the axioms don't permit those theories, then we'll do away with the axioms and pick a different set. (And perhaps explore why they failed to, and what is required in axioms to enable those theorems.)
As I mentioned before, mathematics already has a good way to relate high level theorems and such to these mid-level structures, and you see it employed all the time. The problem is that many of these structures aren't easy to compute with, so we're essentially having to work backwards to find a set of formalities that we can both do mechanistically and support the theorems/propositions we'd like to be true.
Mathematicians generally don't evaluate the truth of a new paper relative to the axioms, but relative to the already established results in a field. So you question about why libraries don't exist is essentially "Why have mathematicians not replicated hundreds or thousands of years of effort in to a format that's hard for them to personally use, but is good for these tools we've developed in the past couple decades?"
Well, people are working on it, but it's going to take some time. And the moment you pick a slightly different set of axioms, you need to rebuild large portions of the library you allude to, even if the results are still true.
(Derivations in terms of base steps are considerably longer than most mathematics proofs would be, which often omit some "standard" kinds of details. For an idea of what this is like, read portions of Principia Mathematica by Russell and Whitehead.)
Hey - thanks for actually replying and taking me seriously. This is as far as this discussion has ever gotten between me and someone who seems to know what they are doing. I'm actually learning a lot.
> It's because we have essentially picked the parts of mathematics we're going to force to be true about half way up the stack. If the axioms don't permit those theories, then we'll do away with the axioms and pick a different set.
Is this related to the famous incompleteness theory? If you hit a proof that you can't prove with this set of axioms, you just try another one? It blows my mind that you can just pick any set of axioms you like. It feels like there should be a set of core axioms that is the fundamental truth. Maybe it's time that I read G.E.B and the Principia. Any recommendations for these kinds of questions?
> So you question about why libraries don't exist is essentially "Why have mathematicians not replicated hundreds or thousands of years of effort in to a format that's hard for them to personally use, but is good for these tools we've developed in the past couple decades?"
Okay, so people are working on it. It seems like a miracle that the alternative of "we're doing it all in our heads" actually works:
> Mathematicians generally don't evaluate the truth of a new paper relative to the axioms, but relative to the already established results in a field.
This is what I'm taking about. What if - somewhere in the middle - there was a mistake?
...
> Why do you think mathematics should be more standardized than programming? (Actually, I'd argue it's already more standardized than programming, and you're arguing for some kind of extreme position.)
My main concern is - every year we get someone who thought they proved, for example, P != NP, only to find a few months and a billion man hours later that there is a minute error on page thirty-five where the author misunderstood and overlooked some very subtle thing. Wouldn't it me much more pleasant if this task was automated?
Wouldn't it be amazing if we could use machine learning methods or tree search methods to formulate a proof mechanically? Or automatically eliminate proof steps to make them less complicated! Compiler-style optimization if you will. Wouldn't it be amazing if thousands of existing proofs could be analyzed statistically? Wouldn't it be great if we could machine-translate standardized proofs into regular ol' mathematical notation or whatever language we want? When we have the ability in the future, we can go back and verify them all en masse! Am I deluded in thinking any of this could be valuable?
> You seem to imply that mathematical notation should be standardized, but are omitting that even languages explicitly meant for computation are not.
Well, at least programming languages without standards have an implementation that is the official implementation! So arguably, they are more standardized.
Anyway, thanks for replying, I haven't had such an interesting exchange on HN in a while. I'm eagerly awaiting your response (if you have the time)!
edit: Also it seems like learning a standardized mathematical notation would be only marginally harder that learning to typeset regular mathematical notation in latex! Heck, you could have it compile down to latex.
edit2: Another thought I had was, since mathematicians don't prove things all the way from the bottom axioms up, but from the closest accepted truth, couldn't we have verification systems do that instead? That seems a more easily reachable goal.
> It blows my mind that you can just pick any set of axioms you like. It feels like there should be a set of core axioms that is the fundamental truth.
Think of it like this: it's not that Euclid set out a set of axioms and they just happened to make geometry we could use to talk about triangles, lines, squares, and matched up (to varying degrees) with behavior we see in the world; rather, it's that we saw those relationships and went looking for the minimum set of rules from which they could all be derived. There are (of course) other choices we could have made, which are useful in different cases, such as talking about geometry on a sphere instead of geometry on a flat piece of paper.
> This is what I'm taking about. What if - somewhere in the middle - there was a mistake?
But there's a use in doing this that you might not see. Let's take for an example the history of limits. Originally, there was a sort of fuzzy conception of what a limit was - and everyone knew that it was problematic - but the results of limits if they had a particular kind of behavior were insanely useful, proving all kinds of things about the real numbers and how functions on them behaved. And so people, as they realize more formality was needed, went back and redefined a limit over and over in more rigorous terms until we reached the modern definition.
This process of continual refinement fleshed out the concept much better than had someone simply plopped down the modern definition and called it good. It gave a corpus of different approaches, linked up the intuitive notions with formalisms, and led to several generalizations applied to different contexts.
This organic process of exploring an idea iteratively is really what drives mathematics forwards.
> Wouldn't it be amazing if we could use machine learning methods or tree search methods to formulate a proof mechanically? Or automatically eliminate proof steps to make them less complicated! Compiler-style optimization if you will. Wouldn't it be amazing if thousands of existing proofs could be analyzed statistically? Wouldn't it be great if we could machine-translate standardized proofs into regular ol' mathematical notation or whatever language we want? When we have the ability in the future, we can go back and verify them all en masse! Am I deluded in thinking any of this could be valuable?
No, no, most people in the math community agree with you. They've been working on it since at least the late 1600s, with some of Leibniz's work, and likely much earlier. Euclid's work on geometry, in some ways, was the start of making mathematics so explicit as to be obviously true (or able to be reasoned about without anything being inferred).
However, it wasn't really until the 1950s that we settled on the way to formally describe a mechanistic calculation and really fleshed out the details there. Similarly, it wasn't until 1880-1920ish that we settled on most modern formalisms (ZFC, the set of axioms most often used for modern math, is from the 1920s), and really, some of that stretched all the way in to the 1940s.
If you need an analogy to what this would be like in a different field, we discovered (modern) formalism around the same time that biology discovered evolution, and formal (mechanical) computation around the same time they discovered DNA. Much like biology is still a very active field trying to build on these results, mathematics is trying to build on the big shake-up it went through in the first half of the 20th century. (Principia Mathematica, the Hilbert program, modern axiom set ZFC, incompleteness, and uncomputable numbers all date to this period.)
> Well, at least programming languages without standards have an implementation that is the official implementation! So arguably, they are more standardized.
It may not look like it, but mathematics actually is highly standardized within its various subdomains. I recently picked up a book on number theory slightly outside of my background, and was familiar with all the symbols they used. (There's an argument to be made we'd be better off with English terms/abbreviations in the style of programming, but I actually don't agree with that. I think the symbols reduce the cognitive load to keep something in your head, because they're formatted in a 2D (instead of 1D) fashion, and use typeface to represent types of the objects.)
However, that standardization process takes time. If you read the first couple papers in a subdomain, they often will use different symbols and structures than the subdomain eventually settles on. After a while, though, it tends to settle on a particular set of symbols used a particular way.
You can define those standard symbols in terms of the basic operations in a system like Principia Mathematica uses, but the usual omitted formality actually greatly helps readability. If you don't believe me, try reading a derivation in Principia Mathematica.
tl;dr:
I agree that more mechanical computing would be good (and so do lots of other people), but I don't think the highly specialized symbols are as bad as people outside the field make them out to be. Math contains lots of big, very specific, and slightly unusual ideas, so it makes sense to give them a particular language to write them in. It's actually very consistent once you get a knack for it. Try to think of it like learning a foreign language!
Also, if you want to look up active areas of research on this topic, you might want to check out Category Theory or Homotopy Type Theory. Both are very applicable to programming or science, if either is your field!
> Hey - thanks for actually replying and taking me seriously. This is as far as this discussion has ever gotten between me and someone who seems to know what they are doing. I'm actually learning a lot.
> Anyway, thanks for replying, I haven't had such an interesting exchange on HN in a while. I'm eagerly awaiting your response (if you have the time)!
Anything to get a chance to rant about how awesome math is, hahahahaha.
More seriously, I'm glad you find the topic interesting, and I generally think that the math community could do a better job of explaining the context of their work and what the current developments in the field are. Most people aren't really exposed to math invented after the 1700s unless they go in to a technical field, and even then, not much of it.
If you want any book recommendations, feel free to let me know (and tell me a little of your background, so I can pick the right level of book) and I can try to find something good.
Alright, going to stop ranting for one post, though there's much, much more to say!
> rather, it's that we saw those relationships and went looking for the minimum set of rules from which they could all be derived. There are (of course) other choices we could have made, which are useful in different cases, such as talking about geometry on a sphere instead of geometry on a flat piece of paper.
OK, this makes sense now!
> It gave a corpus of different approaches, linked up the intuitive notions with formalisms, and led to several generalizations applied to different contexts.
And I guess this gives you multiple points from which to verify new ideas.
> If you need an analogy to what this would be like in a different field, we discovered (modern) formalism around the same time that biology discovered evolution, and formal (mechanical) computation around the same time they discovered DNA
This kinda reminds me of the Bohr atomic model from 1925: it went through many iterations since, a lot of which were kind of true but not quite. They discovered that, oops, the electron orbits are elliptical, not circular. And the more weird and odd particles and effects we discover, the more accurate the model gets, but the original wasn't that bad at modelling reality. Or the Newtonian physics vs modern stuff. Newtonian physics was 90% there, but not quite enough to explain things happening in extreme circumstances that are difficult to observe.
> you might want to check out Category Theory or Homotopy Type Theory. Both are very applicable to programming or science, if either is your field!
Category Theory is definitely on my list of things to learn. HTT seems quite new fangled, I remember seeing that the book made a big fuss on HN recently. I'll have to read more into it to see if it's worth it for me to delve deeper into.
I'd love to hear more about book recommendations! I'm a software engineer and I've had a CS education, so I've had a decent chunk of college-level math (including linalg, diffeqs...), automata theory, etc. So, some exposure to post-1700s math, some formal paper-reading, etc. You can find my e-mail in my HN profile if you like.
In academia, there's some notion that eventually a teaching professor will consolidate many papers into one textbook, which will actually convey the material clearly for those without a graduate-level maths education in the specific subfield.
> I think if the purpose is merely to transmit proofs and axioms unambiguously, I think we can have a language that performs just that and nothing else
Mathematical notation is not easily computer parseable / checkable. And I'm not sure it's really standardized (no standards body that I could find) or even unambiguous for that matter. You could maybe call it a de facto standard.
I loath academic papers. Often I find I spend days or weeks deciphering mathematics in compsci papers only to find the underlying concept is intuitive and plain, but you're forced to learn it bottom up, constructing the authors original genius from the cryptic scrawlings they left in their paper... and you realise a couple of block diagrams and a few short paragraphs could have made the process a lot less frustrating.
It's like this all the time in math papers. It often seems in the end like the ideas themselves are fairly straightforward, and it shouldn't have taken that long to understand. I think, though, that if you actually sat down and tried to explain it in more intuitive terms, you'd find that you might not be able to. True, you could find a way to convey the general idea, but without the technical details, (1) while non-mathematicians may get a surface-level understanding faster, even mathematicians will not grasp the technical aspects, and (2) it will be very hard for anyone to extend your work or for anyone to apply it to another situation, so it will only be applied in the specific contexts that you explained it in.
Language isn't built to communicate math, so doing so effectively will be either difficult to understand or imprecise. Many people claim that it would be easy to explain deep math concepts with "a couple of block diagrams and a few short paragraphs"s, but I'd challenge them to write a textbook on abstract algebra, or topology, or something like that before they make that claim.
I regularly explain my PhD thesis on napkins. The explanation involves twins, one with a broken nose; fish; GPS satellites; and a tractor driving in a field.
Somehow this holds a crowd better than non-linear 72-dimensional space, and isometric and rigidity matrices.
But could they (1) extend your results or (2) have enough of an understanding of it to apply it to their work? The benefit of a napkin explanation is that they understand it well enough to know whether it would be useful/interesting to learn the issue better. If they really want to apply your results, though, then they'll need a better understanding. It's true that math papers aren't good for giving a surface-level intro to a subject, but they're not made for that. They're made so that if someone really wants to learn the subject, then they can.
Very valid point. I suppose I just think we could make room in scientific papers, especially in the digital age, for an explanation of how the idea came about. I spent most of my early research career trying to find out how mathematicians got their ideas in the first place, because no amount of learning mathematics seemed to teach that.
The reason is that math papers are usually tailored to another mathematician and thus abuses that to avoid a few communication pitfalls.
Firstly, it's broadly considered to be the case that mathematical ideas are not understood until you've gotten them "from a few different angles". Math builds upon itself so much that an idea may be almost useless on its own and produce true value in lying at the nexus between many convergent ideas. For instance, statistics as a field enjoys a very nice convergent point between logic, measure theory, and information theory (among others). Approaching it from all of these positions can lead to important mental breakthroughs and a paper or book author desires to appeal to these various "roads" to their topic. Without providing that context it might be said that the presentation is very sparse.
Secondly, almost conversely, each reader is likely to be more familiar with a subset of the possible roads to the author's topic of interest. By covering as many roads as possible as they approach their goal topic they provide more chances for the reader to pick an approach they find most comfortable and follow it (lightly ignoring the rest) to the goal. A simple block diagram might be the best way to present it to you, but only a private tutor could specialize their presentation so much.
---
There's an art to reading a math paper when you're an outsider to the primary topic. You want to breeze through the paper at a high level first, slowly collecting the exposition points which are most applicable to your own method of understanding. After that, iteratively deepen your reading while looking up topics which you feel you almost-but-perhaps-not-quite-enough understand. You can very easily read a paper and get enormous value while failing to connect to 60-70% of what's written.
> I loath academic papers. Often I find I spend days or weeks deciphering mathematics in compsci papers only to find the underlying concept is intuitive and plain, but you're forced to learn it bottom up, constructing the authors original genius from the cryptic scrawlings they left in their paper...
I systematically ignore maths in CS papers. If the concept isn't described with code or pseudo-code at least, I will look at who cites the paper, and look for someone who has replicated enough in code. 90%+ of the time I can avoid dealing with the maths entirely, or get enough details that I can glean the rest without bothering trying to actually understand the maths properly.
Usually I find the maths tends to obscure vast amounts of missing details.
Of course, how well that works depends on the specific field.
Some of the papers I have written actually made the problem simpler with math--XML Schema being notoriously impenetrable, for example, and XACML not being much better.
Would anyone be interested in seeing a "Rap Genius for academic papers" to address the third paragraph of parent comment? To those who aren't familiar with Rap Genius, I basically just mean a place where academic papers can be annotated and explained in plain language by the community. Would you read/contribute?
I think that would be fantastic. I have envisioned that kind of thing often. Something like "autodidact.stackexchange.com" (which doesn't exist), for example. The best explanations could be voted up. For bigger topics, it would not be explanations you're voting on, but rather "learning roadmaps" -- a recommended set of materials in a recommended order that is designed to help one grok the topic.
For academic papers, perhaps people could vote on two dimensions: (1) papers you'd like to see explanations for, and (2) particular explanations that were effective for you.
And yes, I would read the hell out of it, and yes, if there were areas I could contribute, I would do so.
I would find that interesting. Like others above have noted, a lot of papers are written for reviewers, and not with the intention of making it easy for non-experts in the field to understand the concepts involved. It would even be useful to be able to post questions/comments about the parts you don't get and have people direct you to relevant background reading.
Yes. Although the field of "academic papers" is significantly broader with a smaller user demographic than hip-hop, but if you could pull it off I would be an avid user.
I appreciate the quick feedback - I myself would love to use such a service. Just to clarify, I don't have the development experience to build this myself yet (I just switched to CSE from Finance this year) but if anyone else would be inclined to give it a shot, I'd love to help. Otherwise, free idea!
> Often I find I spend days or weeks deciphering mathematics in compsci papers only to find the underlying concept is intuitive and plain, but you're forced to learn it bottom up, constructing the authors original genius from the cryptic scrawlings they left in their paper... and you realise a couple of block diagrams and a few short paragraphs could have made the process a lot less frustrating.
You have the benefit of hindsight. Everything is obvious in hindsight. All the research I've done is obvious and straight forward, if only I had known what I know now and would be able to draw a few simple diagrams.
That is, until you realise it's not. In those days and weeks spent deciphering mathematics you are actually learning a lot. I cannot count how many times I've been reading mathematics and struggled for weeks on a concept. Then one day it clicks and it all makes sense. Then I re-read the description again and the answer is clear as day. The answer was always there, I just hadn't learnt enough to appreciate it.
>So many ideas seem closed to mortals because of the nature of mathematics.
I disagree with this statement 100%. No ideas are closed because of mathematics. The ideas are only closed if you are not willing to put in the time.
Group theory is a standard topic in a
college course, say, at the junior level,
in 'abstract algebra'. So, the other
topics typically are rings, fields,
vector spaces, maybe the construction of the
rationals and reals. The course might
also toss in a little on number theory.
Anyone with a ugrad pure math major is supposed
to know what a group is and the early, standard
theorems.
Group theory was used by E. Wigner for the
quantum mechanics of molecular spectroscopy so
that at times some chemistry students want to
know some of group theory and group representations.
My ugrad honors paper was on group theory.
I published a paper showing how a group of
measure preserving transformations could lead
to a statistical hypothesis test useful for
'zero-day' monitoring for anomalies in
server farms and networks.
Group theory pops up occasionally. Get
a good, standard text in abstract algebra
or two or three and spend a few evenings.
If you get to Sylow's theorem, you are likely
deep enough for starters. Group theory is
very clean, polished stuff and can be fun.
Go for it.
Exactly, many lessons are written to be defended from assault, not to be inviting. A castle, while romantic, is not as comfortable as a hotel.
(My personal mission is to find/share the aha! moments that actually make the details click. Why do we force everyone to laboriously discover them for themselves? Can't want talk about the underlying insights directly?)
Maybe not the corruption angle so much; but special interests. Now every book is designed to not offend the politically correct Californians, or the religious right in Texas, and to convince people that they are keeping up with the latest fads - http://www.edutopia.org/muddle-machine
> Secondary math education, for me in the UK, didn't deal with anything outside of elementary algebra, Euclidean geometry, some statistics, and relatively simple calculus.
I've been a secondary math teacher in the UK and I want to defend this point a little.
The job of a secondary math teacher at this level is to teach everyone math, particularly including a majority who don't have a strong interest and won't go on to study more mathematics. You probably underestimate how difficult a job this is.
With that in mind, this is already quite a long list of diverse topics. You neglected to mention an introduction to number, up to the real numbers, perhaps because you now think it is obvious. You were taught that.
I personally try to teach 'looking forward': explaining how these concepts link towards what direction you might take in the future.
However, it's very difficult to cover the whole scope of mathematics and mathematical subjects. For example, I personally knew only a little about what's relevant to EE (although I've learned over time). But, it's not that you could skip anything from the school curriculum anyway - my general advice is that potential EE students need to show interest enough to study independently outside of school.
Something like algorithmic complexity, you should be learning from Knuth. Well done for that: there are not many educational experiences better than learning independently from someone who has devoted his life to making his subject accessible.
I wasn't aiming to criticise the particular set or scope of topics taught at each stage, more so the fact there's no provision to ensure students are aware of what branches of mathematics even exist. There's no formal introduction or grounding or broad strokes.
It's like teaching science where there's no innate notion of biology, chemistry and physics as three separate disciplines... or teaching history without putting everything in its place on a timeline and your students end up not knowing whether Tudor times ended before or after the Ottoman empire fell.
It's the big picture exposure that I think maths lacks, and I personally never bothered to step back and actually look for that big picture until I was already in my 20s. The way maths is taught makes you feel like it's suddenly going to open up, but all that actually happens is you follow one branch.
If you took additional math along with basic/elementary math, they do go into more detail about the branches of mathematics. There's also further mathematics and combined mathematics, both are A level subjects.
I think basic math focuses more on arithmetic than math theory, which could explain your frustrations a little.
Nobody talked to us about imaginary or complex numbers, or bayes theorem, decision theory, or non-trivial mechanics problems until I was in college (age 16+)
For the benefit of those not familiar with the UK school system:
- Compulsory education goes up to the age of 16 (roughly 11 'grades')
- Many people continue at school until around 18 (an additional 2 years, called the 'sixth form')
- These final 2 years of school can be taken at a secondary school (~= high school in the US) or at a college (which may specialise in these 2 years only, or may go beyond). This college is not the same as a university, although there are some areas where they may compete for the same students
- Most people who enter university as undergraduates do so after completing these additional 2 years, and the exams which partially determine university acceptance are taken when people are about 17 or 18
I went through the UK education as well, did you do just E math? You can take Additional Math along with it, that covers complex/imaginary numbers as well as Poisson sequencing/binomial theorem.
The thing is, I use very little abstract math in programming. Doing analytic philosophy actually did more than mathematics. The math stuff I do in programming is super basic stuff like trigonometry (sometimes trig with differentiation if I want to be fancy and use inflexion on curves) for GPS triangulation etc. I've never had to do anything more complex than that
I'm a big fan of A Levels (my experience in late 90s) because of the depth they can bring. Between the ages of 16 and 18 I was exposed to group theory, n dimensional linear algebra, (basic) proofs, curvature, complex numbers, various series and convergence. It was very eye opening. And the same is true of virtually all disciplines. The insight into a discipline A Levels gives, at a quite young age, cannot be achieved with a broad syllabus where depth is diluted.
> group theory right now to help with my understanding of crypto
Im also trying to understand crypto better, from a mathematical perspective. Apart from group theory, what else should I have an understanding of before going further? Do you have any resources that you would recommend?
The progression of math knowledge in the US is more or less the same, since our high school is the equivalent to your last two years of secondary school combined with college.
I currently teach math to at-risk students. I don't read all of these submissions about math education, but I skim the comments on most of them. The comments people make change the way I teach math.
I have always done a decent job of teaching math. I focus on helping students understand concepts, even when they are focusing on mechanics. I use words like "shortcut" and "more efficient method" rather than "trick" when showing students more efficient ways to solve problems. I have students do problems and projects that relate to their post-high-school goals.
But with the routines of school life, I get away from the fun of math from time to time. The comments on these submissions often remind me to go in and just tell stories about math:
- "Hey everyone, did you know that some infinities are bigger than other infinities?"
- "Hey everyone, do you have any idea how your passwords are actually stored on facebook/ twitter/ etc.?"
- "Have any of you heard the story about the elementary teacher who got mad at their class, and told everyone to add up all the numbers from 1 to 100? One kid did it in less than a minute, do you want to see how he did it?"
Thanks everyone, for sharing your perspective on your own math education, and about how you use math in your professional lives as well. Your stories help.
You may recall that one can use the quadratic formula to find solutions to a quadratic equation (polynomial with highest term being x^2). Did you know that (one) guy that proved there is no such formula for quintic equations (highest term x^5) died in a duel when he was only 20? [1]
There is a town with a particular rule when it comes to facial hair: those who do not shave themselves are shaved by the barber. But then who shaves the barber? [2]
The other poster mentioned different infinities. One "size" of infinity is called "countable infinity" and is the infinity describing the size of the natural numbers (1,2,3,...). Say we have a hotel with a countable infinite number of rooms. I've been travelling all day and I show up at the hotel, and talk to the clerk at the front desk. He tells me every room is full, but when he sees the sad look on my face he tells me not to worry - he can make room for me. He simply moves the person in room 1 to room 2, the person in room 2 to room 3, room 3 to room 4, etc... And then the first room is empty for me, and everyone still has a room. [3]
I've felt this is the case for a long time. A lot of people have a smooth experience in math for years until they hit their first serious discontinuity. That could happen anywhere: times tables, fraction arithmetic, two-step equations, geometric proofs, radicals, limits, or maybe even college math. The reaction is nearly universal though. The person thinks, "holy crap, I guess I'm actually not good at math", anxiety strikes, and they freeze up.
Some people find eventually find their way around this first road block, and future discontinuities in understanding become less stressful, and eventually understood to be a completely normal part the process.
But the usual experience is that a person's math confidence is blown and as the math truck barrels on ahead, they never catch up. They understandably accept the identity of not being "good at math".
What's missing in math pedagogy at most schools is a systematic way to deal with the discontinuities when they strike, especially that first time. We can prepare students to deal with that panic. The tough part is that the math teacher probably has 90 students on roster, but the discontinuity could hit pretty much any given lesson, for some given student.
I know so many people who have come back to intermediate math later in life and breezed through it, armed with intellectual confidence gained from other fields. They look back and wonder how they came to be so intimidated by math in their younger days. We've got to give younger people the tools and knowledge for overcoming this intimidation at a younger age. We've got to kill "I'm just not good at math".
I've been teaching math to at-risk high school students for the last 10 years. I have spent more time helping students understand that they are not stupid, that something just got in the way of their learning at one point, and they never understood anything after that. I'm going to use your quote in some of these conversations now.
What most of my students think: "I could never do math, I fucking hate it, and I might drop out because I will never finish my math credits. I can't do math because it's stupid and meaningless and I will never get it."
What really happened to get people off track?
- Some just didn't follow one topic in some early grade, nothing else made sense after that, and no teacher was prepared to get them back on track.
- Parents split up, student couldn't focus in school for 6 months, they got off track.
- Parent/ sibling/ significant person passed away when student was young, couldn't focus for 6 months-2 years, no way to get back on track.
Any number of other external events happen, and it is perfectly reasonable for students to get off track in math.
a systematic way to deal with the discontinuities when they strike, especially that first time
Exactly. I would like to see every elementary school have a math specialist, who knows advanced math, to help students with their overall understanding when they get off track. Helping a kid master some mechanics does a little to get them back on track, but diagnosing misunderstandings takes more math expertise than most elementary teachers have.
I could go on forever; thank you for putting some of these issues so clearly in focus.
> I would like to see every elementary school have a math specialist, who knows advanced math, to help students with their overall understanding when they get off track. Helping a kid master some mechanics does a little to get them back on track, but diagnosing misunderstandings takes more math expertise than most elementary teachers have.
> I would like to see every elementary school have a math specialist, who knows advanced math, to help students with their overall understanding when they get off track.
Note: This response is US-centric.
These individuals are exceedingly rare (if they exist at all). In fact, I would be absolutely shocked if 100 such people existed. College students who go into Elementary Education are stereotypically terrified of mathematics, and they have (at most) one required math course. This course is a "general methods" course that essentially acts as a survey of the elementary school mathematics that they'll be teaching.
There are more than you think, I assure you. Consider the people who write elementary curricula, who implement it in large cities, who teach middle school and high school mathematics but might prefer to teach just mathematics at an elementary level. Consider NCTM[1], TERC[2], EDC[3], and UChicago[4], and their programs and work. Consider the math coaches, who instruct their peer elementary teachers on teaching mathematics.
Until these positions exist, are respected, and are not first on the chopping block the next time budget cuts roll around, these people will continue to exist under the radar. (I'd gladly transfer into a Elementary Math Specialist position, if I was sure it wouldn't threaten my family's livelihood.)
I'm not sure how addressable that is. While math could be modeled as a DAG globally, I think it is inherently linear locally (no smooth function pun intended) and incremental. Sure you could jump around, but I think at the end of day, if a student is going to progress to advanced math, they can't dodge tricky concepts.
But maybe I'm misinterpreting your point. Do you have links to what you've written?
I mean this about the typical subject matter of high school (which is what this branch of the comment thread concerns). Nobody needs to learn how to graph accurate ellipses and the various facts about congruent triangles before doing calculus. You also don't need excellence in algebra to do geometry. There are some fundamentals, like being able to work with fractions, but largely high school education is a lot of parallel topics that they make you think are linearly dependent (no linear algebra pun intended).
Advanced math, on the other hand, is a different matter. And as far as HS education is concerned I believe the focus should be on building mathematical thinking skills and not worrying about preparing students for a particular subject they're unlikely to ever use.
For example, here is a lecture that I give to HS math students on graph theory [1]. You'll notice there's no algebra, no geometry, no calculus, almost nothing is required except the idea of a function (and even that is technically not required, and I tell them not to worry if it's confusing). What is in this talk is a whole lot of mathematical thinking, and I do believe (though this sounds like bravado) that if I were to put my mind to it I could model a year's worth of HS education around developing this kind of mathematical thinking. It would also have some highly nonlinear components to it, organized instead primarily around proof techniques.
I just browsed your post, and it looks beautifully written!
So you're saying there's nothing fundamental about the typical HS math sequence. I agree. But I also don't think there's that much of a compelling reason to change it, because there are going to be difficult portions no matter how you arrange it.
But I think it's not exactly true that ellipses and congruent triangles have nothing to do with calculus. Graphing ellipses is meant to help understand functional thinking, which is crucial to calculus. Those miscellaneous facts about triangles are as examples to motivate understanding of mathematical logic -- also crucial.
In other words, most of what we learn in math are really intended to illustrate underlying mathematical concepts with some level of concreteness. Otherwise, we'd just start with category theory in kindergarten and derive all other math from that :)
I can certainly understand the perception that these things are often taught solely as ends in and of themselves. I think that part of the challenge is that there is a tradeoff between taking the time to provide a concrete motivation for every math concept upfront versus saving time by dealing with math concepts in their own world to cover more ground. For instance, the seven bridges problem serves as a great motivator for graph theory (and is used very often for this purpose), but can we really afford to find a similar motivating problem for every single graph theoretical concept?
I think if everyone agreed that the goal is to teach critical thinking skills, and have the factual knowledge be a byproduct (and elementary facts are very easy to pick up if you have critical thinking skills), then it would make a world of difference.
As to the motivations, after the students get going they don't need more real world motivation. They seem to be interested enough to ask their own questions about graphs, try to answer them, or come up with their own relations to the real world. This is where I think a lot of the critical thinking happens, not in learning facts about graphs. The facts (what degree means, what planar graph means, etc) come as a byproduct of following these paths of thought.
Touche. Do they teach polar coordinates in high schools these days? I vaguely remember fiddling around with the option on my calculator and plotting cardiods. Speaking of which, I got a nontrivial amount of programming experience by totally ignoring my math lectures and trying to write programs on my calculator.
This hits close to home for me. I was one of those kids who was 'good at math' throughout pretty much all of school. I tested out of Calc I thanks to AP classes and began university in Calc II.
It didn't go well. Somehow this thing that had seemed so natural and intuitive now just seemed totally incomprehensible, mainly because I really just didn't understand the level the abstraction was at or something. I did poorly and it really shook my confidence. I changed majors and wound up a designer instead.
It's not a surprise to me that I've worked my way back into a field with deep math roots, though I think I would have found it much sooner if it hadn't been for that initial roadblock.
It gave me a new appreciation for what many of my classmates were struggling with in the early math that I breezed through in grade school. It's very difficult to see what the concepts you're learning are building towards if you don't have a sense of the bigger picture.
I thought I was good at it until I hit 17-18, doing advanced mathematics. I really didn't understand Taylor series, and I just froze up on the calculations. You fall behind, and then the class just moves forward and it stops being fun anymore
I don't know the solution, but as you said - I went back into it later and it was much easier. Catching up those years inbetween was hard though!
Mathematicians are indeed lost and confused but in a very different way from beginning students. One must put in one's dues in what Terence Tao calls the "rigorous" phase before one can become productively confused in the "post-rigorous" phase.
http://terrytao.wordpress.com/career-advice/there%E2%80%99s-...
I completely agree about the power of math, and why programmers should learn it. There are two problems with math:
(1) Math is IMHO the worst taught of all academic subjects.
It's taught as if it were not a language. Math profs and books on mathematics never explain what the symbols mean. They just throw symbols at you and then do tricks with them and expect you to figure out that this symbol means "derivative" in this context. I have literally seen math texts that never explain the language itself, introducing reams of new math with no definitions for mathematical notation used.
I've looked for a good "dictionary of math" -- a book that explains every mathematical notation in existence and what it means conceptually -- and have never found such a thing. It's like some medieval guild craft that is passed down only by direct lineage among mathematicians.
Concepts are often never explained either. I remember struggling in calculus. The professor showed us how to do a derivative, so I mechanically followed but had no idea why I was doing what I was doing. I called up my father and he said one single sentence to me: "A derivative is a rate of change."
A derivative is a rate of change.
I completed his thought: so an integral is its inverse. Bingo. From then on I understood calculus. The professor never explained this, and the textbook did in such an unclear and oblique way that the concept was never adequately communicated. It's one g'damn sentence! The whole of calculus! Just f'ing say it! "A derivative is a rate of change!"
(2) The notation is horrible.
If math were a programming language it would be C++, maybe even Perl. There are many symbols to do the same thing. Every sub-discipline or application-area of mathematics seems to have its own quirky style of notation and sometimes these styles even conflict with each other.
Yet baroque languages like C++ and Perl at least document their syntax. If you read an intro to C++ book it begins its chapter on templates by explaining both what templates are for and the fact that type<int> means "type is templated on int."
Math doesn't do this. It doesn't explain its syntax. See point #1 above.
I agree wholeheartedly with how frustrating it is. I think part of the problem is that really great mathematicians are encouraged to stay as far away from teaching (and improving their teaching) as possible, and great teachers are often discouraged from pursuing more mathematics for a variety of reasons. And when I personally teach calculus I make sure to explain derivatives in the way you want in the very first day (before describing limits or anything else).
As to your second point, I think notation is a big problem, but it's a bit of a straw man. With very few exceptions that I doubt you would ever find yourself in, I have never met a professor or mathematician that would not explain notation if you asked (gladly stopping in the middle of a lecture or talk to clarify). There is still a lot of it, but every mathematician who is presenting the mathematics can explain the notation to any degree of precision you could ever want, and I have very few colleagues who have never stopped someone for this reason.
I think the bigger problem is trying to read mathematics by yourself, without the ability to ask questions. And even after understanding the notation, I feel programmers have bigger problems, which I've expanded more on in this post [1], the main difference between learning programming being there are simply more free and open resources for learning programming. This is probably because programmers invented the internet and filled it with their favorite content first.
But one point I make is that mathematical notation is inherently ad-hoc, and the only kinds of notation that stick around are the kinds that get used ad-hoc enough times to become standard. And even then people will make up their own notation for no other reason than that it's their favorite (Physicists are really good at this, and perhaps ironically it drives mathematicians crazy). Because of that (and because notation is introduced often to be rigorous, not to explain a concept) you're unlikely to ever find such a dictionary. Sorry :(
First you teach the basics of the language. Then you teach how to express concepts in that language and what those concepts mean. Finally, you teach how to manipulate those concepts to build new higher-order forms.
Mathematics is taught like this:
First, students are shown how to manipulate symbols they do not understand. During this process, sometimes (if you're lucky) these symbols are explained in a piecemeal and oblique way. Sometimes conceptual meaning is discussed at the end to wrap things up (oh by the way this is what you'd use this for, now let's move on), but this is rare. Mostly you just get elaborate dances of symbols thrown at you with no explanation to tie what you're doing to any problem, reality, or conceptual meaning. In the end most students end up memorizing these meaningless opaque incantations and never understand why anyone would be interested in math.
I don't think just doing everything from first principles is reasonable. Building up the natural numbers from set theory etc. would just be frustrating for kids.
Like trying to teach them their native language by grammar diagrams etc. instead of immersion
Ah, well I wasn't speaking about mathematics education (in, say, high school). Because there are a whole lot of problems with that beside the notation.
I highly recommend reading this. I didn't agree 100% with everything, and you probably won't either, but it's an excellent insight into what learning and doing math is about, and what it's like.
I'd love to read alternate viewpoints, but this is an excellent read.
The entire post was enjoyable but I found the last paragraph to have the most actionable advice:
What’s much more useful is recording what the deep insights are, and storing them for recollection later. Because every important mathematical idea has a deep insight, and these insights are your best friends. They’re your mathematical “nose,” and they’ll help guide you through the mansion.
I really enjoyed this because it captures so much of the frustration that felt early in my programming career - especially in college when I had classmates several years my junior who were (as far as I could tell) mathematics and programming wunderkinds. I also think that this is the sort of rhetoric that should be used to begin teaching children basic mathematics and more advanced concepts as well, because I still recall many of my classmates in elementary and even highschool who simply felt like failures or that they weren't smart enough to understand things because they didn't "get" it the first, or fourth, or fiftyth time.
"If you’re going to get anywhere in learning mathematics, you need to learn to be comfortable not understanding something."
This is true for all research.
And I don't mean just the physical sciences either. Historians and sociologists are also chronically "lost and confused." Otherwise it wouldn't be a topic worth of study.
This is why students who are "good at X", whether it be math, German, sports, or programming, may become frustrated when they find out that "good at researching X" is a very different matter.
I think it's a good point, but I still think the kind of lost and confused in mathematics is more embarrassingly extreme. Imagine a few hundred historians trying to discern when King George I died, and after 50 years of work they conclude, "All we know for sure is that it was between the day he was born and yesterday." A startlingly large part of mathematics feels like this.
And I think the reason is that "prevailing theories" mean nothing in mathematics.
That's a poor comparison. I find it hard to believe that mathematicians are still trying to decide if the set {1, 2, 3} is finite or infinite.
A "startling large part" of all science fields like this.
Physicists don't even know if the gravitational mass of an object is really the same as its inertial mass. Or if there are true magnetic monopoles. And that's after over a century of trying.
Immunologists have barely scratched the surface of how that field works.
Economists make lots of conjectures, with lots of math to back it up, but it's not a perfect predictor of the human economic system.
Biological evolution still surprises us, 150 years after Darwin and nearly 100 years after the neodarwinian synthesis.
Chemists still don't come close to handling some of the reactions that natural systems have figured out.
I started off doing a combined maths and computer science degree.
With both computer science and maths you are chronically confused. The difference being with computer science it doesn't matter so much if you don't understand something, if you can get it to work you know you are on the right track. Maths is much more progressive, each proof builds on a previous one. So if you fail to understand one step you are screwed from that point on.
After the first year I realised I didn't actually enjoy being permanently confused and so I ditched the maths to focus on computers. I do regret this. It didn't take long at all before I forgot all that knowledge I had spent years sweating over.
I wish this post was around when I finished my undergraduate degree in Mathematics. I would have taken my adviser's advice to go to grad school. At the time, I remember telling him that I feel like a barely made it through the program. Apparently I wasn't alone. Amazing the difference 25 years and the internet makes.
This misses the dangerous part, which is mathematicians in groups can confuse each other into accepting ideas which are basically nonsensical, especially if the counter argument relies on some obvious but intuitive observation of reality but cannot be easily formalised within their chosen framework of the moment.
As a consequence of this it wouldn't surprise me if the overwhelming majority of maths was actually incoherent nonsense and that the people that understood this thought they were just very confused due to being shouted down all the time, when the really confused people are the ones oblivious to their own situation.
I'm going to be rather dismissive in my reply, and for that, I apologize, because I'm not quite sure how else to respond.
This is more or less a non-issue. Thanks to mathematicians building on Euclid for the last 2300 years, we have a system of mathematics built on a few basic principles (that you would not disagree with) and deductive reasoning. If you take a theorem that is accepted as proven, you can almost definitely follow an immense chain of logic back to the fundamentals. It will take you a ridiculous amount of time to do so, but it is possible.
If you're referring to specific debates in the math community (e.g. "I feel that the general math community accepting the axiom of choice was a bad idea") then that's worth being specific about in your post.
>we have a system of mathematics built on a few basic principles (that you would not disagree with) and deductive reasoning
I think it's even better than that; mathematicians don't necessarily care whether the reader 'agrees' with the axioms, or whether they're in any sense 'true' or 'false'. Mathematics is always of the form 'if these axioms are true, this theorem follows from it'.
The real world and the notions which people consider to be self-evidently true is just some messy slimy gooey gunk best left to psychoanalysts and theoretical physicists and sewer workers and the like.
Oh, I agree, that's the best part. Pick your rules: oh, you picked those seven? You've got a ring; here are your math rules!
In that specific case, though, I figured I'd point out that the basic rules of math aren't usually things people squabble over. (Although I do enjoy a little mathematical philosophy from time to time.)
You can stop worrying now: what you're afraid of doesn't actually happen, though I sort of see how someone who hasn't spent their life studying mathematics might worry that it does. Since you have to back up your ideas with proofs, you can't in the long run hoodwink people into accepting false statements.
You also seem to worry about mathematicians accepting perfectly consistent sets of ideas even when those ideas contradict "inuititive observation of reality". To that I can only say that mathematics is not a subject where intuitive observation of reality plays any major role. What decides whether some piece of math is good or not is whether it is logically consistent, found interesting by people, and useful, either in other parts of mathematics or in applications to the real world. Notice in particular, that if the applications work no-one cares if part of the math leading to them contradicts any given person's intuition. For example, physics uses real numbers a lot and your intuition might tell you they don't make sense because there can't be uncountably many different things of any kind. But physics work extremely well and the math it uses is consistent, so we use it even if it doesn't sit well with a few people.
Since fidotron has been piled on, let me defend the point in his/her post. Good mathematics has come out of being worried that what other mathematicians have done isn't quite right, and I think the perspective of the article doesn't acknowledge that.
For example: Cantor's theorem is quite true, only cranks doubt it [1]. But many mathematicians take it to have the corollary that cardinalities greater than that of the natural numbers exist, which does not follow: it is perfectly coherent to say that constructions such as the power set of natural numbers do not exist as a definite whole, and so do not have a cardinality. These kinds of doubt have driven constructivism which has led to interesting work in topology, measure theory, and type theory, and led to such useful applications as calculators for exact real arithmetic.
Cantor's paradise seems to be coherent (likewise I would be deeply surprised if large parts of mathematics turned out to be misconstrued) but the assumptions of large cardinal set theory are grandiose and poorly justified, and yet for a long time those people who wondered if it was wise to embrace the whole edifice were marginalised. It seems that now there are many more mathematicians who are interested in revisiting this perspective [2].
To put Wiles' metaphor in perspective, it is good if some mathematicians step outside the mansion from time to time, to see if the superstructure is up to all the crashing about that happens in the dark rooms.
I'd be a lot more worried about the danger you mention if you could give even one example of that happening, ever. What ideas are mathematicians confusing each other into accepting that are basically nonsensical?
When you get into infinity, you have two notions of "number" that diverge. Mathematical operations on them do different things. (For example, cardinal "exponentiation" is the power set; ordinal "exponentiation" is something different and smaller.) One is size, but proper subsets can have the same size at infinity (integers, even numbers, rationals). That's where Aleph-0 (cardinality of the integers) and "c" (cardinality of the reals) come from. With cardinal infinities, you can't really do meaningful arithmetic because the field properties don't apply. "Infinity" violates the mathematical fact that x+1 != x, for example.
The other notion comes from the concept of a well-ordered set, which also maps nicely to "indexes" into possibly infinite lists. With this foundation, you have more options in terms of mathematical manipulations: you can add ordinals (but not always subtract them) and, because they pertain to list operations, the traditional "field" properties aren't always commutative. That's where we get ω, ω+1, ω^2, ω^ω, ε_0 and so on. Those all have rigorous definitions. For example, ω^2 is the order type of ordered pairs of numbers with lexicographic comparison:
Where things get messy is that the relationship between cardinal and ordinal numbers (more formally, what ordinal number has the same cardinality as the reals, or the continuum?) is, in fact, formally undecidable. (Continuum Hypothesis). That doesn't mean no one has solved it. It means there's no mathematical way to refute or prove it from ZFC, the Zermelo-Frankel set axioms plus the Axiom of Choice. The CH is neither true nor false, insofar as one can have valid mathematics with or without it.
To put the above more succinctly, we know that the countable ordinals are a well-ordered set (totally ordered with a minimum) and since no set contains itself, that set is uncountable. It is, in fact, the smallest countable set (the ordinal numbers are totally ordered by the subset relation). That's called ω_1. Intuitively, we might hope that that's also the same "size" as the real numbers (we don't know of any smaller uncountable infinities, and we can't construct any). But there is no way to prove or refute whether that is true. Mathematics is valid either way; it has to "fork".
It's not "nonsensical". What it is is formal. It may or may not map to the real world. You can't actually perform Banach-Tarski (Axiom of Choice hack) on an orange, nor can you store a complete Hamel basis on your hard drive. But these concepts are still useful in defining our notion of what a "set", precisely, is.
Well put; a little quibble: these are the two notions of infinity that most interest set theorists, but there are many other notions of infinity in mathematics, e.g.,
1. Representation of geometric entities "at infinity" in, e.g., the point at infinity from the projective sphere that allows straight lines to be treated as circles;
2. Infinitesimals;
3. Game-theoretic constructions of infinite numbers, e.g., in Conway numbers. Incidentally, the set-theoretic cardinals are equivalent to a special case of these;
4. Definition of numbers as equivalence classes of functions under their speed of growth as they tend to infinity, e.g., Hardy's logarithmico-exponential functions. Incidentally, the computable set-theoretic ordinals are equivalent to a special case of these.
Sorry to give a minor correction to a little quibble, but it is the ordinals, not the cardinals, that are a special case of Conway numbers. The cardinals are equivalence classes of these of the form [א_a,א_(a+1))
(Also you can get infinitesimals from Conway's construction as well)
A quibble of my own: a lot of the "infinity" constructions in mathematics only use infinity as a name. Projective geometry (1) is a good example of that. The formalization doesn't actually appeal to any sort of infinite quantities.
Projective geometry: even in the simple case I outlined, you have lines being circles of infinite diameter. That infinity is just an additional closure point on the plane for shapes (and you can think of the similar projective line providing the complementary notion of displacement we can use to measure the diameter of infinite circles) doesn't stop the geometry from representing shapes with infinite attributes.
It is the case that all of this can be finitely represented. But this is true of a quite large part of large cardinal set theory as well, which can be represented in constructive type theory - mathematicians make it their business to transform the infinitary into the finitary.
Conway's surreal numbers are awesome. Combinatorial game theory seems silly at first (why are we analyzing Hackenbush?) if you expect it to be like "regular" game theory but is mind-blowing when you actually get it in all its glory.
You're right that there is a big social aspect to mathematics that has bitten people in the butt many times throughout history.
But to say that an "observation of reality" should have any effect on existing mathematics is silly. Though mathematics might take inspiration from the physical world, it is removed from it by design. When some observation of reality disagrees with mathematics, that usually means the mathematical framework in question needs to be generalized or specialized, not altered.
This has happened over the years, for example, with measure theory, Fourier analysis, Lie theory, computational complexity theory, and many others.
Fair enough. I tried in my youth to solve every problem I came across. There were many I couldn't solve. It took a while before I developed the wisdom and discipline not to solve every problem no matter how long it took. By a while I mean decades. I sacrificed the possibility of family life, have stopped talking to my uncomprehending stepfather, and have kept my social interactions to an absolute minimum to pursue my consuming interest. (I mention this as a point of pride.) I find myself continually astonished by the ingenuity of solutions I probably could never have imagined after years of work. Perhaps, after a lifetime of effort that must be continually maintained, I have attained the level an entering freshman at Harvard. At this stage, I may be reduced at best to connoisseurship of some aspects of mathematics.
Now for some reflections on attitudes. Mathematicians sometimes act as if they believe that expertise in mathematics transfers to expertise in mathematics education. Suppose you are a sensitive student, lacking in confidence. You open Korner's beautiful book on Fourier Analysis, and the first thing you are greeted with is "This book is meant neither as a drill book for the successful student nor as a lifebelt for the unsuccessful student." Korner does not mention other references suitable for the successful and the unsuccessful student. You take this comment to mean that Korner would let the unsuccessful student drown. There is no implication, but this is the psychological import, the implicature. Why mention the unsuccessful student at all? Why not say who the book is for, without planting this gratuitous image in the reader's mind? It would take some time to return to this book, to get past the wonder at a mind capable of such an incidental, dismissive, off-handed acknowledgement of "the unsuccessful student."
You could say this is "overthinking." Such remarks, microagressions as they are termed today, "perpetrated against those due to gender, sexual orientation, and ability status", are sometimes revealed in the asides of mathematical authors [1].
And now if only mathematics educators would evaluate their students on the state of their confusion!
Reading good foundational text books carefully
is darned good advice. But for solving every
exercise before moving on, no, that's not a
good idea. Instead, be willing to be happy
solving some 90-99% of the exercises. For the
rest, guess, with some evidence, that they are
incorrectly stated, out of place, just too darned
hard, or some such. If insist on solving 100%,
then get on the Internet and look for solutions.
Next, if read some foundational text books, then
in each subject also
read several competing text books, perhaps just one mostly but also
look at least a little at the others for views
from 'a different angle' that can be a big help.
Why? Because likely no text book is perfect and,
instead, in some places is awkward, unclear,
misleading, clumsy, etc. So, views from a
'different angle' can make it much easier to
learn both better and faster.
His description of doing applications by just
getting what really need and forgetting the rest
can be done but is not so good. Instead, having
a good foundation helps a lot. And, commonly
for an application in an important field, there
really is some good material in that field that
should understand with the application. Else
risk doing the application significantly less
well than could have.
His description from Wiles is more or less okay
for doing some research but, really, not for
learning. And for research, more of a 'strategic'
overview, i.e., with the 'lay of the land',
would be good, i.e., for publishing not
just one okay, likely isolated,
paper but a series of better papers
that yield a nice 'contribution'.
No, I'm correct: He set up an extreme straw man
to knock it down. I clearly agreed that his
extreme straw man is foolish. There is a common
reason students fall for his straw man: They are
concerned that if there is an exercise they can't work
they are missing something important. My advice was,
instead, for a very diligent student, to solve 90-99%
of the exercises and just let go of the last few as
illposed, stated in error, out of place, use the Internet,
etc.
To do just the "opposite" of his straw man is not good --
for solid foundational material, Halmos, Rudin, Royden,
etc., the exercises are darned important. Right the
Rudin exercises where have to consider uncountability
are not so good. The Royden exercises on upper and lower
semi-continuity are a lot of work for a little curiosity
but likely won't see again. The Fleming exercise on
every bounded linear functional on a intersection of
finitely many closed half spaces achieves a maximum
value is mis places. Etc. The abstract algebra book
I had had an exercise where the student had to reinvent
Sylow's theorem; a student wrote the author and got
back a letter that the purpose of the exercise was
to see if a student could reinvent Sylow's theorem --
bummer, misplaced exercise.
This is a good example of how being correct is completely irrelevant if you can't communicate it well. That said, I still maintain that you're thoroughly misunderstanding the position the OP was arguing for.
1. I hear about lots of people trying to do every exercise.
2. I think this is bad if it causes them to quit out of frustration.
3. I provide some tips on how to deal with frustration, and to know that you're in good company.
> I still maintain that you're thoroughly
misunderstanding the position the OP was arguing
for.
Okay, let's see. The OP wrote:
> The second approach is to try to understand
everything so thoroughly as to become a part of it.
In technical terms, they try to grok mathematics.
For example, I often hear of people going through
some foundational (and truly good) mathematics
textbook forcing themselves to solve every exercise
and prove every claim “left for the reader” before
moving on.
> This is again commendable, but it often results in
insurmountable frustrations and quitting before the
best part of the subject. And for all one’s desire
to grok mathematics, mathematicians don’t work like
this! The truth is that mathematicians are
chronically lost and confused. It’s our natural
state of being, and I mean that in a good way.
So he has "forcing themselves to solve every
exercise and prove every claim 'left for the reader'
before moving on.".
So, clearly OP and I agree that this "forcing" is bad.
So, here with "forcing" and "every exercise" the OP
was mentioning an extreme case, yes, one that too
many students fall for, but one that both OP and I
agree is bad.
My view is that OP is inserting this extreme case to
have a 'straw man' to knock down so that he can
propose something else.
For his straw man "forcing" case, a better response
would be that it can be okay for a good, diligent
student with high standards to work 90-99% of the
exercises as I wrote. Leave out a few exercises in
case some exercises were stated in error, are out of
place, that is, given before material needed for a
solution, are just too darned difficult, etc. But
OP didn't mention this approach.
Instead OP went on with "The truth is that
mathematicians are chronically lost and confused".
Here, no: A student working carefully through good
material is mostly not lost or confused, certainly
not chronically. OP wants to set up and then knock
down his straw man to propose that students should
feel "chronically lost and confused" which, for
students working carefully through good material, is
just not true and "bad advice".
In research? Sure, lost and confused might be one
description: That is, once understand, i.e., find
the light switch in the sense of Wiles, then move on
to more where are lost and confused again.
I don't think it's an extreme straw man, because I saw notebooks of my math teacher in high school where he decided to take classes and did exactly that, just to make sure he knew it really well. Just the other day I was wondering if I should try to do the same thing in order to get good at math.
It is extreme; too many people do do it, but I was
warning them that they shouldn't do it. Why? It's
a super good way to get totally stuck-o and give up,
all for no good reason at all. And if work on such a
tough exercise full time for two weeks, as I did a few
times as a ugrad or in some of my later independent study,
then that's mostly a waste of time.
Although too many students do this, for the OP it was a
straw man to have something to knock down so that they
could say something else. Not good. The exercises are
one of the best aids to a good student trying to learn;
but, can do well working 1/3rd of them, or half, or the
more difficult 1/3rd, or 90-99%, but on that last 1%
can spend more time than on the first 99% and just
shouldn't do that. Don't worry: In any decently well
written book, if get 90% of the exercises, then have
done well. If really insist on the last 1%, cover the rest of the
book and then come back with the additional understanding
and maybe some crucial results didn't have the first time
through. If really want to know the material well, then
get 2-3 competitive books and work through those also.
This is true with many, many things. Very often it is the connections between ideas that yields the deep understanding, not the ideas themselves. Focusing too intensely on a single idea or subject results in not making connections and, consequently, not really understanding.
I agree. I think most if not everything he said can be applied to learning almost any discipline. I studied physics at university and I definitely recognize the authors description.
"If you’re going to get anywhere in learning mathematics, you need to learn to be comfortable not understanding something."
That's true of everything. It's fear and anxiety that prevents a lot of people from learning and trying new things. I keep trying to tell students or family members when they are learning to do stuff on the computer, just right click everything, just google anything you can think of, don't worry about it being perfect, don't worry about breaking anything. You have to hold back showing them the "answers" or else they become dependent.
I think this is a good read, although I don't agree with all of it - I'm of the mind that there is immense value in being able to figure out difficult proofs. The process develops your logical ability.
I'd agree that there is a place for complicated detail work in mathematics, but I don't think that's really what mathematics is about.
It's more about finding good conjectures, and realizing which theorems and lemmas are actually worth proving, because they say something interesting about the topic.
By analogy, it's certainly important to understand complex grammar, have a large vocabulary, etc in order to be a writer, and develop a good sense of word choice, but that's not really what writing is about; writing is fundamentally about the process by which we tell a story using these tools.
I'm of the mind that there is immense value in being able to figure out difficult proofs.
Absolutely.
However, the rabbit hole is very deep. Many papers make leaps from one sentence to the next that, if you're not familiar with the field, can take a couple days to figure out. Even then, real world proofs are informal and therefore not air-tight. They're close enough, almost always, but there's a reason why a mathematical proof isn't considered valid unless it's lived for two years under peer scrutiny.
One could drill down to formal proof in the Godelian sense, in which proofs are mere typography and can be checked mechanically, but that's not how most of real mathematics is done and, practically speaking, most of it can't be done that way and remain useful to humans (like assembly language, it's too low-level for most applications).
> most of it can't be done that way and remain useful to humans (like assembly language, it's too low-level for most applications).
Sincere question (I'm not a mathematician): why can't it be done that way?!
On top of an assembly language you can create a higher level language and on top of that an even higher level one, and it is airtight, it has to be or the code won't compile or will throw a runtime exception, the compiler or interpreter doesn't just "roll a dice" when it comes across and ambiguous statement! You just can't have ambiguous statements, so starting from a "precise" assembler everything else built on top can absolutely be "air tight" at the language level.
(Now concerning what the program actually ends up doing (like something else than you intended), or that sometimes you trade off security for speed and get a buffer overflow, ok, these things happen, but not at the language level! usually, and when they do - like C programs exploiting undefined but known for certain targets compiler behavior this is either advanced malicious obsfucation or random rookie mistakes.)
So explaining the question: why can't one build a higher level mathematical language bottom up, starting from an "assembler" of machine-checkable proof steps and building one or a few levels of higher level human-friendly languages that still map unambiguously to the lower level one?
Just because mathematical language has evolved in a top down fashion, starting with describing proofs in words or symbols derived from words, and then developing more an more precise language and systems, it doesn't mean that one can't go the reverse route, bottom up, an maybe meet closer to the top in a way, so that the resulting new mathematical language will be similar enough to classical one not to scare everyone away, right?
...and the benefits seem immense! Imagine:
(1) replacing years of peer review replaced by machine checking basic correcting (+ some machine testing on huge data samples, for testable proofs, just to be sure there was no bug)
(2) AI expert systems bringing real contributions to math by actually discovering new proofs AND providing them in a language understandable for humans, so humans learn from them and discover new techniques
EDIT+: (3) allowing the development of much more advanced theories, because just as in software you can build much larger systems once you learn how to write more "bug free" code, the actual complexity of the proof could be much larger and maybe new realms of mathematical will become accessible to human understanding once we have a "linguistic aid" to reducing the percent of faulty proofs and the time spent debugging them
This is a very good thought. Some current projects are trying to develop computable mathematical foundations in a more structured way. Homotopy type theory (http://homotopytypetheory.org/) is one example that has a lot of buzz around it just now, but automated theorem proving has been trying to work with higher-order concepts for ages now.
In the classical approach of "compiling" everything into sets/logic/etc., you end up with just the assembly language problem that's being discussed, where all the high-level structure vanishes. In order to do your bottom-up approach instead, one of the things that needs to happen is to make the theory really compositional, so that once you've defined some abstraction or higher-level concept, you can use it in constructions and proofs without having to break the abstraction. You don't need to know - and in fact you shouldn't be able to find out - just how the natural numbers were constructed, as long as they work by the right rules. This motivates the use of type theory to describe mathematical objects, and say which operations are allowed. We want to be able to add two numbers and get another number, but we don't want to be able to intersect two numbers as if they were sets, even if they happen to have been built out of sets.
So I think you are right - or at least, there are plenty of people who agree with you that this is a good idea. It is difficult to actually do, of course, but that's life.
> We want to be able to add two numbers and get another number, but we don't want to be able to intersect two numbers as if they were sets, even if they happen to have been built out of sets.
Can't we do this in current mathematics?! I mean, no physicist or engineer ever thinks of numbers as sets, even if you are the kind of physicist that reads and understands mathematical proofs.
Right, this is how mathematics really works. But formalizations of mathematics may suffer from leaky abstractions. If we prove facts about numbers by compiling them into sets, and then using set-theoretic axioms, we might accidentally make it possible to prove things about numbers that are incorrect or meaningless.
Isn't this an abstraction problem that you solve by simply providing an "interface" or equivalent concept or access specifiers in oop like private/protected? All other modules that use the number module for applied math will just see an "interface" (let's call it GeneralNumber - as far as I know there are a few other alternate ways of defining numbers besides sets, right?), and the particular "implementation of numbers as sets".
For more abstract algebras or who knows what, the "numbers module" might also implement another more advanced interface that exposes more of the implementation, a "SetsNumber" interface. If you know have a proof that uses this interpretation of number that is tied to one particular "implementation", then there is nothing incorrect about it leading to weird or "meaningless" results, they would be correct for SetsNumber but not for GeneralNumber (or someone might need to take a good look and see if they can be made to work for GeneralNumber too).
(I know, the words are all wrong, it probably sounds either "all wrong" or like a gibberish to mathematicians that don't also happen to be programmers ...someone should figure out more appropriate terms :) )
And about leaky abstractions, I think they happen a lot in software because of the tradeoffs we make, like 'but we also need access to those low level stuff to tweak performance', 'but we need it done yesterday so it's no time to think it through and find the right mode' or 'our model has contradictions and inconsistencies but it's good enough at delivering usable tools to the end-user, so we'll leave "wrong" because we want to focus on something that brings more business value right now' etc. Also, there's a biggie: for some problems using no abstraction is not good enough (initial developing/prototyping speed is just to small), but if you figure out the right abstraction it will end up being understandable only by people with 'iq over n' or 'advanced knowledge of hairy theoretical topic x', and you can't hire just these kinds of people to maintain the product, so you knowingly choose something that's leaky but works and can be maintained by mediocre programmers, hopefully even outsourced :)
Yes, the interface idea is basically the right thing, but there are technical difficulties which aren't immediately obvious. For example, we'd like to be able to prove that two different implementations of the natural numbers are equivalent (one can do this mathematically, so if our system is going to handle general mathematics then it has to be capable of doing this). So we have to think quite hard about what this "equivalence" actually means. It's not enough to say that they satisfy the same axioms, because in general there can be all kinds of models for some set of axioms. It's closer to say that all number-theoretic statements about numbers-v1 are true of numbers-v2, and vice versa: but you can see that this is starting to get a bit hairy in terms of computable proofs.
A related problem, which speaks to the leaky abstraction issue, is "proof irrelevance". Typically, if I've proved something, it shouldn't matter exactly how I did it. But it turns out to be tricky to make sure that the proof objects in the system don't accidentally carry too much information about where they came from. Sure, you can define a way to erase the details, but you still have to prove that erasing doesn't mess up the deductive system.
None of this is insurmountable, but it's a glimpse into the reasons why encoding mathematics computationally is not trivial.
Because until very, very recently, we simply haven't had the means to compute any proofs that mattered.
Rendering even relatively simple high level concepts in to low-level structures and then deriving them in the basic steps takes massive amounts of resources. At least one proof took over 15,000 pages of text (had you printed it).
A secondary problem (which we've been working on for a couple decades now) is that we lack the machinery to translate the results back in to something human readable. At some level, mathematics is about the ability of humans to understand the relationships between things, so computer proofs that only the computer understands don't really help us - especially if we can't relate them meaningfully to our other knowledge.
I mean, people have been trying for hundreds or thousands of years - it's just kind of a hard problem.
We do have automated theorem checkers that follow your idea: from a very simple set of axioms you can build higher level lemmas and proofs that are all mechanically verified by a small trusted logical code. Its actually a very rich and fruitful research area that also happens to live quite close to computer science! Many of these proof checkers are actually just programming languages with a very fancy type system.
However, I don't think we will ever see math move to a totally computer-verified schema like you mentioned:
* First of all, its very hard to write the rigorous proofs that can satisfy a computer. Do you know that feeling when you know that your program will run just fine but the type checker is being picky about a technicality and wont accept it, meaning you need to refactor lots of stuff to appease it? Mechanically verified proofs are like that but the typechecker is even pickier!
* Often, there is a big disconnect between the important mathematical ideas and the logical foundations they build upon. For example, differential calculus has a very simple intuition (rates of change, areas under curves, etc) and can quickly biuld into applications, but its actually pretty hard to build it from basic principles. In fact, it took hundreds of years until mathematicians finally figure that part out and in the end the foundations were totally different from what they were when they started. If you tried to model this in a computer, the effect would be having to rewrite all the foundational proofs and breaks tons of interfaces and higher level lemmas as people started to learn about all the corner cases in the system.
This post ignores the central driving force behind why mathematicians do mathematics: mathematics was created by humans for their own pleasure. It's a coincidence that they find such useful applications in the real world, and mathematicians mostly don't care (it's like a bonus if someone finds a nice application of your work, and maybe it provides you more grant money).
In this light, why would any mathematician want to replace peer review with machine checking? It would result in two undesirable things: 1) you'd have to submit papers in a machine-checkable format, which very few people enjoy writing because it's not a natural language to do high-level reasoning in. 2) you'd lose the chance for others to tell you whether they think your research is interesting or not, relate it to other work, give their own conjectures or ask about clarification, which is the real reason for the peer review system. Overly complex proofs with subtle mistakes are few and far in between.
Similarly, why would we want to offload the joy of finding proofs and discovering new techniques to computers? That's like proposing we have computers produce all art and music. The process of creation and discovery is largely what makes mathematics worth doing!
I understand what you say. But my interest is actually into AI, so the same way you find pleasure in creating and understanding interesting proofs, I find pleasure in trying to think about how the human mind works and how to make artificial forms of intelligence that share the properties of human mind but not the damn limitations of the "biological hardware" and of mortality. And I also think that in fields like AI "proof by engineering" is the only way to move forward - we'll have to build them or 'evolve them' in order to prove that they can be built (I know, this is not a line of thinking that mathematicians enjoy :) )
I'd love to see AI evolving to the level at which they create art and music or analogues of these (for their own pleasure and maybe for that of humans too, if the pleasures are compatible).
I know, you'd have to share my belief that strong AI is possible (and really close too I think) and that that minds are nothing but machines themselves and that all forms of intelligence will be comparable, regardless of whether the hardware will be "biology" or "technology", "natural" or "artificial" (in a few hundreds years I think we'll even cease to make the difference between these concepts, they will appear synonyms to our non-human or not-so-human-anymore descendents, just some linguists will identify different etymologies of them) :)
I think it can in theory, but the reason it hasn't been done in practice is basically that mathematics is too damn big. Look at Whitehead and Russell's original attempt to do basically exactly what you're asking for: it took them a few hundred pages to build up enough machinery to prove that 1+1=2.
I only heard the same argument (this is the phrasing from Wikipedia but everybody seems to say something along these lines):
>"However, in 1931, Gödel's incompleteness theorem proved definitively that PM, and in fact any other attempt, could never achieve this lofty goal; that is, for any set of axioms and inference rules proposed to encapsulate mathematics, there would in fact be some truths of mathematics which could not be deduced from them."
...so what?! The fact that there can be truths that can't be deduced from an "assembler language" just means that the system will sometimes just say something like "error: no proof in the current model database for 'fact x' found" and then the mathematician will just add "consider 'fact x' proven as in the defined in modelXYZ" (a model that can have a totally different logic than the current one - think of a model as a library written in a completely different programming language, in software analogy), taking responsibility for the fact the equivalence of the concepts 'fact x in current model' and 'fact x in modelXYZ'.
The long term goal would be unification of as many of the models as possible (even with, what I understand from Godel, as the impossibility of total unification - if something is proved to be impossible, it doesn't mean you can't get great benefits by always getting asimptotically closer to it) preventing such "forced equivalences", but it would still be a working system in the meantime. And more importantly, I guess, the system will make the "forced equivalences" obvious, and label them as problems for mathematicians to solve.
It wasn't stopped, it's just way, way harder than one would naively expect. Russell continued to work on it by developing type theory, which was later carried on by people like Alonzo Church and Per Martin-Löf. This led not just to types in programming, but also to the use of types in proof checkers like Coq and Agda, which are very much the kind of thing you're talking about. Efforts are ongoing to continue working towards the vision of automated theorem proving, but again, it is an extremely difficult problem.
That's what I tell people around me. Studying math is hard because it makes you feel stupid. You always feel lost, you always feel like you missed so many things when you're starting to learn a new thing, you always feel like your questions are stupid (until you get that the rest of the class is pointless as well).
Especially with talented professors (Lyon 1, France, the professors there are not really good educators, but they are geniuses), they make you feel bad for not understanding things that seem so simple to them.
Studying math is depressive if you take it too seriously.
It's strange to hear mathematics described more as a search for art and structure than computation. Unfortunately most of my math education was on the computational/applied side. I'm only getting into number theory and the more esoteric math later in life for fun. As a parent I think we can't let the school system destroy our kids love of math through too much rote learning. We have to make it fun for them. (Same with music btw)
Reminds me of this great quotation, which Oksendal places before the preface to his stochastic differential equations book:
We have not succeeded in answering all our problems. The answers we have found only serve to raise a whole set of new questions. In some ways we feel we are as confused as ever, but we believe we are confused on a higher level and about more important things.
Posted outside the mathematics reading room, Tromsø University
I'm just so happy that I get to read everyone's interesting stories and thoughts in the HN comment threads! HN is really one of the highest-quality places for discussion on the web ^_^
Before a few articles of this kind I never suspected there was such depth in Maths.
There's already so much to learn in programming, but I'm sure I'd love to dive in Maths (without the pressure of school like "understand this or you're an idiot").
Focus as much as possible on the underlying concepts from any math topic and how they connect to other concepts. Try to boil these concepts down to the most simple, clear form that makes sense to you. Test your boiled down conceptual understanding by applying it to related exercises/problems you haven't tried before and seeing what happens.
For each sub-topic, most math books give you the tools first and then teach you problems they should be used on. Read the problems first, and think how you might solve them (don't expect to figure it out, but if you do, great!). Then, go back and learn the tools, trying mostly discern the "how" and the "why" as opposed to the "what". Math is all about "how" and the "why". As some motivation, whenever a new thing clicks, it is very satisfying! :) But it definitely is a tough process.
If you're past calculus, I'd say start with Sheldon Axler's Linear Algebra Done Right (it has the most immediate applications, and linear algebra is essential for almost all higher mathematics).
If you just want to get your foot in with pure math I'd recommend studying basic abstract algebra and analysis at the same time. For abstract algebra look into Hungerford (Intro, not his grad text), for analysis, maybe Rudin, or Kolmogorov and Smirnov.
The common theme at every level is learning cherry-picked skills, before you're even told what the branches of mathematics even are. Everything seems disjointed because you're not taught to look past the trees for the forest. Most people infact, even technical folk, go through their entire lives without knowing the forest even exists. Any idiot can point to a random part of their anatomy and posit that there's a field of study dedicated to it. The same goes for mechanics or computer science. You just can't do that with mathematics as a student.
I loath academic papers. Often I find I spend days or weeks deciphering mathematics in compsci papers only to find the underlying concept is intuitive and plain, but you're forced to learn it bottom up, constructing the authors original genius from the cryptic scrawlings they left in their paper... and you realise a couple of block diagrams and a few short paragraphs could have made the process a lot less frustrating.
So many ideas seem closed to mortals because of the nature of mathematics.