如何使用C ++在z3中为现有的已声明函数添加新约束?

时间:2019-07-08 11:59:56

标签: z3

我想知道有什么方法可以在不获取模型的情况下为求解器中的现有已声明变量添加一些新约束。

例如,如果我有2个声明函数:

(declare-fun k!648 () (_ BitVec 8))
(declare-fun k!647 () (_ BitVec 8))

及其一些约束。

一般如何获得其声明的名称?

这种情况是我想为现有的“变量”添加更多约束?在约束和求解器中将它们放在一起。但是我对如何获取现有的“变量”感到困惑?然后形成对求解器也是正确的新约束。

1 个答案:

答案 0 :(得分:0)

不清楚您要问什么。请注意,示例中的k!648k!647实际上不是函数,它们只是8位向量。 (坦白说,declare-fun这个名称令人困惑。)

首先要了解的是这些名称从何而来?您要输入到z3的脚本中吗?然后,您在这里询问错误的一方:您应该询问生成此基准的程序/系统。 z3可以生成此类名称,但只能在模型中生成。

尝试提供MCVE:https://stackoverflow.com/help/minimal-reproducible-example