You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
We continue our work on formal verification of Rust programs with our tool coq-of-rust, to translate Rust code to the formal proof system Coq. One of the limitation we had was the handling of primitive constructs from the standard library of Rust, like Option::unwrap_or_default or all other primitive functions. For each of these functions, we had to make a Coq definition to represent its behavior.
In computer science and mathematical logic, satisfiability modulo theories (SMT) is the problem of determining whether a mathematical formula is satisfiable. It generalizes the Boolean satisfiability problem (SAT) to more complex formulas involving real numbers, integers, and/or various data structures such as lists, arrays, bit vectors, and strings. The name is derived from the fact that these ex
形式手法の導入を検討する上で参考となる実システムに対する実践的な応用事例について、費用対効果や導入時の課題・工夫点等を中心にまとめています。 現在は、「フォーマルメソッド導入ガイダンス」第4部付録 12.応用事例情報 と同じ内容ですが、今後事例の数を増やしていく予定です。 キーワードで検索する
2020年1月に入社し、SWETの仕様分析サポートチームに加わったtakasek(@takasek)です。 仕様分析サポートチームでは、社内のプロダクト開発に対する形式手法の活用可能性を模索しています。当ブログでも、継続的に形式手法に関する情報発信をしています(形式手法 カテゴリーの記事一覧)。 この記事では、加入3か月を経てようやく形式手法の輪郭が掴めてきた私の視点から、学習前後での理解の変化について振り返ります。想定読者として学習前の私と近い属性——すなわちコンピュータサイエンスや数学の専門教育を受けておらず、主に現場での実務と自習に頼ってきたソフトウェアエンジニアを想定しています。 形式手法を学ぶ前の認識と疑問 ソフトウェアエンジニアとしての私の一番の興味関心は設計手法です。設計は、なんらかの解決したい問題に対して、ある一面を切り取った構造(モデル)を与え、そのモデルを解決の機構に落
英語版記事を日本語へ機械翻訳したバージョン(Google翻訳)。 万が一翻訳の手がかりとして機械翻訳を用いた場合、翻訳者は必ず翻訳元原文を参照して機械翻訳の誤りを訂正し、正確な翻訳にしなければなりません。これが成されていない場合、記事は削除の方針G-3に基づき、削除される可能性があります。 信頼性が低いまたは低品質な文章を翻訳しないでください。もし可能ならば、文章を他言語版記事に示された文献で正しいかどうかを確認してください。 履歴継承を行うため、要約欄に翻訳元となった記事のページ名・版について記述する必要があります。記述方法については、Wikipedia:翻訳のガイドライン#要約欄への記入を参照ください。 翻訳後、{{翻訳告知|en|Boolean satisfiability problem|…}}をノートに追加することもできます。 Wikipedia:翻訳のガイドラインに、より詳細な
計算機科学における正当性(Correctness)とは、アルゴリズムがその仕様に照らして正しいことを意味する。「機能的」正当性とは、アルゴリズムの入出力動作に関する正当性である(すなわち、各入力に対して正しく出力を生成すること)。形式的検証を参照されたい。 完全正当性(Total Correctness)は、アルゴリズムが常に停止することも要求される。一方、部分正当性(Partial Correctness)は単に返ってくる答えが正しいことのみを要求する(常に答えが返ってくるとは限らない)。停止問題には汎用的解法はないので、完全正当性はより深い問題をはらんでいる。 例えば、整数を 1 から順に調べて奇数の完全数を探すとした場合、部分正当性を備えたプログラムを書くのは極めて簡単である(素因数分解を行って n が完全数かどうかを調べる)。しかし、そのプログラムが完全正当性を備えているとするには
About CakeML is a functional programming language and an ecosystem of proofs and tools built around the language. The ecosystem includes a proven-correct compiler that can bootstrap itself. The CakeML project consists of the following components, all of which are free software. Language definition. The CakeML language is based on a substantial subset of Standard ML. Its formal semantics is specifi
Z言語 (ぜっどげんご) は、Z記法 (ぜっどきほう) ともいい、形式仕様記述言語であり、コンピュータシステムの記述とモデリングを行うために使われる。 ZはZF集合論から名前をとって命名された。 Zは次のことに焦点を当てている。 コンピュータプログラムの簡明な仕様の記述。 意図するプログラムの振る舞いの証明の形式化。 Zは、もともとは1977年に Jean-Raymond Abrial により Steve Schuman とバートランド・メイヤーの支援を得て開発された[1]。 Zの開発は、オクスフォード大学のプログラミング研究グループでさらに続けられた。 Abrial は、1980年前半にこの研究グループで開発作業を行った。 Zは、公理的集合論とラムダ計算、一階述語論理で使われる標準的な数学的記法に基づいている。 Zで記述されたあらゆる式は型づけられており、それにより素朴集合論のパラドック
Overview SyncStitch is a model checker based on the process algebra CSP (Communicating Sequential Processes). By using SyncStitch, you can check six types of properties of the system you are developping: Deadlocks Divergences (also known as livelocks) Refinement relation on traces semantics (safety) Refinement relation on stable failures semantics (safety and liveness) LTL (Linear-Time Logic) with
All slide content and descriptions are owned by their creators.
AWSがFormal Methodsを使っているというので、見てみる。分散アルゴリズムの検証に、形式手法が有効だったという話である。調べてみると、ACMの記事になる4年も前から、発表されていたらしい。 論文によると How Amazon Web Services Uses Formal Methods | April 2015 | Communications of the ACM AWSでは、2011年からFormal Methodsを使って、重要な分散システムのアルゴリズム設計を行っている。また、外部公開I/Fを単純化して提供することで、大規模な分散システムでサービスを提供できる秘訣となっている。AWSでは、顧客のデータを保護するために、フォールトトレラントな分散アルゴリズムを使っている。また、分散アルゴリズムはたくさんあるが、それらを組み合わせるのは難しい。 TLA+は、プログラマが
LTSA is a verification tool for concurrent systems. It mechanically checks that the specification of a concurrent system satisfies the properties required of its behaviour. In addition, LTSA supports specification animation to facilitate interactive exploration of system behaviour. A system in LTSA is modelled as a set of interacting finite state machines. The properties required of the system are
1.はじめに 私は主に組み込み分野における開発に携わってきました。近年、組み込み分野では、品質に対する要求はどんどん厳しくなっています。現在、品質向上のための様々なアプローチが行われています。今回は、人間にわかりやすいモデルを、抜け漏れなく検証するという観点で、UMLとモデル検証の組み合わせの可能性を探ってみました。 本記事では、UMLの状態マシン図で記載したモデルに、モデル検証ツールspinを適用していきます。 spinとは、ベル研究所で開発されたオープンソースのモデル検証ツールです。検証対象のモデルの取りうる全ての状態において、検証条件を満たしているか確認することができます。また、複数のタスクで動作するシステムにおけるデッドロックの発生なども検出することができます。デッドロックの検出例は、書籍やWebサイトでも多く紹介されています。 組み込みシステムにおいては、現在でもRTOS(リアル
The information in the patterns can be presented in a variety of ways. One organization, illustrated below, is based on classifying the patterns in terms of the kinds of system behaviors they describe. Occurrence Patterns talk about the occurrence of a given event/state during system execution. Order Patterns talk about relative order in which multiple events/states occur during system execution.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く