言語(およびその型システム)が独自の用語に関する定理を証明できるのはなぜですか?


12

私は最近、独自の用語に関する数学的定理を証明できる最小限のプログラミング言語であるAaronのCedille-Coreを実装しようとしました。また、λでエンコードされたデータ型の帰納法を証明しました。

それほどではないが、これらの拡張機能がどこから来たのか、まだ疑問に思っている。なぜ彼らは彼らですか?それらを正当化するものは何ですか?たとえば、再帰などの一部の拡張機能は、言語を証明のシステムとして台無しにすることを知っています。CoCを他のプリミティブで拡張することにした場合、どのように正当化できますか?正規化の証明が必要であることは理解していますが、それはそれらのプリミティブが「意味をなす」ことを証明しません。

要するに、言語(およびその型システム)を、それ自体の用語に関する定理を証明できるシステムとして特に限定するものは何ですか?


この質問に関連するブログを読みましたが、今は見つけることができません:(「System Tで十分です!」などの文が含まれていて、依存型システムについて話していました
。–

2
それを見つけた:queuea9.wordpress.com/2010/01/17/…それは実際にアーロン・スタンプによって書かれているので、あなたはすでにそれについて知っているかもしれません。
-Labbekak

無防備な再帰は、証明システムとして言語を「破壊」しますが、無防備な再帰はそうではありません。プリミティブが理にかなっていることを証明するために、モデルを構築すると言います。また、独自の用語に関する定理を証明するには、一種のカリー-ハワード同型と依存型が必要であるため、証明するもの(型)が用語について話すことができます。
xavierm02

回答:


5

[自己広告が続きますが、これは関連があると思います。]

tあなたはtあなたはtあなたはvλバツバツvv

もちろん、同値を仮定することもでき、数量詞にはいくつかの異なる形式があります(型付き/型なし、ユニバーサル/存在)。このメカニズムを使用して、任意のプログラムについて推論することができます(終了を証明する必要も、入力する必要もありません)。唯一の制約は、証明として使用されるプログラムがシステムによって終了することを証明する必要があることです(任意の一般的な再帰は矛盾につながります)。

これを確認したい場合の参考文献は次のとおりです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.