3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-28 05:58:55 +00:00

bool_vector, some spacer tidy

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-04-05 12:59:04 -07:00
parent 2ed26e8e73
commit b889b110ee
106 changed files with 239 additions and 266 deletions

View file

@ -38,7 +38,7 @@ namespace datalog {
rule_ref new_rule(rm);
app_ref_vector tail(m);
app_ref head(m);
svector<bool> neg;
bool_vector neg;
app_ref query(m);
query = m.mk_fresh_const("Q", m.mk_bool_sort());
result->set_output_predicate(query->get_decl());

View file

@ -64,7 +64,7 @@ namespace datalog {
expr_ref_vector revsub(m), conjs(m);
rl.get_vars(m, sorts);
revsub.resize(sorts.size());
svector<bool> valid(sorts.size(), true);
bool_vector valid(sorts.size(), true);
for (unsigned i = 0; i < sub.size(); ++i) {
expr* e = sub[i];
sort* s = m.get_sort(e);
@ -116,7 +116,7 @@ namespace datalog {
expr_ref_vector conjs1(m), conjs(m);
rule_ref res(rm);
bool_rewriter bwr(m);
svector<bool> is_neg;
bool_vector is_neg;
tgt->get_vars(m, sorts1);
src.get_vars(m, sorts2);

View file

@ -32,7 +32,7 @@ namespace datalog {
ast_manager & m;
context & m_context;
vector<app*> m_new_tail;
svector<bool> m_new_tail_neg;
bool_vector m_new_tail_neg;
rule_set * bottom_up(rule_set const & source);
rule_set * top_down(rule_set const & source);

View file

@ -106,7 +106,7 @@ namespace datalog {
m_current = r;
app * new_head = r->get_head();
app_ref_vector new_tail(m);
svector<bool> new_is_negated;
bool_vector new_is_negated;
unsigned sz = r->get_tail_size();
bool rule_modified = false;
for (unsigned i = 0; i < sz; i++) {

View file

@ -38,7 +38,7 @@ namespace datalog {
unifier m_unif;
app_ref m_head;
app_ref_vector m_tail;
svector<bool> m_neg;
bool_vector m_neg;
rule * m_rule;
void apply(app * a, app_ref& res);
@ -76,7 +76,7 @@ namespace datalog {
app_ref_vector m_tail;
expr_ref_vector m_itail_members;
expr_ref_vector m_conj;
svector<bool> m_tail_neg;
bool_vector m_tail_neg;
normalizer_cfg* m_cfg;
normalizer_rw* m_rw;

View file

@ -34,7 +34,7 @@ namespace datalog {
struct matrix {
vector<vector<rational> > A;
vector<rational> b;
svector<bool> eq;
bool_vector eq;
unsigned size() const { return A.size(); }
void reset() { A.reset(); b.reset(); eq.reset(); }
matrix& operator=(matrix const& other);

View file

@ -73,7 +73,7 @@ namespace datalog {
rule_ref new_rule(rm);
app_ref_vector tail(m);
app_ref head(m);
svector<bool> neg;
bool_vector neg;
rule_counter& vc = rm.get_counter();
for (unsigned i = 0; i < sz; ++i) {
tail.reset();
@ -129,7 +129,7 @@ namespace datalog {
rule_ref new_rule(rm);
app_ref_vector tail(m);
app_ref head(m);
svector<bool> neg;
bool_vector neg;
for (unsigned i = 0; i < sz; ++i) {
tail.reset();
neg.reset();

View file

@ -187,7 +187,7 @@ namespace datalog {
void mk_magic_sets::create_magic_rules(app * head, unsigned tail_cnt, app * const * tail, bool const* negated, rule_set& result) {
//TODO: maybe include relevant interpreted predicates from the original rule
ptr_vector<app> new_tail;
svector<bool> negations;
bool_vector negations;
new_tail.push_back(create_magic_literal(head));
new_tail.append(tail_cnt, tail);
negations.push_back(false);
@ -231,7 +231,7 @@ namespace datalog {
}
ptr_vector<app> new_tail;
svector<bool> negations;
bool_vector negations;
while (new_tail.size()!=processed_tail_len) {
bool intentional = false;
int curr_index = pop_bound(exten_tails, r, bound_vars);

View file

@ -77,7 +77,7 @@ namespace datalog {
rule_ref new_rule(rm);
app_ref_vector tail(m);
app_ref head(m);
svector<bool> neg;
bool_vector neg;
for (unsigned i = 0; i < sz; ++i) {
rule & r = *source.get_rule(i);
unsigned utsz = r.get_uninterpreted_tail_size();

View file

@ -39,7 +39,7 @@ namespace datalog {
func_decl_ref_vector m_new_funcs;
vector<expr_ref_vector> m_subst;
vector<sort_ref_vector> m_sorts;
vector<svector<bool> > m_bound;
vector<bool_vector > m_bound;
public:
@ -56,7 +56,7 @@ namespace datalog {
void get_units(obj_map<expr, bool>& units) override { units.reset(); }
void insert(func_decl* old_p, func_decl* new_p, expr_ref_vector& sub, sort_ref_vector& sorts, svector<bool> const& bound) {
void insert(func_decl* old_p, func_decl* new_p, expr_ref_vector& sub, sort_ref_vector& sorts, bool_vector const& bound) {
m_old_funcs.push_back(old_p);
m_new_funcs.push_back(new_p);
m_subst.push_back(sub);
@ -71,7 +71,7 @@ namespace datalog {
func_decl* q = m_old_funcs[i].get();
expr_ref_vector const& sub = m_subst[i];
sort_ref_vector const& sorts = m_sorts[i];
svector<bool> const& is_bound = m_bound[i];
bool_vector const& is_bound = m_bound[i];
func_interp* f = old_model->get_func_interp(p);
expr_ref body(m);
unsigned arity_q = q->get_arity();
@ -177,7 +177,7 @@ namespace datalog {
func_decl* new_p = nullptr;
if (!m_old2new.find(old_p, new_p)) {
expr_ref_vector sub(m), vars(m);
svector<bool> bound;
bool_vector bound;
sort_ref_vector domain(m), sorts(m);
expr_ref arg(m);
for (unsigned i = 0; i < sz; ++i) {

View file

@ -91,7 +91,7 @@ namespace datalog {
void rule_unifier::apply(
rule const& r, bool is_tgt, unsigned skipped_index,
app_ref_vector& res, svector<bool>& res_neg) {
app_ref_vector& res, bool_vector& res_neg) {
unsigned rule_len = r.get_tail_size();
for (unsigned i = 0; i < rule_len; i++) {
if (i != skipped_index) { //i can never be UINT_MAX, so we'll never skip if we're not supposed to
@ -107,7 +107,7 @@ namespace datalog {
SASSERT(m_ready);
app_ref new_head(m);
app_ref_vector tail(m);
svector<bool> tail_neg;
bool_vector tail_neg;
rule_ref simpl_rule(m_rm);
apply(tgt.get_head(), true, new_head);
apply(tgt, true, tail_index, tail, tail_neg);
@ -647,8 +647,8 @@ namespace datalog {
}
void mk_rule_inliner::add_rule(rule_set const& source, rule* r, unsigned i) {
svector<bool>& can_remove = m_head_visitor.can_remove();
svector<bool>& can_expand = m_head_visitor.can_expand();
bool_vector& can_remove = m_head_visitor.can_remove();
bool_vector& can_expand = m_head_visitor.can_expand();
app* head = r->get_head();
func_decl* headd = head->get_decl();
m_head_visitor.add_position(head, i);
@ -705,8 +705,8 @@ namespace datalog {
}
// set up unification index.
svector<bool>& can_remove = m_head_visitor.can_remove();
svector<bool>& can_expand = m_head_visitor.can_expand();
bool_vector& can_remove = m_head_visitor.can_remove();
bool_vector& can_expand = m_head_visitor.can_expand();
for (unsigned i = 0; i < sz; ++i) {
add_rule(*rules, acc[i].get(), i);
@ -727,7 +727,7 @@ namespace datalog {
m_subst.reserve_vars(max_var+1);
m_subst.reserve_offsets(std::max(m_tail_index.get_approx_num_regs(), 2+m_head_index.get_approx_num_regs()));
svector<bool> valid;
bool_vector valid;
valid.reset();
valid.resize(sz, true);

View file

@ -76,7 +76,7 @@ namespace datalog {
unless skipped_index is equal to UINT_MAX
*/
void apply(rule const& r, bool is_tgt, unsigned skipped_index, app_ref_vector& res,
svector<bool>& res_neg);
bool_vector& res_neg);
};
@ -85,15 +85,15 @@ namespace datalog {
class visitor : public st_visitor {
context& m_context;
unsigned_vector m_unifiers;
svector<bool> m_can_remove, m_can_expand;
bool_vector m_can_remove, m_can_expand;
obj_map<expr, unsigned_vector> m_positions;
public:
visitor(context& c, substitution & s): st_visitor(s), m_context(c) { (void) m_context; }
bool operator()(expr* e) override;
void reset() { m_unifiers.reset(); }
void reset(unsigned sz);
svector<bool>& can_remove() { return m_can_remove; }
svector<bool>& can_expand() { return m_can_expand; }
bool_vector& can_remove() { return m_can_remove; }
bool_vector& can_expand() { return m_can_expand; }
unsigned_vector const& add_position(expr* e, unsigned j);
unsigned_vector const& del_position(expr* e, unsigned j);
unsigned_vector const& get_unifiers() { return m_unifiers; }

View file

@ -127,7 +127,7 @@ namespace datalog {
rule_ref new_rule(rm);
app_ref_vector tail(m);
app_ref head(m);
svector<bool> neg;
bool_vector neg;
ptr_vector<sort> vars;
ref<scale_model_converter> smc;
if (m_ctx.get_model_converter()) {

View file

@ -80,7 +80,7 @@ namespace datalog {
unsigned tsz = r.get_tail_size();
app_ref_vector tail(m);
app_ref p(m);
svector<bool> neg;
bool_vector neg;
for (unsigned i = 0; i < ptsz; ++i) {
tail.push_back(r.get_tail(i));
neg.push_back(false);

View file

@ -35,10 +35,10 @@ namespace datalog {
context& m_ctx;
ast_manager& m;
rule_manager& rm;
svector<bool> m_input;
svector<bool> m_output;
bool_vector m_input;
bool_vector m_output;
expr_ref_vector m_solved_vars;
svector<bool> m_var_is_sliceable;
bool_vector m_var_is_sliceable;
obj_map<func_decl, func_decl*> m_predicates;
obj_map<func_decl, bit_vector> m_sliceable;
ast_ref_vector m_pinned;

View file

@ -125,7 +125,7 @@ namespace datalog {
app_ref head(r->get_head(), m);
app_ref_vector tail(m);
svector<bool> tail_neg;
bool_vector tail_neg;
for(unsigned i=0; i<u_len; i++) {
app * tail_atom = r->get_tail(i);

View file

@ -101,7 +101,7 @@ namespace datalog {
app_ref replacing = product_application(apps);
ptr_vector<app> new_tail;
svector<bool> new_tail_neg;
bool_vector new_tail_neg;
unsigned n = r.get_tail_size() - apps.size() + 1;
unsigned tail_idx = 0;
new_tail.resize(n);
@ -176,7 +176,7 @@ namespace datalog {
void mk_synchronize::add_rec_tail(vector< ptr_vector<app> > & recursive_calls,
app_ref_vector & new_tail,
svector<bool> & new_tail_neg,
bool_vector & new_tail_neg,
unsigned & tail_idx) {
unsigned max_sz = 0;
for (auto &rc : recursive_calls)
@ -200,7 +200,7 @@ namespace datalog {
}
void mk_synchronize::add_non_rec_tail(rule & r, app_ref_vector & new_tail,
svector<bool> & new_tail_neg,
bool_vector & new_tail_neg,
unsigned & tail_idx) {
for (unsigned i = 0, sz = r.get_positive_tail_size(); i < sz; ++i) {
app* tail = r.get_tail(i);
@ -287,7 +287,7 @@ namespace datalog {
}
app_ref_vector new_tail(m);
svector<bool> new_tail_neg;
bool_vector new_tail_neg;
new_tail.resize(product_tail_length);
new_tail_neg.resize(product_tail_length);
unsigned tail_idx = -1;

View file

@ -109,9 +109,9 @@ namespace datalog {
void add_rec_tail(vector< ptr_vector<app> > & recursive_calls,
app_ref_vector & new_tail,
svector<bool> & new_tail_neg, unsigned & tail_idx);
bool_vector & new_tail_neg, unsigned & tail_idx);
void add_non_rec_tail(rule & r, app_ref_vector & new_tail,
svector<bool> & new_tail_neg,
bool_vector & new_tail_neg,
unsigned & tail_idx);
rule_ref product_rule(rule_ref_vector const & rules);

View file

@ -205,7 +205,7 @@ namespace datalog {
SASSERT(dtail_args.size()==dtail_pred->get_arity());
app_ref dtail(m.mk_app(dtail_pred, dtail_args.size(), dtail_args.c_ptr()), m);
svector<bool> tails_negated;
bool_vector tails_negated;
app_ref_vector tails(m);
unsigned tail_len = r->get_tail_size();
for (unsigned i = 0; i < tail_len; i++) {