# 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 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.

-

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

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.

-

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 ...

-