-
Rust実装の正当性を保証したい
-
現在やったこと・やっていること 現状
-
RefinedRustの適用を試みる
-
非技術的な動機
-
safety criticalな利用目的なので出来るだけfoundationalな検証を目指したい
-
自分のスキルセットなどを鑑みて定理証明による手法が使いたい
-
-
-
ビット操作周り
-
各ビット幅を取るモジュールで証明を整理する
-
count leading/trailing zerosの形式仕様
-
trailing zerosの定義
-
Z.log2との対応(count_leading_zeros_usize_spec)
-
-
rotating shift
-
Zrotate_right_usize_specの証明
-
-
-
zhang et.al.の不変条件をrlsfの実装に合うように翻訳してみる
-
インデックス計算の形式化
-
検証の対象とする性質の検討
-
Rustのアロケータとして要求される仕様について検討する
-
-
Tlsf::allocate/Tlsf::deallocateに絞って正当性を考えて・スペックを書き始める-
インフォーマルに検証の対象とする仕様などに関することをまとめる
-
-
rlsfの実装を読む
-
crates/rlsf/src/tlsf.rsを中心にインフォーマルに正当性を考えてみる
-
-
crates/rlsf/src/tlsf.rsを現在のフロントエンドで扱える範囲に、書き換える -
RefinedRustに関する調査
-
論文を精読/Coqの形式化を読む
-
文書にまとめる
-