Z3 参数化排序

Z3 参数化排序,z3,smt,Z3,Smt,如何访问参数化排序的值 例如,如果我有以下声明: (declare-sort Pair 2) (declare-const x (Pair Int Int)) 如何访问x表示的成对元素中的第一个元素?您可以使用两个选择器创建参数记录first和second,用于访问其字段 这是: Z3 SMT指南中也有关于的全面介绍。您可以使用两个选择器创建参数记录,第一个选择器和第二个选择器用于访问其字段 这是: Z3 SMT指南中也有关于的全面介绍。您应该发布一些您尝试过的代码。您应该发布一些您尝试过的代

如何访问参数化排序的值

例如,如果我有以下声明:

(declare-sort Pair 2)
(declare-const x (Pair Int Int))

如何访问
x
表示的成对元素中的第一个元素?

您可以使用两个选择器创建参数记录
first
second
,用于访问其字段

这是:


Z3 SMT指南中也有关于的全面介绍。

您可以使用两个选择器创建参数记录,第一个选择器
和第二个选择器
用于访问其字段

这是:


Z3 SMT指南中也有关于的全面介绍。

您应该发布一些您尝试过的代码。您应该发布一些您尝试过的代码。谢谢!场地有什么限制吗?我想将其中一个字段设置为数组。我无法在Z3指南中找到关于这方面的详细信息,尽管它很有帮助。我认为没有任何限制。你应该试一试,看看能得到什么。谢谢!场地有什么限制吗?我想将其中一个字段设置为数组。我无法在Z3指南中找到关于这方面的详细信息,尽管它很有帮助。我认为没有任何限制。你应该试一试,看看能得到什么。
(declare-datatypes (T1 T2) ((Pair (mk-pair (first T1) (second T2)))))
(declare-const p1 (Pair Bool Int))
(declare-const p2 (Pair Int Int))
(assert (first p1))
(assert (> (first p2) 2))
(assert (= (second p1) (second p2)))
(check-sat)
(get-model)