タグ付けされた質問 「formal-methods」

5
純粋な関数型プログラミング言語用の注釈付きの正式な検証システムはありますか?
ACSL(Ansi C仕様言語)は、特別なコメントが付けられたCコードの仕様であり、Cコードを正式に検証できます。 私はまだ調べていませんが、ACSL検証で使用される正式な方法はHoare Logicに似ていると思います。ただし、Haskellなどの純粋な関数型言語の場合、フォーマル検証にどのようなフォーマリズムが使用されるか想像できません。 ACSLに似たものを作った人はいますか?そうでない場合、関数型言語の仕様注釈付きスタイルのフォーマル検証に関する研究はありますか? 私は、多くの言語(Agda、イドリスなど)がサポートする依存型付けがあることを知っていますが、Haskellでは、いくつかの(判読できない?)型の奇妙なことをせずに、依存型付けは困難です。それを念頭に置いて、HaskellはAgdaやIdrisよりもはるかに優れたライブラリをサポートしているので、機能的な形式検証のためのこのようなシステムが役立つと思いますが、これについて研究が行われたかどうかはわかりません。

2
アルゴリズムは、任意の入力プログラムの時間の複雑さをどの程度予測できますか?
停止問題は、ために、別のプログラムを停止するかどうかを決定することができますプログラム書くことは不可能であると述べているすべての可能な入力プログラムを。 ただし、次のようなプログラムの実行時間を計算できるプログラムを作成できます。 for(i=0; i<N; i++) { x = 1; } 時間計算量を実行せずに返します。NNN 他のすべての入力プログラムについては、時間の複雑さを判別できなかったことを示すフラグを返します。 私の質問はこれです: 特定のプログラムの時間的な複雑さをアルゴリズムで決定できるように、どのような条件を保持する必要がありますか? *これに対する標準的な参照またはレビュー記事がある場合、コメントへのリンクをお願いします。

6
カリキュラム:セキュリティの論理的/形式的方法
現在、私はセキュリティの論理的方法に関する短いコース(修士レベルでの2時間の講義4回)を教えていますが、「セキュリティの形式的方法」というタイトルの方が適切かもしれません。以下のトピックを簡単に説明します(関連する論理的方法を使用)。 デジタル著作権管理とポリシー施行(一般的な形式化、モーダルロジック、オートマトンによる施行) プルーフキャリングコードおよびプルーフキャリング認証(証明理論、論理システム、カリーハワード同型、検証) アクセス制御(非古典的な論理、証明理論) スタック検査(プログラミング言語のセマンティクス、コンテキストの等価性、バイシミュレーション) 当然、このコースには複数の目標があり、そのうちの1つが潜在的な大学院生を惹きつけています。 今後数年間で、コースは通常のコースに拡張される可能性があり、より多くのコンテンツが必要になります。ここの人々の背景は私のものとはまったく異なるので、そのようなコースにどのようなコンテンツを含めるか知りたいです。

7
正式な方法が機能することをどのように知ることができますか?
正式な方法の重要な目標は、自動化された手段または人間主導の手段によってシステムの正確性を証明することです。ただし、正当性を証明できたとしても、システムが故障しないことを保証できない場合があります。例えば: 仕様がシステムを正しくモデル化していないか、実動システムが複雑すぎてモデル化できないか、矛盾する要件のためにシステムに本質的に欠陥がある可能性があります。仕様がまったく意味をなすかどうかをテストするためにどのようなテクニックが知られていますか? 証明プロセスにも欠陥がある可能性があります!これらの推論規則が正しく、正当であることを誰が知っていますか?さらに、証明は非常に大きくなる可能性がありますが、エラーが含まれていないことをどのようにして知ることができますか?これは、デミロ、リプトン、およびペルリスの「社会プロセスと定理とプログラムの証明」の批評の中心です。現代の形式的手法の研究者は、この批判にどのように対応しますか? 実行時には、システムに深刻な影響を与える可能性のある多くの非決定的なイベントと要因があります。たとえば、宇宙線はRAMを予測不可能な方法で変更する可能性があり、より一般的には、ハードウェアがビザンチン障害を被らないという保証はありません。したがって、静的システムの正確さは、システムが失敗しないことを保証しません!実際のハードウェアの誤りを説明するために知られている技術はありますか? 現在、テストは、ソフトウェアが機能することを確認するための最も重要なツールです。正式な方法を備えた補完的なツールであるように思われます。しかし、私は主に正式な方法またはテストに焦点を当てた研究を見ています。2つの組み合わせについては何が知られていますか?

7
ロジックのCSアプリケーションのポインター
私は数学の大学院生で、論理の背景がしっかりしています。私は、有限モデル理論と強制理論と集合論の別の大学院コースと一緒に、論理の1年間の大学院コースを受講しました。ほとんどのCSテキストは、論理の非常に控えめな背景のみを想定しているようで、主に命題論理と1次論理の基本をカバーしています。 ロジックからのより重いマテリアルが使用されているCSアプリケーションの場所について、いくつかのポインターを取得したいと思います。私の興味の1つは、一般に型理論と形式的方法でしょう。モデルのチェックとプログラミング言語に関する入門書を読んで、良い読書を提案できる人はいますか?

9
ミッションクリティカルなソフトウェアの作成方法
私は正式な方法を自習しています。ミッションクリティカルなソフトウェア(原子炉コントローラー、航空機飛行コントローラー、宇宙探査機コントローラーなど)を作成するために、正式な方法が使用される(そして通常のみ使用される)と聞きました。それが私がそれを学ぶことに興味がある理由です:p ただし、正式な方法(特にLTL、CTL、およびそれらの兄弟)を学習した後は、仕様の正確さ(安全性、活性、公平性など)を検証するためにのみ使用できると感じています。 しかし、ソフトウェア(仕様だけでなく)が実際に正しいことを確認する方法は? 免責事項:理論的なコンピューターサイエンスに関しては、私は90%のバカです。答えながら慈悲深くあってください。

3
2つの関数が拡張的に等しいかどうかを計算することは可能ですか?
異なる並べ替えアルゴリズムを実装する2つの関数がある場合、両方が同じ外部プロパティを持っていることをソースコードで推測できますか?それらの両方が入力として可能な未ソートのシーケンスを持ち、出力としてソートされたシーケンスを持つことを意味しますか?これらの外部プロパティは、どのようにしてソースコードによって決定されますか?そして、これらの外部プロパティをどのように説明しますか?どんな表記が使用されますか? 外部プロパティは、たとえば型システム内などで明示的に定義することによって知ることができますが、これを暗黙的に実行できるかどうか疑問に思っています。それとも、この種のセマンティクスを推測することは、どういうわけか理論的に不可能ですか?関数のようなものが常に停止して副作用がないと仮定して、これがソートアルゴリズムだけでなく任意の関数でも可能かどうかに興味があります。 意味論的意味論を見るべきですか、それとも無関係ですか? この分野での研究へのポインタ、および私の文献検索に役立つ可能性がある主題を説明するために使用されるさまざまな用語へのポインタに興味があります。

1
カリー・ハワード通信に関連する証明技法
プログラムの正式な概念に関する情報源を探しています。これはCurry-Howardの対応と密接に関連しているようですが、これをUniversal Turing Machinesに追跡し、TMの説明と入力を読み取るその機能を利用することもできます。 カリーハワードのコレスポンデンスについて読むとき、UTM-sの原始性がプログラムの研究に害を及ぼす可能性があると感じます。高レベルの計算システムを定義して検討するという反対のアプローチはありますか?それについての良いリソースは何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.