You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am seeing unusual behavior with the solver quickly returning unknown instead of unsat when a formula has an existential quantifier and a rec-fun.
(define-fun _@@desop_List_Int__hasPredCheck_using_pred--list.bsq_k1..238@7435 ((l List_Int_) (count BNat)) $Result_Bool
($Result_Bool@success (exists ((_@n BNat)) (= _@n BNat@zero))) ;; <---- results in a quick unknown
;; ($Result_Bool@success true) <---- results in unsat
)
There is a rec-fun in the repro file. It is actually not doing any recursion and if the formula is constructed without the rec-fun that calls into this quantifier Z3 quickly solves with unsat as well. Full file below:
quantifiers inside recursive function definitions were not supported because the existing core required pre-processing formulas with quantifiers (it cannot handle quantifiers as arguments to terms on its own and requires a pre-processor to create proxies for the quantifiers). I have updated the recursive function solver to handle quantified definitions by introducing proxies on the fly. Your example now solves (to unsat). If you can avoid quantifiers inside recursive function definitions it also helps.
I am seeing unusual behavior with the solver quickly returning
unknown
instead ofunsat
when a formula has an existential quantifier and a rec-fun.There is a rec-fun in the repro file. It is actually not doing any recursion and if the formula is constructed without the rec-fun that calls into this quantifier Z3 quickly solves with
unsat
as well. Full file below:The text was updated successfully, but these errors were encountered: