Z3: найти все подходящие модели

Я пытаюсь найти все возможные модели для некоторой теории первого порядка, используя Z3, решатель SMT, разработанный Microsoft Research. Вот минимальный рабочий пример:

(declare-const f Bool)
(assert (or (= f true) (= f false)))

В этом пропозициональном случае есть два удовлетворяющих задания:f->true а такжеf->false, Поскольку Z3 (и SMT-решатели в целом) будут пытаться найти только одну удовлетворительную модель, найти все решения напрямую невозможно.Вот Я нашел полезную команду под названием(next-sat), но, похоже, последняя версия Z3 больше не поддерживает это. Это немного неудачно для меня, и в целом я считаю, что команда весьма полезна. Есть ли другой способ сделать это?

Ответы на вопрос(1)

Ваш ответ на вопрос