Isabelle/Isar(その6)
Isabelle/Isarのセッションは,theoryモード,proofモードからなっています.
まず,theory-beginまで入力すると,theoryモードに入ります.theoryモードはIsarが「これから定義や定理,証明を書いてください」と言っている状態です.またシステムのパラメータなどの設定もこのモードでしか行えません.要は証明を外から見るモードです.
theoryモードでlemma(あるいはtheoremあるいはcorollary)-shows "..."まで入力すると,proofモードのうち,証明待ちのproof(prove)モードに入ります.そこで使えるコマンドは,証明のmethodを引数にもつ
using ... apply, using ... proof, using ... by
の何れかで,usingは参照する定理...(複数の場合はスペースで区切る)を指定するオプショナルコマンドです.これらの特徴は
applyは引数のmethod適用後もproof(prove)モードにあり(つまり,証明の反復),証明完了後はdoneコマンドで,theoryモードに抜ける
proofは引数のmethod適用後は,次に証明すべき内容の表明待ち,すなわち,proof(state)モードに入り,その時点で証明すべきゴールがなければ(つまり証明完了なら)qedコマンドでtheoryモードに抜ける(qedの引数に最後に使うmethodを廻せることは前述の通り),まだ残っているなら,次に証明するサブゴールを表明する為のコマンドhaveまたは,全体のゴールを表明するコマンドshowを受付け,それら実行後,証明待ちのproof(prove)モードに入る
by m1 m2 は proof m1 qed m2 と等価
という点です.
他に必要に応じてstateモードの頭に「参照する性質を指定する」為のchainモードを付けることも出来,そこでは次回以降述べるfrom,finally,ultimatelyといったコマンドが使えます.