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 for QF_BV instance at ../src/sat/sat_integrity_checker.cpp:91 #3134

Closed
rainoftime opened this issue Mar 4, 2020 · 3 comments

Comments

@rainoftime
Copy link
Contributor

rainoftime commented Mar 4, 2020

Hi,
For this formula:

satintegritycheck91.txt

-----a smaller instance----------

(set-logic QF_BV)
(set-option :model_validate true)
(set-option :model true)
(set-option :sat.unit_walk true)
(declare-const v0 Bool)
(declare-const v4 Bool)
(declare-const v6 Bool)
(declare-const v15 Bool)
(declare-const bv_4-0 (_ BitVec 4))
(assert (xor (= (bvurem bv_4-0 bv_4-0) (bvurem bv_4-0 bv_4-0) (bvurem bv_4-0 bv_4-0) bv_4-0 (bvurem bv_4-0 bv_4-0)) v4 v15 v0 (bvult #x243 #x243) v6))
(check-sat-using (then simplify bit-blast sat))

Z3 (compiled with debug mode) throws out an assertion violation:

verifying solution
unsat
Failed to verify: s.value(c[i]) == l_false
ASSERTION VIOLATION
File: ../src/sat/sat_integrity_checker.cpp
Line: 91
UNREACHABLE CODE WAS REACHED.
(C)ontinue, (A)bort, (S)top, (T)hrow exception, Invoke (G)DB

OS: Ubuntu 16.04
Commit: fcbf660 (master branch)

@rainoftime
Copy link
Contributor Author

I guess this issue is caused by the unit walk algorithm for SAT solving.
Since the unit walk implementation may not be actively maintained, this issue might be closed.

@rainoftime
Copy link
Contributor Author

Here is a much smaller instance

(set-logic QF_BV)
(set-option :model_validate true)
(set-option :model true)
(set-option :sat.unit_walk true)
(declare-const v0 Bool)
(declare-const v4 Bool)
(declare-const v6 Bool)
(declare-const v15 Bool)
(declare-const bv_4-0 (_ BitVec 4))
(assert (xor (= (bvurem bv_4-0 bv_4-0) (bvurem bv_4-0 bv_4-0) (bvurem bv_4-0 bv_4-0) bv_4-0 (bvurem bv_4-0 bv_4-0)) v4 v15 v0 (bvult #x243 #x243) v6))
(check-sat-using (then simplify bit-blast sat))

@NikolajBjorner
Copy link
Contributor

thanks

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