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.
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
Contributors
Description
Translate answer set programs to first-order theorem prover language (local mirror of https://github.com/potassco/anthem for development purposes)
https://potassco.org/
anthem 0.1.9
Latest
Languages
C++
99.9%
Shell
0.1%