Z3是否支持编码对象数组?

时间:2012-12-31 05:21:34

标签: arrays object z3

我想知道Z3是否支持编码任意复杂对象的数组,例如列表或其他东西。 感谢。

1 个答案:

答案 0 :(得分:2)

Z3支持递归数据类型。我们可以使用它们来定义列表,树等。请参阅Z3 tutorial中的数据类型部分。我们还可以使用任意索引和值类型定义数组。所以,我们可以有数组数组,列表数组等。 这是一个例子。也可在线获取here

(declare-const l (List Int))
(declare-const a (Array Int (List Int)))

(assert (= (select a 0) l))
(assert (not (= l nil)))
(check-sat)