我在使用 SMTlib2 格式的排序时遇到了一些问题。例如,我将 Interval 定义为:
(declare-sort Pair 2)
(define-sort Interval () (Pair Int Int))
现在如何从函数返回一个新的间隔?例如:
(define-fun getInterval ((a Int) (b Int)) Interval
(Interval a b))
这行不通。我的问题是:如何构造和实例化给定类型的对象,以及如何访问它们的字段?
现在我正在使用我创建的 2 个 UF 作为字段获取器,但我仍然不知道如何拥有一个构造函数:
(declare-fun L (Interval) Int)
(declare-fun H (Interval) Int)
谢谢,努诺