arXiv論文メモ
新着一覧
cs.PL · 査読状況未確認

Rustの可変参照を扱う感度型システムForte

Forte: A sensitivity type system for imperative Rust

Chiké Abuah

この論文をやさしく読む

ひとことで言うと

差分プライバシーの計算で値を書き換えるRustプログラムについて、感度の安全性を型と形式的証明で確かめる仕組みです。

何に役立つ?

OpenDPのようなライブラリで、可変参照を使う実装の感度境界やプライバシー予算に関する誤りを検査する方法の参考になります。すべての差分プライバシープログラムを自動証明できるとの主張ではありません。

この研究の面白いところ

Rustの排他的な可変借用を理論の鍵に使い、別名借用があると定理が成り立たない反例まで形式化しています。コンパイラの独自分岐なしに既存のFluxから検査します。

どこまで分かった?

要旨の評価対象はOpenDPの機構の中核処理です。機械検証の主張は記載された決定的基本操作と対応する検査済みプログラムに関するものです。

v1のアブストラクトに基づくAI解説。日本語訳とは別に、用途の解釈を含みます。

アブストラクトの日本語訳

本研究は、所有権を健全性の基礎とするRust向けの感度型システムForteを導入する。Fuzzの線形グレーディングからSoloの環境インデックスまで、従来の段階付き感度型システムは純粋な計算体系である。値が変化しないため、値に関する主張はその生存期間全体で成り立つ。一方、命令的な感度解析では一階の変数への代入は扱うものの、参照を扱わないため別名参照の問題が生じない。しかし、実際に差分プライバシー統計量を計算するプログラムはRustで書かれ、借用を通して値を変更する。Forteはこの隔たりを埋める。 中心となる規則は、排他的借用を通じて、基本操作の呼び出し時と検査済み関数の境界を越える際に、感度環境を強く更新する。健全性定理は、記憶領域を持つ操作的意味論における距離保存である。可変参照 &mut の排他性だけが、変更を伴う呼び出しをまたいだフレーミングを正当化し、別名を持つ二つの借用があればこの定理が破れることも示す。Verusで定理、関数規則、反例を機械的に形式化する。Fluxはコンパイラを分岐させず、通常のライブラリとしてForteを検査する。各決定的基本操作の型宣言は機械検証された定理に裏付けられ、対応定理によって、検査器が受け入れたプログラムへ距離保存を移す。 評価には、実際にその場で値を書き換えるOpenDPの機構の中核処理を用いる。検査した定数はライブラリが信頼する安定性写像と一致し、証明文書のないコンストラクターも対象に含めた。また、直径の1ずれ、過度に厳しい境界、調整を誤った出力、予算の超過を拒否し、信頼される定数の一つを推論したループ不変条件から導いた。

v1の要旨から自動生成。本文の精読・人による確認は未実施。

初稿
2026-09-24(UTC)
最新改訂
2026-09-24 · v1
査読・掲載
査読状況未確認
arXivで読むPDF

更新履歴

取得できた版を表示。版の更新は査読済みを意味しません。過去版の本文差分は未解析です。

原文の要旨

We introduce Forte, a sensitivity type system for Rust whose soundness rests on ownership. The graded sensitivity type systems, from Fuzz's linear grading to Solo's environment indices, are pure calculi: a claim about a value holds for the value's whole lifetime because nothing can mutate it. The imperative sensitivity analyses admit assignment to first-order variables and no references, so no question of aliasing arises in them. The programs that compute differentially private statistics in deployment are Rust, and they mutate through borrows. Forte closes this gap. Its central rules strongly update a sensitivity environment through an exclusive borrow, at a primitive call and across a checked function boundary; its soundness theorem is metric preservation over an operational semantics with a store, in which the exclusivity of &mut alone licenses framing across a mutating call, and two aliased borrows suffice to refute the theorem without it. Verus mechanizes the theorem, the function rule, and the refutation. Flux checks Forte as an ordinary library, with no fork of the compiler; a machine-checked theorem backs every deterministic primitive signature, and a correspondence theorem transports metric preservation to the programs the checker accepts. We evaluate Forte on mechanism kernels from OpenDP with genuine in-place mutation, matching the library's trusted stability maps with checked constants, covering the constructors that have no proof document, rejecting off-by-one diameters, tightened bounds, miscalibrated releases, and overspent budgets, and deriving one trusted constant as an inferred loop invariant.

著者のコメント

29 pages. Submitted to the Journal of Functional Programming

arXiv ID: 2609.30254 / 要約の誤りについて