Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Web Interface for Proof Assistants - Cezary Kaliszyk Home Page
[go: Go Back, main page]

Home Page of Cezary Kaliszyk

ProofWeb - Web interface for Proof Assistants

General

The prototype offers a web interface for Coq, Isabelle, Matita (and incomplete for Lego, Plastic ). Functionality is similar to those offered by ProofGeneral or CoqIde, but it works inside a web browser, without the need to install anything, no plugins, flush or java. It is developed to work with: If you have any comments, you'd like something, or you do not like a part of it, I'd be happy to hear about it, just drop me an e-mail.

Screenshots

(click to see full-size)
screenshot-coq-firefox screenshot-ie
Coq in FirefoxCoq in Internet Explorer
screenshot lego opera screenshot-plastic-konqueror
Lego in Opera (experimental)Plastic in Konqueror (experimental)

Try it!

A public version is running on our group server, to try it go to: http://prover.cs.ru.nl/

Motivation

The initial idea came from Henk Barendregt, who would like a web-portal for formalization of mathematics, that would include Wiki functionality. We already had proof checkers, and libraries for them, but there were no useful web interfaces to them. Possible uses of our the interface already include:

Implementation

The system consists of a server part and a client part: Credits: uses DOM Menu (LGPL).

Running the server

Requirements: To compile just type 'make' to start 'coqserve -coqtop /path-to-coq/coqtop -lego /path-to-lego/lego'

When running a public server it's highly suggested to do it in a chrooted environment. Creating it is not described here. The server process automatically drops root privileges after binding port 80 (or any other if '-port' is specified). To have internal links working correctly, external address of the server has to be provided with '-localhost' parameter. Example command for running it in a chrooted environment, with a particular version of Coq and with CoRN provided:

sudo chroot ~/coqchroot/ /coqserve -coqtop "nice -n 10 /bin/coqtop.opt -R /files/CoRN--mainline--0--patch-8/ CoRN" -localhost hair-dryer.cs.ru.nl -lego none &> ~/coqchroot/log

Ideas and suggestions

(More are welcome)

Security

Security is particularly important in a centralized approach.

The current implementation already provides security by the following means:

Possible other security enhancements:

Other provers

The interface has been initially created as a web interface for Coq, and now works also with secure mode Isabelle, and includes preliminary support for Lego and Plastic. The functionality that is prover specific is: In principle adapting the interface to work with a prover with which proof-general is able to work, should be straight-forward.

On the other hand, it is hard to imagine a possible adaptation of such an interface to a prover for which the language is the toplevel of a programming language, as it is for example with HOL4 or HOL Light. Both due to lack of a buffer to edit, and due to security concerns (SELinux might help).

Related Work

Site Map:

My other pages:

Info:

photo of Cezary Kaliszyk
(more photos)