Core Concepts
圧縮された行列と疎ベクトルの積を計算する関数の正しさを、関係的な分離論理を用いて形式的に検証する。
Abstract
本論文では、構造化データの操作に関する仕様と検証のための新しい論理フレームワークLGTMを提案している。LGTMは、Hoare風の関係的分離論理であり、パラメータ化された高度安全性仕様を扱うことができる。
まず、圧縮された行列と疎ベクトルの積を計算する関数spmspvを例に取り、その正しさを示す。
spmspvの実装を展開し、for-loopの本体に着目する。
for-loopの各反復について、ucsr_getとsv_getの呼び出しを個別に扱えるよう、LGTMの論理規則を適用する。
各反復の結果とsv_spvの仕様を組み合わせることで、spmspvの正しさを示す。
sv_spvの仕様と検証については、LGTMのwhile-loopの規則を用いて行う。
このように、LGTMの論理規則を活用することで、構造化データ操作プログラムの正しさを簡潔かつ体系的に検証できることを示している。
Stats
行列mの要素(i, j)が0である場合、ucsr_get(midx, mind, mval, i, j)の結果は0である。
行列mの非ゼロ行のインデックスはmidxに格納されている。