z3 是否有可能从抽象函数的公式中求解函数?

Is it possible for z3 to solve for functions from a formula of abstracted functions?

我正在尝试使用 Z3Py 从一个布尔公式开始,然后对其进行抽象,以便布尔函数未知,然后将其转换为 smt 约束,以便这些约束的每个模型对应于一个不同的公式,类似于我原来的。我想列举所有模型。我想知道这是否可以使用 z3?

很难解读您的问题。当您 post 尝试过的代码示例以及出错的地方时,Stack-overflow 效果最好,请参见此处:https://whosebug.com/help/how-to-ask

话虽如此,您似乎正在寻找未解释的函数。您 可以 定义函数而无需任何定义(只是它们的类型签名),并且 SMT 求解器可以非常有效地对它们进行推理。如果您需要使用量词来限制这些函数的行为,事情就会变得棘手,但是如果它们在布尔域上(并且假设您没有大量输入),可能会有有效的方法来对这些进行建模而不会受到任何打击-问题。

有关 z3py 中未解释函数的描述,请参见此处:Uninterpreted Sorts(在该页面中搜索名为“未解释排序”的部分)。