如何在 SMT-lib 中使用元组?

拉罗

我很确定应该可以使用 SMT-lib 语法来描述元组,尤其是对于 Z3 求解器。但是,我真的找不到这样做的方法。我唯一找到的是这个文档页面,但我不知道如何在z3 -in.

到目前为止我的挣扎:

(declare-const t (Prod Int Bool))
(error "line 1 column 19: unknown sort 'Prod'")
(declare-const t (Tuple Int Bool))
(error "line 2 column 18: unknown sort 'Tuple'")
(declare-const t (Pair Int Bool))
(error "line 3 column 18: unknown sort 'Pair'")
别名

除了克里斯托夫所说的之外,SMTLib 文档中还有一个示例:http ://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.6-r2021-05-12.pdf

在第 4.2.3 节中,您可以找到:

(declare-datatype Pair (par (X Y) ((pair (first X) (second Y)))))

如果你只是想要IntxBool,那么你可以简化:

(declare-datatype PairIntBool (par () ((pair (first Int) (second Bool)))))

通常,您应该通读第 4.2.3 节以了解如何声明和使用新数据类型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章