Patrick Lühne
c294a29cb2
This adds support for declaring predicates as placeholders through the “#external” directive in the input language of clingo. Placeholders are not subject to completion. This prevents predicates that represent instance-specific facts from being assumed as universally false by default negation when translating an encoding. This stretches clingo’s usual syntax a bit to make the implementation lightweight. In order to declare a predicate with a specific arity as a placeholder, the following statement needs to be added to the program: #external <predicate name>(<arity>). Multiple unit tests cover cases where placeholders are used or not as well as a more complex graph coloring example. |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
main.cpp | ||
TestCompletion.cpp | ||
TestHiddenPredicateElimination.cpp | ||
TestPlaceholders.cpp | ||
TestSimplification.cpp | ||
TestTranslation.cpp |