mirror of
https://github.com/Z3Prover/z3
synced 2025-05-05 23:05:46 +00:00
Bring back boolean decisions (wip)
The backtracking code doesn't know about boolean decisions yet
This commit is contained in:
parent
811843cf45
commit
3d27ec41d0
7 changed files with 132 additions and 27 deletions
|
@ -60,6 +60,11 @@ namespace polysat {
|
|||
// m_unused.push_back(var);
|
||||
}
|
||||
|
||||
bool bool_var_manager::invariant(sat::bool_var var) const {
|
||||
SASSERT_EQ(value(var) == l_undef, m_kind[var] == kind_t::unassigned);
|
||||
return true;
|
||||
}
|
||||
|
||||
void bool_var_manager::propagate(sat::literal lit, unsigned lvl, clause& reason) {
|
||||
LOG("Propagate literal " << lit << " @ " << lvl << " by " << reason);
|
||||
assign(kind_t::bool_propagation, lit, lvl, &reason);
|
||||
|
@ -78,6 +83,12 @@ namespace polysat {
|
|||
SASSERT(is_assumption(lit));
|
||||
}
|
||||
|
||||
void bool_var_manager::decision(sat::literal lit, unsigned lvl) {
|
||||
LOG("Decided " << lit << " @ " << lvl);
|
||||
assign(kind_t::decision, lit, lvl, nullptr);
|
||||
SASSERT(is_decision(lit));
|
||||
}
|
||||
|
||||
void bool_var_manager::assign(kind_t k, sat::literal lit, unsigned lvl, clause* reason, dependency dep) {
|
||||
SASSERT(!is_assigned(lit));
|
||||
SASSERT(k != kind_t::unassigned);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue