mirror of
https://github.com/Z3Prover/z3
synced 2025-04-27 10:55:50 +00:00
fix regression for simplifying tails with quantifiers, add some more handling for quantified tails
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
692593baaa
commit
2d1a6bf270
10 changed files with 888 additions and 627 deletions
43
src/muz_qe/expr_safe_replace.h
Normal file
43
src/muz_qe/expr_safe_replace.h
Normal file
|
@ -0,0 +1,43 @@
|
|||
/*++
|
||||
Copyright (c) 2012 Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
expr_safe_replace.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Version of expr_replace/expr_substitution that is safe for quantifiers.
|
||||
|
||||
|
||||
Author:
|
||||
|
||||
Nikolaj Bjorner (nbjorner) 2012-11-30
|
||||
|
||||
Revision History:
|
||||
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __EXPR_SAFE_REPLACE_H__
|
||||
#define __EXPR_SAFE_REPLACE_H__
|
||||
|
||||
#include "ast.h"
|
||||
|
||||
class expr_safe_replace {
|
||||
ast_manager& m;
|
||||
expr_ref_vector m_src;
|
||||
expr_ref_vector m_dst;
|
||||
obj_map<expr, expr*> m_subst;
|
||||
|
||||
public:
|
||||
expr_safe_replace(ast_manager& m): m(m), m_src(m), m_dst(m) {}
|
||||
|
||||
void insert(expr* src, expr* dst);
|
||||
|
||||
void operator()(expr_ref& e) { (*this)(e.get(), e); }
|
||||
|
||||
void operator()(expr* src, expr_ref& e);
|
||||
};
|
||||
|
||||
#endif /* __EXPR_SAFE_REPLACE_H__ */
|
Loading…
Add table
Add a link
Reference in a new issue