[SMT-LIB] overflow checking for bit-vectors

Florian Schanda florian.schanda at altran.com
Tue Sep 8 06:25:14 EDT 2015


On Friday 04 Sep 2015 09:20:51 Florian Schanda wrote:
> I propose to extend QF_BV as follows:
> 
>   Functions:
> 
>     (bvsaddo (_ BitVec m) (_ BitVec m) Bool)
>     (bvuaddo (_ BitVec m) (_ BitVec m) Bool)
>     (bvssubo (_ BitVec m) (_ BitVec m) Bool)
>     (bvusubo (_ BitVec m) (_ BitVec m) Bool)
>     (bvsmulo (_ BitVec m) (_ BitVec m) Bool)
>     (bvumulo (_ BitVec m) (_ BitVec m) Bool)
>     (bvsdivo (_ BitVec m) (_ BitVec m) Bool)
>       - signed and unsigned addition, subtraction, multiplication, and
>         unsigned division overflow checking
> 
>     (bvsnego (_ BitVec m) Bool)
>       - signed negation overflow checking

Armin tells me that Boolector already implements these [1] with the exception 
of bvsnego, with coincidentally the same names. This makes me happy that the 
names are understandable (if two people come up with the same ones 
independently then its a good sign in my book).

I also note that my text comment above should say "signed division", not 
"unsigned".

	Florian

[1] Robert Brummayer, Armin Biere, Florian Lonsing. BTOR: Bit-Precise 
Modelling of Word-Level Problems for Model Checking. In Proc. 1st Intl. 
Workshop on Bit-Precise Reasoning (BPR'08), Princeton, New Jersey, USA, July 
2008.



More information about the SMT-LIB mailing list