z3 c ++ api用整数运算的模运算

时间:2017-07-02 13:34:37

标签: c++ z3 modulo

有没有办法用z3 c ++ api和整数进行模运算?

我正在尝试做这样的事情:

userId

似乎只有bitvectors的模运算?

我错过了什么吗?

最佳

托比亚斯

1 个答案:

答案 0 :(得分:0)

有两种操作,具体取决于您对负数的预期语义。他们暴露为" mod"和" rem"。语法记录在http://smtlib.cs.uiowa.edu/theories-Ints.shtml上用于算术运算。

    /* \brief mod operator */
    friend expr mod(expr const& a, expr const& b);
    friend expr mod(expr const& a, int b);
    friend expr mod(int a, expr const& b);

    /* \brief rem operator */
    friend expr rem(expr const& a, expr const& b);
    friend expr rem(expr const& a, int b);
    friend expr rem(int a, expr const& b);