mirror of
https://github.com/Z3Prover/z3
synced 2025-08-27 13:39:49 +00:00
have free variable utility use a class for more efficient re-use
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
73070585b8
commit
c09903288f
39 changed files with 300 additions and 303 deletions
|
@ -123,14 +123,14 @@ namespace datalog {
|
|||
}
|
||||
|
||||
void ground(expr_ref& e) {
|
||||
ptr_vector<sort> sorts;
|
||||
get_free_vars(e, sorts);
|
||||
if (m_ground.size() < sorts.size()) {
|
||||
m_ground.resize(sorts.size());
|
||||
expr_free_vars fv;
|
||||
fv(e);
|
||||
if (m_ground.size() < fv.size()) {
|
||||
m_ground.resize(fv.size());
|
||||
}
|
||||
for (unsigned i = 0; i < sorts.size(); ++i) {
|
||||
if (sorts[i] && !m_ground[i].get()) {
|
||||
m_ground[i] = m.mk_fresh_const("c",sorts[i]);
|
||||
for (unsigned i = 0; i < fv.size(); ++i) {
|
||||
if (fv[i] && !m_ground[i].get()) {
|
||||
m_ground[i] = m.mk_fresh_const("c", fv[i]);
|
||||
}
|
||||
}
|
||||
m_var_subst(e, m_ground.size(), m_ground.c_ptr(), e);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue