UNSATクエリのデバッグ中に、クエリステータスに興味深い違いがあることに気付きました。クエリ構造は次のとおりです。
assert(...)
(push) ; commenting any of these two calls
(check-sat) ; makes the whole query UNSAT, otherwise it is SAT
assert(...)
(check-sat) ; SAT or UNSAT depending on existence of previous call
(exit)
pop
クエリに呼び出しはありません。この動作をトリガーするクエリはここにあります。
なぜアイデア?
注:実際には増分は必要ありません。デバッグのみを目的としています。Z3バージョンは3.2です。