Support placeholders with #external declarations
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.
This commit is contained in:
@@ -2,6 +2,10 @@
|
||||
|
||||
## (unreleased)
|
||||
|
||||
### Features
|
||||
|
||||
* support for declaring placeholders with the `#external` directive
|
||||
|
||||
### Internal
|
||||
|
||||
* drops Boost dependency in favor of the header-only command-line option library [cxxopts](https://github.com/jarro2783/cxxopts)
|
||||
|
Reference in New Issue
Block a user