3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-26 13:06:05 +00:00

Add bitblasting fallback to viable::query

(integration between conflict/viable is still messy)
This commit is contained in:
Jakob Rath 2022-12-16 13:02:54 +01:00
parent 44cb528300
commit afde0e993c
8 changed files with 336 additions and 121 deletions

View file

@ -85,7 +85,7 @@ namespace polysat {
scoped_ptr<conflict_resolver> m_resolver;
// current conflict core consists of m_literals and m_vars
indexed_uint_set m_literals; // set of boolean literals in the conflict
indexed_uint_set m_literals; // set of boolean literals in the conflict; TODO: why not sat::literal_set
uint_set m_vars; // variable assignments used as premises, shorthand for literals (x := v)
unsigned_vector m_var_occurrences; // for each variable, the number of constraints in m_literals that contain it
@ -135,9 +135,13 @@ namespace polysat {
void init(clause const& cl);
/** conflict because there is no viable value for the variable v */
void init(pvar v, bool by_viable_fallback);
/** start empty conflict, constraints to be added by caller */
void init_empty(); // TODO: remove... rather have all types of conflicts explicitly listed here.
#if 0
/** replace the current conflict by a single constraint */
void set(signed_constraint c);
#endif
bool contains(signed_constraint c) const { SASSERT(c); return contains(c.blit()); }
bool contains(sat::literal lit) const;