教会の数字の帰納法を宣言することが不可能な理由


17

想像して、従属型ラムダ計算の自然数を教会の数字として定義したと想像してください。これらは、次の方法で定義できます。

SimpleNat = (R : Set) → R → (R → R) → R

zero : SimpleNat
zero = λ R z _ → z

suc : SimpleNat → SimpleNat
suc sn = λ R z s → s (sn R z s)

SimpleNatRec : (R : Set) → R → (R → R) → SimpleNat → R
SimpleNatRec R z s sn = sn R z s

ただし、次のタイプの誘導原理では教会の数字を定義できないようです。

NatInd : (C : Nat -> Set) -> (C zero) -> ((n : Nat) -> C n -> C (suc n)) -> (n : Nat) -> (C n)

なぜそうですか?どうすればこれを証明できますか?問題は、再帰的になるNatの型を定義することにあるようです。これを可能にするためにラムダ計算を修正することは可能ですか?

回答:


20

あなたが尋ねている質問は興味深く、知られています。自然数のいわゆるimpredicative encodingを使用しています。背景について少し説明しましょう。

型コンストラクタ与えられた、我々は"最小"型に興味があるかもしれないA満たすA ≅ T (Aを)。カテゴリー理論に関しては、Tはファンクターであり、Aは初期T代数です。たとえば、T (X )= 1 + Xの場合、Aは自然数に対応します。もしT (X )= 1 +T:Type→TypeAA≅T(A)TATT(バツ)=1+バツA場合、 Aは有限二分木のタイプです。T(バツ)=1+バツ×バツA

長い歴史を持つアイデアは、最初の代数がタイプ A := ∏ X :T y p e(T (X )→ X )→ Xであるというものです。 (依存製品にAgda表記を使用していますが、より伝統的な数学表記を使用しています。)なぜこれが必要なのでしょうか?さて、Aは基本的に初期T代数の再帰原理をエンコードします。任意のT代数Yが構造モルフィズムf :T (YT

A:=∏バツ:Type(T(バツ)→バツ)→バツ。
ATTY、我々取得代数準同型 φ :A → Yによって φ ()= Af:T(Y)→Yϕ:A→Y したがって、 Aが確実に弱い初期値であることがわかります。それが初期であるためには、 ϕも同様に一意であることを知る必要があります。これは前提条件がなければ真実ではありませんが、詳細は技術的で厄介であり、背景資料を読む必要があります。たとえば、満足のいくパラメトリック定理を示すことができれば勝ちますが、他の方法もあります( Aの定義をマッサージしたり、 K公理と関数の拡張性を仮定するなど)。
ϕ(a)=aYf。
AϕAK

私たちはに上記適用でき: N T = Π X :T Y のP E((1 + X )→ X )→ X = Π X :T Y PのE(X × (X → X ))→ X = ∏ X :T y p eT(バツ)=1+バツ

Nat=∏バツ:Type((1+バツ)→バツ)→バツ=∏バツ:Type(バツ×(バツ→バツ))→バツ=∏バツ:Typeバツ→(バツ→バツ)→バツ。

あなたの質問に対する技術的な答えはこれです:型理論のモデルが存在し、その型にSimpleNatは数字に対応しないエキゾチックな要素が含まれており、さらにこれらの要素は誘導原理を破ります。タイプSimpleNatこれらのモデルでは大きすぎるだけで弱い始代数。


8
:私は答えは素晴らしいですが、いくつかの言及はここに役に立つかもしれないことに同意し、誘導の非derivability上Geuvers'紙とネールKさんとparametricityから(一部)の誘導を得る上のデレク・ドレイヤーの論文。しかし、私は関係を完全に探求する論文を知りません。
— コーディ

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