diff options
author | Mathias Preiner <mathias.preiner@gmail.com> | 2021-05-13 17:29:52 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-14 00:29:52 +0000 |
commit | b59deea057513448d98f54629c78a38a81f99b27 (patch) | |
tree | 4f4458795bc505173710786a932c3babf9a1b5d4 /src/prop/sat_solver.h | |
parent | d7b74a33e3722dd123ecfb79603538cc5ac889a0 (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.h | 10 |
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 */ |