【发布时间】:2019-11-11 03:39:12
【问题描述】:
我正在创建一个将位向量公式转换为命题逻辑形式的函数。 一种称为“位爆炸”的策略将此类位向量表达式处理为 PL 形式。
我一直在尝试创建一个接受位向量表达式并对其应用位爆破策略的程序。但是由于我是这个主题的新手,所以我无法弄清楚如何在对表达式进行位爆破后打印输出。
#include<z3++.h>
#include<iostream>
using namespace std;
using namespace z3;
int main()
{ context c;
tactic t = tactic(c, "bit-blast");
expr x = c.bv_const("x", 16);
expr y = c.bv_const("y", 16);
expr z = c.bv_const("z", 16);
goal g(c);
g.add(z == x + y);
std::cout<<g;
}
这是我尝试过的代码,但它不接受表达式“z = x + y” 但是我正在做的过程是正确的吗? 如果不是,我应该如何在对其应用 bit-blast 后打印出表达式?
谢谢。
【问题讨论】: