メタ計算を用いた Continuation based C の検証手法
Yasutaka Higa
研究目的
動作するプログラムの信頼性を保証したい
そのためにコードセグメントとデータセグメントという単位を用いてプログラムを記述する手法を提案する
処理の単位であるコードセグメントはメタ計算によって相互に接続される
メタ計算を切り替えることでコードセグメントを変更することなくプログラムの性質を検証する
研究内容
コードを検証用に変更することなく、仕様を満たすか検証する
検証にはコードの状態を数え上げるモデル検査と証明の両方を用いる
モデル検査はコードセグメントの接続部分を変更することで実現する
証明は Continuation based C 上のコードセグメントを Agda 上で記述した上で証明する
Agda 上でコードセグメントを記述するために CbC の型を部分型として定義する
近況報告
部分型を使って定義した CS/DS のコードで n回 push して n回 pop すると戻る証明が書けました
AMS-Tex は amsmath を使えば良さそうです
修論の目次を書きました
グローバル公開しているサーバが攻撃を受けたようです
pukiwiki への攻撃。再監査などの動きもあると思います。
n-push/n-pop
『任意のスタックに対して同じ回数だけ push して pop すると元に戻る』
定義できましたが、前提がいくつかあります
たぶんこの前提を得られることの方に意味があると思っています
push する要素を指定せずに push/pop すると一回popされてしまう
今のコードは要素を指定しないと push しない
実装依存のコードを証明できたので割と良い結果だと思っています
continuation の処理内容によっては context は変更される
ので refl にならない『時もある』
修論の目次
Mercurial/hg/Papers/2017/atton-master
チェックお願いします
AMS-TeX
amstex
American Mathematical Society plain TeX macros
今は
AMS-LaTeX
があるようです
具体的には amsmath package
MacTeX 20161009 でも利用可能