Z3 2.xには、シンボル宣言がポップされないという機能(おそらくバグ)がありました。たとえば、次のコードはZ32.xで受け入れられます。
(push)
(declare-fun x () Int)
; Assumptions made in this scope will be popped correctly
(pop)
(assert (= x x))
Z3 3.xは、このコード(「不明な定数」)を受け入れなくなりました。
古い動作を復元する方法はありますか?または、宣言(および宣言のみ、仮定ではない)がグローバルになるように、つまりポップされないように、スコープ内でシンボルを宣言する方法はありますか?