私は最近、独自の用語に関する数学的定理を証明できる最小限のプログラミング言語であるAaronのCedille-Coreを実装しようとしました。また、λでエンコードされたデータ型の帰納法を証明しました。
それほどではないが、これらの拡張機能がどこから来たのか、まだ疑問に思っている。なぜ彼らは彼らですか?それらを正当化するものは何ですか?たとえば、再帰などの一部の拡張機能は、言語を証明のシステムとして台無しにすることを知っています。CoCを他のプリミティブで拡張することにした場合、どのように正当化できますか?正規化の証明が必要であることは理解していますが、それはそれらのプリミティブが「意味をなす」ことを証明しません。
要するに、言語(およびその型システム)を、それ自体の用語に関する定理を証明できるシステムとして特に限定するものは何ですか?
この質問に関連するブログを読みましたが、今は見つけることができません:(「System Tで十分です!」などの文が含まれていて、依存型システムについて話していました
—
。–
それを見つけた:queuea9.wordpress.com/2010/01/17/…それは実際にアーロン・スタンプによって書かれているので、あなたはすでにそれについて知っているかもしれません。
—
-Labbekak
無防備な再帰は、証明システムとして言語を「破壊」しますが、無防備な再帰はそうではありません。プリミティブが理にかなっていることを証明するために、モデルを構築すると言います。また、独自の用語に関する定理を証明するには、一種のカリー-ハワード同型と依存型が必要であるため、証明するもの(型)が用語について話すことができます。
—
xavierm02