F* 無料

-

(F スターと発音) は、Microsoft Research、Inria、およびその他の機関によって共同開発された証明指向のプログラミング言語です。依存関係の種類、SMT 自動検証、コード抽出 (OCaml、F#、C、Rust) をサポートしています。 TLS 実装 (miTLS)、暗号プロトコル検証 (Everest Project) など、セキュリティ クリティカルなシステムの正式な検証に広く使用されています。 Pulse 拡張機能 (同時命令型プログラム検証)、KaRaMeL/Vale ツールチェーン (C/Rust/ASM 抽出) が付属しています。 2026 年からは、AI Agent の補助証明機能 (proof-copilot) と MCP サーバーが追加されます。

F* 製品インターフェース

F*: 証明指向プログラミング言語および形式的検証プラットフォーム

コアパラメータと統計

プロジェクト 仕様
プロジェクト名 F*(エフスター)
カテゴリー 証明指向プログラミング言語 / 形式的検証ツール
オープンソースライセンス アパッチ2.0
GitHub スター 3.1K+
プログラミング言語 OCaml (コンパイラー実装)、F* (ブートストラップ)
納品形態 コンパイラ CLI / Docker / Nix / オンラインエディタ
対象ユーザー セキュリティエンジニア、形式手法研究者、暗号エンジニア
コアエンジン Z3 SMT ソルバー
コード抽出ターゲット OCaml、F#、C、Rust、ASM (Vale 経由)
現在のバージョン v2026.07.12 (日付バージョン番号、月あたり 1 ~ 2 バージョン)
コアスポンサー Microsoft Research、インリア、ERC (欧州研究評議会)

コアパラメータの解釈: F の中心概念は「型チェックは検証である」です。依存型システムで書かれたプログラムの場合、型チェックに合格することは、プログラムがその正式な仕様を満たしていることを意味します。 Coq や Isabelle/HOL などの古典的な証明アシスタントとは異なり、F は証明義務を自動的に完了するために Z3 SMT ソルバーに大きく依存しており、手動証明の作業負荷を大幅に軽減します。 3.1K GitHub Stars は、ユーザー ベースが高度に専門化されたニッチな分野である形式検証の世界では立派な数です。世界トップクラスの研究機関から 138 名の寄稿者が参加しています。プロジェクトは、月に 1 ~ 2 バージョンの反復リズムを維持します。 93 を超えるリリースは、アカデミック ツールの中でも高頻度で反復されています。 Apache 2.0 ライセンスにより、商用利用と再配布の自由が保証されます。

ユーザーと市場の認識

F* の市場認知は、広範な商用ユーザー数によるものではなく、主に主力プロジェクトにおける学術的影響とエンジニアリングの検証によってもたらされます。

寸法 データ
GitHub スター 3,100+
GitHub フォーク 258
寄稿者 138+
リリース数量 93+
学術論文出版 PLDI、POPL、CCS、IEEE S&P およびその他のトップカンファレンス
主力プロジェクト miTLS (TLS 1.3 認証)、Everest (HTTPS フルスタック)、HACL* (暗号化ライブラリ)
本番展開 Mozilla Firefox、Linux カーネルへの展開
AI支援による証明 証明副操縦士 (2026+)
コミュニティチャンネル Zulip (24 ~ 48 時間対応)

学術的な影響: 関連する論文は、PLDI、POPL、CCS、IEEE S&P などの主要なコンピューター サイエンス会議で発表されました。 「Dependent Types and Multi-Monadic Effects in F*」(POPL 2016) はこの分野の古典的な文書であり、引用数は増え続けています。

フラッグシップ検証プロジェクト: miTLS (F で正式に検証された TLS 1.3 プロトコルの実装) は、F を使用して数万行の工業用コードを検証するエンジニアリングの実現可能性を実証します。 Everest プロジェクトは、TLS、暗号化アルゴリズム (AES、ChaCha20、Curve25519)、証明書解析、HTTP ヘッダー、その他のコンポーネントを含む、F を通じて HTTPS プロトコル スタック全体を検証します。 HACL (Authenticated Cross-Platform Crypto Library) は、Mozilla Firefox、Linux カーネルなどの実稼働環境に導入されており、F* 検証済みのコードを数十億のユーザーのブラウザに安全に導入できることが証明されています。

業界での採用: Microsoft はコア セキュリティ コンポーネントを検証するために社内で使用され、一部の金融テクノロジー企業は暗号化プロトコルの実装を検証するために F* を使用し、航空宇宙分野では主要なシステム モジュールの正式な検証を実行しています。導入ユニットの数は限られていますが、それぞれのケースには非常に価値の高いセキュリティ インフラストラクチャが含まれます。

コストメリット

F* は完全に無料のオープンソース ツールです。中心となるコストはソフトウェア ライセンスではなく、学習曲線です。

コスト ディメンション F* コック イザベル/HOL ダフニー
ライセンス料 $0 (Apache 2.0) $0 (LGPL) $0 (BSD) $0 (マサチューセッツ工科大学)
自動化の程度 SMT 主導、高度に自動化 主に手動検証 自動と手動の両方 SMT 主導、高度に自動化
コード抽出 OCaml/F#/C/Rust/ASM OCaml/Haskell/スキーム 限定 C#/Java/Python/JS
学習曲線 中上級 中上級
セキュリティ検証フィールド TLS/暗号化/プロトコル (成熟版) コンパイラ/数学 OS/スケジューリング/数学 ソフトウェアエンジニアリング
AI支援による証明 ✅ 証明副操縦士 (2026+) ⚠️ いくつかのツール ❌限定 ❌限定
エンタープライズサポート ❌ 公式の商用サポートなし ✅ コンサルティング/トレーニングが利用可能 ✅ コンサルティング/トレーニングが利用可能 ✅ AWS (ビジネス版)

コスト分析: F* の SMT 主導の自動校正は、主流の校正アシスタントの中で最も自動化されており、通常、同じ検証タスクに必要な手動校正作業は少なくなります。ただし、この利点の前提条件は、ユーザーが依存関係タイプ システムを習得することです。学習曲線は、正式な検証ツールの一般的なしきい値です。 proof-copilot(2026)の導入により、新規ユーザーの敷居が低くなることが期待されますが、実際の効率向上効果はまだ検証段階です。

アーキテクチャとコア機能

F* のシステム アーキテクチャは、「証明はプログラミングである」という概念に基づいて構築されています。

「」 F ソースコード (依存タイプ + 効果システム) ↓ F タイプチェッカー/検証条件ジェネレーター ↓ ┌─── Z3 SMTソルバー(証明義務を自動証明)───┐ ↓ ↓ 自動認証は合格しましたが、認証義務は未解決です ↓ ↓ コード抽出ツール ユーザー提供の補助証明 ↓ ↓ OCaml / F# / C / Rust / ASM (Vale) 型チェック完了 「」

  • 依存型システム (コア エンジン): 型システムは値依存型 (依存型) に基づいており、型の事前条件、事後条件、および不変条件の表現を可能にします。たとえば、 val sqrt: x:float{x >= 0.0} -> y:float{y >= 0.0 && y*y == x} は平方根関数を宣言します。入力は非負で、出力は非負であることが保証され、二乗は入力と等しいです。
  • SMT 自動検証: Z3 ソルバーを利用して、ほとんどの証明義務を自動的に検証します。ユーザーが仕様を作成すると、F* コンパイラーが Z3 が解決するための検証条件 (VC) を自動的に生成します。
  • マルチオブジェクト コード抽出: 検証済みの F* プログラムは、OCaml、F#、C、または Rust コードとして抽出できます。 KaRaMeL ツールチェーン (組み込みおよび高パフォーマンスのシナリオに適しています) を介して C/Rust を抽出し、Vale を介して検証可能なアセンブリ コードを抽出します。
  • パルス拡張機能: 組み込み DSL は、命令型言語プログラミング エクスペリエンス (「while」ループ、可変参照、「par」並列構成) を提供し、同時実行分離ロジックに基づいて共有メモリ同時実行プログラムを検証します。
  • Vale Verifiable ASM: 低レベルのアセンブリ コードを記述および検証するための F 埋め込み DSL。HACL 運用環境 (AES-NI 命令の最適化) に展開されます。
  • AI 支援証明 (証明副操縦士): 2026 年に開始され、証明フラグメントの自動生成をサポートし、型エラーのデバッグを支援し、検証戦略の提案を提供します。公式には「代替ではなく補助」として位置付けられており、AI によって生成された証明書は手動で確認する必要があります。
  • MCP サーバー: 2026 年にリリースされ、AI コーディング ツールが MCP プロトコル経由で F* と直接対話できるようになります。

モデルとバージョンの進化

バージョン 発売日 主な変更点
v2026.07.12 2026-07 Float32/Float64 のサポート、Proof-Copilot AI エージェントの統合、エディター インタラクションの改善
v2026.06.01 2026年6月 Pulse 強化、Z3 統合最適化、KaRaMeL/Vale アップグレード
v2026.04.15 2026年4月 MCP サーバー公開、Copilot CLI 統合、エディターコラボレーション機能
v2025.10.01 2025-10 Pulse DSL 導入、コード抽出パフォーマンスの最適化、Nix サポート
v2025.01.15 2025年1月 .NET 8 への移行、SMT インターフェイスの再構築、増分検証の改善
v2024.06.01 2024-06 KaRaMeL のサブモジュール化、検証パフォーマンスの最適化
v2023.12.01 2023-12 OCaml 抽出の新バージョン、大規模ライブラリのサポートの改善
v2023.06.01 2023-06 依存型システム強化、エラーメッセージ改善

バージョン進化の特徴: 2023 年から 2024 年は、コンパイラ インフラストラクチャ (.NET 8 への移行、SMT インターフェイスの再構築) とコード抽出の最適化に焦点が当てられます。 2025 年に Pulse DSL を導入し、必須/同時検証のサポートをマークします。 2026 年のメインラインは AI の統合です。MCP サーバーとプルーフコパイロットの連続リリースにより、F* は「AI 支援検証」の新たな段階に入るでしょう。バージョン レコードは GitHub リリースの対象となります。

技術的な利点

  • 依存型 + SMT 自動化: 依存型理論の高い表現力と Z3 SMT ソルバーの高度な自動化を組み合わせます。ユーザーは複雑な仕様を型レベルで記述することができ、SMT ソルバーはほとんどの算術、論理、および設定制約を自動的に処理します。 F* は通常、Coq よりもユーザーの操作が少なくて済みます。
  • 階層化された検証戦略: 完全自動 (SMT が処理する全権限を持つ) から完全手動 (ユーザーが完全な認証項目を書き込む) への柔軟な切り替えをサポートします。単純なプロパティは SMT に依存し、複雑なプロパティは補助補題を徐々に追加します。
  • エンドツーエンドの検証パイプライン: F* ソース コード → 型チェック → コード抽出 → 実行可能ファイルにコンパイルされ、プロセス全体を通じて正式な保証の推移性が維持されます。 KaRaMeL によって抽出された C コード スタイルは手書きの C に近く、Firefox などの実稼働システムにデプロイされています。
  • 命令型 + 同時実行検証: Pulse DSL は、形式的な検証と実際のシステム プログラミングの間のギャップを埋め、きめ細かいロック、メッセージング、ワークスチールなどの同時実行パターンをサポートします。
  • 検証済みの暗号化プリミティブ ライブラリ: HACL* およびその他のライブラリは、新しいプロジェクトで直接再利用できる 50 以上の検証済み暗号化アルゴリズム (AES、ChaCha20、Curve25519) を提供します。

導入の落とし穴ガイド

1. .NET ランタイムの依存関係: F* は .NET 8 に基づいています (2025 年に移行が完了)。 macOS ユーザーは、.NET の arm64 バージョンの互換性に注意する必要があります。一部の古いバージョンでは、M シリーズ チップで JIT の問題が発生する可能性があります。 解決策: dotnet --info で SDK ≥ 8.0 を確認し、brew install dotnet を使用します。

2. Z3 ソルバー バージョンの互換性: F は Z3 バージョンに厳密に依存しています。バージョンに互換性がない場合、検証結果に一貫性がなくなります。 解決策: F ウェアハウスの「z3」サブモジュールの指定されたバージョンに従ってコンパイルするか、公式のビルド済みリリース パッケージ (Z3 が組み込まれています) を使用します。 「pip install z3-solver」の使用は非推奨です。

3.ビルド環境の構成: ソース コードからコンパイルするには、OCaml (4.14+)、.NET 8 SDK、および Python 3 が必要です。 解決策: Docker (docker pull fstar/fstar) または Nix (nix build github:FStarLang/FStar) をお勧めします。どちらも依存関係のバージョン制約を処理します。

4.エディター統合構成: VS Code プラグインは、ローカルの fstar.exe を指すように fstar.executablePath を構成する必要があります。構成が正しくない場合、通知なしで失敗します。 解決策: fstar.executablePaththat fstar.exe の出力パスを指していることを確認してください。

5.大規模プロジェクトの増分検証パフォーマンス: 数万の行レベルのプロジェクト (miTLS など) の場合、増分検証と再チェックに時間がかかる場合があります。 解決策: --cache_checked_modules を使用してモジュールレベルのキャッシュを有効にし、--lazy モードを使用して無関係な定義を遅延チェックします。

使い方

使い方 説明 該当するシナリオ
ローカルインストール opam install fstar または Docker/Nix 完全な開発と検証
オンラインエディタ fstar-lang.org/run.php 簡単な実験と学習
VS コードプラグイン fstar-vscode-assistant インタラクティブ検証開発
Emacs プラグイン fstar-mode.el (MELPA) インタラクティブ検証開発
AI支援 証明-副操縦士 + MCP サーバー AIドライバー検証支援

「」バッシュ

インストール (Docker 推奨)

ドッカープル fstar/fstar alias fstar='docker run --rm -it -v $(pwd):/code fstar/fstar fstar'

hello.fst を確認する

fstar hello.fst

OCaml に抽出

fstar hello.fst --codegen OCaml 「」

製品の価格設定

階層 価格 含まれるもの
オープンソースコア $0 (Apache 2.0) 完全なコンパイラ/バリデータ、Z3 統合、完全な DSL
Docker イメージ $0 事前に構成された完全な開発環境
オンラインエディタ $0 ブラウザ使用、インストール不要
証明-副操縦士 $0 (オープンソース) AI 支援プルーフ プラグイン
VSコードプラグイン $0 インタラクティブな検証
エンタープライズサポート 公式の商用サポートはありません コミュニティ Zulip + GitHub の問題

F* は完全に無料のオープンソース プロジェクトであり、有料バージョンや機能のロックインはありません。 Apache 2.0 ライセンスでは、商用利用と再配布が許可されています。 Zulip コミュニティの応答は通常 24 ~ 48 時間以内に行われます。

アプリケーションのシナリオ

  • セキュリティ プロトコル検証 (最も成熟したもの): セキュリティ エンジニアは、F* を使用してネットワーク プロトコルの正式な仕様を作成し、型システムに依存してプロトコルの機密性と整合性を検証します。 miTLS 検証により、TLS 1.3 のドラフト段階で複数のセキュリティ問題が発見されました。 検証: 検証に合格した後、C コードを抽出し、TLS-攻撃者との統合テストを実行します。
  • 暗号化実装の検証: F を使用して暗号化アルゴリズムを作成し、アルゴリズムの正確さと定数時間の実装を検証します。 HACL ライブラリは、すでに 50 以上の実証済みの暗号化プリミティブを提供しています。 検証: 標準の KAT ベクトル検証を実行します。
  • システム ソフトウェア キー モジュールの検証: Pulse DSL を使用して、OS スケジューラ、ファイル システムの同時アクセス、およびデータベース トランザクション分離の正式な検証を実行します。 検証: パルス検証済みモジュールは、比較のために元のモジュールと並行して実行されます。
  • AI セキュリティと調整の研究 (新たな方向性): F* を使用して、AI システムのセキュリティ クリティカルなコンポーネント (推論スケジューラーの公平性、データ アクセス制御ポリシー、モデル出力制約実行ロジック) の正式な検証を実行します。 検証: 検証に合格した正式仕様書は、AI システム監査の基本文書として使用されます。

該当する人

群衆 適応値 前提条件
セキュリティエンジニア プロトコルと暗号化実装の正確性を検証する 暗号化とセキュリティ プロトコルに精通している
形式手法研究者 検証技術の研究と実践 関数型プログラミング + 型理論の基礎
システムソフトウェア開発者 主要なシステムモジュールの信頼性を保証 形式的検証の基本を理解している
未確認動物学エンジニア 暗号化実装を作成して検証する 暗号化 + 関数型プログラミングの基礎
コンピュータサイエンスの学生 学習プログラムの検証と型理論 プログラミング言語理論の基礎

群衆には適していません: ビジネス コードを迅速に提供する必要があるフルスタック開発者 (コードを直接記述するよりも検証のオーバーヘッドがはるかに大きくなります)。関数型プログラミングと型理論の基礎がない人 (学習曲線は基礎ゼロには適していません)。セキュリティ クリティカルではない領域での一般的なアプリケーション開発。

競合製品の比較

コントラストの寸法 F* コック イザベル/HOL ダフニー リーン4
オープンソース/クローズドソース オープンソース (Apache 2.0) オープンソース (LGPL) オープンソース (BSD) オープンソース (MIT) オープンソース (Apache 2.0)
自動化の程度 ★★★★ (SMTドライバー) ★★(主にマニュアル) ★★★ ★★★★ (SMTドライバー) ★★★ (戦術)
コード抽出 OCaml/F#/C/Rust/ASM OCaml/Haskell/スキーム 限定 C#/Java/Python/JS C/JavaScript
セキュリティ検証の評判 TLS/暗号化 (miTLS/エベレスト) コンパイラ (CompCert) OS カーネル (seL4) ソフトウェアエンジニアリング 数学的推論
同時実行性の検証 ✅ パルス DSL ❌限定 ❌限定
AI支援による証明 ✅ 証明副操縦士 ⚠️ 戦術家 ❌限定 ❌限定 ✅ GPT-f
学習曲線 中上級 中上級 中級 中上級
エンタープライズサポート ❌ 公式サポートなし ✅ コンサルティング/トレーニング ✅ コンサルティング/トレーニング ✅ AWS 有料 ❌ 地域密着
GitHub スター 3.1K 4.8K 2.5K 4.7K 7.5K

意思決定提案: 産業グレードの暗号化プロトコルまたは暗号化実装を検証する → F が最も成熟しています (miTLS/HACL/Everest)。コンパイラ検証→Coq (CompCert エコロジー)。数学定理の形式化→Lean 4. 簡単なプログラムの正当性検証と主に .NET ベース→Dafny。

概要と展望

形式検証分野における F の中核的な競争力は、「依存タイプ + SMT 自動化 + マルチオブジェクト コード抽出 + 同時検証」の技術的組み合わせにあります。セキュリティ プロトコルと暗号化の検証シナリオにおける最も成熟したエンジニアリング ケースが含まれています (miTLS/Everest/HACL はすべて実稼働環境で検証されています)。 Apache 2.0 ライセンスと活発な学術コミュニティにより、プロジェクトの長期的な持続可能性が保証されます。

主な利点: SMT 主導の高度な自動化により、プルーフ作業負荷が軽減されます。多目的コード抽出 (OCaml/C/Rust/ASM) は、プロトタイプから運用展開までの完全なリンクをカバーします。 Pulse DSL は、必須検証と同時検証をサポートする唯一の主流の証明アシスタントです。検証コードは、Firefox や Linux カーネルなどの数十億のユーザーレベルのシステムに導入されています。

既知の制限事項: 学習曲線 (依存関係の種類 + 効果システム) が依然として主要なしきい値であり、非関数型プログラミングのバックグラウンドを持つ新規ユーザーが使い始めるには 2 ~ 4 週間かかります。商用サポートはコミュニティ チャネル (Zulip) のみに依存しており、エンタープライズ レベルの SLA がありません。 proof-copilot はまだ初期段階にあり、AI が生成した証明の信頼性を検証する必要があります。

リスク開示: (1) このプロジェクトは学術機関によって主導されており、商品化サポートは限られており、エンタープライズ レベルの SLA は利用できません。 (2) コンパイラは .NET 8 に基づいて実行され、エコシステムと OCaml/Haskell の伝統の間にはギャップがあります。 (3) 形式的検証の正しさは仕様の正確さに依存します。仕様自体のバグは検証の対象になりません。 (4)proof-copilot によって生成された証明フラグメントは手動レビューが必要であり、「AI 支援 +」手動レビュー」品質プロセスを確立する必要があります。

フォローアップ観察の方向性:proof-copilot の成熟度向上の道筋、コミュニティの規模と貢献者の増加傾向、Microsoft またはサードパーティが提供する商用サポート ソリューションの有無。

概要と展望

Fは、「依存型+SMT自動検証」という独自の技術路線により、形式検証の分野において重要かつ独自の地位を占めています。 miTLS、Everest、HACL などの主力プロジェクトは、学術実験としてだけでなく、数十億のユーザーのブラウザにデプロイされた実稼働コードとして、セキュリティ クリティカルなシステムの検証においてエンジニアリングの実行可能性を証明しています。

主な利点: (1) SMT 主導の自動検証により、証明の作業負荷が大幅に軽減されます。 (2) 多目的コード抽出 (OCaml/C/Rust/ASM) により検証の推移性が保証されます。 (3) Pulse は命令型/並行検証をサポートし、機能検証とシステム プログラミングの間のギャップを橋渡しします。 (4) 実証副操縦士は AI 支援を導入し、初心者の敷居を下げます。 (5) 豊富な検証済み暗号ライブラリ (HACL*) が再利用可能です。 (6) Apache 2.0 ライセンス。商用利用においてコンプライアンスの懸念はありません。

現在の制限: (1) 学習曲線には依然として、関数型プログラミングと型理論の一定の基礎が必要です。これは、形式的検証ツールの共通の問題点です。 (2) コミュニティの規模とエコシステムは主流の言語よりもはるかに小さく、問題が発生したときに参照できるスタック オーバーフローの投稿は限られています。 (3) ドキュメントと例の範囲、特に新規ユーザー向けの入門チュートリアルはまだ改善する必要があります。 (4) 非セキュリティ分野での適用ケースは比較的限定されています。TLS/暗号化分野の検証では F* で十分ですが、他の分野での汎用性を拡張する必要があります。 (5) 公式の商用サポート チャネルはなく、企業での導入には社内の正式な検証専門家が必要です。

調達/採用リスク評価: セキュリティ クリティカルなシステム (暗号化実装、プロトコル実装、セキュリティ クリティカルなモジュール) の場合、F の採用リスクは低くなります。Apache 2.0 ライセンスによるベンダー ロックインのリスクはなく、実績のある主力プロジェクトはエンジニアリングの実現可能性の参考事例を提供します。主なリスクは、F スキルを持つ人材を見つけることです。形式検証エンジニアの雇用市場は熾烈な競争が続いています。推奨される戦略は、HACL などの検証済みライブラリの統合から開始し (F 開発コストがゼロになるメリット)、社内チームの F 能力を育成し、その後、自社開発の検証プロジェクトに拡大することです。安全性が重要ではない領域での日常的な開発の場合、F の検証コストが利点を上回ることが多いため、お勧めできません。

追跡観察の方向性: (1) 検証効率に対する校正副操縦の実際の改善効果 - AI が校正時間を大幅に短縮できれば、F の採用閾値は大幅に低下する可能性があります。 (2) Pulse - 必須/同時検証の成熟度と採用率は、競合製品と比較した F の核となる差別化機能です。 (3) AI セキュリティにおける形式的検証の役割が拡大 - AI セキュリティ調整は新興分野であり、F* の方法論は新しい応用シナリオを見つける可能性があります。 (4) 商用サポートとトレーニング エコシステムの確立 - これは研究ツールから業界標準への重要なステップです。

関連ツール: github-copilot、カーソル

バージョン情報

  • F* v2026.07.12 :Float32/Float64 のサポート、Proof-Copilot AI エージェントの統合、およびエディターの対話機能の改善が追加されました。
  • F* v2026.06.01 :パルス同時実行性検証の強化、Z3 統合の最適化、KaRaMeL および Vale ツール チェーンのアップグレード。
  • F* v2026.04.15 :MCP サーバーがリリースされ、Copilot CLI 統合がサポートされました。エディターのコラボレーション機能を追加します。
  • F* v2025.10.01 :Pulse DSL の導入、コード抽出パフォーマンスの向上、Nix ビルドのサポートの追加。
  • F* v2025.01.15 :.NET 8 への移行が完了し、SMT ソルバー インターフェイスのリファクタリングが行われ、増分検証のパフォーマンスが向上しました。

ユーザーレビュー

  • レビューを読み込み中...