summaryrefslogtreecommitdiff
path: root/src/theory/arith/nl/cad/cdcac.h
diff options
context:
space:
mode:
authorGereon Kremer <gereon.kremer@cs.rwth-aachen.de>2020-08-19 23:06:57 +0200
committerGitHub <noreply@github.com>2020-08-19 16:06:57 -0500
commit6710b082bc6fa8c7f67203a4013657e069479119 (patch)
tree3f3ba1065e1100e86526a0b13ab26c759e77f1c2 /src/theory/arith/nl/cad/cdcac.h
parent31717bf7c014bf1971cabcc9b871de5818278126 (diff)
(cad solver) Add a partial check method. (#4904)
This PR extends the CAD-based solver to enable partial checks. Essentially, we only collect the first interval that is excluded for the first variable and return that one as a lemma. This does not leave a lot of choice on "how partial" the check should be, but it is fairly easy to implement and does not add additional overhead. It also fixes some confusion in excluding_interval_to_lemma...
Diffstat (limited to 'src/theory/arith/nl/cad/cdcac.h')
-rw-r--r--src/theory/arith/nl/cad/cdcac.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/theory/arith/nl/cad/cdcac.h b/src/theory/arith/nl/cad/cdcac.h
index 3434b23e6..a6049ad61 100644
--- a/src/theory/arith/nl/cad/cdcac.h
+++ b/src/theory/arith/nl/cad/cdcac.h
@@ -131,8 +131,15 @@ class CDCAC
* be obtained from d_assignment. If the covering is not empty, the result is
* UNSAT and an infeasible subset can be extracted from the returned covering.
* Implements Algorithm 2.
+ * @param curVariable The id of the variable (within d_variableOrdering) to
+ * be considered. This argument is used to manage the recursion internally and
+ * should always be zero if called externally.
+ * @param returnFirstInterval If true, the function returns after the first
+ * interval obtained from a recursive call. The result is not (necessarily) an
+ * unsat cover, but merely a list of infeasible intervals.
*/
- std::vector<CACInterval> getUnsatCover(std::size_t cur_variable = 0);
+ std::vector<CACInterval> getUnsatCover(std::size_t curVariable = 0,
+ bool returnFirstInterval = false);
private:
/**
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback