OCamllightと呼ばれるOCamlの大きなサブセットのセマンティクスは、数年前にOwensによってHOLで形式化されました。最近、OCamlのより小さなサブセットの型理論セマンティクスが、Kreitz 、Hayden、およびHickeyによってNuprlに実装されました。
Coqに同様の開発はありますか?
OCamllightと呼ばれるOCamlの大きなサブセットのセマンティクスは、数年前にOwensによってHOLで形式化されました。最近、OCamlのより小さなサブセットの型理論セマンティクスが、Kreitz 、Hayden、およびHickeyによってNuprlに実装されました。
Coqに同様の開発はありますか?
回答:
ArthurCharguéraudの博士論文、機械化プログラム検証の特性式を見たことがありますか?
型システムと小さなステップのセマンティクスを帰納的関係として構築するのではなく、Camlプログラムを特性式に変換する手法を提供します。これは基本的に、Ocamlの非常に大きなサブセットをサポートするための述語トランスフォーマセマンティクスの一般化ですObj.magic
。特に、のような安全でないキャストを含みます。彼の論文から引用するには:
私はOCamlプログラミング言語のサブセットに焦点を当てました。これは、シーケンシャルな、値渡しの、高レベルのプログラミング言語です。CFMLの現在の実装は、高次関数、再帰、相互再帰、および多相再帰を含むコアλ計算をサポートしています。タプル、データコンストラクタ、パターンマッチング、参照セル、レコード、配列をサポートしています。nullポインターと強力な更新のサポートを追加する追加のCamlライブラリーを提供します。
特定のCamlプログラムが正しいことを証明したい場合、非常に魅力的なアプローチです(ただし、そのメタ理論に興味がある場合はそうではありません)。
ジャック・Garrigueの者に興味がすることができ、構造多型と再帰型とMLのA認定の実装静的および動的なセマンティクスの健全性確立、およびこれの1を形式、(再帰と)構造多型を有するML言語のための型推論の性質をOCamlのより高度なコーナー(ポリモーフィックバリアントとオブジェクトタイプ)。
とはいえ、この作業は、既存のOCamlプログラムの機能セットをカバーすることよりも、型システムのより高度な部分の健全性を検証することをより目的としています。既存のOCamlプログラムの正しさを証明しようとするという点では、CFMLの方が良い選択だと思います。