Prediction: AI will make formal verification go mainstream

2025/12/17 6:14

Prediction: AI will make formal verification go mainstream

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

記事は、人工知能がソフトウェアが仕様を満たしていることを数学的に証明する「形式検証」を、ニッチな研究活動から日常のエンジニアリング実務へと導くと主張しています。Coq、Isabelle、Lean、F*、Agda などの証明支援ツールはすでに OS カーネル、コンパイラ、暗号スタックなど大規模システムを形式的に検証することを可能にしています。現在では言語モデル型コーディングアシスタントが実装コードとそれに付随する証明スクリプトの両方をドラフトでき、極小の検証済みチェッカーは無効な証明を拒否し、AI エージェントが幻覚(hallucinate)した場合には再試行を強制します。2009 年に公開された seL4 マイクロカーネル(8,700 行の C コードで 20 人年と 20 万行の Isabelle コード)が示すように、従来は労力集約的な検証が行われてきましたが、世界中で数百人程度の専門家しかそのような証明を作成できず、コストはバグ修正費用を上回ることも多いです。著者は AI がこれらのコストを低減するにつれて、より多くのソフトウェアが形式検証され、人間によるレビューではなく AI 生成コードに依存するようになると予測しています。残された最大の障壁は正確な仕様書を書くことです——仕様書作成は証明より容易ですが、それでも専門知識を要します。AI は自然言語での要求を形式的に翻訳する手助けができるかもしれませんが、ニュアンスの損失リスクがあります。広範な採用はバグと脆弱性を削減し、エンジニアリングワークフローを再構築し、仕様書作成に関する新たなスキルを要求しますが、文化的受容こそが主流化への主要障壁となります。

本文

マーティン・クレップマン(Martin Kleppmann)著、2025年12月8日発表


AIがソフトウェア開発に与える影響については多く語られていますが、私がまだ目にしたことのない角度があります。それは「AIが長い間マイナーだった形式的検証を主流のソフトウェア工学へ導入する」という考えです。

Coq、Isabelle、Lean、F*、Agda などの証明支援ツールや証明志向プログラミング言語は長年存在します。これらを使うと、あるコードが満たすべき正式仕様を書き、そのコードが常にその仕様を満たしていることを数学的に証明できます(想定外のエッジケースでも)。こうしたツールはオペレーティングシステムカーネル、C コンパイラ、暗号プロトコルスタックなど、大規模な形式的検証済みソフトウェアを開発する際に使われています。

現在、形式的検証は主に研究プロジェクトで利用されており、産業界のソフトウェアエンジニアが使用するケースは稀です(医療機器や航空機などの高信頼性領域を除く)。その理由は、証明を書くことが非常に難しく(博士号レベルの専門知識が必要)かつ労力が大きいからです。

例えば 2009 年時点で、形式的検証済み seL4 マイクロカーネルは C コードが 8,700 行しかなかったものの、Isabelle のコードで 20 人年と 200,000 行を要しました。実装行一つにつき 23 行の証明が必要だったわけです。このような証明を書ける人は世界に数百名程度しかおらず、証明システムへの深い知識が必須です。

簡単に言えば:ほとんどのシステムではバグによるコストの期待値が、バグを排除するための形式的手法のコストよりも低くなります。バグは負の外部性であり(ソフトウェア開発者がその費用を負担しないことが多い)、たとえ負担したとしても、形式的検証は難しく高価です。

それは最近までの話でした。LLM ベースのコーディングアシスタントは、実装コードだけでなくさまざまな言語での証明スクリプトを書けるようになってきています。専門家がプロセスを導くことは変わりませんが、数年以内に完全自動化が現れる可能性があります。その時点で、形式的検証の経済学は劇的に変わります。

もし形式的検証が格段に安価になれば、私たちはもっと多くのソフトウェアを検証できるようになります。さらに AI が必要とする検証は増えるでしょう:人間が AI 生成コードをレビューする代わりに、AI に「出力が正しいこと」を証明させたいと思います。もしそれが可能なら、私は手作業で書かれたコード(その多くは職人のようなバグを含む)よりも AI が生成したコードを選びます。

LLM で証明スクリプトを書くことは最適な応用の一つだと主張します。もし LLM が幻覚的に間違いを生じても、証明チェッカーが無効な証明を拒否し、AI に再試行させます。証明チェッカー自体は少量の検証済みコードで構成されているため、無効な証明をスルーすることはほぼ不可能です。

それでもソフトウェアが瞬時にバグゼロになるわけではありません。検証が自動化されると、課題は仕様の正確な定義へ移ります――証明された性質が本当にあなたが重要視するものかどうかを保証することです。形式的仕様の読み書きには依然として専門知識と慎重な思考が必要ですが、手書きで証明を書くよりは遥かに簡単で迅速です。これは進歩と言えるでしょう。

さらに、AI エージェントが仕様作成を支援し、形式言語と自然言語の間を翻訳する役割も担えると想像できます。微妙なニュアンスが失われるリスクはありますが、そのリスクは管理可能に思えます。

コードの高レベルで宣言的なプロパティを指定し、AI に実装と証明を自動生成させることができれば、ソフトウェア開発の性質は変わります。私たちは AI が生成したコードを検査する必要がなくなるでしょう――コンパイラが機械語を生成するように。

まとめ

  1. 形式的検証は劇的に安価になろうとしている。
  2. AI が生成したコードには形式的検証が必要で、人間のレビューを省くことができる。
  3. 形式的検証の精度は、LLM の不確実かつ確率的な性質を補完する。

これらを総合すると、形式的検証は近い将来主流になると予測されます。技術面でなく、人々が「形式手法が実務上で実用可能だ」と認識する文化的シフトが制約となるでしょう。


この記事がお役に立ったら、Patreon で私をサポートしてください。新しい記事をお知らせしたい場合は Bluesky や Mastodon をフォローするか、メールアドレスをご入力ください(住所は第三者へ渡さず、スパム送信も行わず、いつでも退会可能です)。

同じ日のほかのニュース

一覧に戻る →

2025/12/17 1:54

alpr.watch

## Japanese Translation: 米国全土の自治体は急速に監視技術を導入しており、既に8万台以上のカメラが設置されています。 新しいプラットフォーム **alpr.watch** は、市議会の議題リストから「flock」「license plate reader」「ALPR」などのキーワードをスキャンし、それぞれの議論をマップ上にピン留めします。住民はこれらのシステムについて議論が行われている場所を確認でき、必要に応じて行動を起こすことができます。ユーザーはメールアドレスで登録すると、自分のエリア内の会議通知を受け取ることが可能です。 12月中旬以前に収集された全データは未検証です。今後提出される情報は正確性を確認するためにモデレートされます。 **ALPR** システムは、24時間365日すべての通行車両からナンバープレートデータを取得し、読み取り、保存します。最大規模のメーカーの一つである **Flock Safety** は、そのユニットを直接近隣住民や警察署に販売しています。カメラは機関・管轄区域間でデータを共有し、数百万の米国人を追跡する監視ウェブを構築します。これらのシステムは、意図された範囲を超えて拡張されることが多く、例えば移民取り締まりに使用されたり、恒久的なインフラストラクチャーとなったりします。 Electronic Frontier Foundation(EFF)、ACLU、Fight for the Future、STOP、Institute for Justice、および地域コミュニティグループなどのプライバシー擁護団体は、すでにこれらの動向を監視しています。 *この改訂された要約はリストからすべての主要ポイントを反映し、未確認推測を含まず、メインメッセージを明確かつ簡潔に保っています。*

2025/12/17 4:20

No Graphics API

2025/12/17 5:52

Ty: A fast Python type checker and LSP

## Japanese Translation: > Tyは、Rustで書かれた新しい超高速Python型チェッカー兼言語サーバーで、mypy、Pyright、Pylanceなどのツールを置き換えることを目指しています。 > Astralのベータリリースでは、Tyがわずか4.7 msで診断情報を再計算できることが示されており、これはPyrightの80倍、Pyreflyの500倍の速度です。これは、変更されたファイルのみを再実行する増分解析アーキテクチャのおかげです。 > このツールはRustスタイルのエラーメッセージを採用し、第一級インターセクション型、到達性分析、高度な縮小などの高度な型機能を提供します。また、Go To Definition、Symbol Rename、Auto-Complete、Auto-Import、Semantic Syntax Highlighting、および Inlay Hints などの標準的な LSP 機能も備えており、VS Code 拡張機能が利用可能です。 > インストールは簡単で、`uv tool install ty@latest` または VS Code 拡張機能を通じて行えます。Ty は MIT ライセンスの下で動作し、Rust、Elixir、および Python タイピングコミュニティから数十人の開発者による貢献を受けています。 > Astral はすでに自社プロジェクト(uv と Ruff)で Ty を独占的に使用しており、本番環境での利用を推奨しています。安定版は来年リリース予定で、完全な Python タイピング仕様対応、バグ修正、および Pydantic や Django などのライブラリへの第一級サポートが追加されます。 > 長期的な目標としては、Ty の意味解析機能を Astral ツールチェーン全体に拡張し、デッドコード除去、未使用依存関係検出、CVE 到達性分析、型感知リントなどを実現して、大規模 Python コードベースでの生産性向上を図ることが挙げられます。 *この改訂された概要は、元のリストからすべての重要ポイントを捉えつつ、言語を簡潔かつ明瞭に保っています。*