Z3:在FP和BitVector之间转换?

Joh*_*nal 2 z3

有没有办法在SMTLIB2中转换BitVector和FP,比如int2bv和bv2int函数?

为了澄清,我正在寻找位的原始表示,而不是例如BitVec形式的舍入整数.

Chr*_*ger 7

确切地说,SMTLIB中还没有浮点运算的标准.有一个草案,将在稍后的时间点完成; 该草案目前不包含此类功能.但是,当QF_FPABV启用逻辑时,Z3确实支持这种转换功能.

调用这些函数

asIEEEBV (takes a float and returns a BV in IEEE764 format of appropriate size)
Run Code Online (Sandbox Code Playgroud)

fromIEEEBV (takes a BV in IEEE764 format and returns a float of appropriate size)
Run Code Online (Sandbox Code Playgroud)

  • 关于这一点的更新:浮点的SMT理论已经完成:http://smtlib.cs.uiowa.edu/theories/FloatingPoint.smt2 Z3完全支持标准中的那些功能,并且所有先前的运算符均已删除。 (2认同)
  • 链接已更改,这是更新的位置http://smtlib.cs.uiowa.edu/theories-FloatingPoint.shtml (2认同)