非決定論的に終了するループについての推論


10

ここに「トラックB」の質問があります。まとめ:非決定的プログラムにセマンティクスを与えようとするときに最初に考えるのは、非決定的に終了するだけのループについては証明できないセマンティクスになります。確かに誰かがこの状況で何をすべきかを考え出したか、少なくともそれは難しいと指摘しましたが、私はそれを探す方法を知りません(したがって「参照要求」タグ)。

バックグラウンド

私は、非決定論を伴うwhile言語をモデル化したいと考えています。これはSmythパワードメインでそのような言語をモデル化する明白な(または少なくとも素朴な)方法だと思いますが、私が間違っている場合は修正してください。この言語でのコマンドの意味は、ドメインが状態の集合であり、コドメインが集合ある関数としてモデル化します、ここでは非終了を表す最小の要素、は状態のパワーセットです。PS = { } PS PS SP(S)={}P(S)P(S)

コマンドは、状態から非終了イベントまたは可能な結果を​​表す状態セットへのマップとして解釈します。は非決定的な選択です。σ{σ1,σ2,}PQ

  • skipσ={σ}
  • x:=Eσ={σ[(Eσ)/x]}
  • abortσ=
  • if E then P else Qσ=Pσ場合Eσ=true、そうでない場合Qσ
  • PQσ=場合Pσ=又はQσ=、さもなければPσQσ
  • P;Qσ=場合又はいくつかについて、そうでなければPσ=Qτ=τPστPσQτ

指向完備半順序があります、いずれかに対すると両方場合と適切セットされ、我々は関数にこれを拡張することができからへ点別:場合すべてのため、およびは、すべての状態をマッピングする関数です。SSP(S)S1S2S1S2S1S2fSP(S)f1f2f1(σ)f2(σ)σf

ループの意味ははチェーンの最小上限です、もし、そうでない場合場合または for some、それ以外の場合は。(この定義は、今定義したがスコット連続であることを前提としていますが、それはそのままにしておくのが安全だと思います。)while E do Pσff(f)f(f(f))f(g)(σ)={σ}E(σ)=falsePσ=g(τ)=τPστPσg(τ)f

質問

このプログラムを考えてみましょう:

x:=0;
b:=true;
while b do
x:=x+2;
b:=falseb:=true

直感的には、これは正の偶数を返すか、終了しないループであり、これは、最も弱いリベラルな前提条件を使用してこのループについて証明できるものに対応します(を示すことができはループです不変)。ただし、ループには終了できない機能があるため(常に右側の分岐を行うプログラムによって非決定論的な選択を調整できます)、初期状態が与えられた場合のこのプログラムの意味はです。(非公式ではありません:がfalseであるすべての状態と、がtrue であるすべての状態をマップする関数は、ループの定義に使用される固定小数点です。)n.x=2nbbf

これは、私が提案した素朴なセマンティクスが、プログラムについて推論できると期待する方法に対応していないことを意味します。私は私のセマンティクスを非難しますが、それらを修正する方法はありません。


4
私が使っていると思いプログラムの意味の終域として、あなたが効果的に発散することができますプログラムについて何かを推論あきらめました。素朴な考えはを使用することですが、それが別の問題を引き起こすかどうかはわかりません。{}P(S)P(S{})
伊藤剛

確かに、セット見ると、例に到達する前でも希望が失われていることは明らかです。潜在的な非終了がによってモデル化される限りであるあなたの提案は、同様に私に起こったが、私はあなたがこの例では同じ問題で終わると思いますではない、および場合後者を選択した場合、通常の方法でループに最小固定点として意味を与える能力に干渉します。{}P(S)S{}{}
Rob Simmons

ダイナミックロジックを見たことがありますか?セマンティクスは状態から状態への関係で与えられ、ロジックを使用して部分的および全体的な正確さ、つまり、終了する計算のプロパティと、すべての計算が指定のプロパティで終了することを推論できます。
デイブクラーク

私はこの設定で動的ロジックについて考えたことはありませんが、それがどのように関連しているのかはわかります。私がピッツバーグに戻ったとき、プラッツァーと彼の生徒たちがどう思うかがわかります。
Rob Simmons

回答:


10

[dB80]ヒッチコックと再帰の終了プロパティの公園の分析では表現の関係[Egl75、Plo76]のいわゆるEGLI・ミルナーの解釈に基づいて、意味解析に対応するように証明された不安定な非決定性を。この概念は、関係の非決定的結合が、(終了しない計算が存在する場合でも)望ましい結果につながる少なくとも1つの計算を生成する場合に正しいことを示しています。これは、実行しようとしていることに対応しているようです。

次の文の意味特徴付ける関数として 各初期状態マッピングおそらく含む、状態のいくつかの非空集合にように、意味で厳密である。ステートメントと間の非決定的選択は、各初期状態を個々の結果の結合マッピングする関数によって記述されます。したがって、またはは常にSfSσfSfS()={}S1S2σfS1(σ)fS2(σ)S1S2非決定論的な可能性があり、望ましくない結果が生じる可能性があります。そうすると、非決定論的な選択も可能になります。最終的な状態の結果セットとして、この分析ではいわゆるEgli-Milnerパワーセットの状態セットが得られます。

PE--M(S)={ sS | sは有限で空ではない、または含む}

無限サブセットがこのモデルの最終状態の可能なセットと見なされないのはなぜですか?関係項のすべての基本的なビルディングブロックは、可能な最終状態の有限で空でないセットのみを生成するという仮定の下で、可能な最終状態の無限セットは、無限計算が可能な場合にのみ生成できます。これは次のように見ることができます。与えられた状態から始まるすべての可能な計算のセットを、ルート および状態をノードとするツリーとして構造化します。葉のセットは、を除いて、から到達可能な最終状態のセットになります。Sσ0σ0σ0これは、葉の間で欠落している可能性がありますが、ツリーに無限パスがあるという事実によって、一連の最終状態で表されます。上記の仮定では、有限の非決定論的な選択しか利用できないため、このツリーは有限に分岐します。したがって、与えられた有限の深さにある葉の数は有限です。その結果、無限の数の可能な最終状態は、無限の計算(ケーニッヒの補題[Kön32]のアプリケーション)が存在する場合にのみ生成できます。

(PE--M(S),E--M)は 定義:for、E--Ms,tPE--M(S)

sE--Mt=(ss{}t)(ss=t) .

ここで、そこを通ってプレースホルダとして見ることができる -greaterセットの代わりに、より多くの状態を挿入することによって生成することができる。したがって、はの最小要素です。さらに、posetは -chainsのlubを持ってい ます。同様に、 からまでの厳密な関数は、点ごとの拡張によって部分的に順序付けられてい。さらに、そのような関数の中で最小のものはE--M{}(PE--M(S),E--M)(PE--M(S),E--M)ωS{}PE--M(S)E--Mλσ.{}およびそのような関数の -chainsのlub も存在します。ω

[dB80] JW de Bakker。プログラム正しさの数学理論。プレンティスホール、1980年。

[Egl75] Hエグリ。非決定論的計算のための数学モデル。テクニカルレポート、ETHチューリッヒ、1975年。

[Kön32] DKönig。Theorie der endlichen und unendlichen Graphen。テクニカルレポート、ライプツィヒ、1932年。

[Plo76] GDプロトキン。パワードメイン構造。SIAM Journal on Computation、5(3):452-487、1976。

免責事項:これは、私がかつて共同執筆した本からほぼ逐語的に取られたものです。

WP de RoeverとK Engelhardt。データの洗練:モデル指向の証明方法とその比較。Cambridge University Press、1998年。


4
「これは、私がかつて共同執筆した本からほぼ逐語的に取られたものです」という語句には、「免責事項:」ではなく、「余分な驚異性:」が前に付いているはずです:-D。ありがとう、これはとても役に立ちます。
Rob Simmons

非決定性(および私がそれを確認したい方法)を見る1つの方法は、それが不完全仕様の形式であることです-非決定性の選択肢を持つプログラムは、常に最初の選択肢をとり、常に2番目の選択肢をとるプログラムによって改良されます。または(この特定の分野でのMcIverとMorganの広範な研究を参照)確率.5でどちらか一方を選択するプログラム。したがって、非決定論的に終了しないループは、決して終了しないループと、終了するコインフリップループ(確率1で)によって洗練されます
Rob Simmons
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.