我将GitHub的z3工具克隆到了我的PC中并安装了它。 我需要执行一个cpp来解决和SMT公式。我正在使用LINUX进行编译和执行。
我试图使用传统的cpp编译命令进行编译。 g ++ filename.cpp 这无法工作,因为它无法解释某些陈述。
这是我需要编译并运行的cpp文件。
#include<iostream.h>
int main()
{
context c;
expr x = c.bool_const("x");
expr y = c.bool_const("y");
expr conjecture = !(x && y) == (!x || !y);
// STEP-1 create a solver
solver s(c);
// STEP-2 assert the negation of the conjecture
s.add(!conjecture);
std::cout << s << "\n";
std::cout << s.to_smt2() << "\n";
// STEP-3 checks if the result is unsat.
switch (s.check()) {
case unsat: std::cout << "de-Morgan is valid\n"; break;
case sat: std::cout << "de-Morgan is not valid\n"; break;
case unknown: std::cout << "unknown\n"; break;
}
}