Я перешел с использования Int на битовые векторы в SMT. Однако логика QF_BV не позволяет использовать какие-либо квантификаторы в вашем скрипте, и мне нужно определить правила FOL. Я знаю, как исключить кванторы существования, но универсальные кванторы? Как это сделать?
Представьте себе такой код:
(set-logic QF_AUFBV)
(define-sort Index () (_ BitVec 3))
(declare-fun P (Index) Bool)
(assert (forall ((i Index)) (= (P (bvadd i #b001)) (not (P i)) ) ) )