mirror of
https://github.com/Z3Prover/z3
synced 2025-08-26 04:56:03 +00:00
make get_vars populate all indices with sorts even if variable does not occur in rule. This makes the use of get_vars less prone to callers having to double check for null pointers
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
72fe197bda
commit
4957e71408
8 changed files with 16 additions and 21 deletions
|
@ -148,7 +148,7 @@ namespace datalog {
|
|||
|
||||
void mk_qrule_vars(datalog::rule const& r, unsigned rule_id, expr_ref_vector& sub) {
|
||||
ptr_vector<sort> sorts;
|
||||
r.get_vars(sorts);
|
||||
r.get_vars(m, sorts);
|
||||
// populate substitution of bound variables.
|
||||
sub.reset();
|
||||
sub.resize(sorts.size());
|
||||
|
@ -421,7 +421,7 @@ namespace datalog {
|
|||
ptr_vector<sort> rule_vars;
|
||||
expr_ref_vector args(m), conjs(m);
|
||||
|
||||
r.get_vars(rule_vars);
|
||||
r.get_vars(m, rule_vars);
|
||||
obj_hashtable<expr> used_vars;
|
||||
unsigned num_vars = 0;
|
||||
for (unsigned i = 0; i < r.get_decl()->get_arity(); ++i) {
|
||||
|
@ -514,7 +514,7 @@ namespace datalog {
|
|||
unsigned sz = r->get_uninterpreted_tail_size();
|
||||
|
||||
ptr_vector<sort> rule_vars;
|
||||
r->get_vars(rule_vars);
|
||||
r->get_vars(m, rule_vars);
|
||||
args.append(prop->get_num_args(), prop->get_args());
|
||||
expr_ref_vector sub = mk_skolem_binding(*r, rule_vars, args);
|
||||
if (sub.empty() && sz == 0) {
|
||||
|
@ -803,7 +803,7 @@ namespace datalog {
|
|||
func_decl* p = r.get_decl();
|
||||
ptr_vector<func_decl> const& succs = *dtu.get_datatype_constructors(m.get_sort(path));
|
||||
// populate substitution of bound variables.
|
||||
r.get_vars(sorts);
|
||||
r.get_vars(m, sorts);
|
||||
sub.reset();
|
||||
sub.resize(sorts.size());
|
||||
for (unsigned k = 0; k < r.get_decl()->get_arity(); ++k) {
|
||||
|
@ -1327,7 +1327,7 @@ namespace datalog {
|
|||
|
||||
void mk_rule_vars(rule& r, unsigned level, unsigned rule_id, expr_ref_vector& sub) {
|
||||
ptr_vector<sort> sorts;
|
||||
r.get_vars(sorts);
|
||||
r.get_vars(m, sorts);
|
||||
// populate substitution of bound variables.
|
||||
sub.reset();
|
||||
sub.resize(sorts.size());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue