2017-07-02 25 views
-1

有沒有辦法用z3 C++ api做整數模運算?z3 C++ api模運算整數

我試圖做這樣的事情:

var = context->int_const("foo"); 
var = var + 1; 
expr = var % 5; 

似乎有隻爲bitvectors模操作?

我錯過了什麼嗎?

最佳 托比亞斯

回答

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); 
+0

我在哪裏可以找到這些方法?只有z3 :: urem和z3 :: srem在位向量上運行。 – toebs