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

Assertion violation at ../src/sat/sat_simplifier.cpp line 1815 #6143

Closed
lweitzendorf opened this issue Jul 7, 2022 · 0 comments
Closed

Assertion violation at ../src/sat/sat_simplifier.cpp line 1815 #6143

lweitzendorf opened this issue Jul 7, 2022 · 0 comments

Comments

@lweitzendorf
Copy link

lweitzendorf commented Jul 7, 2022

Hi! The formula

(declare-const a (_ BitVec 2))
(declare-const b (_ BitVec 8))
(declare-const c (_ BitVec 32))
(declare-const d (_ BitVec 32))
(assert (= (_ bv1 1) ((_ extract 0 0) a)))
(assert (bvslt (_ bv4294967295 32) (bvsub c (_ bv721 32))))
(assert (bvule (bvadd c (_ bv143554326 32)) (_ bv143555047 32)))
(assert (bvult (_ bv143555038 32) (bvadd c (_ bv143554326 32))))
(assert
    (bvule 
        (bvsub 
            (bvadd d (bvshl (bvadd (_ bv1 32) (bvsub (_ bv1 32) (bvadd ((_ zero_extend 24) b) d))) (_ bv1 32)))
            (_ bv3 32)
        )
        (_ bv20903423 32)
    )
) 
(assert (bvult (_ bv1 32) (bvneg (bvadd d d (_ bv3 32) ((_ zero_extend 24) b)))))
(check-sat)

leads to the following assertion violation

$ z3 qf_bv-1.smt2
ASSERTION VIOLATION
File: ../src/sat/sat_simplifier.cpp
Line: 1815
c2.contains(~l)
(C)ontinue, (A)bort, (S)top, (T)hrow exception, Invoke (G)DB

OS: Ubuntu 20.04.4 LTS
Revision: 9d9414c

The issue is very volatile as changing the order of asserts or removing zero_extends along with an appropriate resizing of the variables gets rid of the violation. The same is true for inequality simplifications.

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

1 participant