あなたが尋ねている質問は興味深く、知られています。自然数のいわゆるimpredicative encodingを使用しています。背景について少し説明しましょう。
型コンストラクタ与えられた、我々は"最小"型に興味があるかもしれないA満たすA ≅ T (Aを)。カテゴリー理論に関しては、Tはファンクターであり、Aは初期T代数です。たとえば、T (X )= 1 + Xの場合、Aは自然数に対応します。もしT (X )= 1 +T:T y p e → T y p eAA ≅T(A )TATT(X)= 1 + XA場合、 Aは有限二分木のタイプです。T(X)= 1 + X× XA
長い歴史を持つアイデアは、最初の代数がタイプ
A := ∏ X :T y p e(T (X )→ X )→ Xであるというものです。
(依存製品にAgda表記を使用していますが、より伝統的な数学表記を使用しています。)なぜこれが必要なのでしょうか?さて、Aは基本的に初期T代数の再帰原理をエンコードします。任意のT代数Yが構造モルフィズムf :T (YT
A := ∏バツ:T y p e(T(X)→ X)→ X。
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(X)= 1 + X
N a t = ∏バツ:T y p e((1 + X)→ X)→ X= ∏バツ:T y p e(X× ( X→ X))→ X= ∏バツ:T y p eバツ→ ( X→ X)→X。
あなたの質問に対する技術的な答えはこれです:型理論のモデルが存在し、その型にSimpleNat
は数字に対応しないエキゾチックな要素が含まれており、さらにこれらの要素は誘導原理を破ります。タイプSimpleNat
これらのモデルでは大きすぎるだけで弱い始代数。