KeYmaera

KeYmaera is a hybrid verification tool for hybrid systems that combines deductive, real algebraic, and computer algebraic prover technologies. It is an automated and interactive theorem prover for a natural specification and verification logic for hybrid systems.

インストール例

Webstart とダウンロードする方法とがありますが,設定を変更した際などにリスタートが必要なので,今回はローカルにインストールします.

適当な書き込み可能ディレクトリにおいて

wget http://www.ls.cs.cmu.edu/KeYmaera/keymaera-installer.jar

により installer をダウンロード

java -jar ./keymaera-installer.jar

により起動,「Next」を押し,「3.5.11」を選択,以下デフォルトのまま step 6 まで進めてxマークで終了させます.

使用例

java -jar ./keymaera-installer.jar

によりを起動,「Start KeYmaera」をクリック,外部プログラムのパスを聞かれますので,MathLibre20130831 以降の場合,

と入力,「Always use these settings as default」をチェックして「OK」,提示された SMT ソルバー「Z3」,SDP ソルバー「csdp」をそれぞれ「Download」して「はい」を押せば.Prover と Assistant のウインドウが現れます(外部プログラムのパスは「Options」→「Tool Paths...」でも設定できます.また,~/.keymaera/proof-settings.props を書き換えても構いません).

Ctrl + Alt + o でサンプルが開くので,LICS'12 Tutorial から1つ目の continuous system の例を「Load」して,Ctrl + e で自動証明がスタート,直ちに

20131001-km.png

のように表示されます.利用したタクティックは左下の「Proof」パネルで参照できます.

述語論理の例(2次の判別式).次を tst1.key として保存,Ctrl + o でロード,Ctrl + e で自動証明スタート.

\programVariables{R a,b,x;}
\problem{!b=0->(\exists R x.x+a+b/x=0<->a^2>=4*b)}

dynamic logic( http://en.wikipedia.org/wiki/Dynamic_logic_%28modal_logic%29 )の例(様相性と否定).次を tst2.key として保存,Ctrl + o でロード,Ctrl + e で自動証明スタート.

\programVariables{R a,x,y;}
\problem{(\[(x:=a)++(y:=a)\]x=a)<->(!\<(x:=a)++(y:=a)\>!x=a)}

数学的帰納法の例(数列の和).次を tst3.key として保存,Ctrl + o でロード,Ctrl + e で自動証明スタート.

\programVariables{R n,s;}
\problem{n=0&s=0->\[(n:=n+1;s:=s+n^4)*\]s=n*(n+1)*(2*n+1)*(3*n^2+3*n-1)/30}

リンク


添付ファイル: file20131001-km.png 1599件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-01-09 (金) 18:44:24