我正在尝试使用 Z3 来确定表达式是否可以满足。我可以通过定义上下文然后定义 int_const 变量和公式轻松地做到这一点。要以编程方式评估表达式,您必须用代码编写所有内容。假设逻辑表达式以字符串的形式给出,那么呢?例如,
“x == y && !x == z”
将在 C API 中表示为:
context c;
expr x = c.int_const("x")
//Same for other variables
...
formula = (x == y) && (!x == z);
solver s(c);
s.add(formula);
//s.check() ...etc etc
好的,我可以为这个特定的公式编写代码,但是如果给定一个字符串,我怎么能以编程方式做到这一点。我对你能想到的任何事情都持开放态度。
谢谢 :)