SMT で Int から Bit Vector を使用するように切り替えました。ただし、ロジック 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)) ) ) )