我很确定应该可以使用 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] 删除。
我来说两句