此文件是否符合SMT2.0标准?

时间:2013-01-06 08:08:57

标签: z3 smt

Click to see the file

此文件是否符合SMT2.0标准?至少,z3可以实现它。顺便问一下,'declare-const'和'declare-fun'之间有什么区别?例如,为了声明Bool变量,我可以写declare-const a Booldeclare-fun a() Bool

1 个答案:

答案 0 :(得分:1)

我无法找到您在帖子中提到的文件,但是要回答关于declare-const的问题:

(declare-const a Bool) 

相同
(declare-fun a () Bool)

declare-const不是标准SMT-LIB2的一部分。 为方便起见,它是添加到Z3的命令 手动输入SMT-LIB2基准。您可以 总是使用declare-fun而不是兼容 解决者。

虽然Z3可以处理符合SMT-LIB2的文件。 另一方面,Z3的输入格式还有其他几个扩展 这不属于SMT-LIB2标准。 提一下:

  • 声明-数据类型。代数数据类型的声明是Z3特定的扩展。

  • 战术和解决者。策略的创建,构成和应用是Z3特有的。

  • declare-rel,declare-var,rule,query。这些命令由定点解算器使用,以便于将基准作为Horn公式输入。