Commit Graph
25 Commits
Author SHA1 Message Date
patrick 285fa08e5a Version bump for release 0.1.8 RC 1 2018-04-10 00:19:55 +02:00
patrick dfffdcfce6 Add new simplification rule
This adds the rule “(not F or G) === (F -> G)” to the simplification
rule tableau.
2018-04-09 23:48:04 +02:00
patrick 4967576b6c Add new simplification rule
This adds the rule “(not (F and G)) === (not F or not G)” to the
simplification rule tableau.
2018-04-09 23:39:29 +02:00
patrick 1c5851441d Add new simplification rule
This adds the rule “not not F === F” to the simplification rule tableau.
2018-04-09 23:36:16 +02:00
patrick b18ddcc575 Add new simplification rule
This adds the rule “(F <-> (F and G)) === (F -> G)” to the
simplification rule tableau.
2018-04-09 23:27:38 +02:00
patrick 00ab975c2d Iteratively apply simplification tableau rules
With this change, the tableau rules for simplifying formula are applied
iteratively until a fixpoint is reached.
2018-04-08 22:24:14 +02:00
patrick e01b5dc561 Move simplification rule to tableau
This moves the rule “[primitive A] in [primitive B] === A = B” to the
simplification rule tableau.
2018-04-08 22:24:14 +02:00
patrick 91529b84aa Move simplification rule to tableau
This moves the rule “exists () (F) === F” to the simplification rule
tableau.
2018-04-08 22:24:14 +02:00
patrick 1cbfd335a1 Move simplification rule to tableau
This moves the rule “[conjunction of only F] === F” to the
simplification rule tableau.
2018-04-08 22:24:14 +02:00
patrick a86e978a5a Move simplification rule to tableau
This moves the rule “exists ... ([#true/#false]) === [#true/#false]” to
the simplification rule tableau along with “[empty conjunction] ===
2018-04-08 22:24:14 +02:00
patrick 5eb3ed5681 Move simplification rule to tableau
This moves the rule “exists X (X = t and F(X)) === exists () (F(t))” to
the simplification rule tableau.
2018-04-08 22:24:14 +02:00
patrick 3d0266136c Implement simplification rule tableau
This implements a tableau containing simplification rules that can be
iteratively applied to input formulas until they remain unchanged.

First, this moves the rule “exists X (X = Y) === #true” to the tableau
as a reference implementation.
2018-04-08 22:24:10 +02:00
patrick 92fddd6665 Version bump after release 0.1.7 2018-04-08 21:03:20 +02:00
patrick 582b6ade6d Version bump for release 0.1.7 2018-04-08 20:44:43 +02:00
patrick e64b2e70de Remove unused captured lambda reference 2018-04-08 20:44:43 +02:00
patrick d7e4af98d7 Update copyright year in license file 2018-04-08 20:35:03 +02:00
patrick a406cb43bd Update graph coloring example with placeholders
This replaces the former graph coloring example with a new formulation
that makes use of the newly supported placeholders.
2018-04-08 20:28:57 +02:00
patrick c294a29cb2 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.
2018-04-08 20:28:57 +02:00
patrick c91cbaf58b Update Catch to 2.2.2 2018-04-07 00:22:01 +02:00
patrick 2a2fec0eac Update change log with dependency change
This adds the dependency change from Boost (for program options) to
cxxopts to the change log.
2018-04-06 23:08:57 +02:00
patrick 09e56c3bce Format change log sections with proper headings
This makes the change log sections have proper headings, which were just
normal text before.
2018-04-06 22:53:59 +02:00
patrick e2c0d6b705 Update cxxopts to 2.0.0+3+gabe9ebd
With cxxopts 2.0.0, positional arguments weren’t recognized when other
command-line options were passed before. This has been fixed in the
meantime, but there is no release with the bug fix yet.

This updates cxxopts to a newer commit to ship anthem with this fix.
2018-04-06 22:44:14 +02:00
patrick e01506f9ff Drop Boost dependency
Boost was only used for program option parsing. To avoid this huge
dependency, this commit replaces boost::program_options with cxxopts,
a header-only library with the same functionality.

cxxopts is added as a submodule, and Boost is removed from the
dependencies in the code and Travis configuration.
2018-03-25 17:24:06 +02:00
patrick 50ebf3c6de Install g++ package explicitly on Ubuntu
Apparently, g++ is only installed because of the Boost dependency.
Make the g++ dependency explicit to avoid future package errors.
2018-03-25 17:23:33 +02:00
patrick fde2af5841 Add clang to Travis configurations
This adds the clang compiler to the tested Travis configurations.
2018-03-24 18:53:51 +01:00