mirror of
https://github.com/Z3Prover/z3
synced 2025-07-23 12:48:53 +00:00
adding recursion bounds to duality
This commit is contained in:
parent
672b8e1022
commit
13b61d894c
7 changed files with 60 additions and 23 deletions
|
@ -246,6 +246,7 @@ namespace datalog {
|
|||
m_rule_fmls_head = 0;
|
||||
m_rule_fmls.reset();
|
||||
m_rule_names.reset();
|
||||
m_rule_bounds.reset();
|
||||
m_argument_var_names.reset();
|
||||
m_preds.reset();
|
||||
m_preds_by_name.reset();
|
||||
|
@ -474,9 +475,10 @@ namespace datalog {
|
|||
return new_pred;
|
||||
}
|
||||
|
||||
void context::add_rule(expr* rl, symbol const& name) {
|
||||
void context::add_rule(expr* rl, symbol const& name, unsigned bound) {
|
||||
m_rule_fmls.push_back(rl);
|
||||
m_rule_names.push_back(name);
|
||||
m_rule_bounds.push_back(bound);
|
||||
}
|
||||
|
||||
void context::flush_add_rules() {
|
||||
|
@ -1102,12 +1104,13 @@ namespace datalog {
|
|||
}
|
||||
}
|
||||
|
||||
void context::get_raw_rule_formulas(expr_ref_vector& rules, svector<symbol>& names){
|
||||
void context::get_raw_rule_formulas(expr_ref_vector& rules, svector<symbol>& names, vector<unsigned> &bounds){
|
||||
for (unsigned i = 0; i < m_rule_fmls.size(); ++i) {
|
||||
expr_ref r = bind_variables(m_rule_fmls[i].get(), true);
|
||||
rules.push_back(r.get());
|
||||
// rules.push_back(m_rule_fmls[i].get());
|
||||
names.push_back(m_rule_names[i]);
|
||||
bounds.push_back(m_rule_bounds[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1125,6 +1128,7 @@ namespace datalog {
|
|||
m_rule_names[i] = m_rule_names.back();
|
||||
m_rule_fmls.pop_back();
|
||||
m_rule_names.pop_back();
|
||||
m_rule_bounds.pop_back();
|
||||
--i;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue