3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-03 09:50:23 +00:00

enable QF_UF mode use same parameters whether with or without static featues, #1141

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-08-15 00:26:05 -07:00
parent 4b00bc636b
commit 1690febffd
2 changed files with 24 additions and 18 deletions

View file

@ -16,31 +16,31 @@ Author:
Revision History:
--*/
#include "smt/asserted_formulas.h"
#include "util/warning.h"
#include "ast/ast_ll_pp.h"
#include "ast/ast_pp.h"
#include "ast/for_each_expr.h"
#include "ast/well_sorted.h"
#include "ast/simplifier/arith_simplifier_plugin.h"
#include "ast/simplifier/array_simplifier_plugin.h"
#include "ast/simplifier/datatype_simplifier_plugin.h"
#include "ast/simplifier/fpa_simplifier_plugin.h"
#include "ast/simplifier/seq_simplifier_plugin.h"
#include "ast/simplifier/bv_simplifier_plugin.h"
#include "ast/for_each_expr.h"
#include "ast/well_sorted.h"
#include "ast/normal_forms/pull_quant.h"
#include "ast/simplifier/pull_ite_tree.h"
#include "ast/simplifier/push_app_ite.h"
#include "smt/elim_term_ite.h"
#include "ast/pattern/pattern_inference.h"
#include "ast/normal_forms/nnf.h"
#include "ast/simplifier/bv_elim.h"
#include "ast/simplifier/inj_axiom.h"
#include "ast/rewriter/der.h"
#include "ast/simplifier/elim_bounds.h"
#include "util/warning.h"
#include "ast/simplifier/bit2int.h"
#include "ast/normal_forms/pull_quant.h"
#include "ast/normal_forms/nnf.h"
#include "ast/pattern/pattern_inference.h"
#include "ast/rewriter/der.h"
#include "ast/rewriter/distribute_forall.h"
#include "ast/macros/quasi_macros.h"
#include "smt/asserted_formulas.h"
#include "smt/elim_term_ite.h"
asserted_formulas::asserted_formulas(ast_manager & m, smt_params & p):
m(m),
@ -138,6 +138,8 @@ void asserted_formulas::set_eliminate_and(bool flag) {
m_bsimp->set_eliminate_and(flag);
}
#include "th_rewriter.h"
void asserted_formulas::assert_expr(expr * e, proof * _in_pr) {
if (inconsistent())
return;
@ -161,6 +163,8 @@ void asserted_formulas::assert_expr(expr * e, proof * _in_pr) {
}
set_eliminate_and(false); // do not eliminate and before nnf.
m_simplifier(r1, r2, pr2);
th_rewriter rw(m);
rw(r2);
TRACE("assert_expr_bug", tout << "after...\n" << mk_pp(r1, m) << "\n";);
if (m.proofs_enabled()) {
if (e == r2)