3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-22 05:43:39 +00:00

fast path for antecedent extraction in smt_context

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2016-07-28 16:49:19 -07:00
parent ceb3f0c869
commit 8221a09659
11 changed files with 237 additions and 0 deletions

View file

@ -1322,6 +1322,7 @@ namespace smt {
virtual void setup_context(bool use_static_features);
void setup_components(void);
void pop_to_base_lvl();
void pop_to_search_lvl();
#ifdef Z3DEBUG
bool already_internalized_theory(theory * th) const;
bool already_internalized_theory_core(theory * th, expr_ref_vector const & s) const;
@ -1343,6 +1344,11 @@ namespace smt {
literal lit, context& src_ctx, context& dst_ctx,
vector<bool_var> b2v, ast_translation& tr);
u_map<uint_set> m_antecedents;
void extract_fixed_consequences(unsigned idx, obj_map<expr, expr*>& vars, obj_hashtable<expr> const& assumptions, expr_ref_vector& conseq);
expr_ref antecedent2fml(uint_set const& ante);
public:
context(ast_manager & m, smt_params & fp, params_ref const & p = params_ref());
@ -1382,6 +1388,8 @@ namespace smt {
void pop(unsigned num_scopes);
lbool check(unsigned num_assumptions = 0, expr * const * assumptions = 0, bool reset_cancel = true);
lbool get_consequences(expr_ref_vector const& assumptions, expr_ref_vector const& vars, expr_ref_vector& conseq);
lbool setup_and_check(bool reset_cancel = true);