z3-z3-4.13.0.src.muz.spacer.spacer_sat_answer.h Maven / Gradle / Ivy
The newest version!
/*++
Copyright (c) 2018 Arie Gurfinkel
Module Name:
spacer_sat_answer.h
Abstract:
Compute refutation proof for CHC
Author:
Arie Gurfinkel
Revision History:
--*/
#pragma once
#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 m_cache;
ref m_solver;
struct frame;
proof *mk_proof_step(frame &fr);
void mk_children(frame &fr, vector &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);
};
}