У меня возникли проблемы с использованием сортировки в формате SMTlib2. Например, я определяю интервал как:
(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)
Спасибо, Нуно