Open Akkanit opened 1 year ago
You can use bvslt, bvsle, and so on. You can find more detail on how to write BV specification from the lecture slide.
I found that the lecture slide on BV was outdated (i.e., now all BV predicate should explicitly indicate if its operands are signed or unsigned such as bvslt, bvult). I modified my previous comment and updated/uploaded the SMTlib lecture slides to the CS458 home page.
I wonder about comparison function such as (less than) or (more than or equal) Should I implement these function manully or just using bv2int as below? (>= (bv2int bigger_2) (bv2int a))
If bv2int can be used can I ask how this formula is satisfied? (< (bv2int (bvsub a b)) 1) when b -> #x00000000 a -> #x00000001
And also should I implement a and b value declaration as bitvectors?
And if I tried to implement by bvlt (bvlt (bvsub a b) (( int2bv 32) 1))) It got error: ERROR: line 11 column 99: could not find overload for 'bvlt' Argument: (bvsub a b) has type ( BitVec 32). Argument: (( int2bv 32) 1) has type ( BitVec 32). WARNING: could not parse file 'max_qf_bv4.smt'. ERROR: solving 'max_qf_bv4.smt'. What is the meaning of this error?