mirror of
https://github.com/Z3Prover/z3
synced 2025-08-03 01:40:22 +00:00
first eufi example running
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
2288931b46
commit
74621e0b7d
26 changed files with 80 additions and 105 deletions
|
@ -209,7 +209,7 @@ namespace smt {
|
|||
}
|
||||
};
|
||||
|
||||
void get_unsat_core(ptr_vector<expr> & r) override {
|
||||
void get_unsat_core(expr_ref_vector & r) override {
|
||||
unsigned sz = m_context.get_unsat_core_size();
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
r.push_back(m_context.get_unsat_core_expr(i));
|
||||
|
@ -219,7 +219,7 @@ namespace smt {
|
|||
scoped_minimize_core scm(*this);
|
||||
mus mus(*this);
|
||||
mus.add_soft(r.size(), r.c_ptr());
|
||||
ptr_vector<expr> r2;
|
||||
expr_ref_vector r2(m);
|
||||
if (l_true == mus.get_mus(r2)) {
|
||||
r.reset();
|
||||
r.append(r2);
|
||||
|
@ -333,7 +333,7 @@ namespace smt {
|
|||
for_each_expr(p, visited, e);
|
||||
}
|
||||
|
||||
void compute_assrtn_fds(ptr_vector<expr> & core, vector<func_decl_set> & assrtn_fds) {
|
||||
void compute_assrtn_fds(expr_ref_vector & core, vector<func_decl_set> & assrtn_fds) {
|
||||
assrtn_fds.resize(m_name2assertion.size());
|
||||
unsigned i = 0;
|
||||
for (auto & kv : m_name2assertion) {
|
||||
|
@ -354,7 +354,7 @@ namespace smt {
|
|||
return false;
|
||||
}
|
||||
|
||||
void add_pattern_literals_to_core(ptr_vector<expr> & core) {
|
||||
void add_pattern_literals_to_core(expr_ref_vector & core) {
|
||||
ast_manager & m = get_manager();
|
||||
expr_ref_vector new_core_literals(m);
|
||||
|
||||
|
@ -413,7 +413,7 @@ namespace smt {
|
|||
for_each_expr(p, visited, e);
|
||||
}
|
||||
|
||||
void add_nonlocal_pattern_literals_to_core(ptr_vector<expr> & core) {
|
||||
void add_nonlocal_pattern_literals_to_core(expr_ref_vector & core) {
|
||||
ast_manager & m = get_manager();
|
||||
for (auto const& kv : m_name2assertion) {
|
||||
expr_ref name(kv.m_key, m);
|
||||
|
@ -425,8 +425,8 @@ namespace smt {
|
|||
collect_body_func_decls(assrtn, body_fds);
|
||||
|
||||
for (func_decl *fd : pattern_fds) {
|
||||
if (!body_fds.contains(fd)) {
|
||||
core.insert(name);
|
||||
if (!body_fds.contains(fd) && !core.contains(name)) {
|
||||
core.push_back(name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue