mirror of
https://github.com/Z3Prover/z3
synced 2025-04-28 11:25:51 +00:00
redo purification
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
da0e140e1c
commit
2e684d58d2
5 changed files with 68 additions and 88 deletions
|
@ -70,7 +70,7 @@ namespace q {
|
|||
struct eq { bool operator()(indexed_decl const& a, indexed_decl const& b) const { return a.idx == b.idx && a.f == b.f; } };
|
||||
};
|
||||
|
||||
class model_fixer : public quantifier2macro_infos, public mbp::euf_inverter {
|
||||
class model_fixer : public quantifier2macro_infos {
|
||||
euf::solver& ctx;
|
||||
solver& m_qs;
|
||||
ast_manager& m;
|
||||
|
@ -113,8 +113,17 @@ namespace q {
|
|||
*/
|
||||
expr_ref restrict_arg(app* t, unsigned i);
|
||||
|
||||
expr* invert_app(app* t, expr* value) override;
|
||||
void invert_arg(app* t, unsigned i, expr* value, expr_ref_vector& lits) override;
|
||||
/*
|
||||
* Create inequality constraints for the i'th argument of t based on the current model.
|
||||
*/
|
||||
void invert_arg(app* t, unsigned i, expr* value, expr_ref_vector& lits);
|
||||
|
||||
/*
|
||||
* Replace term that contains uninterpreted function over free variables with a ground term.
|
||||
*/
|
||||
expr* invert_app(app* t, expr* value);
|
||||
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue