並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 38 件 / 38件

新着順 人気順

TLA+の検索結果1 - 38 件 / 38件

  • 分散合意アルゴリズム Raft を TLA+ で検証する - 俺の Colimit を越えてゆけ

    はじめに 分散合意アルゴリズム Raft とは 分散合意アルゴリズムとは Raft の特徴 Raft が満たす性質 Election Safety Leader Append-Only Log Matching Leader Completeness State Machine Safety TLA+ とは TLA+ による Raft の形式的仕様 TLA+ による Raft の検証方法 TLA+ Toolbox のインストール 新規 Spec の作成 Model の作成と実行 補足: コマンドラインでの検証 Raft の拡張について Leadership Transfer Membership Change Log Compaction Client Interaction おわりに Raft 理解度を調べるクイズ 参考資料 Raft に関する資料 TLA+ に関する資料 はじめに この

      分散合意アルゴリズム Raft を TLA+ で検証する - 俺の Colimit を越えてゆけ
    • TLA+ 入門 – Mile Zero

      TLA+は、MicrosoftやAmazonがミドルウェアの設計に利用しているステートマシンの記述言語です。実際、Azure Cosmos DBやAmazon DynamoDB, S3, EBSはTLA+を使って設計、検証を行っていると公式に発表されています。 AmazonはどのようにTLA+を利用しているか Azure Cosmos DBの設計・開発におけるTLA+の貢献 IDEのダウンロードとインストール TLA+はTLA ToolboxというIDEが用意されており、シンタックスチェックや、作成したステートマシンの検証を行うことが可能です。TLA Toolboxは下記のGitHubのリンクからダウンロードが可能で、利用するにはJava 1.8以上が必要です。 ダウンロード先 ステートマシンの記述 TLA+は、JavaやPythonなどでのプログラミングと以下の点で異なります。 数学的な

      • 実践TLA+ | 翔泳社

        設計だってテストしたい! 【本書の内容】 本書は Hillel Wayne, "Practical TLA+", Apress, 2018 の邦訳版です。 複雑精緻なシステムを構築する際に、設計そのもの、仕様そのものにバグがないかをテストできたら、もう少し幸せな開発人生を送れそうな気がします。 本書は送金システムの小規模な仕様からTLA+を使ってヤバいバグを発見するところから始まります。この小さなサンプルをもとに、より良いアプリケーションの設計・テスト・構築に、どのようにTLA+を使えばよいかを理解し、実際のプロジェクトに援用できるよう、TLA+の演算子、論理、関数、PlusCal、モデル、および同時実行の基礎を学びます。 設計図の整理の仕方、分散システムや最終的な整合性の指定の仕方を学んだら、アルゴリズムのパフォーマンスやデータ構造、ビジネスコードやMapReduceなど、さまざまな実用

          実践TLA+ | 翔泳社
        • [TLA+] TLA+と形式仕様言語 [目的と準備] | DevelopersIO

          こむろ@札幌です。 今年も社内の人から「それ何の役に立つの?」「それXXで良くない?」と言われ、大体において理解されないニッチな分野で生きていきたいと思います。よろしくお願いします。 はじめに 仕様変更や改修によってプログラムにちょっとしたパラメータやフラグを追加したことはないでしょうか。僕はあります。そしてそれを追加するにあたって そのパラメータはどのような状態を持ち、状態を追加することで機能に影響はあるのか 追加したパラメータによってシステムの正常な動作が阻害されないか(もしくは破綻しないか) 取りうるパラメータのパターン全てで正しく動作するのか これら全てに明確に問題ないと答えられるでしょうか。(僕は無理です) 設計レビューやテスト等で全てをチェックするのはなかなか大変です。何らかの明確な根拠をもって問題ないと言っている人がどの程度いるでしょうか。 人の手によるチェックは限界がありま

            [TLA+] TLA+と形式仕様言語 [目的と準備] | DevelopersIO
          • The TLA+ Home Page

            You'll miss a lot on this web site unless you enable Javascript in your browser. This is the home page of the TLA+ web site. TLA+ is a high-level language for modeling programs and systems--especially concurrent and distributed ones.  It's based on the idea that the best way to describe things precisely is with simple mathematics.  TLA+ and its tools are useful for eliminating fundamental design e

            • <no title> — Learn TLA+

              Intro FAQ What’s New Conceptual Overview TLA+ Core Topics Examples Operators PlusCal Specs Reference Glossary Standard Modules Other Resources Index © Copyright 2022, Hillel Wayne. Created using Sphinx 4.4.0. Styled using the Piccolo Theme

              • July Tech Festa 2021 winter で CockroachDB と TLA+ について話してきました - チェシャ猫の消滅定理

                こんにちは、チェシャ猫です。 インフラ技術のカンファレンス July Tech Festa 2021 winter で、形式手法ツール TLA+ が CockroachDB の設計に使用された事例について発表してきました。公募 CFP 枠です。 www.youtube.com 今回の登壇は、昨年の CloudNative Days Tokyo 2020 と同じ題材を扱っています。ただ、前回より持ち時間が長くなった分、前回のスライドで説明不足だった部分を拡充してあります。特に、CockroachDB 以外の TLA+ 採用事例や、分散システムにおける Chaos Engineering の位置付けについて解説を追加しました。 なお、前回の登壇報告は以下の記事をご参照ください。 ccvanishing.hateblo.jp 当日出た質問 実時間を含む性質 今回の時相論理では「いつか成り立つ」と

                  July Tech Festa 2021 winter で CockroachDB と TLA+ について話してきました - チェシャ猫の消滅定理
                • [TLA+] TLA+の基本的な文法 | DevelopersIO

                  こむろ@札幌です。寒すぎる。 自分の場合、自分なりの理解をしてある程度納得した上でないと文章にまとめられないため、しばらく時間がかかると思うのですがのんびりやっていこうと思います。 はじめに ひとまず前回単純なC言語のプログラムの動作をTLA+で表現するところまで確認しました。今回はTLA+の文法と仕様のチェックについて確認します。 前回のコード 前回のコードは以下の通り。 --------------------------- MODULE SimpleProgram --------------------------- EXTENDS Integers VARIABLES i, pc Init == (pc = "start") /\ (i = 0) Pick == /\ pc = "start" /\ i' \in 1..1000 /\ pc' = "middle" Add1 ==

                    [TLA+] TLA+の基本的な文法 | DevelopersIO
                  • Using TLA+ in the Real World to Understand a Glibc Bug

                    Using TLA+ in the Real World to Understand a Glibc Bug by Malte Skarupke TLA+ is a formal specification language that you can use to verify programs. It’s different from other formal verification systems in that it’s very pragmatic. Instead of writing proofs, it works using the simple method of running all possible executions of a program. You can write assertions and if they’re not true for any p

                      Using TLA+ in the Real World to Understand a Glibc Bug
                    • The TLA+ Home Page

                      You'll miss a lot on this web site unless you enable Javascript in your browser. This is the home page of the TLA+ web site. TLA+ is a high-level language for modeling programs and systems--especially concurrent and distributed ones.  It's based on the idea that the best way to describe things precisely is with simple mathematics.  TLA+ and its tools are useful for eliminating fundamental design e

                      • The TLA+ Home Page

                        Leslie Lamport Last modified on Fri 1 March 2024 at 16:38:51 PST by lamport --> This is the home page of the TLA+ web site. TLA+ is a high-level language for modeling programs and systems--especially concurrent and distributed ones.  It's based on the idea that the best way to describe things precisely is with simple mathematics.  TLA+ and its tools are useful for eliminating fundamental design er

                        • TLA+ Video Course

                          The TLA+ Video Course Last modified 23 October 2021 This is a series of video lectures to teach programmers and software engineers how to write their own TLA+ specifications.  It assumes a basic understanding of programming concepts.  Some knowledge of elementary mathematics, such as might be taught in a beginning university math course for computer scientists, would also be helpful. A Word of War

                          • 【大正解】キーボードはR2TLA-JPV-IVが一番おすすめ!

                            借金を200万円抱えた状態でアフィリエイターとして独立。そこから月収250万円に。アフィリエイトで人生を逆転した僕の体験談やSEOの方法を書いていきます。

                              【大正解】キーボードはR2TLA-JPV-IVが一番おすすめ!
                            • TLA+ - Wikipedia

                              TLA+ is a formal specification language developed by Leslie Lamport. It is used for designing, modelling, documentation, and verification of programs, especially concurrent systems and distributed systems. TLA+ is considered to be exhaustively-testable pseudocode,[4] and its use likened to drawing blueprints for software systems;[5] TLA is an acronym for Temporal Logic of Actions. For design and d

                                TLA+ - Wikipedia
                              • CloudNative Days Tokyo 2020 で CockroachDB と TLA+ について話してきました - チェシャ猫の消滅定理

                                こんにちは、チェシャ猫です。先日行われた CloudNative Days Tokyo 2020 で、形式手法ツール TLA+ が CockroachDB の設計に使用された事例について発表してきました。公募 CFP 枠です。 講演概要 CockroachDB は、Google Spanner の系譜に連なるいわゆる NewSQL データベースの一種です。 強い一貫性や ACID トランザクションといった従来の関係データベースが持つ「良い特徴」を残したまま、従来の関係データベースが苦手としていた水平スケーリングにも優れるのが特徴です。CockroachDB 自身は「地理分散 (geo-distributed) データベース」を標榜しています。 このような CockroachDB の特徴は、内部のデータ保持の方法に由来します。データは内部的には Key-Value レコードの形を取っていて、

                                  CloudNative Days Tokyo 2020 で CockroachDB と TLA+ について話してきました - チェシャ猫の消滅定理
                                • TLA+の社内勉強会スライド公開します - takaha.siの技術メモ

                                  Raftを使ってDFSを作るという仕事を数年前ぐらいから続けています。そのためか最近、形式仕様記述(特にTLA+)とかModel checkingとかTheorem provingとかが私の中でアツいです。TLA+とかAlloyとかVDM++とかSpin周りのやつです。 ソフトウェアの仕様を形式仕様で厳密に書き下して検証、証明するという手法がある!ということ自体は院生時代に見聞きして知ってたんですが「難しそう」とか「一部のすごい人にしか使えなさそう」といった先入観があってなんとなく敬遠してました。正直、当時は自分の身近な問題であると感じられていませんでした。 あれから10年以上たって最近形式仕様記述とかModel checkingとかTheorem provingというものは「必須なものである」という認識がようやく私の中にも芽生えたようです。仕事で分散システムの開発を通じて「これは人間の頭

                                    TLA+の社内勉強会スライド公開します - takaha.siの技術メモ
                                  • Finding Goroutine Bugs with TLA+

                                    My job these days is teaching TLA+ and formal methods: specifying designs to find bugs in them. But just knowing the syntax isn’t enough to write specs, and it helps to have examples to draw from. I recently read Chris Siebenmann’s Even in Go, concurrency is still not easy and thought it would make a good case study for writing a spec. In it, he gives an example of Go code which deadlocks: /*1 */

                                    • C.R.A.C.さんのツイート: "日本政府はシベリア抑留についても、個人請求権は日ソ共同宣言の埒外と明言している。つまりこれが一貫した日本の立場。「我が国国民個人からソ連またはその国民に対する請求権までも放棄したものではないというふうに考えております」(1991年参議院内閣委員会の外務省答弁)https://t.co/vtO8TlA7wh… https://t.co/Va2VDH1I9F"

                                      日本政府はシベリア抑留についても、個人請求権は日ソ共同宣言の埒外と明言している。つまりこれが一貫した日本の立場。「我が国国民個人からソ連またはその国民に対する請求権までも放棄したものではないというふうに考えております」(1991年… https://t.co/Va2VDH1I9F

                                        C.R.A.C.さんのツイート: "日本政府はシベリア抑留についても、個人請求権は日ソ共同宣言の埒外と明言している。つまりこれが一貫した日本の立場。「我が国国民個人からソ連またはその国民に対する請求権までも放棄したものではないというふうに考えております」(1991年参議院内閣委員会の外務省答弁)https://t.co/vtO8TlA7wh… https://t.co/Va2VDH1I9F"
                                      • GitHub - spacejam/tla-rust: writing correct lock-free and distributed stateful systems in Rust, assisted by TLA+

                                        tla+rust → Stable stateful systems through modeling, linear types and simulation. I like to use things that wake me up at 4am as rarely as possible. Unfortunately, infrastructure vendors don't focus on reliability. Even if a company gives reliability lip service, it's unlikely that they use techniques like modeling or simulation to create a rock-solid core. Let's just build an open-source distribu

                                          GitHub - spacejam/tla-rust: writing correct lock-free and distributed stateful systems in Rust, assisted by TLA+
                                        • Introduction to TLA+ Model Checking in the Command Line

                                          Otherwise known as “wait, you mean I can use the TLA toolbox from the command line?” I started playing around with TLA+ and its more programmer friendly variant PlusCal about a year ago. At that time the amount of documentation that was understandable to people like me who do not enjoy reading white papers full of mathematical notation was slim to none. (Today you can buy Hillel Wayne’s excellent

                                            Introduction to TLA+ Model Checking in the Command Line
                                          • Modeling Redux with TLA+ • Hillel Wayne

                                            Update 01/07/19 Greetings from 2019! The good news is that Chicago isn’t yet a radioactive crater. The bad news is almost everything I said about refinement in this article is wrong. I’m working on writing a more in-depth, rigorous treatment of refinement as its own article. But this one is currently explaining something that definitely isn’t refinement. mkay thanks! Update 2020-10-05: I’m probabl

                                            • GitHub - informalsystems/quint: An executable specification language with delightful tooling based on the temporal logic of actions (TLA)

                                              module secret_santa { const participants: Set[str] /// get(recipient_for_santa, S) is the recipient for secret santa S var recipient_for_santa: str -> str /// the bowl of participants, containing a paper piece for each participant name var bowl: Set[str] val santas = recipient_for_santa.keys() val recipients = participants.map(p => get(recipient_for_santa, p)) /// The initial state action init = a

                                                GitHub - informalsystems/quint: An executable specification language with delightful tooling based on the temporal logic of actions (TLA)
                                              • GitHub - tlaplus/tlaplus: TLC is an explicit state model checker for specifications written in TLA+. The TLA+Toolbox is an IDE for TLA+.

                                                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.

                                                  GitHub - tlaplus/tlaplus: TLC is an explicit state model checker for specifications written in TLA+. The TLA+Toolbox is an IDE for TLA+.
                                                • Announcing: Learn TLA+

                                                  tl;dr: online TLA+ manual/advanced techniques/examples here. TLA+ is a tool for testing abstract software designs. I first stumbled on it in 2016 and found it so useful I wrote a free online guide to help others learn it. Then I decided the guide wasn’t good enough and wrote Practical TLA+ in 2018. Then I decided the book wasn’t good enough and needed a second edition. Just kidding! Book’s never g

                                                  • #45 – Why Amazon Chose TLA +

                                                    仕様検証言語 TLA+ の AWS における使用事例について向井が話します。感想などはハッシュタグ #misreading か hello@misreading.chat にお寄せください。 Why Amazon Chose TLA +  | SpringerLink (Google Scholar) How Amazon Web Services Uses Formal Methods Practical TLA+: Planning Driven Development: Hillel Wayne Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers: Leslie Lamport TLA+tlaplus/tlaplus: TLC is an explicit state

                                                      #45 – Why Amazon Chose TLA +
                                                    • kernel/git/cmarinas/kernel-tla.git - Kernel TLA+ specs

                                                      index : kernel/git/cmarinas/kernel-tla.git Kernel TLA+ specsCatalin Marinas aboutsummaryrefslogtreecommitdiffstats BranchCommit messageAuthorAge masterasidalloc: Fix inadvertently removed line from UniqueASIDActiveTaskCatalin Marinas2 years AgeCommit messageAuthorFilesLines 2021-09-10asidalloc: Fix inadvertently removed line from UniqueASIDActiveTaskHEADmasterCatalin Marinas1-17/+19 2021-08-05asid

                                                      • TLA+ is hard to learn

                                                        Surfing Complexity Lorin Hochstein's ramblings about software, complex systems, and incidents. I’m a fan of the formal specification language TLA+. With TLA+, you can build models of programs or systems, which helps to reason about their behavior. TLA+ is particularly useful for reasoning about the behavior of multithread programs and distributed systems. By requiring you to specify behavior expli

                                                          TLA+ is hard to learn
                                                        • TLAとは (ティーエルエーとは) [単語記事] - ニコニコ大百科

                                                          TLA単語 ティーエルエー 4.0千文字の記事 21 0pt ほめる 掲示板へ 記事編集 一覧頭字語でない3文字アルファベット記事関連リンク関連項目掲示板TLA とは「三文字の頭字語(Three Letter Acronym)」または「三文字の略語(Three Letter Abbreviation)」という意味の言葉で、自身もTLAである。 言葉の意味だけを見れば文字の種類を限定してはいないのだが、主にラテンアルファベット三文字の単語に対して用いられる事が多い。ただし、数字を含む単語もTLAと見なされる場合もある(「MI6」など)。 単語の先頭の文字を使ったものをTLAとし、そうでない三文字の単語や三文字を先頭以外の部分から取り出したものはTLAとはいわないが、便宜上当記事の後半で取り上げる。 たとえばWii(1単語)やDQN(ド:Do - キュ:Q  - ン:N),MTV(Music

                                                            TLAとは (ティーエルエーとは) [単語記事] - ニコニコ大百科
                                                          • C2TLA

                                                            & www.cea.fr C2TLA+: A translator from C to TLA+ Amira METHNI (CEA/CNAM) Matthieu LEMERRE (CEA) & Belgacem BEN HEDIA (CEA) Serge HADDAD (ENS Cachan) & Kamel BARKAOUI (CNAM) June 3, 2014 Cliquez pour modifier le style du titre DACLE Division| June 2013 © CEA. All rights reserved | 2 & Outline Introduction General approach Translation from C to TLA+ Memory model Expressions Intra-procedural control

                                                            • Using TLA+ for fun and profit in the development of Elasticsearch - Yannick Welsch

                                                              Elasticsearch is a distributed search and analytics engine based on Apache Lucene. Initially released in 2010, it has quickly become the most popular enterprise search engine, and is commonly used for log analytics, full-text search, operational and security intelligence, business analytics, and metrics use cases. Built as a distributed system since its inception, Elasticsearch effortlessly scales

                                                                Using TLA+ for fun and profit in the development of Elasticsearch - Yannick Welsch
                                                              • Practical TLA+ Now Available

                                                                I am delighted to announce that my book, Practical TLA+, is now available! When I stumbled into TLA+ in 2016 I had no idea it would so define my passions, my values, and my career. I definitely didn’t think I’d be writing a book. But 11 months and 220 pages later, here we are! This is the largest project I’ve ever done and I’m incredibly excited to share it with you all. If this is your first time

                                                                • TLA+ in Practice and Theory<br/>Part 1: The Principles of TLA+

                                                                  TLA+ in Practice and Theory Part 1: The Principles of TLA+ 25 May 2017 This is the first installment in a four-part blog post series about TLA+. Part 2, Part 3, Part 4. A video of a 40-minute talk that covers parts of this series. If you find TLA+ and formal methods in general interesting, I invite you to visit and participate in the new /r/tlaplus on Reddit. Thinking doesn’t guarantee that we won

                                                                    TLA+ in Practice and Theory<br/>Part 1: The Principles of TLA+
                                                                  • GitHub - afonsonf/tlaplus-graph-explorer: A static web application to explore and animate a TLA+ state graph.

                                                                    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

                                                                      GitHub - afonsonf/tlaplus-graph-explorer: A static web application to explore and animate a TLA+ state graph.
                                                                    • TLA+

                                                                      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

                                                                        TLA+
                                                                      • 食わず嫌いだったRealForce 等荷重55gの打鍵感が極上すぎた!RealForce R2 TLA-US5-Ⅳ レビュー

                                                                        RealForceを最初に手に入れるときも、もちろんHHKBとRealForceを触り比べていたんですが、その時は似たようなものだと思っていました。 しかし長年RealForceを使い続けてきた今、改めてHHKBを触るとはっきりと違いを感じることができました。 RealForceの打鍵が「スコスコスコスコ」という感じなら、HHKB Proは「コトコトコトコト」という感じです。 うん、擬音だと全然伝わらないね。 要はHHKBの方がキー一粒一粒しっかりクリックしている感覚があるんですよね。 静電容量無接点方式のキーボードはよく「プチプチを潰しているようで気持ちいい」と例えられたりするんですが、その感覚がHHKBを触ったときの方がより感じられた、ということです。 打鍵感というのは完全に好みで、疲れないので柔らかい方がいいと言う人もいれば、しっかりクリックした感触がほしい、という人もいます。そして

                                                                          食わず嫌いだったRealForce 等荷重55gの打鍵感が極上すぎた!RealForce R2 TLA-US5-Ⅳ レビュー
                                                                        • TLA+チートシート

                                                                          日本語のTLA+に関する文献がほとんど見つからないので、日本語でまとめていきたいと思います。 誤った情報や追記したい情報などはこちらにIssueまたは、PRを送っていただけると助かります。 TLA+の勉強法・学習法 ドキュメントや講義など Leslie Lamport's TLA homepage: ホームページです。 Hyperbook: チュートリアルなどを扱ったHyperbookです。こちらのページからダウンロードが可能です。 TLA video course: TLA+の作者であるLamprtさんの動画教材です。 Specifying Systems: Leslie Lamportによるもので、出版社を通じての注文や個人使用のためのダウンロードにリンクしています。 Learn TLA もっとも詳細にTLA+及びPlusCalの文法や使い方について説明している場所です。現状唯一の情報

                                                                            TLA+チートシート
                                                                          • [TLA+] Transaction Commitの仕様を表現する | DevelopersIO

                                                                            状態遷移図も変更しておきます。 しかしながら、複数のデータリソースを操作する際には、必ずしも全てが成功するとは限りません。何らかの(内的・外的)要因により一部のデータリソースの操作に失敗する場合があるでしょう。 その場合、処理の途中でAbortすることになるため、データリソースの操作を一度実行前まで戻す必要があります。関係のあるデータリソースへの操作を打ち消し、処理途中の中途半端な状態を維持せず、操作前の状態へ自動的に復元させます。つまり 関係するすべてのデータリソースは、操作が正常に行われすべて操作の結果が反映される 関係するすべてのデータリソースは、操作が中断され、すべて操作の結果が反映されていない のいずれか のみ であることが求められます。 TLA+で仕様を記述する TLA+でTransaction Commitの仕様を記述します。モジュール名は TCommit です。 変数・定数

                                                                              [TLA+] Transaction Commitの仕様を表現する | DevelopersIO
                                                                            • TLA+ in Isabelle/HOL

                                                                              I’m a fan and long-term user of the Isabelle/HOL proof assistant. More recently I have been studying Lamport’s TLA+ system which is a popular choice for writing specifications of systems. This post is a slightly tidied-up version of some notes about my early experiences of playing with the implementation of TLA within Isabelle/HOL, to record a handful of obstacles I hit and some techniques I found

                                                                              1