3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-13 14:40:55 +00:00
- add check for lambdas similar to as-array in context of quantifiers. MBQI is not a decision procedure for this combination and can then incorrectly conclude satisfiabiltiy.

Scenario

The formula contains assertions
 - bv = (map or (lambda ..) t)
 - forall y (not (select bv (pair s y)))

Since bv is extensionally equal to a term that depends on a lambda, MBQI cannot just take the current finite approximation of bv when checking the quantifier for satisfiability.
This commit is contained in:
Nikolaj Bjorner 2023-02-19 11:09:52 -08:00
parent 6454e7fa3f
commit 0758c93086
2 changed files with 9 additions and 0 deletions

View file

@ -86,6 +86,7 @@ namespace smt {
bool has_unitary_domain(app* array_term);
std::pair<app*,func_decl*> mk_epsilon(sort* s);
enode_vector m_as_array;
enode_vector m_lambdas;
bool has_non_beta_as_array();
bool instantiate_select_const_axiom(enode* select, enode* cnst);