Crediting Alex Matthews as a code contributor

PiperOrigin-RevId: 360859332
This commit is contained in:
Jonathan Schwarz
2021-03-04 09:28:30 +00:00
committed by Louise Deason
parent 7e6fd889e4
commit ca532c106c
32 changed files with 5580 additions and 1 deletions
+50
View File
@@ -0,0 +1,50 @@
# Satore: First-order logic saturation with atomic rewriting
This is a first-order logic resolution based theorem prover in CNF without
equality, but with atom rewrite rules. New rewrite rules can be
discovered during the proof search, potentially reducing exponentially the
search space.
Satore stands for Saturation with Atom Rewriting.
## Installation
### Install racket (Apache2/MIT):
* Windows, MacOS X: https://download.racket-lang.org
* Ubuntu/Debian: `[sudo] apt install racket`
* Linux (other): [Download](https://download.racket-lang.org) the `.sh` and
install it with `[sudo] sh racket-<something>.sh`
You may need to configure the PATH environment variable to include the
directory containing the `racket` and `raco` executables.
For Windows this directory should be something like
`C:>Program Files\Racket`.
### Install satore and its dependencies (all are Apache2/MIT licensed):
In a directory of your choice, type:
```shell
git clone https://github.com/deepmind/deepmind-research/tree/master/satore
raco pkg install --auto --link satore
```
## Running Satore
Run a trivial example:
```shell
racket -l- satore -p satore/examples/socrates.p --proof
```
To see the various flags:
```shell
racket -l- satore --help
```
The .p file is assumed to be a standalone file with only comments and
`cnf(…).` lines without equality, where the logic clause must be surrounded by
parentheses. All axioms must be included. (This will likely be improved soon.)
Note that `racket -l- satore` can be invoked from anywhere.