3
0
Fork 0
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:
Nikolaj Bjorner 2023-09-26 20:52:34 -07:00
parent 9c63ea3135
commit aaa587398e
3 changed files with 21 additions and 0 deletions

View file

@ -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()));
}
}