3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 03:45:51 +00:00

working on pre-processing

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2013-12-26 09:53:33 -08:00
parent 70c4432bb4
commit 0641c4f694
8 changed files with 467 additions and 151 deletions

View file

@ -124,11 +124,10 @@ namespace opt {
std::stringstream file_name;
file_name << "opt_solver" << ++m_dump_count << ".smt2";
std::ofstream buffer(file_name.str().c_str());
to_smt2_benchmark(buffer, "opt_solver", "");
to_smt2_benchmark(buffer, num_assumptions, assumptions, "opt_solver", "");
buffer.close();
}
lbool r = m_context.check(num_assumptions, assumptions);
return r;
return m_context.check(num_assumptions, assumptions);
}
void opt_solver::maximize_objectives() {
@ -257,7 +256,9 @@ namespace opt {
}
void opt_solver::to_smt2_benchmark(std::ofstream & buffer, char const * name, char const * logic,
void opt_solver::to_smt2_benchmark(std::ofstream & buffer,
unsigned num_assumptions, expr * const * assumptions,
char const * name, char const * logic,
char const * status, char const * attributes) {
ast_smt_pp pp(m);
pp.set_benchmark_name(name);
@ -266,10 +267,14 @@ namespace opt {
pp.add_attributes(attributes);
pp_params params;
pp.set_simplify_implies(params.simplify_implies());
for (unsigned i = 0; i < get_num_assertions(); ++i) {
pp.add_assumption(to_expr(get_assertion(i)));
for (unsigned i = 0; i < num_assumptions; ++i) {
pp.add_assumption(assumptions[i]);
}
pp.display_smt2(buffer, to_expr(m.mk_true()));
for (unsigned i = 0; i < get_num_assertions(); ++i) {
pp.add_assumption(get_assertion(i));
}
pp.display_smt2(buffer, m.mk_true());
}