3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-19 10:52:02 +00:00

delay evaluation of model, throttle propagation, introduce LUT results into cutset

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-02-05 12:33:42 -08:00
parent 7b2f6791bc
commit 2d59b81353
14 changed files with 112 additions and 84 deletions

View file

@ -275,6 +275,18 @@ namespace sat {
SASSERT(!m_aig[v].empty());
}
void aig_cuts::add_cut(bool_var v, uint64_t lut, bool_var_vector const& args) {
reserve(v);
for (bool_var w : args) reserve(w);
// optional: reshuffle lut and sort variables.
cut c;
for (bool_var w : args) VERIFY(c.add(w));
c.set_table(lut);
// add-don't care?
insert_cut(v, c, m_cuts[v]);
}
void aig_cuts::set_root(bool_var v, literal r) {
IF_VERBOSE(10, verbose_stream() << "set-root " << v << " -> " << r << "\n");
m_roots.push_back(std::make_pair(v, r));