如何使用z3工具执行c ++文件?

时间:2019-05-16 08:55:25

标签: c++ z3 smt sat

我将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;
    }
} 

0 个答案:

没有答案