Patrick Lühne
bf6bf7f9c3
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 in order 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 input program:
2018-04-07 02:12:53 +02:00
Patrick Lühne
22238bb398
Switch to C++17
...
With C++17, optionals, an experimental language feature, were moved to
the “std” namespace. This makes C++17 mandatory and drops the now
obsolete “experimental” namespace.
2018-03-24 16:09:52 +01:00
Patrick Lühne
5f8c144628
Fixed regression in simplifying predicates with more than one argument.
2017-06-12 18:27:39 +02:00
Patrick Lühne
1f1006ea96
Corrected hiding predicates that are simple propositions.
2017-06-12 15:40:02 +02:00
Patrick Lühne
a4cd133ba7
Correctly implemented hiding predicates with nested arguments.
2017-06-12 02:25:04 +02:00
Patrick Lühne
bbbd0b65a4
Added new option --parentheses=full to make parsing the output easier.
2017-06-06 02:02:26 +02:00
Patrick Lühne
0285c1cbbb
Renamed internal variables for clarity.
2017-06-06 01:44:44 +02:00
Patrick Lühne
95984f0447
Added warning when attempting to use #show statements without completion.
2017-06-05 04:24:00 +02:00
Patrick Lühne
7ae0a1f289
Removed unnecessary parentheses after simplification.
2017-06-05 03:58:39 +02:00
Patrick Lühne
3b26580815
Minor formatting.
2017-06-05 03:54:17 +02:00
Patrick Lühne
14abc37116
Implemented #show statements for completed output.
2017-06-05 03:02:22 +02:00
Patrick Lühne
4fd143ef64
Added simplification rule “exists X (X = Y)” → “#true.”
2017-06-05 02:41:17 +02:00
Patrick Lühne
7bf5d3867d
Minor clarification on side effects of a function.
2017-06-05 00:19:43 +02:00
Patrick Lühne
ab71e8eb0a
Minor refactoring.
2017-06-04 20:55:25 +02:00
Patrick Lühne
dcc504ebc0
Added another simplification step after completion.
2017-06-04 20:55:24 +02:00
Patrick Lühne
381d55b6ed
Minor formatting fix.
2017-06-01 16:16:06 +02:00
Patrick Lühne
2bc60d3eea
Started implementing support for #show statements.
2017-06-01 04:05:11 +02:00
Patrick Lühne
cdcee897ec
Added missing error message when input file does not exist.
2017-06-01 03:29:09 +02:00
Patrick Lühne
4baed6fbc6
Added back completion support.
2017-06-01 02:37:45 +02:00
Patrick Lühne
0d8b1e94da
Refactored error handling.
2017-05-31 18:03:19 +02:00
Patrick Lühne
1de0486989
Removed unnecessary namespace identifiers.
2017-05-30 18:13:31 +02:00
Patrick Lühne
664a57ec68
Fixed issue with multi-layer variable stacks.
2017-05-30 18:09:33 +02:00
Patrick Lühne
7aad8380d1
Refactored logging interface.
2017-05-30 17:19:26 +02:00
Patrick Lühne
8214d7837a
Fixed incorrect variable declaration look-up in variable stack.
2017-05-30 16:40:14 +02:00
Patrick Lühne
2964dd1309
Restricting variable stack look-up to user-defined variables.
2017-05-30 16:39:44 +02:00
Patrick Lühne
f78c0e4da5
Reordered constructor parameters of VariableDeclaration.
2017-05-30 16:27:45 +02:00
Patrick Lühne
1917f18b6a
Added back simplification support.
2017-05-30 04:06:56 +02:00
Patrick Lühne
1c925d661b
Major refactoring to uniquely link variables to their declarations (breaks simplification and completion).
2017-05-30 03:56:35 +02:00
Patrick Lühne
c2f8762dc1
Removed unnecessary CMake directive.
2017-05-08 14:41:02 +02:00
Patrick Lühne
6e7abb283e
Fixed minor incorrect variable references.
2017-04-10 17:50:19 +02:00
Patrick Lühne
5948d30e5c
Refactored implementation of completion.
2017-04-10 16:32:12 +02:00
Patrick Lühne
37526bcc8e
Fixed incorrect handling of implications with Booleans.
2017-04-08 20:17:01 +02:00
Patrick Lühne
8210adea7c
Added support for completion of integrity constraints.
2017-04-08 18:25:59 +02:00
Patrick Lühne
a716da4af1
Finished implementing completion (unit tests to follow).
2017-04-08 16:21:24 +02:00
Patrick Lühne
a23e248e7b
Omitting the universal quantifier for completion if predicate is 0-ary.
2017-04-08 14:51:16 +02:00
Patrick Lühne
811eb3054c
Partly implemented completion.
2017-04-06 17:46:16 +02:00
Patrick Lühne
27b46ceee1
Added scaffold for implementing completion.
2017-04-05 18:21:38 +02:00
Patrick Lühne
838a68e230
Refactoring to prepare for implementing completion.
2017-04-05 18:15:42 +02:00
Patrick Lühne
5940fc4a3b
Removed workarounds thanks to a fix in clingo.
2017-04-01 03:13:52 +02:00
Patrick Lühne
3c79625685
Constrained the element’s type in set element expressions to primitive terms.
2017-03-29 23:56:58 +02:00
Patrick Lühne
dbb106c40b
Fixed typo in comment.
2017-03-29 23:18:59 +02:00
Patrick Lühne
dc0f700c46
Added missing subdirectory to CMake configuration.
2017-03-29 21:32:33 +02:00
Patrick Lühne
3df4d5a2a2
Fixed incorrectly simplified rules with comparisons.
2017-03-28 17:13:15 +02:00
Patrick Lühne
cae0948763
Completed implementing simplification with deep variable replacement.
2017-03-23 15:02:06 +01:00
Patrick Lühne
42e0217409
Applying simplification to more cases.
2017-03-23 14:40:21 +01:00
Patrick Lühne
574130a8ec
Minor clarifications in simplification code annotations.
2017-03-23 13:44:55 +01:00
Patrick Lühne
188a24f5b5
Added some annotations to the simplification code.
2017-03-23 13:39:34 +01:00
Patrick Lühne
ddbd4061e4
Moved recursive formula visitor to separate header file.
2017-03-23 13:28:09 +01:00
Patrick Lühne
09c2674148
Fixed incorrectly translated choice rules with multiple elements in the aggregate.
2017-03-23 02:06:19 +01:00
Patrick Lühne
283cdd2abf
Preparations for returning multiple formulas per input rule (as necessary with head aggregates).
2017-03-23 01:23:17 +01:00