3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-22 22:03:39 +00:00

adding level2var

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-12-22 11:51:04 -08:00
parent 58be42d2a9
commit 25b98f497a
4 changed files with 50 additions and 14 deletions

View file

@ -544,6 +544,14 @@ namespace dd {
reserve_var(i);
return pdd(m_var2pdd[i], this);
}
void pdd_manager::set_level2var(unsigned_vector const& level2var) {
SASSERT(level2var.size() == m_level2var.size());
for (unsigned i = 0; i < level2var.size(); ++i) {
m_var2level[level2var[i]] = i;
m_level2var[i] = level2var[i];
}
}
unsigned pdd_manager::dag_size(pdd const& b) {
init_mark();

View file

@ -225,7 +225,8 @@ namespace dd {
void set_mod2_semantics() { m_mod2_semantics = true; }
void set_max_num_nodes(unsigned n) { m_max_num_pdd_nodes = n; }
void set_var_order(unsigned_vector const& levels); // TBD: set variable order (m_var2level, m_level2var) before doing anything else.
void set_level2var(unsigned_vector const& level2var);
unsigned_vector const& get_level2var() const { return m_level2var; }
pdd mk_var(unsigned i);
pdd mk_val(rational const& r);