summaryrefslogtreecommitdiff
path: root/src/prop/sat_solver.h
diff options
context:
space:
mode:
authorMathias Preiner <mathias.preiner@gmail.com>2021-05-13 17:29:52 -0700
committerGitHub <noreply@github.com>2021-05-14 00:29:52 +0000
commitb59deea057513448d98f54629c78a38a81f99b27 (patch)
tree4f4458795bc505173710786a932c3babf9a1b5d4 /src/prop/sat_solver.h
parentd7b74a33e3722dd123ecfb79603538cc5ac889a0 (diff)
bv: Assert input facts on user-level 0. (#6515)
The bitblast solver currently uses solving under assumptions for all facts that are sent to the bit-vector solver. For input facts on user-level 0 we can however assert the fact to the SAT solver, which allows the SAT solver to do more preprocessing. This PR adds the option to assert user-level 0 input facts, which is disabled by default.
Diffstat (limited to 'src/prop/sat_solver.h')
-rw-r--r--src/prop/sat_solver.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/prop/sat_solver.h b/src/prop/sat_solver.h
index 1c64c92c2..963810594 100644
--- a/src/prop/sat_solver.h
+++ b/src/prop/sat_solver.h
@@ -168,6 +168,16 @@ class CDCLTSatSolverInterface : public SatSolver
virtual bool isDecision(SatVariable decn) const = 0;
+ /**
+ * Return the current decision level of `lit`.
+ */
+ virtual int32_t getDecisionLevel(SatVariable v) const { return -1; }
+
+ /**
+ * Return the user-context level when `lit` was introduced..
+ */
+ virtual int32_t getIntroLevel(SatVariable v) const { return -1; }
+
virtual std::shared_ptr<ProofNode> getProof() = 0;
}; /* class CDCLTSatSolverInterface */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback