Coqで計算可能な関数のクラス


22

終了しない計算を許可しないため、Coqは必ずしもチューリング完全ではありません。Coqが計算できる関数のクラスは何ですか?(その興味深い特徴はありますか?)

回答:


18

ベンジャミンワーナーは、ZFCの相互解釈可能性を、数え切れないほど多くのアクセス不能なものと帰納的構築の計算で、彼の論文Sets in Types、Types in Setsで証明しました。

これは、大まかに言えば、ZFCで合計数として表示できる関数のうち、数え切れないほど多くのアクセスできないものをCoqで定義できることを意味します。したがって、大規模な基数を扱う集合論者でない限り、これまでに求めていた計算可能な関数をCoqで定義することはできません。


7
Coqのインタプリタを除いて...
ジュール・

6
実際には、Coq内にCoqインタープリター(実際には、任意の一般的な再帰関数)実装できます。CICに一貫性がある場合、インタープリターが完全な機能であることを証明することはできませんが、もちろん実装することはできます。
ニールクリシュナスワミ

2
あなたは、建設的なリフトモナドを使用することができます。一般的な再帰関数を記述します。次に、あなたの型チェッカーは、タイプがあります CをO N T E X TT E R MT Y PのEB O O L。これは基本的にBove / Caprettaアプローチです。(Benton、Kennedy、およびVarmingの「Coqのいくつかのドメイン理論と表示意味論」、dl.acm.org / citation.cfm?id = 1616077.1616090も参照してくださいAναA+αconteバツttermtypebool
ニールクリシュナ

1
@Neel:不正行為です。そして、正当な理由で、そうでなければ矛盾が生じるでしょう。
アンドレイバウアー

2
評価関数はあなたに無回答を与えるのではなく、物事を評価することになっているため、不正行為です。
アンドレイバウアー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.