On Mon, 5 Dec 2016 06:05:56 -0800 (PST), Norman Megill <
n...@alum.mit.edu> wrote:
> As a crude measure of "achievable", it might be interesting to look at
> which of these 42 have the most proofs done in the other proof languages.
Fair point. Done.
Below is a list of the "Formalizing 100 Theorems" list from
<
http://www.cs.ru.nl/~freek/100/> which have *not* been formalized by Metamath,
sorted by the count of the number of other systems which *have* formalized a proof.
The leader by far is Taylor's Theorem (his theorem #35); this has been formalized
by 7 provers, including ACL2 and PVS, but not with Metamath. This is followed by L'Hopital's Rule.
Given this, I'd love to know if anyone hopes to pick up any of them soon...!
Here's the full list (I list the number of provers first):
7 35. <b>Taylor's Theorem</b>
5 64. <b>L'Hôpital's Rule</b>
4 97. <b>Cramer's Rule</b>
4 96. <b>Principle of Inclusion/Exclusion</b>
4 65. <b>Isosceles Triangle Theorem</b>
4 6. <b>Gödel's Incompleteness Theorem</b>
4 30. <b>The Ballot Problem</b>
3 9. <b>The Area of a Circle</b>
3 84. <b>Morley's Theorem</b>
3 83. <b>The Friendship Theorem</b>
3 61. <b>Theorem of Ceva</b>
3 57. <b>Heron's Formula</b>
3 55. <b>Product of Segments of Chords</b>
3 49. <b>The Cayley-Hamilton Theorem</b>
3 45. <b>The Partition Theorem</b>
3 36. <b>Brouwer Fixed Point Theorem</b>
3 13. <b>Polyhedron Formula</b>
3 100. <b>Descartes Rule of Signs</b>
2 90. <b>Stirling's Formula</b>
2 8. <b>The Impossibility of Trisecting the Angle and Doubling the Cube</b>
2 67. <b>e is Transcendental</b>
2 40. <b>Minkowski's Fundamental Theorem</b>
2 29. <b>Feuerbach's Theorem</b>
2 28. <b>Pascal's Hexagon Theorem</b>
2 12. <b>The Independence of the Parallel Postulate</b>
1 99. <b>Buffon Needle Problem</b>
1 92. <b>Pick's Theorem</b>
1 76. <b>Fourier Series</b>
1 53. <b>Pi is Transcendental</b>
1 50. <b>The Number of Platonic Solids</b>
1 47. <b>The Central Limit Theorem</b>
1 41. <b>Puiseux's Theorem</b>
1 32. <b><u>The Four Color Problem</u></b>
1 21. <b><u>Green's Theorem</u></b>
0 82. <i>Dissection of Cubes (J.E. Littlewood's "elegant" proof)</i></li>
0 62. <i>Fair Games Theorem</i></li>
0 59. <i>The Laws of Large Numbers</i></li>
0 56. <i>The Hermite-Lindemann Transcendence Theorem</i></li>
0 43. <i><u>The Isoperimetric Theorem</u></i></li>
0 33. <i><u>Fermat's Last Theorem</u></i></li>
0 24. <i><u>The Undecidability of the Continuum Hypothesis</u></i></li>
0 16. <i>Insolvability of General Higher Degree Equations</i></li>
Below is the source code of the quick program I created to generate this.
--- David A. Wheeler
==================================
#!/usr/bin/python
# by David A. Wheeler
# First, do:
# curl -o freek.html
http://www.cs.ru.nl/~freek/100/
# Then run as:
# ./count.py | sort -nr
# Try to hide Python 2/3 differences. For more, see:
#
http://www.dwheeler.com/essays/python3-in-python2.html
from __future__ import print_function, unicode_literals
from __future__ import absolute_import, division
try:
xrange = xrange
# We have Python 2
except:
xrange = range
# We have Python 3
# Use regular expressions to extract info
import re
proof_re = re.compile(r'<li id="([0-9]*)">(.*)')
provers = [ 'HOL Light', 'Isabelle', 'Mizar', 'Coq', 'Metamath',
'ProofPower', 'nqthm', 'ACL2', 'PVS', 'NuPRL']
name = [ '' for x in xrange(101) ] # Name for given id#
results = [ {} for x in xrange(101) ]
before_list = 1
def show_report(rows):
for counter, row in enumerate(rows):
if counter > 0 and 'Metamath' not in row:
print(str(len(row)) + "\t" + str(counter) + ". " + name[counter])
# Process lines
with open('freek.html') as f:
for line in f:
if before_list and '<li id="1">' in line: # List begun?
before_list = 0
if not before_list and 'has some obvious omissions.' in line: # end?
break
if before_list: # Skip stuff before list begin.
continue
find_id = proof_re.search(line)
if find_id != None:
id = int(find_id.group(1))
# print(find_id.group(2))
name[id] = find_id.group(2)
for prover in provers:
if prover in line:
results[id][prover] = 1
# print(results)
show_report(results)