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

ソフトウェアおよびハードウェアシステムの仕様、開発、および検証のための特定の種類の数学ベースの手法。

2
コインダクションとは何ですか?
(構造)誘導について聞いたことがあります。小さい構造から有限構造を構築することができ、そのような構造について推論するための証明原則を提供します。アイデアは十分に明確です。 しかし、コインダクションはどうですか?どのように機能しますか?無限の構造について決定的なことをどのように言えますか? 対処する(少なくとも)2つの角度があります。すなわち、物事を定義する方法として、また証明技術としての共誘導です。 コインダクションを証明技術として考えると、コインダクションとバイシミュレーションの関係は何ですか?

2
Büchiオートマトンと線形 -calculusの等価性
すべてのLTL式がBüchi -automaton で表現できることは既知の事実です。しかし、明らかに、Büchiオートマトンはより強力で表現力豊かなモデルです。Büchiオートマトンは線形時間の -calculus(つまり、通常の固定点と1つの時間演算子のみを含む -calculus)と同等であると聞いたことがあります:。ωω\omegaμμ\muμμ\muXX\mathbf{X} この平等のアルゴリズム(建設的証明)はありますか?

6
チューリングの「ハルティング問題‍」を解決するアルゴリズム
この質問は、コンピューターサイエンススタック交換で回答できるため、理論的なコンピューターサイエンススタック交換から移行されました。 7年前に移行され ました。 「アランチューリングは、1936年に、考えられるすべてのプログラム入力ペアの停止問題を解決する一般的なアルゴリズムが存在できないことを証明しました。」 私はのために停止問題を解決するための一般的なアルゴリズムを見つけることができますいくつかの可能なプログラム入力ペアを? プログラミング言語(複数の言語)を見つけることができます。この言語のすべての種類のプログラムに対して、プログラムが終了するか永久に実行されるかを決定できますか?

3
正式なメソッドへのパス
数学とコンピューターサイエンスの正式な側面の限られたバックグラウンドのみで博士号を取得する学生を見るのは珍しいことではありません。明らかに、そのような学生が理論的なコンピューター科学者になることは非常に難しいでしょうが、正式な方法を使用し、正式な方法を含む論文を読むことに精通できれば良いでしょう。 正式な方法を含む論文を読んで、最終的にはそのような正式な方法を使用する論文を書くために必要な露出を得るために、博士課程の学生をたどる良い短期パスは何ですか? コンテキストの観点からは、理論Bと形式的検証の観点から、彼らが学ぶべきものとして考えていますが、オートマトン理論などの古典的なTCSトピックも考えています。

3
2つのシミュレーションがバイシミュレーションではない場合
ラベル付き遷移システム 与えられた(S,Λ,→)(S,Λ,→)(S,\Lambda,\to)場合、SSSは状態のセット、はラベルのセット、は三項関係です。いつものように、書き込みため→ ⊆ S × Λ × S P α → Q (P 、α 、Q )∈ →ΛΛ\Lambda→⊆S×Λ×S→⊆S×Λ×S\to\subseteq S\times\Lambda\times Sp→αqp→αqp \stackrel\alpha\rightarrow q(p,α,q)∈→(p,α,q)∈→(p,\alpha,q)\in\to。ラベルされた移行p→αqp→αqp\stackrel\alpha\to q状態でシステムという意味pppに状態が変化するqqqラベルとαα\alphaということを意味し、αα\alpha状態の変化を引き起こすいくつかの観察可能なアクションです。 今、関係R⊆S×SR⊆S×SR \subseteq S \times S呼び出されたシミュレーション IFF ∀(p,q)∈R, if p→αp′ then ∃q′,q→αq′ and (p′,q′)∈R.∀(p,q)∈R, if p→αp′ then ∃q′,q→αq′ and (p′,q′)∈R. \forall (p,q)\in R, \text{ if } p \stackrel\alpha\rightarrow p' …

2
この分数のような「離散数学」スタイルの表記法は、正式なルールに使用されますか?
「A Conflict-Free Replicated JSON Datatype」という論文で、「ルール」を正式に定義するためにこの表記法に出会いました。 この表記は何と呼ばれますか?どうやって読むの? 例えば: DOCルールは、「分子」には何も持っていません-なぜありませんか? EXECそしてGET規則はそれがどういう意味、ライン上記の二つの別々の用語を持っているように見えますか? VAR他の多くのルールがトップアップ(私は「意味」を意味するのにかかる)矢印のいくつかの並べ替えを使用しながら、この1つは、xのみが何かの要素であると言っているように見えるので、ルールは、同様に少し目立ちます。 Ap,「レプリカpの状態はAp、有限部分関数によって記述されている」とテキストで説明されているイニシャルがほとんどすべてにこだわっています。この表記法に精通した読者は、どの規則のその部分を「見る」傾向がありますか? このサイトは、小さなステップに関するこの質問の最初のルールとして、⟨B、s⟩->⟨B '、s'⟩の重要性についての質問について、いくつかの非常に類似した表記を持つ関連する質問を提案しましたセマンティクス?—これはOperational Semanticsとしてタグ付けされており、それが強力なリードと思われます。それは確かに私がこれらの図を解釈すべきフレームワークですか?これを「クラッシュコース」形式で簡単に要約してください。そうすれば、彼らの証明の正確性を検証できなくても、少なくともこのセクションで彼らが言っていることをもう少し理解できるでしょうか。

5
制約された入力または予測可能な入力がある場合、停止の問題を解決することは可能ですか?
停止の問題は一般的なケースでは解決できません。許可された入力を制限する定義済みのルールを考え出すことは可能ですが、その特殊なケースでは停止の問題を解決できますか? たとえば、たとえばループを許可しない言語は、プログラムが停止するかどうかを非常に簡単に判断できるようです。 私が今解決しようとしている問題は、プログラムの妥当性をチェックするスクリプトチェッカーを作成しようとしていることです。非常に予測可能な入力を意味するスクリプトライターに何を期待するかを正確に知っていれば、停止する問題を解決できます。これを正確に解決できない場合、これを解決するための優れた近似手法は何ですか?

2
プログラムの正確性、仕様
ウィキペディアから:理論的なコンピューターサイエンスでは、アルゴリズムが仕様に関して正しいと言われているときに、アルゴリズムの正当性が主張されます。 しかし問題は、「適切な」仕様を取得することは簡単な作業ではなく、正しいものを取得するための100%正しい方法(私が知る限り)がないため、単なる推定であるため、 「1つ」のように「見える」という理由だけで述語を仕様としてとるのは、プログラムが「正しく」見えるという理由だけでプログラムを正しいとみなさないのはなぜですか?

4
2つのアルゴリズムが入力に対して同じ結果を返すかどうかをどのように確認しますか?
すべての入力のセットが無限であるときに、2つのアルゴリズム(たとえば、マージソートとナイーブソート)がすべての入力に対して同じ結果を返すかどうかを確認するにはどうすればよいですか? 更新:一般的なケースでアルゴリズム的にこれを行うことがどのように不可能かを説明してくれたベンに感謝します。Daveの答えは、常に機能するとは限らないが、非常に効果的なアルゴリズムと手動(人間の機知と隠phorの対象)の両方の方法の素晴らしい要約です。

2
役に立たない状態のチューリングマシンに関する質問
さて、ここに私の理論の計算クラスの過去のテストからの質問があります: TMの役に立たない状態は、どの入力文字列にも入力されない状態です。しようが決定不可能である ことを証明します。U S E L E S S T MU S E L E S ST M= { ⟨ M、q⟩ | QM では役に立たない状態です } 。USELESSTM={⟨M,q⟩∣q is a useless state in M}.\mathrm{USELESS}_{\mathrm{TM}} = \{\langle M, q \rangle \mid q \text{ is a useless state in }M\}.U S E L E …

3
whileループの小さなステップの操作セマンティクスで状態が変更されないのはなぜですか?
通常、whileループの構造的操作セマンティクス表現では、プログラムの状態は変化しません。 (whileBdoS,σ)→(ifBthenS;(whileBdoS)elseSKIP,σ)(whileBdoS,σ)→(ifBthenS;(whileBdoS)elseSKIP,σ)(while \> B \> do \>S, \sigma) \rightarrow (if \>B \> then \>S; (while \> B \> do \>S) \> else \> SKIP, \sigma) 私にとって、これは直感的ではありません。状態が変化しない場合(つまり、メモリのステータスが同じままである場合)、は引き続きtrueであり、プログラムは終了しません。BBB このルールで州が変わらない理由を誰か説明できますか?

2
一次論理検証の概要
ソフトウェア検証に対するさまざまなアプローチを自分に教えようとしています。私はいくつかの記事を読みました。私が学んだ限り、時間を伴う命題論理は一般にSATソルバーによるモデルチェックを使用します(進行中の反応型システムで)が、時間を伴う1次論理はどうですか?定理証明を使用していますか?それともSATを使用できますか? この問題に関する初心者向けの本や記事へのポインタは大歓迎です。

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

5
部分的に正しいプログラムがどれほど正しいかを定量化できますか?
部分的正しさと呼ばれるものがあることは知っていますが、半正解が完全正解にどれだけ近いかを知る方法があるのか​​と思っていました。 たとえば、配列をほぼ完全に並べ替える並べ替えプログラムがある場合、Hoareロジックを使用して、正しい答えを得るのにどれだけ近いかを判断できますか?これを行う1つの方法は、一連のandステートメントを前提条件にして、これらのステートメントのうち、プログラムを通じて伝播される事後条件の結果として最も弱い前提条件がいくつあるかを確認することです。 ただし、この方法は非常に粗雑なようです。このようなことをする他の方法はありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.