diff --git a/README.md b/README.md index 9273e21..60b9953 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,5 @@ -# vprover.github.io -The Vampire project has a [website](https://vprover.github.io)! +# Website +The website is mostly retired now and points to the wiki instead. +The hope is that this presents less of a barrier to entry for potential contributors. -The website is hosted on GitHub pages, making some use of the Jekyll templating library. -Generally stuff is obvious: copy the style of whatever is there already, it's hard to break. - -# New Members -It's nice to have you on the [team page](https://vprover.github.io/team.html)! -This is a simple process: - - put a photo of yourself in `img/`: preferably a thumbnail, square aspect works best - - add your name to `_includes/authors.html` - this allows you to have a short-form name and a hyperlink to your personal page if you like - - add a section in `team.html` with a little about you and what you're doing - use the existing people's sections as inspiration - -Push to master directly, we don't care that much. Welcome! - -# News -Add a news item by copying a file in `_posts` and updating the file name and fields accordingly. -The list of news items will be updated automatically. +If for some reason you need to fix something, it may be helpful to know that this was a 2017-era design using Jekyll and GitHub Pages. diff --git a/_includes/navigation.html b/_includes/navigation.html index 443a8c3..0e91c30 100644 --- a/_includes/navigation.html +++ b/_includes/navigation.html @@ -4,14 +4,6 @@ menu Vampire - News Download - Licence - Usage Team - Publications - History - Trophies - Projects - Workshop diff --git a/_layouts/news.html b/_layouts/news.html deleted file mode 100644 index 1cf5b29..0000000 --- a/_layouts/news.html +++ /dev/null @@ -1,18 +0,0 @@ - - -
- - - - --Vampire had several predecessors implemented by {{ voronkov }} in the International Laboratory of Intelligent Systems in Novosibirsk from 1990. -The first predecessor that was actually able to prove something appeared in 1989 and called Drakosha. -It has been implemented in LISP. -
- -
- -There have been three major incarnations of Vampire itself, all -implemented in C++. -
- -
- -From 2014, the current team took over the active development of Vampire. -Whilst the current version is labelled as the fourth reincarnation, much of the core still consists of code written by {{ hoder }} in the third incarnation. -
- -
- -Automatic theorem proving has a number of important applications, such as software verification, hardware verification, - hardware design, knowledge representation and reasoning, the Semantic Web, algebra, and proving theorems in mathematics. -Over 50 years of research in theorem proving have resulted in one of the most advanced and elegant theories in - computer science. -This area is an ideal target for scientific engineering: implementation techniques have to be developed to realise - an advanced theory in practically valuable tools. +Automatic theorem proving has a number of important applications, such as software verification, hardware verification, hardware design, knowledge representation and reasoning, the Semantic Web, algebra, and proving theorems in mathematics. +Over 50 years of research in theorem proving have resulted in one of the most advanced and elegant theories in computer science. +This area is an ideal target for scientific engineering: implementation techniques have to be developed to realise an advanced theory in practically valuable tools.
-Vampire is a theorem prover, that is, a system able to prove theorems — although now it can do much more! -Its main focus is in proving theorems in first-order logic but it can also prove non-theorems and build finite models, as well as reasoning in combinations of theories, such as arithmetic, arrays, and datatypes, and with higher-order logic. -The development of Vampire began in 1994 and has survived a number of rewritings (see history). -
- -NEW LICENCE! We are very pleased to announce that Vampire is now available under a BSD 3-Clause licence, allowing (free) industrial and academic usage. - It would be great to hear from you if you are making use of this new licence within your work. Please join our very low-traffic mailing list for updates. -You may also want to want to use the GitHub Issues page for questions or issues. +Vampire is a theorem prover, that is, a system able to prove theorems — although now it can do much more! +Its main focus is in proving theorems in first-order logic but it can also prove non-theorems and build finite models, as well as reasoning in combinations of theories, such as arithmetic, arrays, and datatypes, and with higher-order logic. +The development of Vampire began in 1994 and has survived a number of rewrites (see history). +Vampire is available under a modified BSD 3-clause licence (see the LICENCE), allowing (free) industrial and academic use.
-Since November 2020 we have moved Vampire to a permissive Modified BSD licence (see below). This supersedes all previous licences. -
--This licence now expliciltly allows commercial use of Vampire. -
- --As noted below, some software included with Vampire is available under different licences. -For example, both minisat and z3 are used internally by Vampire. -
- -Vampire Software Licence Agreement
-Copyright 2020
Vampire is copyright (C) 2020 by -its authors and contributors (see AUTHORS in the repository) and their institutional -affiliations. All rights reserved.
- -The Vampire licence is a (modified) BSD 3-Clause licence. -This Vampire licence supersedes all previous licences covering usage of Vampire.
- - -The source code of Vampire is open and available to students, researchers, -software companies, and everyone else to study, to modify, and to redistribute -original or modified versions; distribution is under the terms of the modified -BSD licence (reproduced below).
- -Note that some software included with Vampire is available under a more permissive licence. -For example, both Minisat and Z3 are used internally by Vampire.
- -In the below, this Software refers to Vampire in any form.
- -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT OWNERS AND CONTRIBUTORS -''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -
-
-This page describes current and past research projects carried out with the Vampire theorem prover. -This list is not exhaustive and some projects may now be redundant. -
- - Interpolation and Symbol EliminationNote: special thanks are to Laura Kovacs who contributed both to the work described in this page and the page content. Vampire implements two new features: interpolation and symbol elimination - described in the following papers. Both features have been implemented using colored symbols and colored formulas, - explained below. InterpolationIn the original definition of Craig, an interpolant of - two formulas L and R is any - formula I such that
Craig proved that, if R is implied by - L, then such an interpolant exists. However, for applications in verification and invariant generation this definition - is too restrictive. Firstly, we are normally interested in reasoning modulo a theory - T (for simplicity we assume that a - theory any set of formulas). - Secondly, we may allow theory symbols and some other symbols occur in the - interpolant. We capture this more general notion of interpolant by using logical consequence - modulo theory and by coloring symbols. We assume to have - two colors, the left - and the right color. Some symbols may be colored in - left and some in right (but - not in both), and some symbols may be transparent, that is, - have no color. We assume the following properties:
We call an interpolant of L and - R any formula I such that
It is easy to see that an interpolant in the sense of Craig is captured by this - definition: to this end make the theory empty, color all symbols occurring in - L in left and all symbols - occurring in R in right. There is a similar notion of reverse interpolant - of L: it is any formula I such that
Closely related to our definitions is a concept of a - well-colored derivation: this is a derivation in which no - inference contains clauses of both colors. Paper [2] gives an algorithm for building - an interpolant of L and R - from a well-colored proof of L ⊃ R. Vampire implements - well-colored proofs and generation of interpolants from such proofs. To make Vampire generate a well-colored proof and compute an interpolant we should - be able to define the following:
Example 1The following examples shows how we can request Vampire generate well-colored - proofs and interpolants using Vampire-specific extensions - to the TPTP syntax. In this example we ask Vampire to generate an interpolant for - q(f(a)) & ¬q(f(b)) ⊃ ∃v(v ≠ c). - We use TPTP comments (beginning with the symbol - "%") to explain the input. % request to generate an interpolantVampire outputs the following: 17. $false (2:0) [resolution 16,5]That is, it finds the interpolant - ¬∀x∀y(x=y). - Note that if we remove color declarations from the input, then Vampire - will generate a different refutation: fof(fA,axiom, q(f(a)) & ~q(f(b)) ).10. $false (0:0) [subsumption resolution 9,8]Example 2This example uses a theory: a simple axiomatisation of arithmetic with the greater-than - relation greater and successor function s. Essentially, in this example - L is q ≥ c ≥ p & f(c)=1 - and R is p ≥ d ≥ q & f(d)=0 % request to generate an interpolantVampire generates the following interpolant. (~greater(p,q) | ~greater(p,q)) & (~greater(p,q) | ~greater(p,q)) & (~greater(p,q) | ~greater(p,q)) & (~greater(p,q) | ~greater(p,q)) & (greater(q,p) | s(zero) = f(p)) & (~greater(p,q) | ~greater(p,q)) & (~greater(p,q) | ~greater(p,q)) & (~greater(p,q) | ~greater(p,q)) & (~greater(p,q) | ~greater(p,q)) & (greater(q,p) | s(zero) = f(p)) & (~greater(p,q) | ~greater(p,q)) & (~greater(p,q) | ~greater(p,q)) & (~greater(p,q) | ~greater(p,q)) & (~greater(p,q) | ~greater(p,q)) & (greater(q,p) | s(zero) = f(p))This interpolant is equivalent to the formula - q ≥ p & f(p)=1. More ExamplesMore examples on computing interpolants with Vampire can be found here. Each example is given in the TPTP syntax, and hence can be - immediately fed into Vampire. Symbol EliminationSymbol elimination can be used to generate loop invariants automatically, as described - in paper [1]. The idea of invariant generation is as follows.
To make Vampire eliminate symbols, we run it in the - symbol-eliminating mode. We declare the symbols to be - eliminated colored. For the - purpose of symbol elimination, a single color is sufficient. Here is an example - showing how to make Vampire eliminate symbols. More ExamplesMore examples on symbol elimination with Vampire can be found here. For each example, we list its source code (in C), its encoding in TPTP, - the obtained set of symbol eliminating inferences, and a minimised - set of symbol eliminating inferences. |
- Institute for Computer Languages
- Compilers and Languages Group
-
- Vinter is a Vampire-based tool for interpolation, - whose aim is to generate minimal interpolants. -
-- Vinter translates arbitraty proofs into interpolating ones (local proofs), extracts interpolants from local -proofs, and minimises interpolants using various measures, such as for example the size of the interpolants or the number of quantifiers used in the interpolants. -
-- Vinter takes an input problem written in either SMT-LIB or TPTP syntax. - Proofs are found using either Z3 or Vampire, solving pseudo-boolean optimisation is delegated to Yices, - while localising proofs and generating minimal interpolants is done by Vampire. -
- -- The latest release of Vinter - is: vinter-2012-02-01.tar.gz -
-Note: To run Vinter, you also need to have the Z3 and Yices executables.
- -- See the examples - to try Vinter. -
- -- Vinter is based - on the technique of playing in the grey area of proofs - to find interpolants minimal with respect to various measures. -
- - - --This is a list of publications related to Vampire. -This list is out of date, at the moment please refer to the team's personal or DBLP pages for related papers. -Both Laura and Giles maintain preprints on their personal pages. -
- -+The below is out of date: we keep the team page on the wiki now. +Below is kept for posterity, and the photos are nice! +
+This page describes the current and past team working on Vampire. For a description of the history prior to 2014, see the History page. diff --git a/trophies.html b/trophies.html deleted file mode 100644 index ccbeae9..0000000 --- a/trophies.html +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Our Trophies -layout: default ---- - -
![]() |
- ![]() |
- ![]() |
-
-Vampire has won at least one division of the world cup in theorem proving CASC since 1999. -All together Vampire won 45 titles: more than any other prover. -We take part in the following divisions of the competition: -
- --Here is the list of our achievements: -
-| Year | FOF | CNF/MIX | LTB | EPR | FNT | TFA | SLH - | |
|---|---|---|---|---|---|---|---|---|
| 1999 | winner | - | - | |||||
| 2000 | winner | - | - | |||||
| 2001 | winner | - | - | |||||
| 2002 | winner | winner | - | - | ||||
| 2003 | winner | winner | - | - | ||||
| 2004 | winner* | winner | - | - | ||||
| 2005 | winner | winner* | - | - | ||||
| 2006 | winner | winner* | - | - | ||||
| 2007 | winner | winner* | - | - | ||||
| 2008 | winner | winner* | - | - | ||||
| 2009 | winner | winner* | winner | - | ||||
| 2010 | winner | winner* | winner | - | ||||
| 2011 | winner* | - | winner* | - | ||||
| 2012 (IJCAR) | winner* | - | winner | - | ||||
| 2012 (Turing) | winner* | - | winner | - | ||||
| 2013 | winner* | - | - | |||||
| 2014 | winner | - | - | - | ||||
| 2015 | winner | - | winner | winner | winner | winner | - | |
| 2016 | winner | - | winner | winner | winner | - | ||
| 2017 | winner | - | winner | winner | winner | winner - | ||
| 2018 | winner | - | winner | winner | - | - | ||
| 2019 | winner | - | winner | winner | winner - | |||
| 2020 | winner | - | - | winner | winner | - - | ||
| 2021 | winner | - | winner | - | winner | - | - - | |
| 2022 | winner | - | winner | - | winner | - | - - |
-Note: winner* means that Vampire solved more problems that all other provers in this division (this has not been computed post 2013) and '-' means that the division did not exist that year. Tracks EPR, FNT, and TFA were entered for the first time in 2015. Track SLH only ran in 2017. -
- --Since 2016 we have also entered SMTCOMP. -We performed well both years (full details will be added here soon). -You can view the results for 2016 and 2017 directly. -Vampire competed in all tracks with quantifiers and without bitvectors or floating point. -
diff --git a/usage.html b/usage.html deleted file mode 100644 index 2989403..0000000 --- a/usage.html +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Usage -layout: default ---- -{% include authors.html %} - --This page gives information on how to use Vampire. -See Download for how to download Vampire. -
- --Vampire manual is not finished yet. -While there is no manual, you can use the CAV 2013 tutorial paper, which describes main features of Vampire and some of its options. -
- -
-The most basic usage of Vampire is to save your problem in TPTP format and run
-
-vampire problem.p
-
-as this will run Vampire in default mode with a 60 second time-limit.
-
-However, a better way to run Vampire is in portfolio mode i.e.
-
-vampire --mode casc -t 300 problem.p
-
-this will run for 300 seconds trying lots of different strategies. This will perform much better than default mode as it will try combinations of options, that are turned off by default, which may work well for your problem.
-
-If you think the problem is satisfiable then you can also run
-
-vampire --mode casc_sat -t 300 problem.p
-
-which will use a set of strategies suited to satisfiable problems (as entered into the most recent CASC competition).
-
-Finally, if your problem is in SMT-LIB format you can run
-
-vampire --input_syntax smtlib2 problem.smt2
-
-to specify a different input language, or
-
-vampire --mode smtcomp problem.p
-
-to use the latest SMT-COMP schedule, which automatically selects the appropriate input language.
-
-Note that all of these competition modes are really shortcuts for other combinations e.g. casc mode is a shortcut for
-
-vampire --mode portflio --schedule casc -t 300s -p tptp
-
-
-
-To see a full list of options with some explanations run
-
-vampire --show_options on
-
-if there is an option with an unsatisfactory explanation then please report it either via the Issues tab or directly to {{ reger }}.
-For more advanced usage we recommend looking at a number of tutorials that have been given on Vampire. For example, the recent ASE 2017 tutorial. -
diff --git a/workshop.html b/workshop.html deleted file mode 100644 index 9427e76..0000000 --- a/workshop.html +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Vampire Workshop -layout: default ---- - --We are pleased to announce that the 7th Vampire workshop will be affiliated with CADE 2023 in Rome! -See EasyChair for details. -
- --The Vampire workshop discusses recent developments in implementation, application, evaluation and comparison of first-order theorem provers, including but not limited to Vampire, and their interaction with other systems. -Participants include Vampire developers and users, and the workshop provides a venue for discussion between the two groups. -Both groups can learn more about Vampire’s recent developments, possible applications of Vampire, its efficiency in various settings, and the needs of users. -
- --The workshop sheds light on topics such as: -