atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
TLA+メモ@ウィキ
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
広告非表示(β版)
ページ一覧
TLA+メモ@ウィキ
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
TLA+メモ@ウィキ
広告非表示 広告非表示(β)版 ページ検索 ページ検索 メニュー メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • TLA+メモ@ウィキ
  • TLA+ TooolBox

TLA+メモ@ウィキ

TLA+ TooolBox

最終更新:2023年05月14日 19:26

tlaplus

- view
メンバー限定 登録/ログイン

TLA+ ToolBox


TLA+にはToolBoxというeclipseベースの公式のIDEが付属する。

テキストエディタのフォントについて


デフォルトではテキストエディタで日本語が表示されない。コメントに日本語を使用すると文字化けしてしまう。
テキストエディタのフォントを変更することで日本語が表示される。
テキストエディタのフォント設定はFile > Prefernce > General > Appearance > Colors and Fonts から変更できる。

フォントについて


MSゴシックでは”\”(バックスラッシュ)が"\”(円マーク)になってしまうため、他のフォントがよい。例えば以下がある。

プログラミングフォント 白源 (はくげん/HackGen)

エラー表示について


以降で説明する各設定画面にエラーがある場合、控えめな小さい赤い×印が表示される (赤枠で囲った部分)。


Model Overview


TLA+ ToolBoxで作成した仕様に対してモデル検査を行うにはSpec Exploerから“New Model”を選択し、モデルを作成する。
Model Overviewからチェック内容を設定し、チェックを行う。


Model description


モデルの詳細について記述するスペース。

What is the behavior spec?


項目 内容
Initial predicate and next-state relation 初期状態と次の状態の関係を指定し、状態遷移を検証する。
Temporal formula 時相理論を使用した検証を行う。
No behavior spec この項目を選択した場合、モデルチェックについては何も行われない。
Model Checking Results PageにあるEvaluate Constant ExpressionのExpressionに式を入力し、
実行ボタンを押すことでValueに式の評価結果が表示される。式をテストしたいときに使う。

What is the model?


モジュール内にCONSTANTSで定数を定義すると、このセクションに定数が表示される。定数の値を定義することができる。


上記ではCONSTANT に “Capacity”を定義している。What is the model? のセクションで表示されている”Capacity”を選択し、
Editボタンを押下すると以下のような画面が表示され、値を定義することができる。


定数の定義については型(Type)の定数を参照。

What to check?


モデルに対してTLCがチェックする内容を指定する。

  • Deadlock
主に並行処理を検証する際に使用する。awaitは条件が満たされるまでプロセスの実行を除外する。すべてのプロセスが足止めをされた場合、TLCは実行可能なステップがなくなり、デッドロックと判断する。また、単一のプロセスの場合であってもNextで次に実行可能なステップが存在しなかったときに発生する。

  • Invariants
不変条件を設定する。式以外にも演算子を定義することができる。不変条件とは常にある条件が成り立つことを示す。例えば車用の信号と歩行者用の信号が同時に青になること、銀行口座の残高がマイナスになるといったことが一瞬でも存在しないことを示す。

  • Properties
時相論理を使った活性検査を行う。いつかは必ず何かの条件が成立するなどの検証に使われる。例えば歩行者はいつか横断歩道を渡れる。銀行口座に送金した金額は必ずいつか反映されるなど。
時相論理の[ ]とInvariantsは同じ意味であるのでInvariantsとの使い分けは微妙である。

補足:活性検査はマルチスレッドに対応していないため、Invariantsで検証可能であればそちらを使う方がチェックにかかる時間は少なくて済む。

How to run?


TLCが使用するメモリ、スレッド数等を指定することができる。
‟Tune these parameters and set defaults”を選択するとTLC Optionsタブが開き、より詳細な設定をすることができる。

Spec Options


Model Overview画面にて”Additional Spec Options”をクリックするとSpec Optionsタブが表示される。


Additional Definitions


状態制約や定数の定義で使用する演算子を追加することができる。定数用の複雑なセットアップが必要なときに役立つことがある。

Model Values


モデル値の集合を定義できる。

State Constraint


状態遷移の制限をかける。ここで定義された制約は常にTRUEとなる。
探索する状態空間が大きい場合に制約をかけることで探索範囲を限定し、現実的な時間で検証できることができる。
たとえばキューの長さをLenとしたとき”Len < 10”とするとLenは10未満に制限される。
除外された状態は検証されないため制約条件への違反を見逃す可能性はある。

Definition Override


定義済みの演算子の定義を上書きできる。

Action Constraint


State Constraintと同様、何らかの制約を掛けることができるようだ。

TLC Options


Model Overview画面にて“Additional TLC Options”をクリックすると表示される。


Checking Mode


  • 「Depth-first」にチェックをつけると深さ優先探索になる。
  • Simulation Modeは全探索からランダム探索に切り替える。非常に大きな状態空間を全探索する代わりに、小さな状態空間で探索後、本来の状態空間をランダム探索して全探索の代わりとする場合などに使う。

Model Checking Results


モデル検査の結果が表示される。

Evaluate Constant Expression


“No Behaviro Spec”にチェックをつけることでモデル検査を実行せず、”Expression”内に記述した式を評価することができる。
仕様内に記述した定数、演算子は”Expression”内でも参照可能で仕様の記述中に式を試したい時などに利用する。
「TLA+ TooolBox」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • ModelOverview_SS.png
  • MODULE_diehard.png
  • SpecOptions_SS.png
  • TLAToolBox_Error.png
  • TLCOptions_SS.png
  • WhatisModel_SS.png

[Amazon商品]


TLA+メモ@ウィキ
記事メニュー

メニュー

  • トップページ
  • TLA+とは
  • ボイラープレート
  • 型 (Type)
  • 文法 (Syntax)
  • PlusCal構文
  • 時相論理 (temporal logic)
  • TLA+ TooolBox
  • よく使う表現
  • 例題


リンク

  • The TLA+ Home Page
  • TLA+ Foundation
  • TLA+ GitHub
  • TLA+ Video Course (YouTube)
  • Learn TLA+
  • @wiki
  • @wikiご利用ガイド


アクセス

今日: -
昨日: -
合計: -


ここを編集
記事メニュー2

人気のページ

  • TLA+とは
  • PlusCal構文
  • 食事する哲学者の問題
  • トップページ
  • 型 (Type)
  • 文法 (Syntax)
  • 時相論理 (temporal logic)
  • 例題
  • うそつき牛(レイトン教授)
  • ボイラープレート

更新履歴


編集履歴

取得中です。

ここを編集
最近更新されたページ
  • 178日前

    TLA+とは
  • 178日前

    メニュー
  • 553日前

    PlusCal構文
  • 737日前

    型 (Type)
  • 738日前

    時相論理 (temporal logic)
  • 755日前

    文法 (Syntax)
  • 893日前

    川渡り問題
  • 894日前

    例題
  • 898日前

    うそつき牛(レイトン教授)
  • 898日前

    食事する哲学者の問題
もっと見る
最近更新されたページ
  • 178日前

    TLA+とは
  • 178日前

    メニュー
  • 553日前

    PlusCal構文
  • 737日前

    型 (Type)
  • 738日前

    時相論理 (temporal logic)
  • 755日前

    文法 (Syntax)
  • 893日前

    川渡り問題
  • 894日前

    例題
  • 898日前

    うそつき牛(レイトン教授)
  • 898日前

    食事する哲学者の問題
もっと見る
ウィキ募集バナー
急上昇Wikiランキング

急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!

  1. 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  2. デジタルモンスター まとめ@ ウィキ
  3. Last Z: Survival Shooter @ ウィキ
  4. GUNDAM WAR Wiki
  5. ホワイトハッカー研究所
  6. オバマス検証@wiki
  7. アニヲタWiki(仮)
  8. とある魔術の禁書目録 Index
  9. MADTOWNGTAまとめwiki
  10. beatmania IIDX SP攻略 @ wiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ゲームカタログ@Wiki ~名作からクソゲーまで~
  3. MADTOWNGTAまとめwiki
  4. 初音ミク Wiki
  5. ストグラ まとめ @ウィキ
  6. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  7. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  8. 検索してはいけない言葉 @ ウィキ
  9. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  10. 英傑大戦wiki
もっと見る
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MADTOWNGTAまとめwiki
  2. フォートナイト攻略Wiki
  3. MadTown GTA (Beta) まとめウィキ
  4. 首都圏駅メロwiki
  5. Last Z: Survival Shooter @ ウィキ
  6. まどドラ攻略wiki
  7. 駅のスピーカーwiki
  8. 魔法少女ノ魔女裁判 攻略・考察Wiki
  9. 漢字でGO 問題集 @wiki
  10. ちいぽけ攻略
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 【移転】Miss AV 見れない Missav.wsが見れない?!MissAV新URLはどこ?閉鎖・終了してない?missav.ai元気玉って何? - ホワイトハッカー研究所
  2. ブラック・マジシャン・ガール - 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  3. 真崎杏子 - 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  4. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  5. ブラック・マジシャン・ガール - アニヲタWiki(仮)
  6. ゴジュウユニコーン/一河角乃 - アニヲタWiki(仮)
  7. 参加者一覧 - ストグラ まとめ @ウィキ
  8. 参加者一覧 - MADTOWNGTAまとめwiki
  9. Pokémon LEGENDS Z-A - アニヲタWiki(仮)
  10. 辻 伸弘(NTTデータ先端技術株式会社) - IT人材像 @ ウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.