3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-06 22:23:22 +00:00

initialize solver before parse is invoked. Fixes issue reported by Selsam

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2018-09-13 19:05:45 -07:00
parent 19d3b5cfd1
commit 78950fde17
2 changed files with 6 additions and 5 deletions

View file

@ -179,6 +179,7 @@ extern "C" {
LOG_Z3_solver_from_file(c, s, file_name); LOG_Z3_solver_from_file(c, s, file_name);
char const* ext = get_extension(file_name); char const* ext = get_extension(file_name);
std::ifstream is(file_name); std::ifstream is(file_name);
init_solver(c, s);
if (!is) { if (!is) {
SET_ERROR_CODE(Z3_FILE_ACCESS_ERROR, nullptr); SET_ERROR_CODE(Z3_FILE_ACCESS_ERROR, nullptr);
} }

View file

@ -1685,15 +1685,15 @@ public:
for (auto const& ev : ex.m_explanation) { for (auto const& ev : ex.m_explanation) {
fmls.push_back(constraint2fml(ev.second)); fmls.push_back(constraint2fml(ev.second));
} }
expr_ref t(m); expr_ref t(term2expr(term), m);
t = term2expr(term); if (upper) {
if (upper)
fmls.push_back(m.mk_not(a.mk_ge(t, a.mk_numeral(k, true)))); fmls.push_back(m.mk_not(a.mk_ge(t, a.mk_numeral(k, true))));
else }
else {
fmls.push_back(m.mk_not(a.mk_le(t, a.mk_numeral(k, true)))); fmls.push_back(m.mk_not(a.mk_le(t, a.mk_numeral(k, true))));
}
ast_pp_util visitor(m); ast_pp_util visitor(m);
visitor.collect(fmls); visitor.collect(fmls);
visitor.display_decls(out); visitor.display_decls(out);
visitor.display_asserts(out, fmls, true); visitor.display_asserts(out, fmls, true);
out << "(check-sat)\n"; out << "(check-sat)\n";