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. |
||
---|---|---|
.. | ||
output | ||
AST.h | ||
ASTCopy.h | ||
ASTForward.h | ||
ASTUtils.h | ||
ASTVisitors.h | ||
Body.h | ||
Completion.h | ||
Context.h | ||
Exception.h | ||
Head.h | ||
HiddenPredicateElimination.h | ||
Location.h | ||
RuleContext.h | ||
Simplification.h | ||
StatementVisitor.h | ||
Term.h | ||
Translation.h | ||
Utils.h |