Translate answer set programs to first-order theorem prover language (local mirror of https://github.com/potassco/anthem for development purposes)
https://potassco.org/
Patrick Lühne
19e1e16e45
This adds support for detecting integer variables in formulas. The idea is to iteratively assume variables to be noninteger and to prove that this would lead to a false or erroneous result. If the proof is successful, the variable is integer as a consequence. The implementation consists of two parts. The first one is a visitor class that recursively searches for all declared variables in a formula and applies the second part, a custom check. Three such checks are implemented. The first one tests whether a predicate definition is falsified by making a variable noninteger, in which case it can be concluded that the variable in question is integer. The second one checks whether bound variables in a quantified formula turn the quantified part false, again to conclude that variables are integer. The third check consists in testing if making a variable noninteger turns the entire formula obtained from completion true. In this case, the statement can be dropped and the variable is concluded to be integer as well. |
||
---|---|---|
.ci | ||
app | ||
examples | ||
include/anthem | ||
lib | ||
src | ||
tests | ||
.gitattributes | ||
.gitmodules | ||
.travis.yml | ||
CHANGELOG.md | ||
CMakeLists.txt | ||
LICENSE.md | ||
README.md |
anthem
Translate answer set programs to first-order theorem prover language
Overview
anthem
translates ASP programs (in the input language of clingo
) to the language of first-order theorem provers such as Prover9.
Usage
$ anthem [--complete] [--simplify] file...
--complete
instructs anthem
to perform Clark’s completion on the translated formulas.
With the option --simplify
, the output formulas are simplified by applying several basic transformation rules.
Building
anthem
requires CMake for building.
After installing the dependencies, anthem
is built with a C++17 compiler (GCC ≥ 7.3 or clang ≥ 5.0).
$ git clone https://github.com/potassco/anthem.git
$ cd anthem
$ git submodule update --init --recursive
$ mkdir -p build/release
$ cd build/release
$ cmake ../.. -DCMAKE_BUILD_TYPE=Release
$ make