3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-18 02:16:40 +00:00

re-organize proof and model converters to be associated with goals instead of external

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-11-18 16:33:54 -08:00
parent 00f5308a0e
commit 4bbece6616
118 changed files with 617 additions and 1070 deletions

View file

@ -271,20 +271,21 @@ namespace datalog {
m_renaming.insert(orig_rule, unsigned_vector(sz, renaming));
}
virtual void operator()(ast_manager& m, unsigned num_source, proof * const * source, proof_ref & result) {
proof_ref operator()(ast_manager& m, unsigned num_source, proof * const * source) override {
SASSERT(num_source == 1);
result = source[0];
proof_ref result(source[0], m);
init_form2rule();
translate_proof(result);
return result;
}
virtual proof_converter * translate(ast_translation & translator) {
proof_converter * translate(ast_translation & translator) override {
UNREACHABLE();
// this would require implementing translation for the dl_context.
return 0;
}
virtual void display(std::ostream& out) { out << "(slice-proof-converter)\n"; }
void display(std::ostream& out) override { out << "(slice-proof-converter)\n"; }
};
class mk_slice::slice_model_converter : public model_converter {
@ -307,7 +308,7 @@ namespace datalog {
m_sliceable.insert(f, bv);
}
virtual void operator()(model_ref & md) {
void operator()(model_ref & md) override {
if (m_slice2old.empty()) {
return;
}
@ -393,12 +394,12 @@ namespace datalog {
TRACE("dl", model_smt2_pp(tout, m, *md, 0); );
}
virtual model_converter * translate(ast_translation & translator) {
model_converter * translate(ast_translation & translator) override {
UNREACHABLE();
return 0;
}
virtual void display(std::ostream& out) { out << "(slice-model-converter)\n"; }
void display(std::ostream& out) override { out << "(slice-model-converter)\n"; }
};