3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-28 05:58:55 +00:00
z3/src/muz/spacer/spacer_sat_answer.h
2019-07-25 15:22:37 -04:00

55 lines
971 B
C++

/*++
Copyright (c) 2018 Arie Gurfinkel
Module Name:
spacer_sat_answer.h
Abstract:
Compute refutation proof for CHC
Author:
Arie Gurfinkel
Revision History:
--*/
#ifndef _SPACER_SAT_ANSWER_H_
#define _SPACER_SAT_ANSWER_H_
#include "muz/spacer/spacer_context.h"
#include "ast/ast.h"
#include "util/obj_hashtable.h"
#include "model/model.h"
#include "solver/solver.h"
namespace spacer {
class ground_sat_answer_op {
const context &m_ctx;
ast_manager &m;
const manager &m_pm;
expr_ref_vector m_pinned;
obj_map<expr, proof*> m_cache;
ref<solver> m_solver;
struct frame;
proof *mk_proof_step(frame &fr);
void mk_children(frame &fr, vector<frame> &todo);
void mk_child_subst_from_model(func_decl *pred, unsigned i,
model_ref &mdl, expr_ref_vector &subst);
public:
ground_sat_answer_op(const context &ctx);
proof_ref operator() (pred_transformer &query);
};
}
#endif