mirror of
https://github.com/Z3Prover/z3
synced 2025-08-13 22:41:15 +00:00
add propagation flag to monic and method for updating it to emonics. This replaces the bool-vector tracking for propagation and internalizes it to the emonics class
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
9c63ea3135
commit
aaa587398e
3 changed files with 21 additions and 0 deletions
|
@ -595,4 +595,20 @@ bool emonics::invariant() const {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
void emonics::set_propagated(monic& m) {
|
||||
struct set_unpropagated : public trail {
|
||||
emonics& em;
|
||||
unsigned var;
|
||||
public:
|
||||
set_unpropagated(emonics& em, unsigned var): em(em), var(var) {}
|
||||
void undo() override {
|
||||
em[var].set_propagated(false);
|
||||
}
|
||||
};
|
||||
SASSERT(!m.is_propagated());
|
||||
m.set_propagated(true);
|
||||
m_u_f_stack.push(set_unpropagated(*this, m.var()));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue