mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 09:05:31 +00:00
Optimizing qe_lite
This commit is contained in:
parent
bfeb15b876
commit
aa77a918cd
4 changed files with 42 additions and 20 deletions
|
@ -346,6 +346,8 @@ public:
|
|||
|
||||
void set_bindings(unsigned num_bindings, expr * const * bindings);
|
||||
void set_inv_bindings(unsigned num_bindings, expr * const * bindings);
|
||||
void update_binding_at(unsigned i, expr* binding);
|
||||
void update_inv_binding_at(unsigned i, expr* binding);
|
||||
void operator()(expr * t, expr_ref & result, proof_ref & result_pr);
|
||||
void operator()(expr * t, expr_ref & result) { operator()(t, result, m_pr); }
|
||||
void operator()(expr * n, unsigned num_bindings, expr * const * bindings, expr_ref & result) {
|
||||
|
|
|
@ -639,6 +639,17 @@ void rewriter_tpl<Config>::set_inv_bindings(unsigned num_bindings, expr * const
|
|||
TRACE("rewriter", display_bindings(tout););
|
||||
}
|
||||
|
||||
template<typename Config>
|
||||
void rewriter_tpl<Config>::update_inv_binding_at(unsigned i, expr* binding) {
|
||||
m_bindings[i] = binding;
|
||||
}
|
||||
|
||||
template<typename Config>
|
||||
void rewriter_tpl<Config>::update_binding_at(unsigned i, expr* binding) {
|
||||
m_bindings[m_bindings.size() - i - 1] = binding;
|
||||
}
|
||||
|
||||
|
||||
template<typename Config>
|
||||
template<bool ProofGen>
|
||||
void rewriter_tpl<Config>::main_loop(expr * t, expr_ref & result, proof_ref & result_pr) {
|
||||
|
|
|
@ -24,6 +24,10 @@ Notes:
|
|||
#include "ast/for_each_expr.h"
|
||||
|
||||
void var_subst::operator()(expr * n, unsigned num_args, expr * const * args, expr_ref & result) {
|
||||
if (is_ground(n)) {
|
||||
result = n;
|
||||
return;
|
||||
}
|
||||
SASSERT(is_well_sorted(result.m(), n));
|
||||
m_reducer.reset();
|
||||
if (m_std_order)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue