# Has anyone thought about creating a formal proof wiki with verifier?

Mathematics has undergone some rather nice developments recently with the adoption of new techologies, things like on-line journals, the arXiv, this website, etc. I imagine there must be many further developments that could be quite useful.

What I'm thinking of is a webpage where anyone can contribute formal proofs of theorems. In particular there would be many proofs of the same theorem provided the proof is different -- like a constructive proof of Brouwer's fixed point theorem, and non-constructive proof, etc.

The idea would be to build up a large web of formal proofs, one building on another so that one could eventually do searches through this space of formal proofs to find out what the most efficient proofs are, in the sense of how many ASCII characters it would take to write-up the proof using Zermelo-Frankel set theory. One hope would be to have a big, active database of verified formal proofs. Another would be to have a webpage where you could hope to discover whether or not there are simpler proofs of theorems you know, that you may have not been be aware of.

Being a web-page there would be certain useful efficiencies -- the webpage could "compile" your proof and check to see it's valid. Being a wiki would make it relatively easy for people to contribute and build on an existing infrastructure. And you'd be free to use pre-existing proofs (provided they've been verified as valid) in any subsequent proofs. One could readily check what axioms a proof needs -- for example to what extent a proof needs the axiom of choice, and so on.

Is there any efforts towards such a development? Such a tool would hopefully function like the publishing arm of some sort of modern internet-era Bourbaki.

-
This would be a lot like starting the arxiv before TeX - only much harder. It's not there aren't formal proof languages, it's simply that there is no good standard of one. Unlike the situation with TeX and the arxiv, what's stopping us now is not the IT. –  David Lehavi Oct 5 '10 at 22:17
It would not occur to me to measure the efficiency of a proof by counting the number of bytes needed to write it up in Zermelo-Frankel set theory. –  Gerry Myerson Oct 6 '10 at 1:54
It's of course just one measure. BUt once you have such a proof database in place you can of course contrive all kinds of other measures. For geometric topology proofs somehow I'd imagine the complexity as more of an ordinal where ZFC primitives would count as finite ordinals, and "macroscopic" theorems like the Jordan Curve Theorem would count as infinite ordinals of some sort. –  Ryan Budney Oct 6 '10 at 2:15
There could be one more application of such system. We can use it to prove theorems which humanity wasn't able to prove yet. Even though we will work with undecidable theories, it does not mean that our system can't eventually prove something useful. Actually, that's what we people do during last 3000 years. No mathematician was sure he will prove a formula, before he started looking for a proof. And using some smart heuristics and enormous mechanical power, I think machines may eventually beat human mathematicians. –  IvanKuckir Mar 18 at 15:25
@IvanKuckir: I'm not so sure about that. Coming up with a proof is a far more complicated (algorithmically impossible) thing. But verifying proofs, and manipulating verified proofs is something that is fairly reasonable. –  Ryan Budney Mar 18 at 15:29

There are lots of sites for formal proofs, but no wiki that I am aware of.

Typical examples are:

archive of formal proofs at http://afp.sourceforge.net/

Mizar http://mizar.org/

Lots of proofs are contained in the distributions of various interactive theorem provers: Isabelle, Hol, hol light, Coq, acl2 etc etc

As stated in another post, there is no agreement on foundations (formulas, axioms and rules of inference). A typical split is between classical (Hol et al.) and non-classical (Coq et al.) systems, but the differences are typically much more subtle than that. As a result all these systems are effectively unable to reuse proofs from other systems. Occasionally someone writes a translator from one system to another, but the problem here is that the translation typically does not produce a readable proof in the target system; a readable proof is necessary if the translated proof is to be maintainable. If you fix on ZFC+(maybe some other axioms), then Mizar probably has the most extensive library.

Every few years, someone proposes a big database of formal proofs, but these projects invariably die for various reasons related to the issues above. An example is the QED project:

http://en.wikipedia.org/wiki/QED_manifesto

My personal view is that constructing formal proofs, and maintaining them, is currently too difficult. Having said that, in the long run this is clearly an idea whose time will come.

-
The sheer size of the Mizar library is often advertised, but it is unclear to me that this necessarily means one is making progress. Naumowicz commented on this issue in 2006 as recorded here ncatlab.org/nlab/show/Mizar#ProblemOfPertinence . A personal subjective but recent impression is here: plus.google.com/+UrsSchreiber/posts/YS6asZLgbbj . –  Urs Schreiber Jun 21 '14 at 12:33

Such a thing does exist; check out http://www.vdash.org/ and also this talk by Cameron Freer: http://www.youtube.com/watch?v=ZDI7L4Ya9Ms.

-
Thanks David. That sounds like a nice project. I watched the video but I haven't tried writing up a proof on the wiki yet. Hopefully the learning curve isn't too intense. –  Ryan Budney Oct 5 '10 at 23:52
If only the green on black font wouldn't hurt my eyes... –  Greg Graviton Oct 6 '10 at 12:57
Vdash is in principle exactly what the question asks for (and what I would also like to see) but it seems to be dormant. I have looked at it occasionally for a while, and have not seen any sign of activity. –  Neil Strickland Jul 7 '11 at 11:48

I think the following additional links are relevant:

http://homepages.inf.ed.ac.uk/da/mathwiki/

http://prover.cs.ru.nl/wiki.php

http://www.qedeq.org/ (sort of)

However, like David Lehavi I'm skeptical about the benefit of wikis over regular proof assistant technology. For me, the entrance barrier has always been learning the language and tactics of a proof assistant, not installing the software or adding something to the standard library (that is, I have never gotten that far, but if it's a problem, then it's a social one).

I agree with Tom Ridge that the time for a big collection of formal mathematics will come. But I think we should collect definitions, theorem statements, and proofs separately. That is, if a theorem is already widely known to be true, the proof should be optional, so it can be filled in later. A collection of formalized definitions and known facts would already be very useful, and most importantly, people working on different proofs can collaborate easily, whereas the formalization of definitions and theorem statements requires coordination. Of course, with current proof assistants, it's hard to be certain that definitions and statements are correct ...

-

As part of the MathWiki project at Radboud University Nijmegen (The Netherlands), a wiki for Mizar and for Coq-CoRN wiki were built. Concerning Brouwer's fixed-point theorem, for example, see the entry BROUWER in the Mizar wiki.

-

Perhaps what would be useful are the first steps towards semi-automatic translation. There are excellent natural language parsers which almost correctly parse a complicated mathematical sentence, after applying some tricks, as one can find experimentally by looking at the online Stanford parser. Given this, it seems conceivable that there can be at least a supervised translation into Isabelle/Isar. As Isabelle can invoke powerful deduction engines, the detail in a human paper should be good enough.

-

This is far from timely in any sense, but since the question just popped up again, I will mention that somewhere in 2006–2008 I heard David Harvey, while we were both in grad school, getting very excited about creating exactly this. He did a nontrivial amount of legwork to set up the verifier, as I recall, but gave it up eventually. Perhaps he remembers what he came up with.

-

I have thought about this also. It is something for a much distant future.

There is already a language that most mathematicians agree on: English. A proof wiki could perhaps start with plain text proofs, but with a very strict convention, that enables a future translation to some proof system easier. For example, see D. Zeilbergers original proof of the Alternating Sign Matrix Conjecture. It is presented in plain English, but the style is in a way that each part is easy to verify.

In one distant future, perhaps it will be possible to verify proofs written in a much more "loose" style. Thus, one could gradually make proofs in the wiki closer to being computer verifiable, at the same time as proof checkers become more and more powerful. Eventually, there is some point where proofs in this wiki can be verified.

-

I'm going to answer this question with a simple, yet controversial, jovial, no. I don't think anyone has actually tried doing this.

The reason why I say this, is because the various lame attempts of formal mathematical proof checking and generation are not really mathematical languages. Mathematicians for 100s and 100s of years have done mathematics in our well known mathematical language. So we have these weird symbols, lots of greek, lots of subscripting and superscripting, lots of arrows, non-linear representations of divisions, matricies, etc. What mathematicians do not do is write mathematics in ASCII - with 1 exception, and that is LaTeX / TeX.

Therefore in order for any such project to be at all successful they must not invent their own new and horrible language and force all to use it, they must use LaTeX - the language that all mathematicians are familiar with.

This also has the massive advantage that proofs will actually compile to beautiful readable proofs like what we actually see in text books.

Now after a quick Google I have found pages that claim to be able to check proofs written in LaTeX, unfortunately they appear to have not tried to use the technology for a wiki. Also I imagine there will be quite a limited subset of LaTeX that is supported - nevertheless this is still genius and a step in the right direction.

http://www.proofcheck.org/

https://www.tug.org/TUGboat/tb30-2/tb95neveln.pdf

I agree with earlier points made that we ought to aim to build a wiki that has the functionality to formally check the grammar/correctness of our statements, definitions, (written in LaTeX) and proofs, yet where it is only optional. This would permit a more organic gradual build up. Finally, I think it's very important for the entire website to be Open Source. This is for many reasons, but mainly that a lot of maths websites simply suck - they are ugly, outdated, with flat 80s style. If the website was open source, those with UI skills could help make it better, those with compiler theory knowledge and good computer science skills could contribute to the proof checker and LaTeX parser, and of course those with maths knowledge could contribute to the content.

-
I would take issue with "Mathematicians for 100s and 100s of years have done mathematics in our well known mathematical language" - this seems to assume that mathematical language and notation has stayed largely unchanged for centuries, which I don't agree with –  Yemon Choi Jun 21 '14 at 11:30
Also, (La)TeX is a typesetting language, not a mathematical language (just try doing commutative diagrams without extra packages, for instance) –  Yemon Choi Jun 21 '14 at 11:33
Go into any university maths department and ask "how people here know LaTeX" then ask "how many people know <insert-formal-proof-language-here>", then you'll understand my point. –  samthebest Jun 21 '14 at 15:38
I have done commutative diagrams in LaTeX. I don't really see what your objection is. Yes maths will evolve, but seriously, all maths relative to some ugly ASCII representation of maths is indeed largely unchanged. Face it, mathematicians are not going to use those weird formal proof languages, but they are very happy to use LaTeX because it compiles to something similar to what they have done by hand for 100s for years. –  samthebest Jun 21 '14 at 15:52