3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 09:35:32 +00:00

Logging facility for spacer plus minor improvements (#3368)

* [spacer] logging solver events

New option fp.spacer.trace_file='file.log' enables logging solving events
into a file.

These events are useful for debugging the solver, but also for visualizing
the solving process in a variety of ways

* [spacer] allow setting logic for solvers used by spacer

* [spacer] option to set arithmetic solver explicitly

* [spacer] improve of dumping solver_pool state for debugging

* fix propagate_ineqs to handle strict inequality

Co-authored-by: Nham Van Le <nv3le@precious3.eng.uwaterloo.ca>
This commit is contained in:
Arie Gurfinkel 2020-03-16 23:31:44 -04:00 committed by GitHub
parent f06deca7e0
commit 6180a5276d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 143 additions and 58 deletions

View file

@ -279,6 +279,7 @@ private:
lbool last_status, double last_time) {
std::string file_name = mk_file_name();
std::ofstream out(file_name);
STRACE("spacer.ind_gen", tout << "Dumping benchmark to " << file_name << "\n";);
if (!out) {
IF_VERBOSE(0, verbose_stream() << "could not open file " << file_name << " for output\n");
return;
@ -294,7 +295,7 @@ private:
}
out << "(check-sat";
for (auto * lit : cube) out << " " << mk_pp(lit, m);
for (auto * lit : cube) out << " " << mk_pp(lit, m) << "\n";
out << ")\n";
out << "(exit)\n";
@ -302,6 +303,7 @@ private:
m_base->collect_statistics(st);
st.update("time", last_time);
st.display_smt2(out);
m_base->get_params().display(out);
out.close();
}