Z3 fails to find simple sat solution after quantified bitvector assertion (stuck in loop) #6441
-
I noticed that if I create my own array type that stores bitvectors and assert the first array update axiom, simple assertions afterwards fail to find a solution (my example below neither returns sat nor unsat but just keeps running):
However, if I instead specify that my array stores a custom sort z3 finds a solution very quickly:
Is this expected behavior, or a bug? An answerer on stack overflow mentioned that is surprising behavior to them. Is this likely related to a former note from Nikolaj that the quantifier elimination tactic is currently fairly simplistic when it comes to bit-vectors? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
It has to produce an interpretation for index that is consistent with the update axiom. The search space for interpretations is by finite function tables. The finite function table for when you have bit-vector values of n-bits is at least 2^n. |
Beta Was this translation helpful? Give feedback.
It has to produce an interpretation for index that is consistent with the update axiom. The search space for interpretations is by finite function tables. The finite function table for when you have bit-vector values of n-bits is at least 2^n.