Question

Will Z3 be supporting AUFBV?

For the following script:

(set-logic AUFBV)
(declare-fun x () (_ BitVec 16))
(declare-const t (Array (_ BitVec 16) (_ BitVec 16)))
(assert (= (select t #x0000) #x0000))

The online Z3 demo seems to be happy with the set-logic call, but then it complains about the sorts BitVec and Array. (Incidentally, the online demo seems to be happy with the set-logic call regardless of the logic name, even with bogus names such as (set-logic blarg).)

The SMT-Lib web-site does not mention neither UFBV nor AUFBV, but given their quantifier-free counterparts (QF_UFBV and QF_AUFBV), I was hoping Z3 would support AUFBV as well.

Needless to say, arrays play a very important role in practice. I think the AUFBV logic should remain decidable given the finiteness argument. It'd be really nice to see Z3 support it.

Thanks!

No correct solution

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top