News for hackers. Stuff that matters.
Re:I no longer understand my PhD dissertation by wfo on Monday February 15, 2016 @01:08AM (#11101772)
It would be really nice if all it took to understand difficult mathematics were some easy programming tricks.

The problem with looking at old code is you forget what is going on or what the purpose of different components are. The problem with looking at old mathematics is that it is genuinely very difficult to understand. You work very hard to be an expert in a field and get to a level where you can read a cutting-edge research paper. Then if you let that knowledge atrophy, you won't be able to understand it without a lot of re-learning when you look at it again.

Unfortunately cute tricks like comments and concrete examples won't save you here (if concrete examples even exist -- oftentimes their constructions are so convoluted the abstract theorem is far easier to understand, and often times they are misleading. The theorem covers all cases, but all of the easily understandable concrete examples are completely trivial and don't require the theorem at all.)

Programming has existed for, say, 50-100 years. We have recorded mathematical history going back thousands, with contributions from most of the most brilliant human beings to ever exist. Do you think perhaps there's a reason why a simple and easy trick like commenting and renaming lemmas has been discovered and solidified as standard practice in programming, but hasn't been adopted in mathematics? Are mathematicians really just SO dumb?

The answer is those tricks just aren't good enough. Mathematicians do exposition. They do plenty of explaining. Any textbook and even many research papers spend a huge amount of time explaining what is going on as clearly as is possible. As it turns out the explanation helps, but the material is just plain hard.

Re:I no longer understand my PhD dissertation by xiaq on Monday February 15, 2016 @05:34AM (#11102599)
> Programming has existed for, say, 50-100 years. We have recorded mathematical history going back thousands, with contributions from most of the most brilliant human beings to ever exist.

Mathematics with a solid logic foundation has also existed only for the past century, and writing programs is actually equivalent to doing a mathematical proof as some have already pointed out.

The actual problem is that when programming you are talking to computers, so you have to lay out each step, or the computer will not know what to do. Sure you can use libraries to do very complex things all at once, but then that's because those libraries have already laid out the steps.

But when doing mathematics you are talking to humans and you often skip steps in a very liberal way. There is indeed a library of theorems that is written down, but there is also an unwritten library of "it trivially follows", which, if a mathematician is asked to actually write it down, might feel humiliated.

When you think that there is something so trivial that computers must be able to do, you still have to find or invent a library for that. When you think there is something in mathematics so trivial that it must be true, you just need to convince your audience.

One day all mathematical papers will come with a formal proof, but that day has not yet arrived.

Re:I no longer understand my PhD dissertation by xiaq on Monday February 15, 2016 @05:44AM (#11102622)
To clarify the last sentence: I am not criticizing mathematicians for not doing formal proofs. Often mathematical publications are not final "products" but explorations into new methods. Requiring formal proofs on every publication, with the status quo of computer-assisted proving, will surely impeded the development of mathematics. What I am saying is that I hope one day with the development of computer-assisted proving, the chores involved in doing formal proofs will be reduced to such a degree that mathematicians are more inclined to do them than not.
Re:I no longer understand my PhD dissertation by wfo on Tuesday February 16, 2016 @12:58PM (#11111773)
Mathematical papers will not come with a formal proof until formal proof systems "auto-prove" button is strong enough to do everything for them and it can come as an afterthought that takes 5 minutes.

Formal proofs do nothing to help understand the mathematics, all they do is help to check for errors in logic -- have you ever read a formal proof? They are leagues more obtuse and difficult to understand than any piece of mathematics from any field.

A program is technically truth-value equivalent to doing a proof, but the resulting document/piece of text are MILES apart. The proof is an explanation in plain language to others who understand the topic why something is true. The formal proof is a sequence of opaque inference rules that the computer promises is equivalent to a real proof.

It's the difference between understanding a formula and plugging it into your calculator. The calculator is more likely to compute correctly, but it gives you no help when it comes to actually understanding mathematics.

Mathematicians as a community completely reject the notion of using formal proofs (while sometimes begrudgingly accepting they may be useful to check our work) because they completely miss the point of what we are actually doing.

Re:I no longer understand my PhD dissertation by Certhas on Monday February 15, 2016 @09:48AM (#11103618)
> writing programs is actually equivalent to doing a mathematical proof

Only in the sense that writing in brainfuck is equivalent to writing in Python...

Re:I no longer understand my PhD dissertation by xiaq on Monday February 15, 2016 @09:59AM (#11103663)
True, but the point is that in principle you can write very detailed, fully formal proofs, in exactly the same manner programs are written. The rest of my comment then discusses why it is not written that way.

Doing formal proofs manually is like writing turing machine instructions. Computer-assisted proving gives you higher level tools, but apparently it is still not powerful enough to be accepted in mainstream. And unlike programming where you get stuck if you haven't invented higher level languages, mathematicians have the widely accepted tool of "it trivially follows". Bourbaki might disagree, though.

Re:I no longer understand my PhD dissertation by true_religion on Monday February 15, 2016 @12:40PM (#11104686)
That's a very illuminating analogy.

Users of high-level languages, typically do not think about what the compiler is doing, and if in fact they do not know the compiler action--often the only way to find out is by reading the compilers source code.

This is akin to looking a math paper seeing "it trivially follows..." and your only recourse to find out why it so trivially follows is to get a mathematics degree.

Re:I no longer understand my PhD dissertation by xiaq on Monday February 15, 2016 @02:28PM (#11105329)
There is still a key difference.

With programming the information is always there. If you don't understand a higher level language but do understand the language in which the compiler is implemented, you can always read the compiler.

The "it trivially follows", the information is simply missing. Gaining a mathematics degree will often give you the intellectual power of finding the missing pieces yourself, but the only sure way is to ask the authors themselves.

Re:I no longer understand my PhD dissertation by EvanPlaice on Monday February 15, 2016 @04:37PM (#11106220)
At least in programming it's possible to step into a function and/or work at multiple levels of abstraction.

Getting a math degree just to be able to fill in the gaps created where 'it trivially follows' is equivalent to being required to memorize the API for a framework because clearly defined documentation is hidden behind a paywall.

so called 'intellectual power' has little to do with it. What you're describing is familiarity with navigating a minefield of poorly structured information and tapping a academia (ie at a very high cost of entry) for 'special access' to resources that bridge the gaps.

Of software development suffered from the same informational constraints and lack of innovation, we'd still be playing pong.

Re:I no longer understand my PhD dissertation by stuxnet79 on Tuesday February 16, 2016 @10:19AM (#11110346)
Well said. Memorizing the API is fundamental to success in most branches of math - but this erects a barrier that a lot of able individuals are unable to cross. I've always thought this was a problem but I almost never hear of anybody complaining about this so I figured it was just me. Languishing in the established system is usually interpreted as "sour grapes".
Re:I no longer understand my PhD dissertation by pc2g4d on Thursday February 18, 2016 @07:25PM (#11130555)
It strikes me as a collective means for mathematicians to reduce entry into their field and thus to increase their own salaries. Maybe you don't have to get a "math license" to practice math, but you have to somehow acquire a huge body of knowledge that is almost never spelled out fully in the mathematics literature. This will prevent many people from becoming mathematicians and thus make math a more exclusive and lucrative endeavor.

To be cynical about it.

I guess that's not much different from most fields' use of specialized vocabulary, etc. There are many informal methods of dissuading people from competing in your own little corner of the labor market.

Re:I no longer understand my PhD dissertation by xiaq on Tuesday February 16, 2016 @09:04AM (#11109820)
> ... because clearly defined documentation is hidden behind a paywall.

Hmm you are from US aren't you? :)

Re:I no longer understand my PhD dissertation by mmarx on Monday February 15, 2016 @11:42AM (#11104269)
>> writing programs is actually equivalent to doing a mathematical proof

> Only in the sense that writing in brainfuck is equivalent to writing in Python...

Actually, in the very concrete sense that a program is a proof for the forumala that is equivalent to its type[0].

[0] https://en.wikipedia.org/wiki/Curry–Howard_correspondence

Re:I no longer understand my PhD dissertation by akie on Monday February 15, 2016 @03:11AM (#11102070)
> Do you think perhaps there's a reason why a simple and easy trick like commenting and renaming lemmas has been discovered and solidified as standard practice in programming, but hasn't been adopted in mathematics? Are mathematicians really just SO dumb?

No, they aren't, but the example in question would have been easier to understand if he had tried to explain what was going on, instead of just saying "it is trivial that this or that follows". I think the comparison with "old code syndrome" is pretty much spot on, to be honest.

Re:I no longer understand my PhD dissertation by conceit on Monday February 15, 2016 @06:28AM (#11102748)
... especially if code is to be considered in the terms of information theory. Context is important and context can't be encoded without raising the entropy. Also, speech and to a large degree mathematical symbolism are sequential, so multi dimensional problems would have to be broken down into one sequential dimension, raising the entropy exponentially or whatever or loosing information. Can't help it.
Re:I no longer understand my PhD dissertation by efaref on Monday February 15, 2016 @08:08AM (#11103132)
Leslie Lamport wrote a paper on this subject over 20 years ago.

http://research.microsoft.com/en-us/um/people/lamport/pubs/l...

As far as I can tell, nobody has really adopted any of his proposals yet, and most papers continue to be written in pseudo-prose. Remember, mathematics used to be written in full prose (e.g. "the square of the hypotenuse is equal to the sum of the squares of the other two sides") and it took hundreds of years for us to realise that "x^2 + y^2 = z^2" was a better notation.

While mathematics may be "genuinely very difficult to understand", so is any complex piece of software. Software engineering techniques might be useful to mathematicians, even if they are all new-fangled and modern.

Re:I no longer understand my PhD dissertation by cokernel on Monday February 15, 2016 @11:29AM (#11104194)
The structure of Doron Zeilberger's proof of the Alternating Sign Matrix Conjecture is reminiscent of this, though possibly not directly inspired by it: http://www.combinatorics.org/ojs/index.php/eljc/article/view...
Re:I no longer understand my PhD dissertation by ezy on Tuesday February 16, 2016 @01:50PM (#11112170)
"subsubsubsublemma" kind of cracked me up. He seems very dedicated to not numbering the nested schema in this proof. :-)
Re:I no longer understand my PhD dissertation by hinkley on Monday February 15, 2016 @05:15AM (#11102548)
It's also the jargon.

I remember years ago telling a coworker that I was an ACM member and subscribed to the SIGPLAN proceedings. He looked at me and with all sincerity asked, "You can understand those things??"

To which I responded, "About half," but I totally sympathized with his question. Both Math and CS need the reincarnation of Richard Feynman to come and shake things up a bit. There's too much of the 'dazzle them with bullshit' going on. It's no wonder that it takes so long for basic research to see application in real scenarios. You people bury your research under layers of obfuscation about half the time. Does it really help anybody to do that? Why do you do that?

"If you can't explain it simply, you don't understand it well enough." is my new favorite Albert Einstein quote.

Re:I no longer understand my PhD dissertation by Ntrails on Monday February 15, 2016 @06:23AM (#11102729)
Thing is, I did understand it. Hell, I looked through my notes from maths degree (5 years ago) and guess what - most of it seems like nonsense. The worst bit is that because these were notes to myself - jam packed with comments of "so obviously" followed by a transformation I can make no sense of at all.

It makes me pretty sad to think what a waste of time that learning was. Also the flip side of "hehe - I was well smart" is "shit - I'm now a moron"

Re:I no longer understand my PhD dissertation by Lawtonfogle on Monday February 15, 2016 @10:12AM (#11103730)
>"If you can't explain it simply, you don't understand it well enough." is my new favorite Albert Einstein quote.

Yes and no.

I spend a fair amount of time explaining things to children. Not exactly five year olds, so no ELI5. More like ELI13. But to do this often requires over simplifying points to you either hand wave or or even sometimes given incorrect examples that are 'good enough' at the level that you are aiming at.

For example, consider explaining gravity as mass attracting mass. That is over simplified and breaks down at certain points, but for explaining to a kid why objects fall when you drop them, and even giving an opening to explain things like acceleration of falling objects, it is good enough.

So a better way of saying it is that if you understand both the subject matter and your audience well enough, you will be able to given simple explanations that will increase the audience's understanding.

Re:I no longer understand my PhD dissertation by claudius on Monday February 15, 2016 @09:17AM (#11103484)
> "If you can't explain it simply, you don't understand it well enough." is my new favorite Albert Einstein quote.

It’s also one of his more moronic quotes. Certainly on a very abstract, dumbed-down level everything can be explained simply; sure, if you cannot give your parents a rough idea what you’re doing, you might want to look into more examples. But there are plenty of things which require a very extensive basis to be understood thoroughly.

For example, it is very easy to summarise what a (mathematical) group is and for anyone with a basic understanding of abstract maths, it will be understandable. It’s also very simple to find some examples (integers with addition, ℝ/{0} with multiplication etc.) which might be understandable by laypeople, but you will either confuse the latter or only give examples and not the actually important content.

Further, when you have “simply explained” what a group is, can you go on and equally “simply explain“ what a the fundamental representation is and how irreducible representations come about? You just need a certain level of knowledge (e.g., linear algebra) already and not every paper can include a full introduction into representation theory.

Re:I no longer understand my PhD dissertation by EvanPlaice on Monday February 15, 2016 @05:05PM (#11106409)
"You just need a certain level of knowledge (e.g., linear algebra) already and not every paper can include a full introduction into representation theory."

Then why is paper still the overwhelmingly preferred medium?

Using hypertext it would be trivial to link to an external source describing the specific concept used from linear algebra.

Not providing supporting links is only good for an audience that holds the entirety of mathematical knowledge in their heads (ie mathematicians in academia).

The rest of the world, incl those who have since moved on like the author, don't fit into that category.

Therefore, the work can only be accurately read and understood by the tiny minority of specialists capable of decoding the intent of the work.

Limited reach = limited value to society.

Is the intent of a PHD really to advance the field of mathematics? Or is it just another 'measuring stick' for individuals to prove to others how 'smart' they are?

Re:I no longer understand my PhD dissertation by taurath on Monday February 15, 2016 @02:39PM (#11105397)
I have taken to adding the corollary response ", but if you can only explain it simply, you also don't understand it well enough."
Re:I no longer understand my PhD dissertation by singham on Monday February 15, 2016 @08:24AM (#11103219)
Einstein also said "make things simple and not simpler". They will always be things that are irreducible.
Re:I no longer understand my PhD dissertation by taurath on Monday February 15, 2016 @02:40PM (#11105407)
But at the same time, if you can ONLY explain it simply, you don't understand it well enough.
Re:I no longer understand my PhD dissertation by yummyfajitas on Monday February 15, 2016 @09:01AM (#11103404)
While "easy programming tricks" are not all it takes to understand difficult mathematics, writing a math paper like good code makes it drastically easier to understand what's going on.

E.g., encapsulation - given a theorem with a highly technical proof, but ideas from the proof are not super important, hide the proof in an appendix. This is directly analogous to private functions which are only used to power a public one.

Naming lemmas is also helpful, although not sufficient.

Mathematicians aren't dumb. But they do have a set of traditions and a rhetorical style which is often blindly copied. Also, most mathematicians haven't been exposed to good software engineering practices - consider how few use git and instead just email around "paper_v3_chris_edits.tex". Having worked in both the math world and the CS world, math folks can learn quite a bit from software.

(And vice versa - e.g., I just wrote a blog post about how some abstract math solved a real software engineering problem for me: http://engineering.wingify.com/posts/Free-objects/ )

Re:I no longer understand my PhD dissertation by Lawtonfogle on Monday February 15, 2016 @10:05AM (#11103700)
A paper cannot teach a layman everything they need to understand the topic, but there are many papers out there I have difficulty understanding because of how they are written, but when reading them with a companion exposition, I can comprehend. It is a balance of getting one's point across while targeting a wide enough audience.

It is the same with code. No one should be writing production code at the level where any non-programmer fluent in the language of the comment's could understand. But they should be writing it simplified enough so that performance isn't impacted and that anyone who is maintaining the code should be able to understand it without having to spend extreme amounts of time digesting it. And sometimes a key performance boost will turn into a 'here be dragons'.

I do think Mathematicians are optimizing a bit too strongly for similar level peers, but please don't think I'm trying to say the are dumb for doing such.

Re:I no longer understand my PhD dissertation by timwaagh on Monday February 15, 2016 @04:31AM (#11102380)
since when are standard tools of good education 'cute little tricks'? mathematics is hard. mathematicians are some of the smartest people in the world. yet the current tendency to not do these things or not do them enough is a consequence of a certain culture, efficiency constraints and even the near universal use of LaTeX.
Re:I no longer understand my PhD dissertation by madsbuch on Monday February 15, 2016 @04:46AM (#11102432)
I completely agree on the culture point:

Programming and math _is_ essentially the same (Curry Howard isomorphism) and the problems are indeed equally complex.

The difference is that programming is driven on economical terms, hence agility, flexibility, etc. has been developed.

Mathematics is driven in the university sphere, where mostly intrinsic motivation drives. Not many mathematics professors have the urge to sit down and learn scrum, read manifests of coding practice etc.

The math culture will eventually see itself be forced to go these ways to keep up.

Re:I no longer understand my PhD dissertation by gjulianm on Monday February 15, 2016 @05:12AM (#11102543)
I don't think that programming and math are the same in a practical sense. I am studying math and CS and they're fairly different. Programs deal with specific things, types and data that you manipulate and see with your eyes. Maths deal with abstract concepts for which finding examples can be pretty difficult.

Also, while programming, you can design your functions and their interfaces before writing them down. In maths, that's impossible: you're constrained by what can/cannot be done.

Scrum or coding practice doesn't apply here. Maths don't have to "keep up", they're already way ahead of their applications. It also doesn't need to be fast or flexible, just rigorous. And while motivation and intuition helps (specially when learning) some concepts cannot be motivated or given an intuition, and even in that case you still have to learn the small details and formalizations.

Re:I no longer understand my PhD dissertation by xiaq on Monday February 15, 2016 @05:59AM (#11102657)
> Programs deal with specific things, types and data that you manipulate and see with your eyes. Maths deal with abstract concepts for which finding examples can be pretty difficult.

Have you forgotten the pains that you went through trying to understand the difference between values, pointers and references, lexical and dynamic scoping, static and dynamic typing, and the like? Can you see them with your eyes? Have you ever tried fully explaining any of those to a non-CS major in half an hour? :)

Abstractness is pretty subjective. For non-programmers, even the idea of CPU and memory can be abstract. And it doesn't help to open up a computer and point to the hardware; that is like claiming a mathematical paper is not abstract by pointing to the very concrete paper and ink that embodies it.

Re:I no longer understand my PhD dissertation by gjulianm on Monday February 15, 2016 @08:16AM (#11103179)
I'm not saying those concepts are not difficult. But values, pointers and references are something that relate to memory. You can simulate in a paper how is a value or a pointer managed in a program. Same with scopes and static typing. There are specific examples for all of those.

Some concepts in mathematics are way above the abstraction level that you mention. For example, the projective plane, or nowhere-differentiable functions, or geometry in higher dimensions; those are concepts that not only do not have any physical equivalent, but are also very difficult to grasp and imagine in your head.

Re:I no longer understand my PhD dissertation by xiaq on Monday February 15, 2016 @09:47AM (#11103615)
True. But still, I think the problem lies more in the fact that mathematicians skip too many steps in their prrofs (see another comment of mine) than the inherent abstractness of mathematics.
Re:I no longer understand my PhD dissertation by nilkn on Monday February 15, 2016 @05:56PM (#11106691)
I've done mathematical research in the past and I actually think a lot of the practical methodology I've learned from software development could be incredibly useful to mathematicians. I'd love to work full-time on a selection of related research problems with a group of coworkers following a sort of "agile" process with quick morning standups, a centralized repository of works and proofs in progress, "proof reviews", Trello boards, and so on.

Would it actually work? I honestly don't know, but I'd seriously love to try it.

Re:I no longer understand my PhD dissertation by calhoun137 on Monday February 15, 2016 @08:22AM (#11103209)
Programming is a subset of math, namely, the part of math that deals with algorithms. There are many parts of math that are not contained in programming. For example, floating point numbers are finite representations of real numbers, but since floats are finite, without some math theory beyond just algorithms, there is no way to understand them. There are may similar examples.
Re:I no longer understand my PhD dissertation by madsbuch on Monday February 15, 2016 @05:23AM (#11102575)
The differences you note are what I consider cultural differences.

Math _indeed_ have the idea about interfaces and implementations. They are called something different (exitensisal types from a PL point of view).

I will recommend you to look into type theory, in particular the book "types and programming languages" provides a very good introduction.

In CS we have two areas that make it completely clear that math and CS are coupled, that is complexity theory and programming languages. After having taken a course in each, and pondering a bit, it should indeed be possible to see the that they are the same.

Re:I no longer understand my PhD dissertation by abricot on Monday February 15, 2016 @04:54AM (#11102466)
I'm curious, are you saying LaTeX is bad for math?

I'm not doubting you, I'm no mathematician, but my understanding is that it is only positive, as it improves the legibility of the text.