How Math’s Most Famous Proof Nearly Broke (2015)
nautil.us
nautil.us
Nice easy reading on the history of codes.
Anyway this is one of the hottest research topics in CS. I know we keep seeing deep learning papers all the time, one might think this is the only thing happening in CS world. Currently it is nowhere near easy to formalize a complex enough theorem in a system like this. Good news is there is a large chunk of certain theories (like homotopy theory) already formalized for you, so you can go ahead and use them as libraries.
The biggest challenge is mathematics is written for humans, it is not meant to be formal. When you formalize theorems you start proving smallest shit you'd never have thought that would need a proof. You even need to prove things like what it means x == y and that for all x, x==x. There is no AI involved in this currently, so it's a very manual, intellectually complicated and long process. These systems have a proof finder built into them which performs a tree search with heuristic to help you, this usually makes manual proofs easier, but usually only marginally easier and you still have to micromanage your proofs.
Keywords you can search: automated theorem proving, dependent type theory and homotopy type theory.
It's true that one needs to prove a lot of trivial things in all these systems, but the extent of this varies dramatically based on how much automation they provide. For example, Agda includes only minimal, barebones proof automation, while both Isabelle and Coq allow using more sophisticated automation that can take care of a lot of trivial steps automatically (such as "x == x").
Serious proof developments don't even use the languages in a procedural way. They use "declarative" idioms/patterns that are structured more like a very detailed human proof. This is because "procedural" interaction with the proof state is extremely fragile (it's like raw assembly code, the slightest change in any part of the proof can break basically everything else in it) plus it actually requires "replaying" the proof in order to have any chance of understanding how it works. Declarative idioms can be read and understood directly, at least to some extent.
"Only then did I discover that the proof of a key lemma in my paper contained a mistake and that the lemma, as stated, could not be salvaged. Fortunately, I was able to prove a weaker and more complicated lemma, which turned out to be sufficient for all applications. A corrected sequence of arguments was published in 2006.
This story got me scared. Starting from 1993, multiple groups of mathematicians studied my paper at seminars and used it in their work and none of them noticed the mistake. And it clearly was not an accident."
More details on page 8 in the IAS newsletter article
https://www.ias.edu/sites/default/files/pdfs/publications/le...
There is also a Quanta article:
https://www.quantamagazine.org/univalent-foundations-redefin...
As to how hard it is to learn, you will have to learn a pretty decent amount. It all depends on your background. If you know what the Curry Howard correspondence is, you are in relatively good shape. If you've never heard of lambda calculus or first order logic, you may have some more work cut out for you.
Here is a nice article I read last night on explaining the move from set theory to type theory. It gets a bit technical but you might be able to get something from it.
https://golem.ph.utexas.edu/category/2013/01/from_set_theory...
For Coq, a widely used book to get started is Software Foundations [4] which is also focused on PL semantics.
[1] https://isabelle.in.tum.de/
I recall it was accessible if you had programmed in an ML, start here: https://softwarefoundations.cis.upenn.edu/
Of these, Isabelle and Coq compete for best-of-breed and are extremely powerful. Metamath on the other hand is intentionally minimalist, starting at a level below logic (string substitution rules, basically) and building up predict logic inside the system. Metamath comes with a "proof explorer"[5] - an online body of proofs formally verified by metamath.
For proofs about algorithms in particular, TLA+ [6] is a formal specification language which can prove things about algorithms, as charmingly described in "Euclid Writes an Algorithm."[7]
[1]: https://isabelle.in.tum.de/ [2]: https://coq.inria.fr/ [3]: http://us.metamath.org/ [4]: https://en.wikipedia.org/wiki/Proof_assistant [5]: http://us.metamath.org/mpeuni/mmset.html [6]: https://learntla.com/introduction/ [7]: https://lamport.azurewebsites.net/pubs/euclid.pdf
If you are a programmer who hasn't touched any functional programming, this would probably blow your mind all over the place.
It's so interesting that a problem so simple to explain would require hundreds of pages of proof.
I'm really interested in whether the Collatz conjecture will be proven too.
Badiou (a continental political philosopher interested in the philosophy of mathematics) uses FLT as an example in political contexts, to what extent we can say that a utopian vision has failed even if it results in disaster, we should be (and some have been) looking out for the lessons which are learned after failure.
Maos has it and starve 30 millions.
Soviet Union.
USA has its Vietnam and 2nd Iraq war.
I am not saying we should not try but Great Saint begot Great Thief. Be afraid of people who sit in their arm chair and talk about scarifie for the ideal.
Also I'm curious if it can be proved that only one proof is possible. There are several independent proofs of the Pythagoras theorem.
If so why did Wiley choose to write a 200 page proof while he could have stated it in one sentence?