我在QFBV公式上使用Z3.我想知道Z3是否可以像SAT求解器这样的公式逐步增加布尔子句.基本上我需要一种方法来实现以下循环:
F = initial QFBV formula
while(F is unsat) {
F := F Union {some additional QFBV formula based on unsat core}
}
Run Code Online (Sandbox Code Playgroud)
Z3是否保留学到的信息?我可以逐步使用z3吗?
谢谢.
我想到的数据结构涉及一个记录,其中包含存储唯一字符串的成员.抽象地说,这是我记录的记录:
struct A {
name: string;
neighbors: Set of String;
};
Run Code Online (Sandbox Code Playgroud)
但我似乎无法在Ocaml的记录中创建一个Set容器.鉴于Set是一个仿函数而不是传统类型,我不确定如何做到这一点.