【问题标题】:z3 c++ api modulo operation with integerz3 c++ api 带整数的模运算
【发布时间】:2017-12-05 21:12:49
【问题描述】:

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

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

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

似乎只有位向量的模运算?

我错过了什么吗?

最好的 托比亚斯

【问题讨论】:

    标签: c++ z3 modulo


    【解决方案1】:

    有两种操作,具体取决于您期望负数的语义。它们被暴露为“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);
    

    【讨论】:

    • 在哪里可以找到这些方法?只有 z3::urem 和 z3::srem 都对位向量进行操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多