mirror of
https://github.com/Z3Prover/z3
synced 2025-04-13 12:28:44 +00:00
fix #3731 - abuse of parameter combinations, trying to use qsat on arrays, but disabling array equality expansion during model evaluation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
8faf35e2e0
commit
fadc3761bd
|
@ -65,7 +65,7 @@ namespace qe {
|
|||
DEBUG_CODE(expr_ref val(m);
|
||||
eval(lit, val);
|
||||
CTRACE("qe", !m.is_true(val), tout << mk_pp(lit, m) << " := " << val << "\n";);
|
||||
SASSERT(m.limit().get_cancel_flag() || m.is_true(val)););
|
||||
SASSERT(m.limit().get_cancel_flag() || !m.is_false(val)););
|
||||
|
||||
if (!m.inc())
|
||||
return false;
|
||||
|
|
|
@ -29,6 +29,7 @@ Notes:
|
|||
#include "ast/rewriter/expr_replacer.h"
|
||||
#include "model/model_v2_pp.h"
|
||||
#include "model/model_evaluator.h"
|
||||
#include "model/model_evaluator_params.hpp"
|
||||
#include "smt/smt_kernel.h"
|
||||
#include "smt/params/smt_params.h"
|
||||
#include "smt/smt_solver.h"
|
||||
|
@ -1254,6 +1255,9 @@ namespace qe {
|
|||
void operator()(/* in */ goal_ref const & in,
|
||||
/* out */ goal_ref_buffer & result) override {
|
||||
tactic_report report("qsat-tactic", *in);
|
||||
model_evaluator_params mp(m_params);
|
||||
if (!mp.array_equalities())
|
||||
throw tactic_exception("array equalities cannot be disabled for qsat");
|
||||
ptr_vector<expr> fmls;
|
||||
expr_ref_vector defs(m);
|
||||
expr_ref fml(m);
|
||||
|
|
Loading…
Reference in a new issue