シンボリック実行(Klee)のコンテキストでのインクリメンタルソルビングに必要です。シンボリック実行パスの分岐のポイントでは、ソルバーコンテキストを2つの部分に分割する必要があります。真と偽の条件です。もちろん、コストのかかる回避策があります。空のコンテキストを作成し、すべての制約を再生します。
Z3_contextを分割する方法はありますか?そのような機能を追加する予定はありますか?
ノート
深さ優先のシンボリック探索を使用すると、コンテキストの分割を回避できます。つまり、現在の実行パスが「終了」に達するまで探索されるため、このパスは今後探索されなくなります。この場合、分岐点に到達するまでポップして、別の条件分岐の探索を続けるだけで十分です。ただし、Kleeの場合、多くのシンボリックパスが「同時に」探索される(真と偽の分岐の探索がインターリーブされる)ため、ソルバーコンテキストソルバーの切り替え(各メソッドにZ3_context引数があります)と分岐(このためのメソッドはありません、それが私に必要なものです)。
ありがとう!