Translate answer set programs to first-order theorem prover language (local mirror of https://github.com/potassco/anthem for development purposes) https://potassco.org/
Go to file
Patrick Lühne 19e1e16e45
Implement integer variable detection
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.
2018-04-29 22:28:42 +02:00
.ci Add missing dependency to Ubuntu image 2018-04-10 22:29:55 +02:00
app Version bump after release 0.1.8 2018-04-20 16:37:03 +02:00
examples Add example program for prime number detection 2018-04-11 21:42:08 +02:00
include/anthem Implement integer variable detection 2018-04-29 22:28:42 +02:00
lib Update cxxopts to 2.1.0+1+gcc4914f 2018-04-13 14:03:30 +02:00
src Implement integer variable detection 2018-04-29 22:28:42 +02:00
tests Remove unnecessary parentheses 2018-04-12 00:59:03 +02:00
.gitattributes Initial commit. 2016-11-21 17:53:46 +01:00
.gitmodules Drop Boost dependency 2018-03-25 17:24:06 +02:00
.travis.yml Add clang to Travis configurations 2018-03-24 18:53:51 +01:00
CHANGELOG.md Version bump after release 0.1.8 2018-04-20 16:37:03 +02:00
CMakeLists.txt Switch to C++17 2018-03-24 16:09:52 +01:00
LICENSE.md Update copyright year in license file 2018-04-08 20:35:03 +02:00
README.md Describe --complete option in readme 2018-04-11 23:21:56 +02:00

README.md

anthem GitHub Release Build Status Build Status

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 Clarks 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

Contributors