SATを使用して、量指定子除去の正確性を検証する
ましょうx=(x1,…,xn)x=(x1,…,xn)x=(x_1,\dots,x_n)とあることのブール変数の-vectors。私はブール述語をに持っています。友達にプリシラを渡します。それに応答して、彼女は私に与え、上のブール述語、と彼女は主張しますy=(y1,…,yn)y=(y1,…,yn)y=(y_1,\dots,y_n)nnnQ(x,y)Q(x,y)Q(x,y)x,yx,yx,yQ(x,y)Q(x,y)Q(x,y)P(x)P(x)P(x)xxx P(x)≡∃y.Q(x,y),P(x)≡∃y.Q(x,y),P(x) \equiv \exists y . Q(x,y), 言い換えれば、 ∀x.[P(x)⇔∃y.Q(x,y)].∀x.[P(x)⇔∃y.Q(x,y)].\forall x . [P(x) \Leftrightarrow \exists y . Q(x,y)]. なんとか彼女の主張を検証したい。プリシラはこの主張を確認するのにどのように役立ちますか? と両方がCNF式として表され、それらが大きすぎない(多項式サイズなど)と想定できます。PPPQQQ 理想的な世界では、この主張をSATに検証する問題を軽減できればすばらしいでしょう。SATソルバーがあり、SATソルバーを使用してこの主張を検証できればすばらしいと思います。ただし、この主張をSATインスタンスとして直接検証するという問題を定式化することは不可能だと確信しています。2QBF式の有効性をテストすることは、 SATよりもほぼ確実に困難です。(方向はSATインスタンスとして簡単に定式化できますが、方向は2つの交互の量指定子が本質的に含まれるため困難です。)⇐⇐\Leftarrow⇒⇒\Rightarrow しかし、プリシラが彼女の主張を裏付けるいくつかの追加の証拠を私に与えることができると仮定します。プリシラが私に与えることができる追加の証拠または証人はありますか?それにより、彼女の主張を簡単に確認できますか?特に、彼女が私に与えることができる追加の証拠または証人はありますか?これにより、彼女の主張をSATのインスタンスとして検証する問題を簡単に定式化できます(次に、SATソルバーを適用できます)? 私の設定の珍しい側面の1つは、SATのオラクルがあると(ヒューリスティックに)想定していることです。複雑さの理論が好きなら、このように考えることができます。私は、(つまり、)で計算できるマシンの役割を担っており、プリシラのアルゴリズムを使用して要求します。このような考え方について、mdxに感謝します。PNPPNPP^{NP}ΔP2Δ2P\Delta^P_2PNPPNPP^{NP} 私の動機/アプリケーション:システムの正式な検証(たとえば、シンボリックモデルのチェック)を行うつもりであり、推論の重要なステップには、数量詞の削除(つまり、から開始して取得する)が含まれます。量指定子の削除が正しく行われたことを確認するためのクリーンな方法を期待しています。QQQPPP 考えられるすべてので機能する解決策がない場合は、「健全だが完全ではない」解決策を提案してください。つまり、多くの、主張された同等性を検証できます。(主張を満たす主張の検証に失敗した場合でも、誤った主張を検証したと不適切に主張しない限り、ヒューリスティックとしてこれを試すことができます。特定の、機能する場合と機能しない場合があります。機能しない場合でも、始めたときより悪くはありません)。P 、Q P 、QP,QP,QP,QP,QP,QP,QP,QP,QP,QP,QP,QP,Q