From 2ed53db7506dd4811fbe6c3fac64c3703d1169a8 Mon Sep 17 00:00:00 2001 From: David Aspinall Date: Thu, 24 Jun 1999 14:04:28 +0000 Subject: New web pages --- html/about.phtml | 48 +++++++++++ html/doc.phtml | 63 ++++++++++++++ html/download.phtml | 154 ++++++++++++++++++++++++++++++++++ html/features.phtml | 140 +++++++++++++++++++++++++++++++ html/feedback.phtml | 88 ++++++++++++++++++++ html/fileshow.phtml | 13 +++ html/footer.phtml | 16 ++++ html/functions.php3 | 218 +++++++++++++++++++++++++++++++++++++++++++++++++ html/head.phtml | 17 ++++ html/header.phtml | 52 ++++++++++++ html/htmlshow.phtml | 16 ++++ html/index.phtml | 10 +++ html/index.shtml | 1 + html/links.phtml | 15 ++++ html/mailinglist.phtml | 88 ++++++++++++++++++++ html/main.phtml | 89 ++++++++++++++++++++ html/news.phtml | 26 ++++++ html/register.phtml | 4 + html/screenshot.phtml | 25 ++++++ html/smallheader.phtml | 13 +++ 20 files changed, 1096 insertions(+) create mode 100644 html/about.phtml create mode 100644 html/doc.phtml create mode 100644 html/download.phtml create mode 100644 html/features.phtml create mode 100644 html/feedback.phtml create mode 100644 html/fileshow.phtml create mode 100644 html/footer.phtml create mode 100644 html/functions.php3 create mode 100644 html/head.phtml create mode 100644 html/header.phtml create mode 100644 html/htmlshow.phtml create mode 100644 html/index.phtml create mode 100644 html/index.shtml create mode 100644 html/links.phtml create mode 100644 html/mailinglist.phtml create mode 100644 html/main.phtml create mode 100644 html/news.phtml create mode 100644 html/register.phtml create mode 100644 html/screenshot.phtml create mode 100644 html/smallheader.phtml (limited to 'html') diff --git a/html/about.phtml b/html/about.phtml new file mode 100644 index 00000000..7db1f29e --- /dev/null +++ b/html/about.phtml @@ -0,0 +1,48 @@ + +

The Proof General project

+

+The Proof General project was initiated in 1994 (under the name of +"lego-mode") and coordinated until October 1998 by Thomas +Kleymann. Since October 1998, David Aspinall has been in charge of +Proof General. +

+

The project has benefited from funding by EPSRC +and the EC. +

+ +

+The generic base for Proof General was developed at the +LFCS by Kleymann, Sequeira, +Goguen and Aspinall (in order of appearance). +It follows some of the ideas used in +Project CROAP. +

+

+The authors and current maintainers of the various instantiations of +Proof General are mentioned on the + +

+

+For more on the history of the development of +Proof General, see the + +

+ +

Contact information

+ +

+Have you any questions, comments, or suggestions about Proof General? +
+Send us a message using this form. +

+ +

+Discuss Proof General with other users and receive +announcements by joining our mailing +list. +

+ + + diff --git a/html/doc.phtml b/html/doc.phtml new file mode 100644 index 00000000..5f90f3f9 --- /dev/null +++ b/html/doc.phtml @@ -0,0 +1,63 @@ +

Manual

+ +

+Full documentation for Proof General is included in the When running Proof General the +manual is available from the "Proof General" menu. It should also +appear in the system info pages. +

+ +

+For convenience, the documentation is also available in HTML + +
+You can download the +dvi, +ps, +or +pdf +versions for printing. +

+ +

+Note: the documentation above is taken from the current +pre-release and may be updated from the documentation included +in the last stable release. +

+ +
+

References

+ +

Proof General supports Script Management as documented in: +

+ +

+ It has support for Proof by Pointing, as documented in: +

+ + diff --git a/html/download.phtml b/html/download.phtml new file mode 100644 index 00000000..72d03f93 --- /dev/null +++ b/html/download.phtml @@ -0,0 +1,154 @@ +

Please register

+

+Before downloading Proof General, we'd be grateful if you +register. +
+The information collected will be used only to help a case for +support for Proof General in the future. +

+ +

+If you have already registered you do not need to do so again. +

+ +

+You may also like to consider joining the +Proof General +mailing list. +

+ +

+You can download the latest +stable release +or the latest +pre-release. +

+ +
+ +

Proof General Version 2.0, released 16 December 1998

+ +

+This version of Proof General has been tested +with XEmacs 20.4 and FSF Emacs 20.2, 20.3
+It is available in two formats: +

+ +

+Both the tarball and the RPM package include the generic elisp +code,
+code for LEGO, Coq, and Isabelle, installation instructions +and documentation. +

+ +

Easy installation!

+

+To use Proof General, simply unpack the sources with +

+
+ tar -xpzf ProofGeneral-2.0.tar.gz +
+

+(use gunzip in place of -z if you don't have GNU tar),
+and then add this one line to your .emacs file: +

+
+ (load-file "directory/generic/proof-site.el") +
+

+Where directory is the directory in which you unpacked +the sources. +
+If you use the RPM package, directory is +/usr/share/emacs/ProofGeneral +

+

+Further customization is possible via the Customize menus in +Emacs. +
+See the +file in the distribution for more details. +

+

+Please send us +any problems, suggestions, or patches. +

+ +
+ + +

Pre-release: ProofGeneral-2.1pre990607

+ + +

+This pre-release of Proof General may be unstable as new +features are added and experimented with. +
+Check the + + + + +file for a summary of changes since the last stable version. +
+Please make test with the latest pre-release before reporting any problems +in a pre-release. +

+ +

For Developers

+

+If you are interested in helping to develop the core of Proof General, +you may like to download a complete archive of all the sources used to +build the Proof General pre-release. The difference from the working +version distribution above is that we include our low-level list of +things to do, some developer's make files used to generate +documentation files and the release itself from our CVS repository, +some test files, sources for some of the images (in GIMP form), and the web pages. +

+ + +

+You probably don't need to download this if you're only +interested in hacking the Emacs lisp part of the program (but you may +still like to check the latest + +). + +

+ +

+If there is any interest from developers, we could make our +CVS repository open to anonymous cvs server access. Please +ask. +

+ + diff --git a/html/features.phtml b/html/features.phtml new file mode 100644 index 00000000..3171c74d --- /dev/null +++ b/html/features.phtml @@ -0,0 +1,140 @@ + + +

+It doesn't matter if you're an Emacs militant or a pacifist! +

+ +

+Proof General will be useful to you if you use a proof +assistant, and you'd like some of the following features: +

+ +
+ +
+ A proof script is a sequence of commands sent to + a proof assistant to construct a proof, usually stored in + a file. connects the editing of a + proof script directly to an interactive proof process, + maintaining consistency between the edit buffer + and the state of the proof assistant. +

+ Proof General colours a proof script to show the state in the proof + assistant. Parts of a proof script that have been processed are + displayed in blue and are "locked" -- they cannot be edited. Parts + of the script currently being processed by the proof assistant are + shown in red. Commands are provided to process new parts of the + buffer, or undo already processed parts. +

+

+ Take a look at this + screenshot + of Proof General to see script managament in action. +

+
+ +
+ Script management in Proof General can work across many script + files. When a script is visited in the editor, it is + coloured to reflect whether the proof assistant has loaded it in + this session. +

+ Dependencies between script files is + communicated from the proof assistant to Proof General. + If you want to edit a file which has been loaded into the + proof assistant already, Proof General will unlock the file + and all the files which depend on it. This connects the + editor with the theory dependency or make system of the + proof assistant. +

+ +
+ +
+ Proof by pointing allows you to click on a subterm of + a goal to be proved, and apply an appropriate rule or + tactic automatically. +

+ Proof by pointing uses the + interface to highlight subterms under the mouse, and Proof General + uses the subterm structure to make it easy + to cut and paste complicated subterms. +

+ +
+ +
+ Proof General has a toolbar with buttons for starting a proof, + manoeuvring in the proof script, restarting the prover + and saving a proof. +

+ Using the toolbar, you can replay proofs without knowing any + low-level commands of the proof assistant or any Emacs hot-keys! +

+ +
+ +
+ Syntax highlighting is an editing feature which decorates a file + with different colours or fonts according to the syntax of some + language (usually a programming language). +

+ Proof General decorates proof scripts: proof commands are + highlighted and different fonts may be used for definitions and + assumptions, for example. +

+
+ +
+ Tags are an editing feature which allow you to quickly locate + the definition or declaration of a particular identifier. +

+ Proof General is supplied with utilities to make tag indexes + for Emacs. This makes it easy to quickly access definitions from a + standard library, for example, and in large proof developments + split across multiple files. + +

+
+ +
+ A pull-down menu gives easy + access to definitions, declarations and proofs in the current + buffer. + +
+ +
+ Sometimes you may want to run a proof assistant on a powerful remote + machine. Proof General can communicate with a proof assistant running + remotely, while your files and editor reside on your local machine. +

+
+ +
+ Proof General is designed to be generic, so you can adapt it + to a new proof assistant if you know a little bit of Emacs + Lisp. +

+ Adapting for a new proof assistant is mainly a matter of setting + some variables with regular expressions to help parse output from + the prover, and setting other variables with commands to send to the + prover. + To get the most from Proof General (proof-by-pointing, for example), + it may be necessary to augment the output routines of the + proof assistant. +

+ Please feel free to download Proof General to customize it for a new + system, and + + how you get on. +
+
+ +

+For more details of the above features, see the + +

+ diff --git a/html/feedback.phtml b/html/feedback.phtml new file mode 100644 index 00000000..30e3bded --- /dev/null +++ b/html/feedback.phtml @@ -0,0 +1,88 @@ + + +

+Please use the form below to send us comments and suggestions. +
+Or send email directly to +the +Proof General maintainer +<proofgen@dcs.ed.ac.uk>. +

+

+You can also report a bug using this form, although it would +be more helpful to do this from within Emacs, using the +"Proof General -> Submit bug report" menu command. +

+ +
"> + + + + + + + + + + +
From:
Subject:
+ +
+
+ + +
+ +Dear " . $from . ",

\n"; }; + print "

"; + print "Thank-you for sending us feedback"; + if ($subject != "") { print " about " . $subject; }; + print ".

\n

"; + print "If you provided a valid return email address, somebody from the Proof General team will acknowledge your message after it has been read."; + print "

"; + + mail("da", /*"proofgen@dcs.ed.ac.uk",*/ + "[Web Feedback Form]: " . $subject, + $message, + "Reply-To: " . $from . "\n"); + + click_to_go_back(); + + footer(); +endif; +?> diff --git a/html/fileshow.phtml b/html/fileshow.phtml new file mode 100644 index 00000000..4ab2170e --- /dev/null +++ b/html/fileshow.phtml @@ -0,0 +1,13 @@ +
\n";
+  markup_plain_text($filename);
+  print "

\n"; + print "
"; + click_to_go_back(); + footer(); +?> diff --git a/html/footer.phtml b/html/footer.phtml new file mode 100644 index 00000000..80c64ea0 --- /dev/null +++ b/html/footer.phtml @@ -0,0 +1,16 @@ +
+"; + ?> + Valid HTML 4.0! + +
+Web pages by +David Aspinall. +
+Contact +Proof General maintainer. +
diff --git a/html/functions.php3 b/html/functions.php3 new file mode 100644 index 00000000..4a019784 --- /dev/null +++ b/html/functions.php3 @@ -0,0 +1,218 @@ +" . $addr . ""; +} + +function pg_email() { + mlink("proofgen@dcs.ed.ac.uk"); +} + + +/* Style sheet element for dt doesnt work in + Netscape, so hack it here. +*/ + +function dt($string) { + print "
"; + print $string; + print "
"; +} + +/* Automatic footnotes! */ + +/* FIXME: for now, do nothing. */ + +function footnote ($text) { + print "

[" + . $text . "]

"; + +} + +/* A hyper-link with optional mouse over text. + Could be made more sophisticated to do roll-overs, + or whatever. +*/ + +function hlink ($url,$text,$mouseover="") { + print "" . $text . ""; +} + +/* Determining download sizes (print broken message if file not found) */ + +function download_size($filename) { + if (file_exists($filename)) { + $size = filesize($filename); + $sizek = (int) ($size/1024); + print " ("; + if ($sizek == 0) { + print $size . " bytes)"; + } else { + print $sizek . "k)"; + } + } else { + print " (link broken)"; + } +} + +function download_link($filename,$linkname = "") { + print ""; + if ($linkname == "") { + print $filename; + } else { + print $linkname; + }; + print ""; + print download_size($filename); +} + +function date_modified($filename) { + $time = filemtime($filename); + if ($time) { + print "Last modified " . strftime("%d %B %Y",$time) . ".\n"; + } +} + +/* Nav bar separator */ + +$separator = ' . '; + +/* A link to one of the main pages (must appear in navbar menu) */ + +function link_root($page,$text) { + print ""; + print $text; + print "\n"; +} + +function small_header($title) { + include('smallheader.phtml'); + print "

" . $title . "

\n\n\n"; +} + +function footer($filemodified=".") { + include('footer.phtml'); + date_modified($filemodified); + print "
\n"; + print "\n\n"; +} + +function click_to_go_back() { + print "

\nClick here to go back to the Proof General front page.

\n"; +} + +/* Link to a marked up file */ +/* NB: could determine type automatically! */ + +function fileshow($filename,$text="",$title="") { + if ( $text == "") { $text=$filename; }; + $message=$title; + if ( $message == "") { $message=$filename; }; + hlink("fileshow.phtml?file=" . urlencode($filename) + . "&title=" . urlencode($title), + $text, $message); +} + + +/* Similar for html file (NB: could pick automatically) */ + +function htmlshow($filename,$text="",$title="") { + if ( $text == "") { $text=$filename; }; + $message=$title; + $urlbits = parse_url($filename); + if ( $message == "") { $message=$filename; }; + hlink("htmlshow.phtml?file=" . urlencode($urlbits["path"]) + . "&title=" . urlencode($title) + . ($urlbits["fragment"]=="" ? "" : "#" . $urlbits["fragment"]), + $text, $message); +} + + +/* Markup plain text file, by escaping < and > */ + +function markup_plain_text($filename) { + $file = file($filename); + for($i = 0;$i < count($file);$i++) { + $line = $file[$i]; + $line = ereg_replace("<","<",$line); + $line = ereg_replace(">",">",$line); + print $line; + }; +} + +/* Hack an html file to be shown with our style sheet + and hack relative links to go via htmlshow.phtml. + This isn't particularly robust, but seems to work for + the output of texi2html. +*/ + +function hack_html($filename,$title="") { + if ($title=="") { $title=$filename; }; + $file = file($filename); + /* Paste style sheet in head */ + for($i = 0;$i < count($file);$i++) { + $line = $file[$i]; + if (eregi("",$line)) { + /* Paste in style sheet */ + print "\n"; + /* End style sheet paste in */ + print $line; + break; + } else { print $line; }; + } + /* Now parse rest of document, hacking relative links. */ + /* Matching here is not great, will get confused by html tags inside strings, etc. */ + for (;$i < count($file);$i++) { + $line = $file[$i]; + /* PHP has no way to get the match position, so we have to + match a suffix of the line, add extra parenthesis, and calculate it. */ + while (eregi("(]*)(HREF=\"([^\"]+)\")(.*))",$line,$linebits)) { + /* found URL in a particularly simple form */ + $matchpos = strlen($line) - strlen($linebits[1]); + print substr($line,0,$matchpos); /* start of line */ + $line = $linebits[5]; /* rest of line after link */ + $urlbits = parse_url($linebits[4]); + if ($urlbits["host"]=="") { + /* Assume a relative link, let's hack it. */ + $newurl = "htmlshow.phtml?file=" + . urlencode(dirname($filename)) . "/" + . $urlbits["path"] + . ($urlbits["fragment"]=="" ? "" : "#" . $urlbits["fragment"]); + print "",$line)) { + /* Assume there's nothing else interesting on the line, whoops. */ + small_header(""); + print $line; + } elseif (eregi("",$line)) { + /* Assume there's nothing else interesting on the line, whoops. */ + click_to_go_back(); + print $line; + } else { + print $line; + }; + } +} + + diff --git a/html/head.phtml b/html/head.phtml new file mode 100644 index 00000000..8a583feb --- /dev/null +++ b/html/head.phtml @@ -0,0 +1,17 @@ + + Proof General --- Organize your Proofs! + + + + + * Instead, its embedded it to save another server access. + */ + print "\n"; +?> + diff --git a/html/header.phtml b/html/header.phtml new file mode 100644 index 00000000..1cf0f36a --- /dev/null +++ b/html/header.phtml @@ -0,0 +1,52 @@ + + + + +
+ +[ Proof General logo ] + + + +
+

Organize your proofs!

+ "main", + "News" => "news", + "Features" => "features", + "Download" => "download", + "Documentation" => "doc", + "About" => "about", + "Links" => "links" + ); + $DEFAULT = $links_arr["Home"]; + $wanted_okay = 0; + for (reset($links_arr); $name = key($links_arr); next($links_arr)) { + if ($WANTED == $links_arr[$name]) { + $wanted_okay = 1; + } + }; + if (! $wanted_okay) { + $WANTED = "main"; + }; + for (reset($links_arr); $name = key($links_arr); next($links_arr)) { + print $separator; + if ($WANTED == $links_arr[$name]) { + print "" . $name . ""; + } + else { + link_root($links_arr[$name],$name); + } + print "
\n"; + } +?> +
+ diff --git a/html/htmlshow.phtml b/html/htmlshow.phtml new file mode 100644 index 00000000..8f6788f0 --- /dev/null +++ b/html/htmlshow.phtml @@ -0,0 +1,16 @@ +
\n"; */
+  hack_html($filename);
+/*  print "

\n"; + print "
"; + click_to_go_back(); + footer(); +*/ +?> diff --git a/html/index.phtml b/html/index.phtml new file mode 100644 index 00000000..a0c79c61 --- /dev/null +++ b/html/index.phtml @@ -0,0 +1,10 @@ + + + + + + diff --git a/html/index.shtml b/html/index.shtml new file mode 100644 index 00000000..9e1b5a5a --- /dev/null +++ b/html/index.shtml @@ -0,0 +1 @@ + + + + + + + + + + +

+Proof General is a generic interface for proof assistants, +based on Emacs. +

+

+It +works best under +XEmacs, but can also be used with +FSF GNU Emacs. +
+It is supplied ready-customized for several proof assistants: +

+

+ + + + + + + + + + + + + +
+ Coq badge + Coq Proof General for + + version 6.2 +
+
+ First crafted by + Healfdene Goguen. +
+ Currently maintained and developed by Patrick Loiseleur. +
+
+ LEGO badgeLEGO Proof General + + version 1.3.1 +
+
+ First crafted by Thomas Kleymann + and + Dilip Sequeira. +
+ Maintained by Paul + Callaghan. +
+
+ Isabelle badge Isabelle Proof General for + + version 98-1 +
+
+ Crafted and maintained by + David Aspinall. +
+
+

+ +

+To see what Proof General looks like in use, have a look at this +screenshot. +

+ + +

+You can download Proof General +or contact the developers +. +

+ diff --git a/html/news.phtml b/html/news.phtml new file mode 100644 index 00000000..4c7192a2 --- /dev/null +++ b/html/news.phtml @@ -0,0 +1,26 @@ + + + + diff --git a/html/register.phtml b/html/register.phtml new file mode 100644 index 00000000..42457f8d --- /dev/null +++ b/html/register.phtml @@ -0,0 +1,4 @@ +

+This link is broken. +It will be fixed tomorrow. +

\ No newline at end of file diff --git a/html/screenshot.phtml b/html/screenshot.phtml new file mode 100644 index 00000000..0deeddff --- /dev/null +++ b/html/screenshot.phtml @@ -0,0 +1,25 @@ + +

+Below is a picture of Isabelle Proof General running inside XEmacs, +replaying a simple proof. +

+

+The top half of the window displays the proof script. +

+

+The blue highlighted region is the part of the script which has been +sent to the proof process so far. It cannot be edited. +

+

+The bottom half of the window displays the output from Isabelle +at each stage of the proof. +

+Isabelle Proof General screenshot + + diff --git a/html/smallheader.phtml b/html/smallheader.phtml new file mode 100644 index 00000000..0671fa3b --- /dev/null +++ b/html/smallheader.phtml @@ -0,0 +1,13 @@ + + + + + + + +
+ +[ Home ] + + -- cgit v1.2.3