11 ms·
This is one of the reasons it takes a lot of training and talent to become a mathematician. If you wonder how mathematicians can do this when programmers write
by StefanKarpinski 11y ago
This is one of the reasons it takes a lot of training and talent to become a mathematician. If you wonder how mathematicians can do this when programmers write such buggy programs and the two processes seem so similar, I would note that I've found that mathematicians are remarkably careful, if slow, programmers and they make mistakes at a much lower rate than most programmers. If you consider moreover that mathematics is entirely free of many of the things that make programming hard – such as any kind of mutable state, input/output or concurrency – then you can see why proof may be a more reliable process than programming.
Another part of is that one spends a huge amount of time questioning and testing every single step of a proof. There's a slow back-and-forth process to proving things:
1. I think this is true – let me try to prove it.
2. I get stuck on something in the proof – let me try to construct a counterexample to the specific thing I'm currently trying to prove.
3. If I can't construct a counterexample, why? That reason itself is a proof of the point I was stuck on.
And so on, back-and-forth until the whole proof is done or you've managed to find some insane, devious counterexample. So by the time you've proved something, you've looked at it from every angle and considered every possibility. Mathematicians reading a proof do something very similar, but a bit more passively – it's still a very active process where you try to poke holes in every single claim and convince yourself that you can't before moving on. But a lot of the steps will be completely obvious to a trained mathematician – it's the sequence of them that's non-obvious, but once presented in order, the arc of reasoning becomes crystal clear and irrefutable.