Proof confirmed of 400-year-old fruit-stacking problem
newscientist.com
newscientist.com
August 10, 2014 We are pleased to announce the completion of the Flyspeck project, which has constructed a formal proof of the Kepler conjecture. The Kepler conjecture asserts that no packing of congruent balls in Euclidean 3-space has density greater than the face-centered cubic packing. It is the oldest problem in discrete geometry. The proof of the Kepler conjecture was first obtained by Ferguson and Hales in 1998. The proof relies on about 300 pages of text and on a large number of computer calculations. [...]
I wonder if their proof process generated a certificate that would allow a single computer to verify their result in a reasonable amount of time?
Of course, all this would do (if their claim holds) is run for hours and print "Yes" or whatever that system prints when you ask it to prove that A implies A (Prolog afficiniados will feel at home)
Writing a proof takes forever, because you have to take into account all possible corner cases etc, but I'd be surprised if running (hence: verifying) the entire Hale's proof would take more than a few minutes.
I would have said the same thing before reading the announcement, but it says it took 5000 hours for some of the computations:
The term the_nonlinear_inequalities is defined as a conjection of several hundred nonlinear inequalities. The domains of these inequalities have been partitioned to create more than 23,000 inequalities. The verification of all nonlinear inequalities in HOL Light on the Microsoft Azure cloud took approximately 5000 processor-hours. Almost all verifications were made in parallel with 32 cores, hence the real time is about 5000 / 32 = 156.25 hours
Would those computations have to be repeated by every verifier? Or is theresome kind of certificate that can be verified faster?
A possible exception would be if the certificate was a probabilistic proof of some kind (someone mentioned the PCP theorem, which is an example of that), but I don't think mathematicians would be satisfied by that.
"Machines do the grunt work and leave humans free for deeper thinking", really? Let me put it this way: what is the most important thing about, say, Pythagorean theorem? From the engineer's point of view it could be ability to find the length of the side of right triangle given the other two or something like that. From the mathematical point of view the most important thing about that or any other theorem is its proof. It isn't actually that important that you cannot divide arbitrary angle by 3 equal parts using only compass and the ruler — the way how you prove it is what really matters.
So, once again, autoverifiers are wonderful and so on, but if someone thinks that writing incomprehensible, but correct proofs is as fine as it gets — it's huge mistake to think so. Math is not about constructing and computing, it is about understanding in the first place.
A lesser issue was philosophical -- it didn't seem like mathematics was "supposed" to be conducted. This second issue has pretty much evaporated in the intervening years.
In the brute force case, it's simply a conceit of mathematicians that algorithms implemented in a programming language are incomprehensible. If our proofs can span hundreds of pages, why not also our programs?
Accepting the premise that large algorithms and their results can be used as part of a proof, have you ever proven a program correct by hand? It's almost always tedious and unenlightening.
(for some reason the link in the flyspeck project home is dead)
For HCP, you shift back and add a layer identical to A (that is, the beads of the third layer are directly above the beads of the first) and then repeat, making an ABABAB... pattern. For FCC, you shift to the one allowed position that is not identical to A, making an ABCABC... pattern. (Fig. 1 of this Wikipedia article is at least a little useful for visualizing this: http://en.wikipedia.org/wiki/Close-packing_of_equal_spheres)
Not really. I wonder if the author of the linked article realizes that the Turing Halting Problem, and Gödel's incompleteness theorems, are deeply connected and prevent the claimed outcome as stated.
2. Yes, the validity of theorems is undecidable. But even if that's what the quote was talking about (it's not, read the context), confirming truth (soundness) is very much something computers are capable of. Correctly deciding truth or falsity (soundness + completeness) is what is not possible in every case.
Checking a series of logical statements, and generating a series of logical statements, are not fundamentally different with respect to the issue of undecidability.
> Compared to most reporting on technical subjects, this reporting was wonderful.
Until I got to the passage I quoted, I agreed completely, and I agree in general in spite of it. It's one of those often-heard statements that make more experienced readers say, "Umm, wait, you really don't want to say it that way."
Generating a series of logical statements is only hard because the formal statements are not generated axiomatically, they are sourced from ill-understood human creativity. Once a formalism is defined it is trivial O(e^n) algorithm to generate all proofs of size n.
http://math.stackexchange.com/questions/324867/automated-pro...