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
e85807accb
The code responsible for completing formulas made the assumption that all head variables could be safely removed from the list of free variables of each formula. This is only correct given the current limitation that only rules with singleton heads are supported. Because of this assumption, code with multiple elements in the head were completed to an incorrect result instead of issuing an error that such rules aren’t supported yet. This commit improves the code by excluding only variables that are actually replaced from the list of free variables and not all head variables. Still, other places will need to be adjusted for full support of rules with multiple elements in the head. For this reason, this also adds an error message indicating that only rules with singleton heads are supported as of now. Finally, multiple test cases are added to check that the supported features related to the issues outlined above are translated without exceptions, while errors are returned when attempting to use unsupported features. |
||
---|---|---|
.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