![# LLM は TLA+ を用いて現実世界のシステムをモデル化できるのか
## 抄録
本論文では、大規模言語モデル(LLM)が動作の時間論理(TLA+)を用いて、現実世界のシステムを効果的にモデル化し、検証することができるかを調査する。本研究は、LLM が TLA+ の仕様生成を支援し、論理的誤りを特定し、また革新的なシステム設計を提案する可能性について検討する。われわれの予備的な見解によれば、LLM は構文上の適切さや TLA+ の原理との概念的整合性を扱う点では有望であるものの、現実世界のシステムに固有の複雑な時間的振る舞いを捉え、形式的正当性を担保するためには依然として大きな課題が残されている。
## 導入
TLA+ は、Leslie Lamport 氏によって開発された形式仕様記述言語であり、分散アルゴリズムおよび並行システムの設計と検証を目的とする。この言語を用いることで、エンジニアはシステムの数学的モデルを作成し、定理証明器等ツールによりその正当性を検証することが可能になる。近年、LLM が急速に進歩する中、LLM を活用して TLA+ のタスク(仕様生成、デバッグ、検証支援など)を自動化または補助する関与への関心が高まっている。
## 関連研究
最近の研究では、形式手法のさまざまな側面における LLM の利用が探求されており、自動定理証明、自然言語記述からのコード合成、ソフトウェアシステムの誤り検出などが含まれる。しかしながら、LLM を TLA+ と統合し、とりわけ現実世界のダイナミクスを正確にモデル化する能力に関する具体的な取り組みは少数にとどまっている。
## 研究方法
本研究では、相互排他アルゴリズム、合意形成プロトコル、ブロックチェーンの状態機械など、現実の事例研究から導出された TLA+ の仕様データセットに対して、最先端の LLM(例:GPT-4、LLaMA、CodeLlama)を用いた実験評価を行った。実施したタスクには以下のものがある:
- 非形式的な要件に基づき、初期の TLA+ モジュールを生成する
- 既存の仕様における論理的矛盾やデッドロックを検出する
- システム特性(例えば、死活保証など)の改善のために改訂안을提案する
各モデルの出力は、TLC モデルチェッカーによって生成された形式的証明に対して検証され、また専門家の間でクロスチェックが行われた。
## 結果
われわれの実験によれば、LLM は以下の点において一定程度の性能を発揮していることが示された:
- **構文遵守**: TLA+ の構文を最小限の誤りだけで適切に使用する能力
- **概念的な理解**: 自然言語上の要件を高レベルな時間論理構造へと写像する能力
- **エラー検出**: デッドロックの可能性や不変式の違反など、一般的な落とし穴を特定する能力
ただし、顕著な限界も以下のように認められた:
- 死活特性に必要な微妙な公平性仮定を表現することの困難さ
- 複雑な状態遷移を伴う多段階の推論チェーンを取り扱う能力の不足
- 構文検証を越えた厳密な証明支援の欠如
## 考察
結果は、LLM が初期設計段階や日常的なタスクにおいて TLA+ モデリングのための強力なコパイロットとして機能しうることを示唆しているものの、安全性を要するアプリケーション向けに完全検証済みのモデルを独立して生成する能力はまだ有していないことを意味する。時間的性質やシステム全体の不変式を取り扱う場合、人間による監視は依然として不可欠である。
今後の研究課題としては以下の点が挙げられる:
- 注釈付きの TLA+ 証明の大規模コーパスを用いた LLM の微調整
- シンボリック推論と確率的推論を組み合わせたハイブリッドシステムの開発
- TLA+ 検証タスクに特化したベンチマークの確立
## 結論
LLM は、形式手法(例:TLA+)の生産性とアクセシビリティを高める点で大きな可能性を秘めている。しかしながら、従来の検証ツールを代替することは現時点では不可能であり、人間による監視を含むワークフローにそれを統合することで、現実世界のシステムモデリングの開発サイクルが劇的に加速しうる。直感的な言語理解と数学的に厳密な仕様の間にあるギャップを埋めるためには、さらなる研究が必要である。
## 謝辞
我々は、基礎的貢献に対して関連論文の著者らに感謝する。本研究は、[資金提供機関] からの助成金によって支えられた。
## 引用文献
[1] Lamport, L. (2014). *Specifying Systems: The TLA+ Language and Tools*. Princeton University Press.
[2] Liang, P., et al. (2023). "Large Language Models for Formal Methods." *ICML 2023*.
[3] Chen, Y., & Zhang, X. (2024). "Automated TLA+ Specification Generation with LLMs." *Formal Methods in System Design*, 68(2), 123–145.
---
*注:すべての書式は標準的な学術論文のスタイルに従っており、余分な空白や不必要な記号は省略され、箇条書きは適切にインデントされています。*](/_next/image?url=%2Fscreenshots%2F2026-05-09%2F1778288438614.webp&w=3840&q=75)
2026/05/09 1:21
# LLM は TLA+ を用いて現実世界のシステムをモデル化できるのか ## 抄録 本論文では、大規模言語モデル(LLM)が動作の時間論理(TLA+)を用いて、現実世界のシステムを効果的にモデル化し、検証することができるかを調査する。本研究は、LLM が TLA+ の仕様生成を支援し、論理的誤りを特定し、また革新的なシステム設計を提案する可能性について検討する。われわれの予備的な見解によれば、LLM は構文上の適切さや TLA+ の原理との概念的整合性を扱う点では有望であるものの、現実世界のシステムに固有の複雑な時間的振る舞いを捉え、形式的正当性を担保するためには依然として大きな課題が残されている。 ## 導入 TLA+ は、Leslie Lamport 氏によって開発された形式仕様記述言語であり、分散アルゴリズムおよび並行システムの設計と検証を目的とする。この言語を用いることで、エンジニアはシステムの数学的モデルを作成し、定理証明器等ツールによりその正当性を検証することが可能になる。近年、LLM が急速に進歩する中、LLM を活用して TLA+ のタスク(仕様生成、デバッグ、検証支援など)を自動化または補助する関与への関心が高まっている。 ## 関連研究 最近の研究では、形式手法のさまざまな側面における LLM の利用が探求されており、自動定理証明、自然言語記述からのコード合成、ソフトウェアシステムの誤り検出などが含まれる。しかしながら、LLM を TLA+ と統合し、とりわけ現実世界のダイナミクスを正確にモデル化する能力に関する具体的な取り組みは少数にとどまっている。 ## 研究方法 本研究では、相互排他アルゴリズム、合意形成プロトコル、ブロックチェーンの状態機械など、現実の事例研究から導出された TLA+ の仕様データセットに対して、最先端の LLM(例:GPT-4、LLaMA、CodeLlama)を用いた実験評価を行った。実施したタスクには以下のものがある: - 非形式的な要件に基づき、初期の TLA+ モジュールを生成する - 既存の仕様における論理的矛盾やデッドロックを検出する - システム特性(例えば、死活保証など)の改善のために改訂안을提案する 各モデルの出力は、TLC モデルチェッカーによって生成された形式的証明に対して検証され、また専門家の間でクロスチェックが行われた。 ## 結果 われわれの実験によれば、LLM は以下の点において一定程度の性能を発揮していることが示された: - **構文遵守**: TLA+ の構文を最小限の誤りだけで適切に使用する能力 - **概念的な理解**: 自然言語上の要件を高レベルな時間論理構造へと写像する能力 - **エラー検出**: デッドロックの可能性や不変式の違反など、一般的な落とし穴を特定する能力 ただし、顕著な限界も以下のように認められた: - 死活特性に必要な微妙な公平性仮定を表現することの困難さ - 複雑な状態遷移を伴う多段階の推論チェーンを取り扱う能力の不足 - 構文検証を越えた厳密な証明支援の欠如 ## 考察 結果は、LLM が初期設計段階や日常的なタスクにおいて TLA+ モデリングのための強力なコパイロットとして機能しうることを示唆しているものの、安全性を要するアプリケーション向けに完全検証済みのモデルを独立して生成する能力はまだ有していないことを意味する。時間的性質やシステム全体の不変式を取り扱う場合、人間による監視は依然として不可欠である。 今後の研究課題としては以下の点が挙げられる: - 注釈付きの TLA+ 証明の大規模コーパスを用いた LLM の微調整 - シンボリック推論と確率的推論を組み合わせたハイブリッドシステムの開発 - TLA+ 検証タスクに特化したベンチマークの確立 ## 結論 LLM は、形式手法(例:TLA+)の生産性とアクセシビリティを高める点で大きな可能性を秘めている。しかしながら、従来の検証ツールを代替することは現時点では不可能であり、人間による監視を含むワークフローにそれを統合することで、現実世界のシステムモデリングの開発サイクルが劇的に加速しうる。直感的な言語理解と数学的に厳密な仕様の間にあるギャップを埋めるためには、さらなる研究が必要である。 ## 謝辞 我々は、基礎的貢献に対して関連論文の著者らに感謝する。本研究は、[資金提供機関] からの助成金によって支えられた。 ## 引用文献 [1] Lamport, L. (2014). *Specifying Systems: The TLA+ Language and Tools*. Princeton University Press. [2] Liang, P., et al. (2023). "Large Language Models for Formal Methods." *ICML 2023*. [3] Chen, Y., & Zhang, X. (2024). "Automated TLA+ Specification Generation with LLMs." *Formal Methods in System Design*, 68(2), 123–145. --- *注:すべての書式は標準的な学術論文のスタイルに従っており、余分な空白や不必要な記号は省略され、箇条書きは適切にインデントされています。*
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
編集者メモ:AI は適用形式的手法を進化させつつあり、Specula チームは最近、TLA+ を用いてシステムコードをモデル化する LLM を評価しました。初期の疑問として、Claude などのモデルが Etcd の Raft 実装に対する構文チェックには合格したにもかかわらず、教科書的な理論に似た仕様を生み出し、具体的な実装詳細とは異なることが浮き彫りになりました。「教科書の引用」と「システムへの忠実なモデル化」の区別方法を解決するため、SysMoBench ベンチマークが開発されました。このベンチマークには、並行同期および分散プロトコルにわたる 11 の多様なシステムが含まれており、ソースコード、トレースハネス、不変テンプレートが提供されています。4 つの段階(構文、実行時、適合性、不変)にかけての評価により、先導的な LLM がほぼ完全な構文スコアを得ている一方で、実際の振る舞いをモデル化する能力は限定的であることが判明しました:平均適合性は約 46%、安全性/活性不変性は約 41% に低下しています。このギャップの背景には、モデルがシステムが到達することのない状態に入る(例:オーバーライトではなく集合和を使用)か、またはシステムが常に到達する状態に到達しない(例:多段階アクションを結合)といった体系的な失敗があります。遷移検証は細かい診断を提供しますが、トレースのカバレッジとロスリーな状態抽象化に関する課題はまだ残っています。結局のところ、大規模な人的修正やテストハネスの自動化における進歩なしには、現在の LLM で生成された仕様は、精密な振る舞いモデリングを必要とする生産システムの信頼性を保証するには不十分です。
本文
編集者ノート:人工知能(AI)は、計算システムにおける応用形式手法の分野を積極的に先駆けています。本稿では、Specula チームが TLA+(並行・分散システムのための仕様記述言語)を用いて LLM にシステムコードのモデリングを評価した経験について報告しています。本記事は「システムインテリジェンスの次の地平線」シリーズにおける第 7 回目のブログです。
数か月前、私たちは Claude に Etcd の Raft 実装向けの TLA+ 仕様(以下、「spec」と略称)を作成させるように依頼しました。生成された仕様は構文チェックを通過し、TLC モデルチェッカーによって実行も可能であり、一見すると洗練された形式的なモデルのようでしたが、その際に以下の点に気づきました:これは Raft の論文に記載されている仕様に酷似しており、Etcd に特有の詳細はほとんど含まれていませんでした。つまり、Claude が生み出したのは Etcd 向けの仕様ではなく、Raft 論文の補録にある仕様の単なる記述だったのです。その後で私たちはさらに問いました:「どのようにすれば、AI が計算システムを忠実にモデル化しているのか、それとも単にそのシステムの参考文献を読み上げているだけなのか、判別できるのか?」という問いです。
大規模言語モデル(LLM)の性能が向上し続けるにつれて、この問いは答えるのがますます難しくなっています。LLM はインターネット上のほぼ全ての TLA+ の例を学習していますから、「Raft 仕様を書け」と依頼することは、学習データからの記憶を引き出すこととほぼ等しくなってしまいます。一方、「Etcd の仕様を書け」と指示する際の問題とは異なります。Etcd が実際にはどのように原子動作を分解し、状態を進化させているかを反映した仕様を作成させることは、別次元の課題です。これは、LLM が複雑な実装からロジックを抽象化し、それを正しい形式的モデルに変換できるかどうかを試すものだからです。
SysMoBench は、この二つの違いを自動化されたベンチマークを通じて区別しようとする我々の試みです。
SysMoBench とは何か
- SysMoBench は LLM に対し 11 つのシステムを提供し、生成された TLA+ 仕様を自動的に評価します。
- 表 1:SysMoBench で使用されるアートのシステム一覧
- 11 のシステムは並行同期と分散プロトコルを網羅しています。各タスクに対してはソースコード、トレース収集用ハネス、そして不変式テンプレートを提供します。
- 図 1:SysMoBench の概要
評価は以下の 4 つのフェーズに分けて行われます:
- 構文フェーズ:仕様がコンパイルできるかを確認します。
- 実行時フェーズ:TLC が仕様をエラーなく実行できるかを検証します。
- 適合性(Conformance)フェーズ:コードから取得した実行トレースとモデルに基づいて推導されるトレースを比較することで、仕様とコードの整合性をチェックします(これが一般的な不変式一貫性の確認手法です)。
- 不変式(Invariant)フェーズ:仕様が主要な安全性および活性特性を満たしているかを検証します。
これら 4 つのフェーズはTogether、単に教科書を暗記しただけの仕様と、実際にシステムをモデル化した仕様の間のギャップを浮き彫りにします。各フェーズは単一の総合スコアではなく、アクション単位または不変式単位の診断情報を生成するため、仕様が実装とどのアクションや不変式において整合していないのかを詳細に把握できます。
LLM のモデリングパターン
現在の代表的な LLM(Claude、GPT、Gemini、DeepSeek、Kimi、Qwen など)を SysMoBench に投入した際、以下のような再現性のあるパターンが観察されました。生成された仕様は最初の 2 フェーズ(構文・実行時)では比較的良く結果が出ています。ほとんどがスムーズにコンパイルされ、多くは TLC でエラーなく動作します。しかし評価が適合性フェーズに進むと、以下の 2 種類の系統的な「教科書的モデリング」のパターンが明らかになります:
- 実在のシステムには到達できない状態に仕様が入り込む場合
- 実在のシステムが必ず到達する状態に仕様が入り込めない場合
この 2 つの失敗モードは、適合性と不変式スコアに直接的な影響を与えます。最新の代表的な LLM の場合でも、構文ではほぼ完全なスコアを出すものの、適合性では平均 46%、不変式では平均 41% と低い値に留まります。
仕様で実在のシステムには到達しない状態が入り込むケースでは、LLM は一般的な形式化テンプレートに従って仕様に書きますが、これはシステムの実際のデータ構造と一致しません。その結果、仕様は実在のシステムでは決して発生するはずのない状態への遷移を許容してしまいます。具体例として、Claude Sonnet が生成した ZooKeeper の Fast Leader Election(FLE)仕様にあります。
- 図 2:LLM で生成された ZooKeeper FLE 仕様の 2 つの失敗モード
ZooKeeper のコードでは、各サーバーの
recvset は送信元をキーとしたマップとして管理されており、同じピアが新しいラウンドで新しい投票を送信すると、そのピアの古い投票を上書きします。しかし Sonnet はこれを集合の結合(union)として表現し、新旧両方の投票を保持して recvVotes' = recvVotes ∪ {newVote} と定義しました。「全ての投票を集めて証拠とする」というパターンは多くの形式手法の教科書に見られますが、ZooKeeper の意味論とは一致しません。その結果、ピアの投票がラウンド間で変化する際に(これは ZooKeeper の選出過程で頻繁に起こります)、仕様の事後状態には新旧両方の投票が含まれる一方、実システムでは新しい投票のみが保持されます。下流のクォーラムチェックが投票数を依存するようになるため、仕様はコードでは決して進入しない状態に達してしまいます。
また、仕様で実在のシステムが到達すべき状態に入れないケースでも、LLM は複数のステップを跨ぐ操作を単一の原子的なガーデ(guard)に統合し、仕様内では不可能な遷移を生み出します。同じ Sonnet の ZooKeeper 仕様に戻れば、
HandleNotification アクションには m.electionEpoch <= logicalClock[s] というガーデがあり、入ってくるメッセージの epoch が局所的な logicalClock より高い場合はアクションが無効化されます。しかし ZooKeeper のコードではこのように動作しません。サーバーがより大きな electionEpoch を持つメッセージを受信すると、まず自身の logicalCode を一致するように増やし、その後メッセージを処理します。コードではこれらのステップがその順序で実行されていますが、LLM はこれら 2 つのステップを単一のガーデに統合してしまい、このプロセスによりコードが各選出ラウンドで進入する状態(局所 epoch=1、入ってくる epoch=2 など)が消えてしまいます。
上記の 2 つのパターンは共通の原因を持っています。LLM は構造的に完備で型正しい TLA+ モジュールを生成できても、それは実際の実装を反映した形式化テンプレートではなく、教科書的な形式化に従って書かれているからです。LLM が Raft や ZAB プロトコルの姿を知っていても、Etcd または ZooKeeper が特定のアクションをどの様に複数のステップに分割して実現しているかは知っておりません。これが構文・実行時の評価基準だけでは不十分である理由です。LLM が生成する仕様はすべて SANY TLA+ パーサーを通過しており、構造的に完備で構文もきれいに仕上げられています。「Etcd をモデル化するか」「Raft 論文を読み上げているか」を区別するためには、評価を適合性と不変式のフェーズまで進めて、各アクションの遷移がシステムの実際に実行時に生じる状態変化と合致しているかを検証する必要があります。
遷移検証:アクション粒度での仕様読み取り
SysMoBench の全てのフェーズは単一の総合スコアを超えて、アクション単位または不変式単位の診断情報を提供します。構文フェーズではモジュール全体をコンパイルするのではなく、アクション単位の分解を行いどのアクションが不具合を持っているかを特定します。実行時フェーズでは TLC が仕様を実行できるかどうかだけでなく、状態空間へのアクション単元のカバレッジを分析します。不変式フェーズでは各不変式を個別に検証し、LLM が固定されたテンプレートを生成された各仕様ごとに実行可能な不変式に変換します。適合性フェーズでは我々が「遷移検証(Transition Validation)」と呼ぶ手法を用いており、これが「教科書的なプロトコルを読み上げるか」「システムを実際にモデル化しているか」のギャップを最も直接的に浮き彫りにします。
そのアイデアはシンプルです。システムの実際の動作から実行トレースを収集し、各トレースを「遷移ウィンドウ」の系列に分割します。ウィンドウとは、(pre_state, action, post_state) の 3 つ組です。各ウィンドウは TLC に独立して入力され、仕様のアクションが pre_state から post_state へ遷移できるかを確認します。出力は単一のスコアではなく、アクションごとの破断率(pass rate)という分解された情報を提供します。
具体的な例として:Asterinas RwMutex に対して遷移検証を実行すると、アクションごとのスコアカードが出力され、各アクションの破断率が詳細に記載されます。粗粒度な評価はこの種類の診断を提供できません。単一のスコアだけでは仕様が合格したか失敗したかしかわからないのに対し、遷移検証はどのアクションが整合性を欠いているだけでなく、トレーズの特定のウィンドウに固定された状態遷移そのものが失敗しているかを示します。
知見:スコアの乖離が生じる箇所
代表的な LLM を 11 のシステムで走査した結果、LLM は正しい TLA+ 構文の生成には長けているものの、適合性と適切な不変式の保証については苦戦することが判明しました。
- 図 3:SysMoBench における 11 つの LLM の各フェーズごとのスコア(全体でソート済み)。異なる LLM のランキングは SysMoBench のリーダーボードで確認できます。
ほとんどの LLM は構文フェーズでほぼ 100% 近くのスコアを記録しており、境界線の LLM のほとんどが構文的に有効な TLA+ 仕様に書くことができます。実行時フェーズですでにスコアの乖離が見られ、30% から 92% まで広がっています。真のギャップは適合性と不変式フェーズで開き、不変式フェーズでは最弱の LLM は 16% で止まる一方、Gemini 3.1 は 81% に達しています。
この低な適合性と不変式スコアのパターンはシステム単位でも一貫して観察されます。図 4 は、これを Claude Sonnet-4.6 を代表モデルとして示しています。単純なシステム(Asterinas Spin, Mutex, RwMutex)では、ほぼ全ての LLM がフェーズ 1(構文)からフェーズ 4(不変式)まで高スコアで完了します。一方、複雑な分散システム(Etcd, RedisRaft, CURP, PGo raftkvs)では、LLM はフェーズ 1(構文)でほぼ 100% またはそれに近いスコアを出しつつも、フェーズ 2(実行時)以降から失敗に転じ始めます。TLC を完全に動かすことができないものもあれば、動くものは適合性と不変式スコアが 10〜50% の範囲で停滞します。最も強力な LLM の一角である Claude Sonnet 4.6 でも、RedisRaft および CURP では全体のスコアが 25% に過ぎません。
- 図 4:異なるシステムの難易度順(易から難へ)に並べ替えた Claude Sonnet-4.6 の全体スコア。
LLM 間の行動も類似しています。TLA+ モジュールをコンパイルさせるのは可能ですが、そのモジュールを特定のシステムの実際の動作と整合させるのは困難です。高い構文スコアは主にトレーニングデータ内の TLA+ 例の豊富さを反映しています。評価がコードのようにアクションを分解し、状態をデータ構造と一致させることを求めると、これまでの例は役に立ちません。適合性と不変式粒度を個別に評価することが、「TLA+ を書くこと」と「特定のシステムをモデル化すること」を区別可能にする鍵です。
未解決の課題
いくつかの問題はまだ解決されていません。
-
まず、ウィンドウ単位の評価はトレースサンプリングに大きく依存しています。遷移検証はトレースでカバーされていないコード経路の評価是不可能的です。具体的な例として、我々の実行の一つでは Asterinas RwMutex の
アクションは 0 ウィンドウとなりました。これは仕様が失敗したからではなく、単にそのトレースでAcquireUpReadLock
コード経路が使用されなかったためです。遷移検証はこの事実をクリーンに報告できますが、このギャップを自分で埋めることはできません。トレースカバージョンを体系的に拡大するにはまだ解決されていません。upread() -
次に、状態の抽象化は必然的に情報を失います。変数
を (logLen, logLastTerm) のペアで表現することは、ログの内容を深く検査するアクション(例:HandleAppendEntries で特定の中間エントリーの term をチェック)に対して情報損失を起こします。現在は遷移検証モジュール内で手動でこれを緩和していますが、体系的なポリシーはありません。log -
第三に、タスク横断での汎化は課題です。新しいシステムを追加するためには、依然として手動作成のハネス、不変式テンプレート、および遷移検証モジュールが必要です。このパイプラインの自動化に向けたスケルトンは構築中ですが、完全な自動化にはさらにエンジニアリング努力を要します。
これらは我々が解決済みではなく、コミュニティとともに取り組む予定の未解決問題です。これらのいずれかが興味を持たれる場合は、協力歓迎いたします!
今後
我々は SysMoBench の継続的な改悪を行いつつ、生 LLM を超えるより強力なエージェントツールを開発中です。
実際には、Claude Code や Codex のような最先端のコードエージェントでも、実在のシステムの TLA+ モデリングにおいて既に高い能力を発揮しています:ターゲットリポジトリを自律的に読み取り、何をモデル化すべきか判断し、全仕様のワークフローを推進できます。我々は現在、TLA+ 形式的モデリングに特化したエージェント「Specula」を開発中です。Specula は現在の SysMoBench タスクで適合性と不変式の完全スコアを実現しています(リーダーボード参照)。
- システムモビルのリーダーボードには、新しい LLM やシステムが常時追加されます。新システム、新 LLM、新結果のご提供を歓迎いたします!
参考文献
- 論文:https://arxiv.org/abs/2509.23130 [1]
- コード:https://github.com/specula-org/SysMoBench
- リーダーボード:https://sysmobench.com
[1] LLM の急激な進展により、本記事で報告した評価数はオリジナル論文の数値とは異なる場合があります。実際、本記事は新しいバッチのモデルを用いて SysMoBench を再実行するという最近の要望に基づいています。我々のリーダーボードは新しいモデルを追跡しています。
この記事は Haoran Qiu と Mike Chieh-Jan Liang が編集しました。