タグ付けされた質問 「model-checking」

1
プログラミング言語セマンティクスプロトタイピングツール
プログラミング言語のセマンティクスと型システムのプロトタイプを作成するためのツールはありますか?また、これにより、型の健全性など、標準プロパティの何らかのモデルチェックが可能になりますか? Alloyについての本を読んでおり、リレーショナルロジックを使用して表現されたモデルに対して、私が望んでいる正確な機能を提供しているので、これを質問します。 私はOttを知っていますが、証明アシスタントシステム用のコードの生成に重点を置いているため、このような「モデルチェック」機能はありません。 そのようなツールの存在についての参照があればよいでしょう。

2
シンボリックモデルチェックとは正確には何ですか?
シンボリックモデルチェックは、Kripkeモデルのようなモデルを使用したCTLのような式としての状態セットと遷移関係の表現に基づく状態空間トラバーサルであることを知っています。私は理論を知っています。しかし、実際のアプリケーションを理解するのは難しいと感じています。正確にどこで使用されていますか?それは正確には何をし、どのように機能しますか? 誰かが実際の例で説明し、理論を実践に関連付けることはできますか?

1
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

4
2つのCTL数式が等しいかどうかを手動で決定するにはどうすればよいですか?
CTLに 2つの式と(同じ一連の原子命題)があると仮定します。上のすべての移行システムについて、 iffがあります。ΦΦ\PhiΨΨ\PsiAPAPAPΦ≡ΨΦ≡Ψ\Phi \equiv \PsiSatTS(Φ)=SatTS(Ψ)SatTS(Φ)=SatTS(Ψ)Sat_{TS}(\Phi) = Sat_{TS}(\Psi)TSTSTSAPAPAP 移行システムは無限にあるので、それらすべてをチェックすることは不可能です。PNF(正の正規形、リテラルの隣でのみ否定を許可)を使用することを考えました。これは、名前から判断すると、と同じ式がと同じになるはずですが、同等であるとは確信していません。すべての場合(PNFが実際には正常な形式であるとは確信していません)。ΦΦ\PhiΨΨ\Psi たとえば、(は演算子であり、が演算子です)。これを手動で行う方法を探しています。∀O∀◊Φ0≡?∀◊∀OΦ0∀O∀◊Φ0≡?∀◊∀OΦ0\forall \mathrm{O} \forall \lozenge \Phi_0 \stackrel{?}{\equiv} \forall \lozenge \forall \mathrm{O} \Phi_0OO\mathrm{O}next◊◊\lozengeeventually
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.