在SMT-LIB中,返回数组的数组和无参数函数之间是否存在差异?

时间:2014-10-09 17:31:10

标签: arrays z3 smt

以下两个声明/命令在SMT-LIB语言中是否在语义上相同?

(declare-fun a1 () (Array Index Element))
(declare-const a2 (Array Index Element))

对于Z3,适用于a1的断言也适用于a2(没有语法变化)。可能的一种方法是将a1(不带参数)的使用视为a1的应用。这是Z3(或使用SMT-LIB语言)的情况吗?

1 个答案:

答案 0 :(得分:1)

目前 draft proposal for SMT-LIB v2.5,declare-const定义为:

(declare-const f σ) abbreviates the command (declare-fun f () σ)

其中f是函数名称,σ是排序符号。所以第二个是第一个宏。