Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Invalid bvurem simplification for divisor=0 #4048

Closed
rainoftime opened this issue Apr 22, 2020 · 2 comments
Closed

Invalid bvurem simplification for divisor=0 #4048

rainoftime opened this issue Apr 22, 2020 · 2 comments

Comments

@rainoftime
Copy link
Contributor

Hi, for the following formula,

(set-logic QF_BV)
(set-option :model_validate true)
(set-option :rewriter.bv_urem_simpl true)
(declare-const bv_30-0 (_ BitVec 30))
(assert (xor true true true true (= (_ bv0 30) bv_30-0 (_ bv0 30) (bvsmod bv_30-0 bv_30-0)) true))
(check-sat-using (then simplify dom-simplify lira))

z3 commit dd064a5 gives an invalid model

sat
(error "line 6 column 50: an invalid model was generated")
@rainoftime
Copy link
Contributor Author

@nunoplopes Can you have a check?

@nunoplopes nunoplopes self-assigned this Apr 22, 2020
@nunoplopes
Copy link
Collaborator

nunoplopes commented Apr 22, 2020

Actually this has nothing to do with dom-simplify. Simplified test case:

(set-option :model_validate true)
(set-option :rewriter.bv_urem_simpl true)
(declare-const x (_ BitVec 30))

(assert (not (and
  (= x (_ bv0 30))
  (= x (bvsmod x x))))
)
(check-sat-using lira)

@nunoplopes nunoplopes removed their assignment Apr 22, 2020
@nunoplopes nunoplopes changed the title Invalid model for QF_BV formula (rewriter.bv_urem_simpl, dom-simplify) Invalid model for QF_BV formula with LIRA tactic & bv_urem_simpl Apr 22, 2020
@nunoplopes nunoplopes changed the title Invalid model for QF_BV formula with LIRA tactic & bv_urem_simpl Invalid bvurem simplification for divisor=0 Apr 22, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants