3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-08 18:31:49 +00:00

pruning simplifier dependencies

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-08-23 16:56:55 -07:00
parent 8ff8470809
commit f91496f5ff
2 changed files with 8 additions and 7 deletions

View file

@ -21,9 +21,9 @@ Revision History:
#include "ast/for_each_expr.h"
#include "ast/ast_pp.h"
pull_ite_tree::pull_ite_tree(ast_manager & m, simplifier & s):
pull_ite_tree::pull_ite_tree(ast_manager & m):
m_manager(m),
m_simplifier(s),
m_rewriter(m),
m_cache(m) {
}
@ -64,7 +64,7 @@ void pull_ite_tree::reduce(expr * n) {
get_cached(e_old, e, e_pr);
expr_ref r(m_manager);
expr * args[3] = {c, t, e};
m_simplifier.mk_app(to_app(n)->get_decl(), 3, args, r);
r = m_rewriter.mk_app(to_app(n)->get_decl(), 3, args);
if (!m_manager.proofs_enabled()) {
// expr * r = m_manager.mk_ite(c, t, e);
cache_result(n, r, 0);
@ -117,7 +117,7 @@ void pull_ite_tree::reduce(expr * n) {
else {
expr_ref r(m_manager);
m_args[m_arg_idx] = n;
m_simplifier.mk_app(m_p, m_args.size(), m_args.c_ptr(), r);
r = m_rewriter.mk_app(m_p, m_args.size(), m_args.c_ptr());
if (!m_manager.proofs_enabled()) {
// expr * r = m_manager.mk_app(m_p, m_args.size(), m_args.c_ptr());
cache_result(n, r, 0);
@ -181,7 +181,7 @@ void pull_ite_tree::operator()(app * n, app_ref & r, proof_ref & pr) {
pull_ite_tree_star::pull_ite_tree_star(ast_manager & m, simplifier & s):
simplifier(m),
m_proc(m, s) {
m_proc(m) {
borrow_plugins(s);
}

View file

@ -20,6 +20,7 @@ Revision History:
#define PULL_ITE_TREE_H_
#include "ast/ast.h"
#include "ast/rewriter/th_rewriter.h"
#include "ast/simplifier/simplifier.h"
#include "ast/recurse_expr.h"
#include "util/obj_hashtable.h"
@ -34,7 +35,7 @@ Revision History:
*/
class pull_ite_tree {
ast_manager & m_manager;
simplifier & m_simplifier;
th_rewriter m_rewriter;
func_decl * m_p;
ptr_vector<expr> m_args;
unsigned m_arg_idx; //!< position of the ite argument
@ -56,7 +57,7 @@ class pull_ite_tree {
return m_manager.mk_app(m_p, m_args.size(), m_args.c_ptr());
}
public:
pull_ite_tree(ast_manager & m, simplifier & s);
pull_ite_tree(ast_manager & m);
/**
\brief Apply the transformation above if n contains an ite-expression.
Store the result in r. If n does not contain an ite-expression, then