An open API service indexing awesome lists of open source software.

https://github.com/gbury/archsat

A proof-producing SMT/McSat solver, handling polymorphic first-order logic, and using an SMT/McSat core extended using Tableaux, Superposition and Rewriting.
https://github.com/gbury/archsat

formal-proofs ocaml polymorphism rewriting sat smt theorem-proving

Last synced: about 1 year ago
JSON representation

A proof-producing SMT/McSat solver, handling polymorphic first-order logic, and using an SMT/McSat core extended using Tableaux, Superposition and Rewriting.

Awesome Lists containing this project

README

          

# Archsat

Archsat is a prototype SMT solver combining traditional SMT solving
techniques for ground resoning, tableaux method and rewriting for
quantified formulas, and superposition for unification modulo equalities and
modulo rewriting.

## LICENSE

MIT (see file LICENSE).

## Installation

### Using opam

The easiest way to install archsat is to pin the repo and let opam
install the package (after having pinned the dev repos for `msat` and
`dolmen`):

```
opam pin add archsat /path/to/git/repo
```

Once installed via opam, an `archsat` binary should be available the path,
as well as manpages for archsat.

### Manually

One can install archsat manually, though it requires dependencies to be explicitly
installed. The list of dependencies can be found in the `opam` file at the root of
the repository. One can then run:

```
MANDIR=/some/path BINDIR=/some/other/path make install
```

Specifying the `MANDIR` and `BINDIR` is necessary to specify where to install
the binary and the manpages.

### Tests

The archsat repo includes some tests for the binary, in the `tests` directory,
these can be run using the command:

```
make test
```

For unit tests of internal functions, see `src/README.md`.

## Usage

The common and profiling options of the archsat binary should be fairly well documented
in the manpage (as well as when using the `--help` command). Advanced options may require
some more knowledge of the prover's internals to be used correctly.

In case of unhelpful or unsufficiently clear explanations, don't hesitate
to submit a bug report.